Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Как и чем добавляется запись в таблицу attachments?

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
KimIV
phpBB 2.0.1
Сообщения: 286
Стаж: 8 лет 6 месяцев
Откуда: Кунгур
Благодарил (а): 169 раз
Поблагодарили: 21 раз
Контактная информация:

Как и чем добавляется запись в таблицу attachments?

Сообщение KimIV »

Прошу ткнуть в участок кода или хотя бы в файл движка форума, который выполняет добавление записи в таблицу attachments на этапе создания сообщения.

То есть я создаю сообщение. Нажимаю кнопку "Добавить файлы" (выбираю их) или просто перетаскиваю их из проводника windows в окно сообщения. Как-только файлы загрузятся на сервер (а может и до того) в таблице attachments создадуться соответствующие записи. Сообщение ещё не сохранено (но это и не важно), а аттачменты уже созданы. Не могу найти код, который это делает.

Самостоятельно нашёл следующие участки:
- \includes\mcp\mcp_main.php:1441
- \includes\message_parser.php:1551
- \includes\message_parser.php:1663
Но это не то. На этапе загрузки НЕ они добавляют записи в attachments
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Как и чем добавляется запись в таблицу attachments?

Сообщение Sheer »

KimIV писал(а): - \includes\message_parser.php:1551
Как раз там и добавляется. О чем наглядно свидетельствует

Код: Выделить всё

$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary)); 
а далее \includes\functions_posting.php функция submit_post() начиная со строки

Код: Выделить всё

    // Submit Attachments 
еще курим функцию upload_attachment()
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
KimIV
phpBB 2.0.1
Сообщения: 286
Стаж: 8 лет 6 месяцев
Откуда: Кунгур
Благодарил (а): 169 раз
Поблагодарили: 21 раз
Контактная информация:

Re: Как и чем добавляется запись в таблицу attachments?

Сообщение KimIV »

ммм... Спасибо, Sheer! У меня гранаты не той системы были. Я файл message_parser.php скопировал в папку своего расширения и инклудил его именно оттуда строкой

Код: Выделить всё

include($phpbb_root_path . 'ext/kimiv/fm/includes/message_parser.' . $phpEx);
что приводило только к определению функций, мной используемых, а фактически всё равно отрабатывался движковый message_parser.php, а не скопированный в расширение. Сейчас путём переименований классов и функций пытаюсь заставить заработать именно скопированный файл message_parser.php. Его я тоже переименовал в goods_parser.php :D

ЗЫ. Строка, которая отвечает за пополнение таблицы attachments при загрузке файлов на сервер - 1663

Код: Выделить всё

$db->sql_query('INSERT INTO ' . ATTACHMENTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.
Ответить

Вернуться в «Для разработчиков»