В итоге сделал на основе вот этого мода свою поделку:
Мультизагрузка вложений (Multiple File Upload)
Сделано на html5, а именно используется <input type="file" multiple>. Поэтому работать может не на всех браузерах!
Хотя на них наверняка будет работать как единичная загрузка.
В итоге в диалоге выбора файла можно выбрать сразу несколько файлов, все они будут загружены одновременно. Коммент к файлам будет один и тот же, но после загрузки его можно поменять. На виртуальных хостингах аккуратнее, после загрузки файлы могут обрабатываться и масштабироваться...
Опыта модифицирования у меня не много, если кто-то все красиво оформит буду благодарен .
Мод целиком в одном пакете
https://www.phpbb.com/customise/db/mod/ ... one_click/
или тут:
Простой мульти аплоад для phpbb3 (массовая загрузка файлов)
Итак, изменения:
posting.php
Найти
Код: Выделить всё
$message_parser->parse_attachments('fileupload', $mode, $forum_id, $submit, $preview, $refresh);
тут такой кривой цикл, который преобразует массив файлов в старый вид с 1 фалом.
Код: Выделить всё
// modified by custom mod
$_FILES_NEW = array();
foreach ($_FILES as $form_name => $array1){
foreach($array1 as $key_name => $array2){
foreach($array2 as $number => $array3){
$_FILES_NEW[$form_name."$number"][$key_name] = $_FILES[$form_name][$key_name][$number];
}
}
}
foreach ($_FILES_NEW as $form_name => $value){
$_FILES = array($form_name=>$value);
$message_parser->parse_attachments($form_name, $mode, $forum_id, $submit, $preview, $refresh);
}
найти:
Код: Выделить всё
$this->warn_msg[] = $error_msg;
Код: Выделить всё
$this->warn_msg[] = $_FILES[$form_name]['name'] . ' => ' . $error_msg;
найти:
Код: Выделить всё
$message_parser->parse_attachments('fileupload', $action, 0, $submit, $preview, $refresh, true);
Код: Выделить всё
// modified by custom mod
$_FILES_NEW = array();
foreach ($_FILES as $form_name => $array1){
foreach($array1 as $key_name => $array2){
foreach($array2 as $number => $array3){
$_FILES_NEW[$form_name."$number"][$key_name] = $_FILES[$form_name][$key_name][$number];
}
}
}
foreach ($_FILES_NEW as $form_name => $value){
$_FILES = array($form_name=>$value);
$message_parser->parse_attachments($form_name, $action, 0, $submit, $preview, $refresh, true);
}
найти:
Код: Выделить всё
<input type="file" name="fileupload" id="fileupload" maxlength="{FILESIZE}" value="" class="inputbox autowidth" />
Код: Выделить всё
<input type="file" name="fileupload[]" id="fileupload" maxlength="{FILESIZE}" multiple value="" class="inputbox autowidth" />