Показатель того что я говорю приведу пример: $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 ответов

94 просмотра

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

Сергей-Кореневский Автор вопроса
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

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

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

Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Гляньте, че бывает: Сегодня по одному проекту одной вебстудии делал проект небольшой, на их хостинге. На Modx revo. В определенный момент , работая в админке, вдруг перестал р...
Artem
7
У меня вопрос попроще, почти нубский: нужно заставить сайт эво 1.4.34 перевести с PHP 7.4 на 8.2. Понятное дело, что дополнения обновить-проверить, а с основной системой как ...
Вячеслав Кузьменко
5
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Доброго времени суток. Может кто подскажет, есть ли возможность в evo в одной админке иметь допустим 3 сайта на разных доменах? (domain1.ru, domain2.ru, domain3.ru). Если да, ...
Maxim Belsky
5
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
В clientsettings есть поле client_rates. В поле pagebuilder. Как получить то его?)
Andrey K
8
Яндекс маршрутизатор кто-нибудь использовал с своих проектах, чтоб через него маршруты составить/посчитать? Насколько простой/муторный сервис?
Dreamer_0x01 VeseloV
7
Сделал краткий обзор магазина из статьи и заодно там же записал инструкцию по развёртыванию. https://www.youtube.com/watch?v=8-sE1vNk95Q (чё думаете по звуку? кое-что поменял...
Andrey K
17
Карта сайта