Мультизагрузка вложений (Multiple File Upload)

Все моды, созданные нашим сообществом для phpBB 3.0.x, будут анонсированы тут. Вся техническая поддержка по этим модам оказывается в этом форуме.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
hardlock
phpBB 1.4.0
Сообщения: 37
Стаж: 17 лет 7 месяцев
Откуда: zp.ua
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение hardlock »

Конечно выполнил SQL инструкцию.

итак немного скринов.
Добавляем 5 файлов:
0b187fe2bae6.png
После нажатия "Добавить файл" вставляем их в текст сообщения:
6a37f16fa996.png
При этом в БД появляются записи:
[фото пропало]

После отправки сообщения записи немного меняются:
[фото пропало]

Пробуем вставить картинки ещё раз (редактируя сообщение) - все номера аттачей поменялись:
a2302f61e14d.png
Пробовал залить картинки несколько раз. Иногда в поле "filetime" один файл (последний) выскакивает с временем на 0,001 больше чем остальные.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
phpbb 3.3.8 / php 7.4.0 / MySQL(i) 5.5.42 / FreeBSD 11.2
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение Shredder »

Время для всех одинаковое, потому они и перемешиваются. При работающем моде - для каждого следующего файла время должно отличаться на 0,001. Либо не выполнены где-то инструкции, либо с чем-то несовместимость. Вы можете развернуть чистую установку на том же сервере и посмотреть на результат? Либо предоставить мне доступ, чтобы самому сделать это?

Добавлено спустя 3 минуты 51 секунду:
Есть ещё альтернативное решение для этого случая, но мне бы хотелось докопаться, почему именно здесь не работает.
А решение такое:

posting.php
viewtopic.php
search.php
includes/functions_posting.php
includes/acp/acp_attachments.php
includes/mcp/mcp_pm_reports.php
includes/mcp/mcp_post.php
includes/mcp/mcp_queue.php
includes/mcp/mcp_reports.php
includes/mcp/mcp_topic.php
includes/ucp/ucp_pm_compose.php
includes/ucp/ucp_pm_viewmessage.php

Найти в этих файлах:

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

ORDER by filetime
и заменить на:

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

ORDER by attach_id
Менять надо во всех файлах, а не в каком-то одном.
Аватара пользователя
hardlock
phpBB 1.4.0
Сообщения: 37
Стаж: 17 лет 7 месяцев
Откуда: zp.ua
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение hardlock »

Shredder, спасибо за наставления! Буду искать где недобавляется... Завтра попробую. Если не получится, то буду просить Вас покопаться в моём форуме.

Ещё раз спасибо.
phpbb 3.3.8 / php 7.4.0 / MySQL(i) 5.5.42 / FreeBSD 11.2
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение Shredder »

Так как вложения сортируются на страницах по времени добавления, то в моде присутствует код:

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

	$filedata['filetime'] = time() + str_replace('fileupload', '', $form_name) * 0.001;
- призванный изменять параметр filetime (время добавления) каждого файла таким образом, чтобы для каждого следующего файла это время отличалось хотя бы на одну тысячную "секунды" (секунды - условно, потому что делается это с помощью умножения уникальных номеров форм загрузки на 0.001). Иначе для всех файлов время было бы одинаково и порядок их расположения на страницах был бы хаотичен.

Однако выяснилось, что на серверах с MySQL 4 (предположительно, потому что больше никаких зацепок нет) этот код не работает: вместо тысячных по какой-то причине идёт округление в сторону сотых. У кого-нибудь есть идеи, почему такое может происходить?

Кстати, на MySQL 4 не работает функция "Включить быстрый ответ во всех форумах", которая появилась в новых версиях движка. Это я сам лично наблюдал на нескольких серверах, и сегодня ещё раз подтвердилось. Везде стоял MySQL 4
mEx
phpBB 1.4.4
Сообщения: 197
Стаж: 19 лет 5 месяцев
Благодарил (а): 4 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение mEx »

У меня такая проблема, загрузил файлы, раскидал их по посту, куда нужно, отправил сообщение, и через некоторые время, файлы раскиданы в хаотичном порядке, а не так как мне нужно. Сделал как вы советовали, поменял в этих файлах сортировку не по времени а по айди, и все стало норм.
Shredder писал(а):
posting.php
viewtopic.php
search.php
includes/functions_posting.php
includes/acp/acp_attachments.php
includes/mcp/mcp_pm_reports.php
includes/mcp/mcp_post.php
includes/mcp/mcp_queue.php
includes/mcp/mcp_reports.php
includes/mcp/mcp_topic.php
includes/ucp/ucp_pm_compose.php
includes/ucp/ucp_pm_viewmessage.php
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение Shredder »

mEx, MySQL какой версии у вас? Значения filetime в БД тоже до сотых округлены?
mEx
phpBB 1.4.4
Сообщения: 197
Стаж: 19 лет 5 месяцев
Благодарил (а): 4 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение mEx »

Shredder
Версия MySQL-клиента: 5.1.39
filetime выглядят так: 1271674407.000
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение Shredder »

mEx писал(а):filetime выглядят так: 1271674407.000
Все без исключения? Или есть ещё со значениями, например: 1271674407.010 ?
mEx
phpBB 1.4.4
Сообщения: 197
Стаж: 19 лет 5 месяцев
Благодарил (а): 4 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение mEx »

Shredder
Все, без исключения.
Аватара пользователя
hardlock
phpBB 1.4.0
Сообщения: 37
Стаж: 17 лет 7 месяцев
Откуда: zp.ua
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение hardlock »

Мне кажется проблема не в MySQL, а в версии PHP или его настройках. Кстати,Shredder, если надо, то могу опять сделать тестовый форум на новом хостинге....
phpbb 3.3.8 / php 7.4.0 / MySQL(i) 5.5.42 / FreeBSD 11.2
Аватара пользователя
hardlock
phpBB 1.4.0
Сообщения: 37
Стаж: 17 лет 7 месяцев
Откуда: zp.ua
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение hardlock »

Попробовал на новом тестовом форуме - всё работает и с 0,001 и с 0,01...
на старом MySQL 4 с чем-то, на новом - 5.1.49
на старом PHP 5.2.1, на новом 5.2.12, настройки одинаковые - специально переносил точь в точь....
phpbb 3.3.8 / php 7.4.0 / MySQL(i) 5.5.42 / FreeBSD 11.2
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение Shredder »

Кажется, вот такой фикс решает проблему:

functions_posting.php

Найти:

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

	$filedata['filetime'] = time() + str_replace('fileupload', '', $form_name) * 0.001;
Заменить на:

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

	$filedata['filetime'] = number_format(time() + str_replace('fileupload', '', $form_name) / 1000, 3, '.', '');
mEx, вы можете внести себе эту поправку и ещё раз проверить значения filetime ? Если всё будет нормально, то обновлю мод.
mEx
phpBB 1.4.4
Сообщения: 197
Стаж: 19 лет 5 месяцев
Благодарил (а): 4 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение mEx »

Кстати, в моде блогов User Blog не работает. При размещение сообщения можно выбрать много файлов, но загрузится все равно только самый первый. Я так думаю нужно в файле blog\includes\functions_posting.php что-то прописать, но там нет строчки, как в стандартном файле. Вот код отвечающий за вложения:

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

		// Attachments
		$attachment_data = $blog_attachment->attachment_data;
		$filename_data = $blog_attachment->filename_data;
		$form_enctype = (@ini_get('file_uploads') == '0' || strtolower(@ini_get('file_uploads')) == 'off' || @ini_get('file_uploads') == '0' || !$config['allow_attachments'] || !$auth->acl_get('u_attach')) ? '' : ' enctype="multipart/form-data"';
		posting_gen_inline_attachments($attachment_data);
		if (($auth->acl_get('u_blogattach')) && $config['allow_attachments'] && $form_enctype)
		{
			$allowed_extensions = $blog_attachment->obtain_blog_attach_extensions();

			if (sizeof($allowed_extensions['_allowed_']))
			{
				$blog_attachment->posting_gen_attachment_entry($attachment_data, $filename_data);

				$panels['attach-panel'] = $user->lang['ADD_ATTACHMENT'];
			}
		}
mEx
phpBB 1.4.4
Сообщения: 197
Стаж: 19 лет 5 месяцев
Благодарил (а): 4 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение mEx »

Рассматриваете эту проблему или нет? На форуме я вас наблюдаю ;)
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Мультизагрузка вложений (Multiple File Upload)

Сообщение Shredder »

Я User Blog'ом не пользуюсь, и на рассмотрение совместимости со всем на свете сейчас времени нет. Тем более, что и этот до сих пор не сделан стабильным.

Вернуться в «Анонсы и поддержка модов для phpBB 3.0.x»