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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

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

Сообщение владимир1983 »

Из инструкции. Надо исправить.
Открыть: styles/subsilver2/template/posting_buttons.html

найти

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

		function add_more_upload()
		{
			var id = document.getElementById('proxid').value;
Заменить на

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

		function add_more_upload()
		{
			<!-- IF FORMS_LIMIT and not U_MCP and not U_ACP -->
				var node_list = document.getElementsByTagName('input');
				var forms = [];

				for (var i = 0; i < node_list.length; i++)
				{
					var node = node_list[i];

					if (node.getAttribute('type') == 'file')
					{
						forms.push(node);
					}
				}

				if (forms.length >= {FORMS_LIMIT})
				{
					alert('{LA_FORMS_LIMIT}');
					return false;
				}
			<!-- ENDIF -->

			var id = document.getElementById('proxid').value;
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

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

Сообщение Pazh »

владимир1983 в аддоне так и написано, или ты про исходный мод?
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

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

Сообщение владимир1983 »

Pazh
В исходном нету к стилю

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

function add_more_upload()
		{
			var id = document.getElementById('proxid').value;
Ты про что?
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

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

Сообщение Shredder »

Pazh писал(а):Аддон совместим с Update attachment
В в чём была несовместимость? У меня нормально без дополнительных правок работало. Новый выложенный тобой не проверял, речь про старый код.

Добавлено спустя 2 часа 4 секунды:
- sizeof($attachment_data) будет вызывать ошибки с отрицательными значениями, когда это число больше предыдущей сравниваемой части.

Добавлено спустя 1 час 25 минут:

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

$multiple_upload_limit = (int)(($config['multiple_upload_limit'] == 0) ? $config['max_attachments'] : min($config['max_attachments'], $config['multiple_upload_limit'])) - sizeof($attachment_data);
А в целом это выражение будет давать баг, когда Максимум вложений в одном сообщении больше Максимального числа форм загрузки. Например, Максимум вложений в одном сообщении - 30, Максимальное число форм загрузки - 20, получаем: $multiple_upload_limit = min($config['max_attachments'], $config['multiple_upload_limit']) - sizeof($attachment_data) = min(30, 20) - 21 = -1. Т.е. до лимита вложений в одном сообщении нам ещё 9 штук, а форма загрузки уже одна...

Я сейчас работаю над устранением этих багов, и там ещё учёт северного max_file_uploads хочу добавить. Потом пошлю на валидацию или сюда выложу сначала для тестирования.
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

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

Сообщение Pazh »

Shredder писал(а):В в чём была несовместимость?
кнопка "Добавить файл" активна при достижении максимального числа вложений и соответственно остается возможность получить сообщение о достижении максимума. Я оставляю поле ввода файла и коммента, но убираю кнопку Добавить
Shredder писал(а):А в целом это выражение будет давать баг
нужно заменить в файле posting.php

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

$multiple_upload_limit = (int)(($config['multiple_upload_limit'] == 0) ? $config['max_attachments'] : min($config['max_attachments'], $config['multiple_upload_limit'])) - sizeof($attachment_data);
на

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

$multiple_upload_limit = (int)(($config['multiple_upload_limit'] == 0) ? $config['max_attachments'] : min($config['max_attachments']- sizeof($attachment_data), $config['multiple_upload_limit']));
и в файле includes/ucp/ucp_pm_compose.php

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

$multiple_upload_limit = (int)(($config['multiple_upload_limit'] == 0) ? $config['max_attachments_pm'] : min($config['max_attachments_pm'], $config['multiple_upload_limit'])) - sizeof($attachment_data);
на

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

$multiple_upload_limit = (int)(($config['multiple_upload_limit'] == 0) ? $config['max_attachments_pm'] : min($config['max_attachments_pm']- sizeof($attachment_data), $config['multiple_upload_limit']));
Аддон перевыложил
Помощь в ЛС/email только за WM или ЮMoney
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

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

Сообщение Shredder »

Итак, мой собственный результат шестичасовых тестов на разных системах:
add-on_multiple_upload_forms_limit.zip
multiple_file_upload_1_0_2.zip
+ добавлена поддержка max_file_uploads, чтобы не было вот такого.

Насчёт этого я ничего не менял, т.к. мод не имеет отношения к багам phpBB. Когда там исправят, подгоню при надобности и его. С Update Attachments тоже ничего не проверял, т.к. всё время ушло на основной мод. Пусть аддон для совместимости будет в твоём - кому надо, тот скачает.
Тесты и замечания приветствуются.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Shredder 27.10.2012 6:44, всего редактировалось 2 раза.
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

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

Сообщение владимир1983 »

Shredder, по сравнению с Мультизагрузка вложений (Multiple File Upload) сильно код поменял?
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

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

Сообщение Shredder »

владимир1983
Да. Собраны все исправления и добавлена поддержка max_file_uploads. Всё это ещё нужно было совместить между собой, чтобы вместе нормально работало. Выглядеть будет примерно так: если у пользователя есть возможность загрузить сразу несколько вложений, он сможет открыть точно соответствующее им число форм с учётом всех настроек админки, а также уже имеющихся вложений в сообщении и max_file_uploads. Если возможным для загрузки остался только один файл или достигнут полный лимит, т.е. 0, то будет показываться стандартная форма загрузки phpBB, словно мода и нет.

Проверка на модеров и админов также вынесена в php, как и в оригинальном phpBB. Это избавляет от необходимости городить огород в шаблонах и даёт более правильный результат.

Добавлено спустя 6 минут 18 секунд:
Shredder писал(а):Мод с включённым аддоном
Аддон находится в папке contrib.

Добавлено спустя 30 минут 6 секунд:
Shredder писал(а):max_file_uploads
Мой инсталлятор сразу устанавливает эту вещь в качестве максимального числа форм загрузки. Если она отсутствует (например, на версиях php ниже 5.2.12), то ставится 0. В дальнейшем, если из админки попытаться превысить это (ненулевое) значение, выдаётся предупреждение о невозможности данного действия.

Хотел ещё о игнорировании настроек модерами и админами в описании к опции написать, но не стал - слишком длинное тогда выйдет. Или всё же стоит?
Jons
phpBB 2.0.4
Сообщения: 418
Стаж: 18 лет
Благодарил (а): 65 раз
Поблагодарили: 2 раза

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

Сообщение Jons »

Я не совсем понял, ставить это, а потом это, - или достаточно только последнего?

А то написано тут
Вложение add-on_multiple_upload_forms_limit.zip больше недоступно
и тут же само сложение
add-on_multiple_upload_forms_limit.zip
Аддон отдельно
(150.87 КБ) Скачиваний: 4
одно протеворечит другому, я лично не понял
Аватара пользователя
Vlad Nesterov
phpBB 1.2.1
Сообщения: 24
Стаж: 13 лет 7 месяцев
Благодарил (а): 8 раз
Поблагодарили: 1 раз

Комменарий к файлу (Обязательное для заполнения поле)

Сообщение Vlad Nesterov »

Здравствуйте уважаемые Гуру.
У меня установлен мод Мультизагрузка вложений (Multiple File Upload)
Помогите пожалуйста разобраться как мне сделать чтобы поле "Комментарий к файлу" было обязательно для заполнения в случае когда добавляется вложение в сообщение?
HTML более менее понимаю, с php плохо.
Уже три дня мучаю гугл. Всю голову уже сломал :( .
Аватара пользователя
Vlad Nesterov
phpBB 1.2.1
Сообщения: 24
Стаж: 13 лет 7 месяцев
Благодарил (а): 8 раз
Поблагодарили: 1 раз

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

Сообщение Vlad Nesterov »

Здравствуйте, возможно ли прикрутить к этому моду функцию которая автоматически создавало бы превьюшку загружаемого изображения перед загрузкой файлов на сервер?
Пытался разобраться вот с этим http://true-coder.ru/javascript/chitaem ... cript.html
ДЕМО
Но знаний не хватает.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Комменарий к файлу (Обязательное для заполнения поле)

Сообщение rxu »

Vlad Nesterov
Вопрос лучше было бы задать в теме мода, там есть шанс, что автор поможет.
Изображение
Аватара пользователя
Vlad Nesterov
phpBB 1.2.1
Сообщения: 24
Стаж: 13 лет 7 месяцев
Благодарил (а): 8 раз
Поблагодарили: 1 раз

Re: Комменарий к файлу (Обязательное для заполнения поле)

Сообщение Vlad Nesterov »

rxu здравствуйте.
Помогите с реализацией требуемого для не модернизированного кода phpBB.
Как сделать поле добавления комментария к файлу обязательным?
Я пробовал некоторые варианты, но у меня не получается сделать проверку выбран ли файл для загрузки или не выбран.
У меня получается что в любом случае, даже когда файл не выбран требуется заполнить поле "Комментарий к файлу", или же сообщение не отправляется.
Аватара пользователя
Vlad Nesterov
phpBB 1.2.1
Сообщения: 24
Стаж: 13 лет 7 месяцев
Благодарил (а): 8 раз
Поблагодарили: 1 раз

Re: Комменарий к файлу (Обязательное для заполнения поле)

Сообщение Vlad Nesterov »

Гуру загляните пожалуйста)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Комменарий к файлу (Обязательное для заполнения поле)

Сообщение rxu »

Vlad Nesterov
Примерно так:

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

OPEN
includes/message_parser.php

FIND
// Reindex Array

BEFORE, ADD
$num_attachments--;

FIND
foreach ($error as $error_msg)

BEFORE, ADD
if ($num_attachments && !empty($actual_comment_list) && array_search('', $actual_comment_list) !== false)
{
	$error[] = $user->lang('COMMENT_FIELDS_REQUIRED');
}

OPEN
language/ru/posting.php

FIND
'CLOSE_TAGS'				=> 'Закрыть тэги',

AFTER, ADD
'COMMENT_FIELDS_REQUIRED'				=> 'Комментарии к вложениям обязательны для заполнения',
Изображение

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