[Решено] Как переопределить article.xml?

  • 11 Ответов
  • 6949 Просмотров

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

Доброго дня! Joomla 3.1.1

Необходимо переопределить файл
administrator/components/com_content/models/forms/article.xml

кто знает в шаблоне это можно сделать ?
я уже попробовал пару вариантов но они не работают...

/administrator/template/YOUR_ADMIN_TEMPLATE_NAME/html/com_users/models/article.xml
/administrator/template/YOUR_ADMIN_TEMPLATE_NAME/html/com_users/models/forms/article.xml
/administrator/templates/YOUR_ADMIN_TEMPLATE_NAME/html/com_content/article/article.xml
/administrator/templates/YOUR_ADMIN_TEMPLATE_NAME/html/com_content/article/forms/article.xml

еще пробовал такой вариант в шаблоне
$this->form->reset( true );
$this->form->loadFile( dirname(__FILE__).DS."article.xml");

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

Заранее СПАСИБО. Всем кто напишет.
« Последнее редактирование: 12.07.2013, 12:01:51 от b2z »
Копать отсюда и до обеда

*

NightGuard

  • *******
  • 3025
  • [+]378 / [-]7
  • вжжж-вжжж
Re: Как переопределить article.xml?
« Ответ #1 : 28.06.2013, 21:35:19 »
В Google - Joomla 2.5 альтернативный макет
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма

skype: nightguardsrussia - только по рабочим вопросам, любые консультации - платные!


Re: Как переопределить article.xml?
« Ответ #3 : 28.06.2013, 21:56:30 »
В Google - Joomla 2.5 альтернативный макет

Если вы такое заметили в поиске, незатруднит поделится ссылкой ?
Копать отсюда и до обеда

Re: Как переопределить article.xml?
« Ответ #4 : 28.06.2013, 21:58:04 »
Плагин на событие onContentPrepareForm

Можно попробывать спасибо.

Вот я еще вариант переопределений нашел
http://community.joomla.org/blogs/community/521-did-you-know-overrides-are-not-just-for-html.html
http://docs.joomla.org/Adding_custom_fields_to_the_article_component#onContentPrepareForm
может кому пригодится
« Последнее редактирование: 01.07.2013, 18:43:56 от DarkMaster13 »
Копать отсюда и до обеда

*

Arkadiy

  • *****
  • 5342
  • [+]440 / [-]0
  • Крепитесь, други.
Re: Как переопределить article.xml?
« Ответ #5 : 28.06.2013, 22:04:40 »
А зачем вам форму переопределять?

Re: Как переопределить article.xml?
« Ответ #6 : 28.06.2013, 22:10:14 »
А зачем вам форму переопределять?

Добавляю n-е количество полей к форме редактирования в админке.
При этом файлы самой Joomla редактировать нельзя.
Такие условия у задачи.
Изменения должны быть легко отменены самим пользователем, путем отключения шаблона/плагина

Да забыл самое главное
Если поля не указаны в article.xml они не хотят сохранятся в БД.
т.е. если я просто добавлю поля в шаблоне
administrator/templates/YOUR_ADMIN_TEMPLATE_NAME/html/com_content/article/edit.php
то они не сохраняются в БД. (поля я добавляю как jform[DB_FIELD_NAME])
« Последнее редактирование: 09.07.2013, 00:45:11 от DarkMaster13 »
Копать отсюда и до обеда

*

smart

  • *******
  • 6843
  • [+]1311 / [-]14
  • снова дома...
Re: Как переопределить article.xml?
« Ответ #7 : 02.07.2013, 06:35:19 »
еще пробовал такой вариант в шаблоне
$this->form->reset( true );
$this->form->loadFile( dirname(__FILE__).DS."article.xml");

тогда форма с модифицированными полями загружается, но значения не сохраняются в базе.
Правильное направление, только надо это делать в плагине на событии onContentPrepareForm, а данные укладывать или в отдельную таблицу на событии onContentAfterSave, а для редактирования - вытаскивать их на событии onContentPrepareData.

С другой стороны, учитывая тот факт, что в 3.0 в наследниках JTable поля явно перечислять не нужно, то если добавить поле в таблицу jos_content, то это поле будет без проблем сохраняться штатными средствами. Так что по идее достаточно добавление нужных полей в БД и небольшой плагин с событием onContentPrepareForm который подгрузит доп. форму. В принципе добавление полей в таблицу #__content можно добавить прямо в установочный скрипт для плагина - установили - поля появились, удалили плагин - убрали поля.

Единственное ограничение - поля динамически в форму можно добавить только в административной панели - на сайте поля не в цикле выводятся, а по-штучно и там без переопределения макета никак. Да, для того, чтобы в админке поля сразу появились, когда в своей форме объявляете поля, укажите у них fieldset именем уже существующего из article.xml, например "attribs". Тогда ваши поля сразу появятся на соотв. вкладке.

*

Arkadiy

  • *****
  • 5342
  • [+]440 / [-]0
  • Крепитесь, други.
Re: Как переопределить article.xml?
« Ответ #8 : 03.07.2013, 13:06:49 »
Или можно воспользоваться моим MiniCCK, там все уже работает. Правда с хаком ядра.

Re: Как переопределить article.xml?
« Ответ #9 : 11.07.2013, 16:24:26 »
Спасибо smart, совет с fieldset очень помог, так как форма для статьи генерируется не полностью автоматически.
Копать отсюда и до обеда

Re: Как переопределить article.xml?
« Ответ #10 : 11.07.2013, 16:25:08 »
Или можно воспользоваться моим MiniCCK, там все уже работает. Правда с хаком ядра.
Спасибо, но хак ядра не допустим по условию Т.З.
Поэтому и возникла проблема.

Добавлю файл.
Предупреждаю это просто рабочий пример. Не претендует на универсальность.
Поставляется "как есть" :)
« Последнее редактирование: 11.07.2013, 16:32:35 от DarkMaster13 »
Копать отсюда и до обеда

*

smart

  • *******
  • 6843
  • [+]1311 / [-]14
  • снова дома...
Re: Как переопределить article.xml?
« Ответ #11 : 11.07.2013, 16:43:05 »
Спасибо smart, совет с fieldset очень помог, так как форма для статьи генерируется не полностью автоматически.
Угу, а вот если бы они на frontend формировали бы хотя бы так же, как в backend, было бы намного интереснее. Удивляет меня столь разный подход.

Предупреждаю это просто рабочий пример. Не претендует на универсальность.
Спасибо за публикацию решения.