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

98 просмотров

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

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

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

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

Доброго вечера. Поскажите, как изменить код number_fomat, что цена была без копеек. <?php if(!empty($value)) { $parts = explode('.',$value); echo number_format ($part...
Katerina Beliayeva
12
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
слушайте, на многих старых сайта на 1.4 вижу этот алерт конкретно - смущает что ругается на index.php и manager/index.php Сайты друг с другом никак не связаны хостингами и об...
Jacov Borisov
5
core\config\database\connections\default.php На всякий случай проверь всё же файл <?php return [ 'driver' => env('DB_TYPE', 'mysql'), //$database_type 'host' => env('D...
Andrey K
2
добрый день. Подскажите, есть сайт на 1.4.7 и я хочу обновиться, особо ничего не меняя. мне выбирать версию 1.4.35 или третью ветку? и можно ли обновлять "как есть", или нужно...
Digital Cat
12
А это вообще исполнимо - посчитать прям всех-всех? Я же так понимаю, всегда найдется кто-то, кто не определился, не посчитался или еще как-нибудь испортит картинку
Julia Cherri
7
#оффтоп А кто-то уже видел, что там ребята из roistat настраивают на сайте? Очень хотят в админку "настроить аналитику бесплатно"
Julia Cherri
6
мои еще в начале пути, похоже. А куда уходят, если могут?
Julia Cherri
6
Как думаете, такою юмор на сайте лишним будет?
М
2
без автосабмита все равно должен?
Николай Архипов
2
Карта сайта