строки пишу примерно, из-за доработок нумерация у меня скорее всего "поехала"
итак файл fileupload.php, допилим функцию function getFormInput()
строка 48
это
$html .= ' name="'.$this->escape($name).'"'.
меняем на это
$html .= ' name="'.$this->escape($name).'[]"'.
Таким образом мы определяем массив (а не одну переменную, как изначально)
в районе строки 58 перед return $html; вставляем
RSFormProAssets::addScript(JHtml::script('com_rsform/jquery.MultiFile.js', false, true, true));
Таким образом подключаем нашу "красоту"
теперь допилим function processBeforeStore($submissionId, &$post, &$files)
ее содержание должно быть таково:
foreach ($files[$this->name] as $file) {
if ($file) {
if (!empty($file['name']) && $file['error'] == 0) {
$prefixProperty = $this->getProperty('PREFIX', '');
$destination = $this->getProperty('DESTINATION', '');
// Prefix
$prefix = uniqid(''). '-';
if (strlen(trim($prefixProperty)) > 0) {
$prefix = RSFormProHelper::isCode($prefixProperty);
}
// Path
$realpath = realpath($destination . DIRECTORY_SEPARATOR);
if (substr($realpath, -1)!= DIRECTORY_SEPARATOR) {
$realpath .= DIRECTORY_SEPARATOR;
}
// Filename
$fi = $realpath . $prefix . $file['name'];
if (JFile::upload($file['tmp_name'], $fi, false, (bool) RSFormProHelper::getConfig('allow_unsafe'))){
// Tut kod zapisi v BD. Originalniy kod tut ne rabotaet
}
}
}
}
Про запись в БД: изначально компонент может грузить только один файл, и в БД он пишется вот так:
---
SubmissionValueId | FormId | SubmissionId | FieldName | FieldValue
уникальный номер записи | ID формы | ID заполнения | имя поля | значение поля (вот тут будет имя файла)
---
но у нас теперь не имя файла, а целый массив из имен. Хотите, пишите туда массив (сериализовать не забудьте). Хотите, пишите сюда некий ID, а сами файлы в отдельную таблицу, и группа файлов от туда будет цепляться по этому некому ID. В любом случае далее необходимо уже переписывать код вывода результатов