Иногда, для автоматизации, необходимо к материалу добавить еще параметр, в зависимости от которого будет выводиться то что Вам требуется. В этой статье я расскажу как это можно реализовать.
Итак при создании нового материала в административной панели справа есть колонка «Параметры — Статьи», «Параметры — Расширенные» и «Мета-данные» . В зависимости от этих параметров можно отдельно настроить вывод для каждой статьи. За вывод этих параметров отвечает файл \administrator\components\com_content\models\article.xml. Рассмотрим его более подробнее.
type — вот в этой строке как раз и подключается елемент (type=»author») В данном случае файл administrator\components\com_content\elements\author.php, который возвращает список всех пользователей. И при создании или редактировании материала Вы можете поставить автором статьи любого зарегестрированного пользователя. Подробнее о стандартных типах (type), используемых в Joomla, Вы можете почитать Joomla standard parameter_types.
default — значение параметра по умолчанию.
label — название параметра, собственно то что Вы будете видеть в административной панели Joomla.
description — описание, текст который будет выводиться при наведении на параметр.
Параметры можно так же группировать, подробнее об этом напишу чуть позже.
Итак создадим дополнительный параметр и поместим его в группу advanced, перед заголовком:
В данном случае я использовал type=»list», Вы же можете выбрать тип который Вам подходит. Итак, пол дела сделано, теперь осталось добавить в шаблон вывода обработку этого параметра.
Открываем файл шаблона вывода материала components\com_content\views\article\tmpl\default.php и добавляем в него (я выбрал начало):
<?php // no direct access
defined('_JEXEC') or die('Restricted access');
$canEdit = ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own'));
?>
<?php if ($this->params->get('you_param')) : ?> <!--Проверяем включен ли параметр-->
<?php echo JText::_('Ваш параметр включен в этом материале'); ?> <!--Выводим что нам надо-->
<?php endif; ?> <!--Конец проверки-->
Выводить в принципе можно все что угодно — текст, картинку, JavaScript и т.д. и т.п.
Если Вам нужно вывести значение данного параметра, допустим Вы использовали type=»text», то в шаблон вывода добавляем
<?php if ($this->params->get('you_param') !== '') : ?> <!--Проверяем не является ли параметр пустым-->
<?php echo JText::_($this->params->get('you_param')); ?> <!--Выводим значение параметра-->
<?php endif; ?> <!--Конец проверки-->
Вот, в принципе, пока и все. Позже напишу про группы и как добавлять параметры в отдельное поле таблицы.