Я полагаю, что начиная с версии 1.6 существует общий способ использования «категорий» в ваших собственных компонентах. Компоненты Joomla по умолчанию также используют это. Например: все компоненты контактов, новостных лент и веб-ссылок используют общую функциональность com_categories для создания категоризированного контента.
В настоящее время я создаю компонент, который также имеет категории, поэтому я хотел бы использовать общие функции категорий Joomla для достижения этой цели.
Статус: В настоящее время у меня есть следующее:
- У меня есть подменю «категории» в моем компоненте, которое ссылается на компонент общих категорий с некоторыми дополнительными параметрами. Параметры есть, поэтому страница будет перенаправлена обратно на мой компонент при сохранении. Это было довольно легко! Но..
Моя проблема: теперь я хочу добавить определенные поля в свою категорию, скажем: "Модератор категории".
Итак, я перешел к коду com_categories, и в следующем файле «administrator\components\com_categories\models\category.php» есть код (строка 270) для поиска кода конкретного компонента, например:
// Looking first in the component models/forms folder
$path = JPath::clean(JPATH_ADMINISTRATOR."/components/$component/models/forms/$name.xml");
Таким образом, компоненты выглядят (в моем случае) в папке: administrator/components/mycomponent/models/forms/category.xml для получения информации о конкретном компоненте.
Теперь в файле category.xml по умолчанию com_categories есть информация об экране редактирования, например:
<field
name="title"
type="text"
label="JGLOBAL_TITLE"
description="JFIELD_TITLE_DESC"
class="inputbox"
size="40"
required="true"/>
Таким образом, название категории, по-видимому, требуется.
Поэтому я решил добавить строку в этот файл:
<field
name="moderator"
type="text"
label="JGLOBAL_MODERATOR"
description="JFIELD_MODERATOR_DESC"
class="inputbox"
size="40"
required="true"/>
За исключением того, что этого недостаточно, чтобы добавить ввод. Итак, я посмотрел в шаблоне administrator/components/com_categories/views/category/edit.php подсказки, как этого добиться. Но нет кода для добавления конкретных входных данных для моего компонента (или я ошибаюсь;))..
Поля добавляются довольно специфично, например:
<li><?php echo $this->form->getLabel('title'); ?>
<?php echo $this->form->getInput('title'); ?></li>
Я также искал, могу ли я как-то переопределить edit.php, но, к сожалению, я его не нашел.
Коротко. Кто-нибудь знает, как добавить общие поля на страницу редактирования категории?