Показатель того что я говорю приведу пример: $new_field = JFormHelper::loadFieldType($type); $new_field->setup(

simplexml_load_string('<field/>'),JDate::now());

Чтобы создать объкт поля с датой, Вам надо XML прописывать непосредсвенно в объект SimpleXML а его вставлять в метод SETUP
Сам же XML нужно создавать полностью как указано в доках для поля <field type='calendar' name='' forma='' >
т.е. если Вы атрибут для поля не укажите в XML то будет ошибка, даже если Вам это поле потом переопределять придётся.
Это декларативный подход или это как то еще называется?

20 ответов

41 просмотр

И в чем проблема то?

Сергей-Кореневский Автор вопроса
Vadim Kunitsyn
И в чем проблема то?

Да в том что постоянно нужно какие то коды копировать. Там нельзя написать $field = new FormField; $field->type = 'calendar'; Тут автоподстановка кода происходит, типизация, IDE подсказывает какие поля для заполнения данными нужно использовать. На дворе 2024 год, а мы всё еще вставляем код через TXT с парсингом.

Это чтобы сделать своё поле? А почему просто не собрать его через SimpleXMLElement‎

Сергей-Кореневский Автор вопроса
Dmitry Rekun
Это чтобы сделать своё поле? А почему просто не с...

Ну Вы либо его прописываете в XML файле, либо в коде нужно писать такую дичь. По Вашему собирая его в SimpleXMLElement это объектный подход?

Сергей Кореневский
Да в том что постоянно нужно какие то коды копиров...

Когда находишься вне контекста - вообще не понятно о чём речь (((

Сергей-Кореневский Автор вопроса
Sergey Tolkachyov
Когда находишься вне контекста - вообще не понятно...

Условно Вы создаете плагин поля. чтобы вывести особое поле, для него создаёте папку FIELDS в папке поля плагина. Т.е. Ваш плагин поля выводит поле не те что есть в списке Joomla а какое то новое: например табличку. Вы в папке fields создаете файл поля для таблички и в нем создёте класс наследуемый от FieldForm. У этого класса есть метод getInput(); который возвращает рендер поля так вот этот рендер вызывается 2 раза при открытии страницы. https://github.com/joomla/joomla-cms/pull/37472 Там в ядре надо исправить $fields = FieldsHelper::getFields($context, $item, $displayType); на $fields = $item->jcfields; и будет вызываться 1 раз. Т.е. рендер вызывается при вызове FieldsHelper::getFields($context, $item, $displayType); А этот метод вызывается 2 раза.

Сергей Кореневский
Условно Вы создаете плагин поля. чтобы вывести ос...

Полагаю двойной вызов там не просто так был сделан. И да на Joomla 5 это не пойдет. Да и новый триггер я не уверен что нужен ибо есть поддержка layouts

Сергей-Кореневский Автор вопроса
Igor Berdichevskiy
Полагаю двойной вызов там не просто так был сделан...

Тригеры нужны для того чтобы получить вызов когда произойдут все вызовы тригеров для статьи. т.е. у статьи вызываются тригеры для каждого поля в отдельности. А я добавил тригер который будет вызыватся после всех тригеров . Изза того что тригеры полей могут вызыватся в любом порядке , нужен результирующий вызов, в который будут отправлены все поля массивом. Например подсчитать итоговую сумму.

Сергей Кореневский
Тригеры нужны для того чтобы получить вызов когда ...

Один плагин поля не должен иметь возможность менять данные другого поля. Это не правильно по ряду причин. Чтоьы менять все поля есть контентый и системные плагины. Котлеты отдельно мухи отдельно. И да не стоит пихать добалвение триггера и фикс в один PR.

Сергей-Кореневский Автор вопроса
Igor Berdichevskiy
Один плагин поля не должен иметь возможность менят...

Пихать не стоит, согласен. я тогда был зелёным когда создавал этот PR.

Сергей Кореневский
Пихать не стоит, согласен. я тогда был зелёным ког...

Отмени PR создавй новый. Я свой первый раз 5 переделылвал.

Сергей-Кореневский Автор вопроса
Igor Berdichevskiy
Отмени PR создавй новый. Я свой первый раз 5 перед...

Почему отменять? разве удалить тригера будет не достаточно?

Сергей Кореневский
Почему отменять? разве удалить тригера будет не до...

Хз. Иногда лучше начать с начала. И еще. We need to create this plugin in the /plugins/fields/newmyfield folder with the class inherited from Ни кто ради теста создавать плагин не будет. Лучше приложить тестовый плагин.

Сергей Кореневский
Почему отменять? разве удалить тригера будет не до...

Вот тут тоже не понятно. Насколько я помню (полями очень давно не пользуюсь ибо это блаж) то value - это рендер значние а rawvalue исхожное, зачем контент не понятно.

Сергей-Кореневский Автор вопроса
Igor Berdichevskiy
Вот тут тоже не понятно. Насколько я помню (полями...

Content это рендер, а поле value это глупое название. из этого названия не понятно что в этом поле. Точнее понятно но оно не является тем чем называется

Сергей-Кореневский Автор вопроса
Igor Berdichevskiy
Хз. Иногда лучше начать с начала. И еще. We need...

ну там не надо ради теста создавать новый плагин, просто и существующий из стандартных можно добавить изменения для теста спасибо за замечания исправлю

Сергей Кореневский
ну там не надо ради теста создавать новый плагин, ...

Прочитай как тестируются патчи. Это делаеться в админке нажатием кнопки. Лезть в файлы тоже не будут. Потом еще забудешь.

Sergey Tolkachyov
А кстати, где почитать?

https://docs.joomla.org/Testing_Joomla!_patches

Похожие вопросы

Обсуждают сегодня

Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
Здравия всем, подскажите , пожалуйста, кто-нибудь сталкивался с тем , что условно на 20 категориях фильтры eFliter-a отображаются нормально , а на 21 не отображаются? катег...
Karas Mikhail
1
Всем привет, если выскакивает ошибка при попытке зайти в админку, что это может быть? Как исправить? Перенос сайта на новый хостинг. Версия php 7.4.33 -> 7.4.5 Версия evo 1....
Михаил
16
Господа, а чем сейчас модно тестировать вообще и на битые кластеры в частности HDD и SDD? 🤔 А то я совсем от поезда отстал, последний раз озадачивался этим вопросом лет 10 наз...
Вячеслав Кузьменко
14
Добрый вечер. 👈 нужен Ваш совет) при внесении изменений любых в Evolution в админ панели, при нажатии на кнопку сохранить, происходит это. Причём перезагрузка сервера не помог...
Faкyk
4
Привет, а не сталкивался ли кто с тем, что поиск по тв-шкам с помощью SiteContent и tvFiler просто ужасающе тормозит. Например при 5-7 значениях тв в поиске и 150тыс ресурсах ...
Oleg Nosov
5
Добрый день, подскажите можно ли в clientsetting добавить загрузку фотогалереи, если да то чем лучше это сделать, вроде пока иду в сторону multiTV но там приходиться по одной ...
Александр Добриков
2
<!DOCTYPE html> <html lang="ru"> {{HEAD <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-JK1W7N8XDG"></script> <script> win...
Ольга Мартьянова
2
Карта сайта