ООО ЭкоЮнит
FAQПоискПользователиГруппыФайлыВходРегистрацияГлавная
Форумы Aeroion.Ru
  » Технические форумы
   » Поддержка и моды для phpBB2
    » Attachment bbCode addon for phpBB2
   Аддон позволяет, как в phpBB3, показывать вложения с помощью тега [attachment=][/attachment]
Версия для печати
 
 
АвторСообщение
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

Делаю аддон к File Attachment Mod
Аддон позволяет аналогично тегу [attachment=][/attachment] в phpBB3, показывать вложение не в конце, а в начале или в середине текста. При этом основное вложение видят только автор поста и модераторы.
И дублировать показ вложений в другой теме, в дневнике и т.д., аналогично "[pic] bbCode" для фотоальбома. При дублировании в другой теме, показ основного вложения не прекращается.

Мод работает, но не получается сделать как в phpBB3, что бы после клика по "Вставить вложение" или "Предв.просмотр" показывался код тега [attachment=]. Сейчас этот тег показывается после отправки сообщения.
Sergey помогите, пожалуйста решить проблему.


Скачать attachment_bbCode_addon_for_phpBB2.zip (17.63 KB). Добавлен/обновлён Ср 01 Ноя, 2017 22:43. Скачано 8 раз(а).
Версия 2.1.1

Скачать attachment_bbCode_addon_for_phpBB2.zip (15.88 KB). Добавлен/обновлён Вс 22 Мар, 2015 18:38. Скачано 14 раз(а).
Версия 2.1.0

Скачать attachment_bbCode_addon_for_phpBB2.zip (12.44 KB). Добавлен/обновлён Сб 30 Авг, 2014 21:00. Скачано 7 раз(а).
Версия 2.0.0

Скачать attachment_bbCode_addon_for_phpBB2.zip (7.44 KB). Добавлен/обновлён Вс 03 Фев, 2013 13:48. Скачано 13 раз(а).
Версия 1.0.0

ВверхНа форуме нет Всего отзывов: 1 Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Зашибись работа. Пока терпения хватило, чтобы натянуть мод сюда и поправить код в некоторых местах. Ты забыл про предварительный просмотр. Файл перезалил в первый пост. Сравни свой текст и мою редакцию.

Код:
#
#-----[ OPEN ]-------------------------------------------------------
#
includes/topic_review.php

#
#-----[ FIND ]----------------------------------------
#
    global $starttime;

#
#-----[ AFTER, ADD ]----------------------------------
#
    // BEGIN  [attachment=x] bbCode
    global $ignore_attachment, $poster_id;
    // END  [attachment=x] bbCode

#
#-----[ FIND ]----------------------------------------
#
            display_review_attachments($row['post_id'], $row['post_attachment'], $is_auth);

#
#-----[ BEFORE, ADD ]----------------------------------
#
            // BEGIN  [attachment=x] bbCode
            if ( ( $is_auth['auth_mod'] || $userdata['user_id'] == $poster_id ) && $userdata['user_id'] != ANONYMOUS )
            {
                // unset($ignore_attachment);
                $ignore_attachment = array();
            }

 



Работа мода.
Код:
[attachment=0]108[/attachment]

r001-022.jpg

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Профиль Сайт Имя в Skype
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

Про topic_review.php я действительно забыл. Sergey, спасибо!
ВверхНа форуме нет Профиль
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

Если при предпросмотре, во фрейме, выше основного вложения находится тег [attachment], что бы показ этого основного вложения не прекращался, надо в topic_review.php сделать
Код:
 найти
        $i = 0;
        do
        {

после добавить
// BEGIN  [attachment=x] bbCode
// unset($ignore_attachment);
$ignore_attachment = array();
// END  [attachment=x] bbCode
ВверхНа форуме нет Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Не получается без переделки attachment мода решить проблему из первого поста. Пока сообщение не записано в базу, id вложения недоступно. То есть при новом вложении надо вычислять его идентификтор, а при записи поста учитывать, что в это время кто-то может ещё добавить файл в другой теме.

Добавлено спустя 12 минут 50 секунд:

Ещё несколько моментов. Надо как-то решить с запросами $attachment = attachment_sql_bbCode($attachment_id); , иначе несколько одинаковых ссылок или несколько вложений могут неплохо нагрузить страницу, и ввести проверку на доступность/существование вложения.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Профиль Сайт Имя в Skype
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

Sergey @ Вт 29 Янв, 2013 00:19 писал: (Просмотр сообщения)
Показать
Что надо делать понятно. Буду работать в этом направлении.

Sergey @ Вт 29 Янв, 2013 00:19 писал: (Просмотр сообщения)
Показать
Можно взять кэширование из "Change bbcode quote with Gender mod"
Sergey @ Вт 29 Янв, 2013 00:19 писал: (Просмотр сообщения)
Показать
У меня эта проверка уже сделана, сейчас загружу новую версию.
ВверхНа форуме нет Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Ну можно оттуда взять метод кэширования.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Профиль Сайт Имя в Skype
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

Добавлена проверка на доступность/существование вложений.
ВверхНа форуме нет Профиль
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

Что бы убрать одинаковые запросы, function attachment_sql_bbCode($download_id) сделать так:
Код:
function attachment_sql_bbCode($download_id)
{
    global $db, $list_attachment_bbcode_data;

    if (!is_array($list_attachment_bbcode_data))
    {
        $list_attachment_bbcode_data = array();
    }

    if (isset($list_attachment_bbcode_data[$download_id]))
    {
        $attachment = $list_attachment_bbcode_data[$download_id];
    }
    else
    {
        $sql = 'SELECT *
            FROM ' . ATTACHMENTS_DESC_TABLE . '
                WHERE attach_id = ' . (int) $download_id;

        if (!($result = $db->sql_query($sql)))
        {
            message_die(GENERAL_ERROR, 'Could not query attachment informations', '', __LINE__, __FILE__, $sql);
        }

        if (!($attachment = $db->sql_fetchrow($result)))
        {
            //message_die(GENERAL_MESSAGE, 'Error no attachment');
            //unset($attachment);
            $attachment = array();
            $list_attachment_bbcode_data[$download_id] = $attachment;
            return $attachment;
        }

        $attachment['physical_filename'] = basename($attachment['physical_filename']);

        $db->sql_freeresult($result);

        $list_attachment_bbcode_data[$download_id] = $attachment;
    }
    return $attachment;

}
ВверхНа форуме нет Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Массив $list_attachment_bbcode_data можно объявить не глобальным, а статическим static.
Код:
       static $list_attachment_bbcode_data; 


Добавлено спустя 2 часа 22 минуты 21 секунду:

По хорошему, перед записью сообщения сохранять список вложений в теме в отдельном поле таблицы phpbb_topics, а перед началом генерации страницы просто делать один запрос для создания списка $list_attachment_bbcode_data. В этом случае необходимость функции attachment_sql_bbCode() отпадёт.
Тогда потребуется добавление дополнительного поля в таблицу тем и доработка процедуры записи сообщения. Ах да, перед записью надо будет парсить текст на наличие bbcode [attachment]. Короче, всё сложно.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Профиль Сайт Имя в Skype
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

Добавлено:
static $list_attachment_bbcode_data;. bbCode для вставки тега в текст, показывается при редактировании (предпросмотре) уже отправленного сообщения (записанного в базу). И аддон для "Attachment Mod Addon (View Attachments)".


Sergey @ Ср 30 Янв, 2013 10:18 писал: (Просмотр сообщения)
Показать
Действительно сложно. Если руки дойдут до:
При новом вложении вычислять его идентификтор, при записи поста учитывать, что в это время кто-то может ещё добавить файл в другой теме, и если за это время в другой теме добавлен другой файл, то в отправляемом сообщении заменять ид внутри [attachment=] на новый.
Тогда в сообщении все равно текст парсить придется, вероятно и это сделаю.
ВверхНа форуме нет Профиль
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

Добавлено. bbCode для вставки тега в текст, показывается при редактировании сообщения, в том числе без предпросмотра. Аддон оформлен в виде мода.
Пока проблема, с не показом bbCode, для новых еще не записанных в базу вложений не решена. Возможно спустя некоторое время вернусь к этому вопросу.
ВверхНа форуме нет Профиль
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

При редактировании сообщения с предпросмотром, можно сделать на 1 sql запрос меньше
Код:
открыть
functions_attach.php

найти
function get_extension_informations()
{

после добавить
    static $cache_extensions_data = array();
    if(isset($cache_extensions_data[tmp]))
    {
        return $cache_extensions_data[tmp];
    }

найти
    return $extensions;

перед добавить
    $cache_extensions_data[tmp] = $extensions;
Attachment Mod хорошо оптимизирован, и без установки Attachment bbCode addon for phpBB2, делать вышеприведенное кэширование нет смысла.
ВверхНа форуме нет Профиль
vlad77 Пол:Муж.

Модератор


Зарегистрирован: 15.03.2008
Показать/Спрятать

Версия 2.0.0
Для получения тега [attachment], теперь нет необходимости сохранять и повторно редактировать сообщение. Можно, так же как на phpBB3.хх, быстро вставлять вложение в любое место сообщения.
Пока id вложения не существует, вместо него используется имя файла, а при сохранении сообщения имя файла заменяется на id вложения.
Мелкие косметические изменения: Над вставленными в сообщение флэшками показывается всплывающая подсказка (поддерживается большинством браузеров). Добавлена иконка вложения к вставленным в сообщение линкам на скачивание вложений.
Инструкция по обновлению находится в архиве.

Скачивать из первого поста Attachment bbCode addon for phpBB2
ВверхНа форуме нет Профиль
Sergey Пол:Муж.


Местный босс - администратор


Зарегистрирован: 06.01.2005
Показать/Спрятать

Дошли руки до обновления адд-она на форуме.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
ВверхНа форуме нет Профиль Сайт Имя в Skype
Показать сообщения:   

Общий рейтинг темы Attachment bbCode addon for phpBB2
Средний рейтинг: 0.00 :: Мин. рейтинг: 0 :: Макс. рейтинг: 0 :: Количество оценок: 0
Выберите оценку: 1   2   3   4   5  

Похожие темы
Тема Автор Форум Ответов Посл. сообщение
Нет новых сообщений Переместить вложения из одного сообщения темы в другое
File Attachment Mod
Sergey, вы на этом форуме переносите вложения из сообщения в сообщение через редактирование базы, или модом? Если модом, нельзя ли дать ссылку, что бы его скачать?
vlad77 Поддержка и моды для phpBB2 4 Вс 29 Мар, 2015 21:05 Посмотреть последнее сообщение
vlad77
Нет новых сообщений Мод Who has downloaded a attachment for phpBB2 - Кто скачивал (скачал) вложение
статистика скачиваний вложений.
Описание мода: Позволяет хранить статистику скачиваний вложений и выводит список в отдельном окне. Версия мода: 1.0.4 Сложность установки: Легко Время установки: ~10 минут Примечание автора: Мод является адд-оном к File
Sergey Поддержка и моды для phpBB2 32 Вс 02 Ноя, 2014 15:05 Посмотреть последнее сообщение
vlad77
Нет новых сообщений [RC] Who has downloaded a attachment for phpBB3 - Кто скачивал (скачал) вложение
статистика скачиваний вложений
Наименование модификации: Who has downloaded a attachment for phpBB3 Описание: Мод позволяет хранить статистику скачиваний вложений (дата скачивания, имя пользователя, IP-адрес, адрес страницы скачивания HTTP_REFERER) и
Sergey Поддержка и моды для phpBB3 37 Ср 13 Май, 2015 05:16 Посмотреть последнее сообщение
Orz
Нет новых сообщений Мод Shrink attached image before posting - add-on for File Attachment Mod for phpBB2
автоматическое уменьшение изображения при вложении
Описание мода: Позволяет автоматически корректировать размеры изображения при вложении. Версия мода: 1.0.0 Сложность установки: Легко Время установки: ~5 минут Примечание автора: Мод является адд-оном для File Attachment
Sergey Поддержка и моды для phpBB2 7 Вт 09 Авг, 2011 21:18 Посмотреть последнее сообщение
miba
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения. Кто скачал вложение. Аддон к File attachment
Спасибо что теперь можно войти и задать вопрос. Я хотел спросить по поводу статистики скачиваний. Если не выводить подробную статистику как в Transactions Point System Add-on, а просто под формой вложения вывести список
Rik Поддержка и моды для phpBB2 4 Сб 13 Сен, 2008 19:35 Посмотреть последнее сообщение
Sergey






Часовой пояс: UTC + 3 часа
Просматривают тему:
Зарегистрированные пользователи: Нет

Перейти:   
Версия для печати
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы
/a
Имя:

Пароль:

Запомнить
  Яндекс.Метрика
CrackerTracker © 2004 - 2018 CBACK.de