Добавление дополнительного параметра к материалу
Итак при создании нового материала в админке справа есть колонка "Параметры - Статьи", "Параметры - Расширенные" и "Мета-данные". В зависимости от этих параметров можно отдельно настроить вывод для каждой статьи. За вывод этих параметров отвечает файл \administrator\components\com_content\models\article.xml. Рассмотрим его более подробнее.
<params addpath="/administrator/components/com_content/elements">
В этой строке добавляется путь к элементам, которые использует параметр. Более наглядней это будет продемонстрированно при разборе следующей строки.
<param name="created_by" type="author" default="" label="Author" description="DETAILAUTHOR" />
Рассмотрим эту строчку подробнее:
- name - имя параметра.
- type - вот в этой строке как раз и подключается елемент (type="author") В данном случае файл administrator\components\com_content\elements\author.php, который возвращает список всех пользователей. И при создании или редактировании материала Вы можете поставить автором статьи любого зарегестрированного пользователя.
Подробнее о стандартных типах (type), используемых в Joomla, Вы можете почитать Joomla Standard parameter types. - default - значение параметра по умолчанию.
- label - название параметра, собственно то что Вы будете видеть в админ панели Joomla.
- description - описание, текст который будет выводиться при наведении на параметр.
Параметры можно так же группировать, подробнее об этом напишу чуть позже.
<params group="advanced">
Итак создадим дополнительный параметр и поместим его в группу advanced, перед заголовком:
<params group="advanced">
<param name="you_param" type="list" default="" label="Ваш параметр" description="Описание Вашего параметра">
<option value="0">Hide</option>
<option value="1">Show</option>
</param>
<param name="show_title" type="list" default="" label="Show Title" description="Show/Hide the items title">
<option value="">Use Global</option>
<option value="0">No</option>
<option value="1">Yes</option>
</param>
...
Так же Вы можете удалять ненужные параметры.
В данном случае я использовал 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", то в шаблон вывода добавляем:
Вот, в принципе, пока и все. Позже напишу про группы и как добавлять параметры в отдельное поле таблицы.
4
Комментарии
25.03.2010 01:05
Я вот не понимаю как оно все это может делать без занесение в БД мы же не редактируемым структуру таблицы.
25.03.2010 01:19
Сработало.
Но как оно так без сохранения в бд. Я не понимаю...
вижу результат в таблице jos_content в поле attribs, но как это магия вся делается. просто заносится как переменная пхп.
ВРоде дошло!! спасибо.
28.03.2010 18:03
Как это сделать?
11.06.2011 05:08
Устал каждый раз раскрывать вкладку "Параметры - Расширенные" при создании материала. Самостоятельно мне не удалось перенести в "Параметры - Статьи".
Спасибо.
11.06.2011 15:17
Аналогично пытался сделать для шаблонов вывода категории/раздела в виде блога, но параметры не отображаются. Выходит, их нужно привязать еще и к глобальным настройкам и пунктам меню?
11.10.2011 23:37
RSS лента комментариев этой записи