Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 2050 Просмотров
*

Alexandr-lum

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Добрый день всем) надеюсь сможете подсказать или направить на путь истенный)

Проблема заключается в Field subform, а точнее обработки subform в стороннем компоненте.
Суть заключается в чем. Написал компонент который использует Field subform.
Сам компонент, это своего рода конструктор страниц. Компонент работает отлично, с его написанием проблем не составило, но наш сайт использует сторонний компонет для переводов на другие языки ( Falang ) данный компонент умеет работать практически с любыми полями за исключением ( subform ), я добавил в цикл формы falang ещё одно условие ( else if (strtolower($field->Type) == 'subform') ) и скрипт кнопок ( copy и delete ) для копирования уже существующего массива который собирается в моем компоненте. В обработке самого поля, я подключил класс ( Form ) и путь к существующему XML формы своего компонета, загрузил форму

$xml = JFactory::getXML($xmlfile,true);
$subform_lum->load($xml,true);

отрисовал форму на странице
$media_field = $subform_lum->renderField($field->Name);

все, форма полностью работоспособна и работает subform. Проблема заключается в том что не могу найти обработчик который собирает массив subform переводит его в json строку. Но не могу найти скрипт который отвечает за сбор массива после нажатия на кнопку СОХРОНИТЬ или СОХРОНИТЬ И ЗАКРЫТЬ.

Могу конечно написать свой скрипт который будет собирать структуру, но учитывая то что я писал конструктор и не известно какая вложенность будет изначально, то универсальный скрипт будет очень большой, да и не хочется писать новый велосипед, когда и так уже все написано.

В документации написано что аорму обрабатывает контроллер, но в данном случае переписывать контроллер компонента который может обновить и перезатереть все что я делал, это не вариант, прогонять через свой контроллер и модель, тоже не вариант, так как другие сотрудники тоже могут использовать subform и тогда прийдется разширять скрипт чтоб работал с другими компонентами.

Может кто то сталкивался или  знает как сформировать структуру json subform стандартными методами.
Буду рад любой подсказке.
 





 
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: Subform в стороннем компоненте
« Ответ #1 : 18.02.2019, 22:38:44 »
Ничего не понял насчет "может обновить и перезатереть", что где, если ваш компонент. Многобукв, суть теряется. Отвечу на это -
Цитировать
Может кто то сталкивался или  знает как сформировать структуру json subform стандартными методами.
Subform запись и чтение
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Re: Subform в стороннем компоненте
« Ответ #2 : 19.02.2019, 09:16:34 »
Может кто то сталкивался или  знает как сформировать структуру json subform стандартными методами.
Используйте плагин типа Content и в нем обработчик:
Код
public function onContentBeforeSave($context, $row, $isNew)
Справка:
https://docs.joomla.org/Plugin/Events/Content#onContentBeforeSave
проверкой содержимого переменной $context отследите сохранение именно вашей формы, далее прочитаете из JRequest (или app input) переданные значения вашей subform, сформируете жсон строку через json_encode и впишете в какое-то из полей $row. После чего все это запишется в БД.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться