Дмитрий
$form->loadFile( 'roomfields' ); parent::preprocessForm( $form, $data, $group );
переделал у себя, у меня было в одном месте, которое у меня было
Дмитрий
в других у меня вообще xml динамиески присылается
Дмитрий
Дмитрий
я написал showon на уровне xml
Дмитрий
и там вот есть в методе контроллера при save они почему -то получают getForm, но без загрузки туда значений
Дмитрий
отчитал, но не уловил зачем вырубать
Дмитрий
там нет причин отключать загрузку данных
Дмитрий
даже что там валиция вызывается
Igor
и там вот есть в методе контроллера при save они почему -то получают getForm, но без загрузки туда значений
потому что они там не нужны, они позже идут. При save сначала идет форма, потом validate
Дмитрий
но при валидации они не мешают
Igor
но при валидации они не мешают
Мешают. Ибо тогда при пустом default попадет. Тобишь bind подразумевает установку все данных в значение. А validate только правильных.
Igor
Тогда у тебя стандартная логика это кажется странным, но как только ты работаешь с поведен аля поставить null или исключить данные при условиях это начинает мешает.
Igor
Это еще не все приколы =) data в getForm может быть object array Registry bool и null
Дмитрий
Igor
да, там надо преобрзование делать жесткое
Ну если array и object то понятно почему так. ибо Post или Session это array а с базы object то все остальные лезут хз почему
Igor
В общем getForm крайне опасная тема и там рельно разве что атрибуты полям ставить.
Дмитрий
В общем getForm крайне опасная тема и там рельно разве что атрибуты полям ставить.
ну в прицнипе да, переставил у себя порядки и переместил в методы добавку полей
Дмитрий
но мне это не совсем нравися так, по идее getForm и должна отрабатывать, а не разносить сборку в разные
Дмитрий
это усложняет
Дмитрий
делать на уровне плагинов преобразование нормально
Дмитрий
а вот докидку полей в разных местах разбросанное
Дмитрий
это неверно
Дмитрий
просто из здравого смысла
Дмитрий
Примерно так: if (!is_array($results[0])) { $isSafe = InputFilter::isSafeFile($results); } else { $isSafe = true; foreach ($results as $result) { $isSafe &= InputFilter::isSafeFile($result); } }
https://www.php.net/manual/ru/reserved.variables.files.php в комментариях указано, что если массив идет, то там формат другой, когда файл один
Дмитрий
там сначала преобразование надо написать, а потом только запускать подобный цикл
Igor
но мне это не совсем нравися так, по идее getForm и должна отрабатывать, а не разносить сборку в разные
Но getFrom ты можешь и не использовать. К примеру у тебя может несколько форм и юзать ты будешь Loadform
Igor
несколько раз.
Igor
Просто пример одна форма на один язык
Igor
Кстати в swJprojects тоже не правильно сделанно, но т.к в итоге мультиязычность во 2 версии будет архитектурно под другому то править нет смысла.
Denis
там сначала преобразование надо написать, а потом только запускать подобный цикл
Я только что проверил в J!4.0 - там всё нормально, input->files->get возвращает массив файлов (т.е. в более удобном виде, чем оно хранится в $_FILES). В J!3.x должно быть то же самое, т.к. серьезных изменений в методах Files::get и InputFilter::isSafeFile нет (там только добавление \ перед именами глобальных функций и замена self на static при вызове статических методов).
Дмитрий
J4 я не смотрел
Дмитрий
Я на днях это писал и у нас был массив
Дмитрий
у них есть два фильтра файла
Дмитрий
я вызываел именно $this->input->files->get()
Дмитрий
он видимо старый
Дмитрий
их вот этот уже
Дмитрий
там декодировка, перегон в верный
Дмитрий
может у них в контроллере тогда неверный присваивается инпут или как-то не тот класс забирается
Дмитрий
странно корчое все, надо еще раз посмотреть
Дмитрий
но он падал и это факт
Дмитрий
открыл щас сорцы все, да, там есть все
Дмитрий
но оно падало =))))
Дмитрий
ты прав
Дмитрий
у них декодировка есть, но они не смотрят что файл может быть массив или один
Дмитрий
я просто сорцы только щас открыл, передо мной сам факт был что падает, я думал что они не учли что формат массива и файла разный
Denis
я вызываел именно $this->input->files->get()
Я проверял тот, который JFactory::getApplication()->input->files->get
Дмитрий
он в контролеры добавляется вроде тот же
Дмитрий
щас
Дмитрий
сек
Дмитрий
смотрю
Denis
Проверил в тройке - результат такой же
Дмитрий
Проверил в тройке - результат такой же
вы в запрос клаедете какой FormData
Дмитрий
покажите
Дмитрий
ладно, я запуститб не могу быстро щас, потом тогда
Дмитрий
щас мне не до этого
Дмитрий
простоу нас было как
Denis
Я для проверки просто вручную в форму добавил <input type="file" name="upload[]"><input type="file" name="upload[]"> и в контроллере var_dump($input->files->get('upload'));die();
Дмитрий
files[] имя и там несколько файлов было
Дмитрий
и были нотисы от фильтра
Дмитрий
что он не видит «name»
Дмитрий
а в $_FILES все было нормально
Denis
Даже с error_reporting(-1) никаких сообщений в 3.9.25
Дмитрий
Дмитрий
вы только щас начали писать
Дмитрий
раньше просто не появлялись =)
Vladimir
files[] имя и там несколько файлов было
наглядный пример когда отсутствие xdebug приводит к неверным выводам
Дмитрий
я не буду спорить
Vladimir
ну трассировка показывает наглядно куда уходит исполнение и что происходит не так. прям по шагам
Denis
здесь нет генерации
Я давно на форуме (Physicist), а тут только неделю (присоединился после видео Жени). Но я не большой поклонник портянок неструктурированного текста (=многопользовательских чатов), поэтому вряд ли буду тут часто в дискуссиях участвовать.
Дмитрий
не люблю форумы