Дмитрий
Там метод save
Дмитрий
Его и переопредели
Vitaly
В контролере
Так я так и сделал. И в нем приведенный выше код, а дальше parent::save. Но оно не работает.
Дмитрий
Потому что так не работает
Дмитрий
Vitaly
$key
Vitaly
В общем в контроллере переопределен save, в нем этот код, а дальше вызов родительского save. Ну а как еще тут сделать?
Vitaly
Но вот почему не изменяется post я не понимаю
Дмитрий
Я не помню если честно, надо поглядеть, могу попозже посмотреть
Дмитрий
Посмотреть
Дмитрий
GetArray у инпута
Vitaly
public function save($key = null, $urlVar = null)
{
$data = $this->input->post->get('jform', array(), 'array');
$data['blabla'] = 0;
$this->input->post->set('jform', $data);
parent::save($key, $urlVar)
Vitaly
GetArray у инпута
Оно и так и так работает. В целом-то данные формы загружаются нормально в $data.
Дмитрий
Vitaly
@Septdir, не знаешь в чем тут соль?
Дмитрий
Там валидация берет xml и от неё вадидирцет
Дмитрий
Лишние выкидываемся может
Дмитрий
Надо посмотреть на код
Дмитрий
Я просто переопределяю весь save
Дмитрий
Или в table классах делаю такое
Дмитрий
Дмитрий
Он берет xml и по нему приходит
Дмитрий
Не исключено что лишние просто выкидывает
Vitaly
У меня не новая переменная, а та, которая приходит из формы. Просто значение меняю, условно с 0 на 1
Дмитрий
Дмитрий
Если тебе прям сейчас нужен ответ
Дмитрий
Там validateData идёт в сохранение в базу
Vitaly
Да, вижу. Но я пробовал просто подменить значение в валидной переменной. Ладно. Придется идти другим, велосипедным путем😊
Vladimir
Vladimir
там не все так просто
Vladimir
решение подсказал @Septdir
Vladimir
и я его воткнул в радикал
Igor
Vladimir
мне там параметры плагина надо обновлять
Vitaly
Т.е просто вот так просто не подменить?
Igor
Igor
Параметры дело отдельное.
Vladimir
Vladimir
Vitaly
Да, это другое. Это параметры XML, а тут значение засабмиченной формы.
Igor
content и каноничные компопоненты можно так.
https://github.com/joomla/joomla-cms/blob/staging/libraries/src/MVC/Controller/FormController.php#L707
Igor
Если меняешь что-то в своем компоненте к контролере то можно так.
https://github.com/SeptdirWorkshop/SWJProjects/blob/master/com_swjprojects/admin/controllers/version.php#L127
Igor
Подменять post импут не факт что выйдет, ибо как-бы и не должно получиться.
Igor
В общем все зависит от контекста, где ты это делаешь и что хочешь получить в замен
Igor
еще возможно лучше подойдет модель.
Ну или вовсе переписать save
Igor
Модель или контролер оперделяются легко.
Если у тебя надо поменять входишь post то контролер, если же это впринципе смена формата данных для сохранеия, то модель.
Igor
Так что стоит учитывать, что перед тем как котролер передаст данные в метод save модели, они их обратает методом validation, который в свою очередь отрежет те данные которые не соотвествуют form.xml
Igor
@wedalru Вот как-то так.
Vitaly
Vitaly
Да
Igor
Да
А фильтрация у поля какая?
Igor
И вообще контекст нужен.
Vitaly
Raw
mmth
Вот я прямо так и делал. Не работает, увы.
а вот это не оно
// Send an object which can be modified through the plugin event
$objData = (object) $data;
$app->triggerEvent(
'onContentNormaliseRequestData',
array($this->option . '.' . $this->context, $objData, $form)
);
$data = (array) $objData;
Igor
Vitaly
Ладно. Попробую сделать иначе, хоть и не так красиво. Хотелось в 2 строчки просто😊
Vitaly
Спасибо, ребят 🙏
mmth
Онон но это для плагина.
ну а в чем проблема, если полностью функцию скопировать и с data сделать всё что надо, не передавая обратно в конце parent::save($key, $urlVar)
Igor
Ну и опять таки form.xml
Vitaly
Vitaly
Vitaly
Vitaly
Vitaly
Dmitry
Vitaly
Dmitry
Игорь выше писал этот способ
Vitaly
Но у Игоря в примере выше, ага
Vitaly
Работало
Dmitry
Так у тебя наверное дальше режет
Dmitry
Отладку включи ))