В этой статье хотелось бы более подробно остановиться на параметрах шаблонов.
Все параметры шаблона находятся в специальном файле с расширением .xml и именем, одинаковым с именем самого шаблона.
Для примера рассмотрим шаблон полного вида статьи default.
Файлы шаблонов полного вида статьи находятся в папке views/record
.Полное имя файла состоит из префикса и названия шаблона. Для полного вида статьи префикс названия файла должен быть default_record_
, а полное имя файла, соответственно будет default_record_default.php
. Более подробную информацию по этому вопросу Вы можете найти в уроке о работе с шаблонами Cobalt. Я даже порекомендовал бы его для обязательного предварительного изучения.
Параметры этого шаблона находятся в одноименном XML файле default_record_default.xml
.
Рассмотрим пример файла настроек.
<?xml version="1.0" encoding="utf-8"?>
<form>
<name>Default</name>
<author>MintJoomla</author>
<creationDate>Febrary 2012</creationDate>
<copyright>Copyright (C) 2005 - 2012 MintJoomla. All rights reserved.</copyright>
<license>Commercial (http://www.mintjoomla.com/commercial-license)</license>
<authorEmail>support@mintjoomla.com</authorEmail>
<authorUrl>www.mintjoomla.com</authorUrl>
<version>8.36</version>
<description>Default article full view template</description>
<fields name="tmpl_params">
<fieldset name="name" label="Fieldset Nmae">
<field>
<option value="1">Value 1</option>
</field>
</fieldset>
</fields>
<fields name="tmpl_core">
<fieldset name="name2" label="Fieldset Name 2">
<field />
</fieldset>
</fields>
</form>
Несколько важных моментов, которые надо понимать:
Вся структура XML должна быть обязательно заключена в коневой тег <form>
.
Верхняя группа параметров вида <name>
, <author>
, <version>
и других нужна для заполнения информации об авторе этого шаблона и его контактных данных, чтобы пользователь легко мог найти автора и обратиться к нему при наличии вопросов.
В файл параметров шаблона может быть добавлено только 2 раздела <fields>
с фиксированными именами- tmpl_params
и tmpl_core
. Вы можете добавлять свои параметры в раздел tmpl_params
. Раздел tmpl_core
следует изменять с осторожностью, т.к. его может использовать ядро Cobalt. Иными словами, настройки раздела tmpl_core
должны присутствовать обязательно.
Каждый раздел <fields>
может содержать сколько угодно элементов <fieldset>
. Элемент <fieldset>
позволяет объединять параметры в группы, что сильно упрощает их зрительное восприятие, особенно если параметров много. Объединив параметры в группы, Вы упростите их чтение.
<fieldset name="name" label="Group Name" description="Group description"></fieldset>
допустимые атрибуты группы параметров fieldset
Название | Обязательный | Описание |
---|---|---|
name | да | должно быть уникально для всех групп настроек |
label | да | отображается как заголовок группы параметров на форме настроек параметров шаблона |
description | нет | дополнительное описание группы. Возможно использование HTML тегов в тексте этого атрибута. Например, если Вы хотите видеть в описании строку This is <b>group</b> description , то текст будет This is <b>group</b> description . Также возможно использование языковых констант. Например, можно вставить в описание параметра ключ типа MY_GRPUP_DESCR и добавить перевод значения в языковой файл. Но с такой схемой будет неудобно распространять шаблоны, так как пока что шаблоны не имеют своих языковых файлов. |
addfieldpath | нет | Атрибут указывает путь расположения PHP классов ваших собственных типов. Должен начинаться от корня Joomla. Например: addfieldpath="/libraries/mint/forms/fields/ |
<field name type label [class default description]>
[<option value="1">Value 1</option>]
</field>
Элемент <field>
может содержать основные и дополнительные атрибуты.
Все атрибуты записываются в формате имя="значение"
, атрибуты отделяются друг от друга пробелом. Состав дополнительных атрибутов зависит, в основном, от значения атрибута type
.
Вот описание основных атрибутов элемента <field>
Название | Обязательный | Описание |
---|---|---|
name | да | Идентификатор для получения значения этого параметра шаблона. Допустимы только латинские буквы в нижнем регистре без спецсимволов. |
type | да | Тип отображаемого элемента, например переключатель, выпадающий список или просто поле для ввода текста. Каждый тип имеет соответствующий PHP класс, который его прорисовывает. Таким образом, при желании можно создавать свои классы и добавлять любые типы элементов, которые только можно себе представить. |
label | да | Ярлык параметра. Можно использовать языковые константы. |
class | нет | CSS класс для вывода параметра, применяется только с элементами text, textarea, list, radio. |
default | нет | Значение параметра по-умолчанию. Обратите внимание, что это значение только для заполнения формы. Это значение не передается в сам шаблон, пока пользователь не сохранил значение хотя бы один раз. Для того что бы получить это значение по умолчанию в самом шаблоне, надо его опустить как 2-й параметр. Например $params->get('tmpl_params.my_parameter', 10) где 10 это то что вернется, если пользователь ни разу не сохранял форму. |
description | нет | Описание параметра. Его пользователь увидит в tooltip при наведении на ярлык параметра. |
Рассмотрим несколько значений атрибута type. На самом деле их существует гораздо больше, но этот основной набор покроет 99%-100% ваших нужд.
type="text"
Текстовое поле ввода. Превратится в <input type="text">
в HTML.
Название | Обязательный | Описание |
---|---|---|
size | нет | Размер поля. Превратится в атрибут size элемента <input> . В Joomla 3.0 это практически не применяется. Даже при наличии этого элемента размер текстового поля все равно будет переписан в стилях. |
type="textarea"
Область ввода произвольного текста.
Название | Обязательный | Описание |
---|---|---|
size | нет | Размер поля. Превратится в атрибут size элемента <input> . В Joomla 3.0 это практически не применяется. Даже при наличии этого элемента размер текстового поля все равно будет переписан в стилях. |
rows | нет | Количество строк |
cols | нет | Количество столбцов |
type="list"
Выпадающий список значений для выбора. В HTML превратится в <select>
Название | Обязательный | Описание |
---|---|---|
multi | нет | Определяет единственный или множественный выбор. Может быть true или false . По умолчанию равен false . |
Так же как список значений, этот XML элемент может включать в себя элементы <option>
. Например:
<field name="search_mode" type="list" default="3" label="Режим поиска">
<option value="1">Искать везде</option>
<option value="2">Искать в категории</option>
<option value="3">Искать в ветке</option>
</field>
type="radio"
Блок radio-кнопок.
Особых атрибутов нет, может включать в себя элементы <option>
.
Например:
<field name="search_title" type="radio" class="btn-group" default="1" label="Искать в заголовке">
<option value="0">CNO</option>
<option value="1">CYES</option>
</field>
type="meresourcesfields"
Список полей из типов контента Cobalt. Это один из самых полезных и практичных параметров в контексте шаблонов кобальта. Предположим, Вам необходимо разместить значение какого-то поля в определенной позиции шаблона с отдельными стилями. Это легко можно сделать, просто вызвав это поле в шаблоне по его ID
. Примерно так.
<?php echo $item->fields_by_id[11]->result ?>
Где 11
- это ID
поля. Читайте эту статью для более подробной информации.
Но если вы не знаете, какой будет ID
или хотите предоставить пользователю возможность самому выбрать, где и какое поле разместить, вот тогда этот параметр и придет на помощь.
Название | Обязательный | Описание |
---|---|---|
key | нет | Определяет, какой параметр поля будет сохраняться id или key . В зависимости от этого в шаблоне нужно будет использовать $item->fields_by_id или $item->fields_by_key . В чем разница и что нужно выбрать? Ответить просто- для шаблонов с многотиповостью необходимо использовать key , а для шаблонов с одним типом контента- id . Но мы рекомендуем использовать id , так как этот метод более универсален и в шаблоне всегда можно получить ключ поля по id . Читайте этот урок для более подробной информации. |
client | нет | Ограничение списка полей. Может быть list , full и all . Если list - показываются только те поля типа контента, которые можно отображать в списке статей. Если full - показываются только те поля, которые можно отображать в полном виде статьи. Если all - показываются все поля. По умолчанию- all . |
filters | нет | Позволяет включать в список поля только определенных типов. Например: filters="'textarea','text','html'" . Включает в список выбора только поля типов textarea , text и html |
multi | нет | Определяет единственный или множественный выбор. Может быть true или fale . По умолчанию- fale . |
size | нет | Определяет максимальный размер высоты выводимого списка или количество видимых элементов выбора без прокручивания. |
Внимание: шаблон основной опции name должен быть name=”field_имя_поля”
type="accesslevel"
Список уровней доступа типа public, registered, special, Дополнительные атрибуты отсутствуют, но при необходимости можно добавить в список дополнительный элемент <option>
. Например:
<field name="add" type="accesslevel" default="3" label="Кто добавит?">
<option value="0">Ни кто</option>
</field>
type="folderlist"
Выпадающей список папок из указанной директории.
Название | Обязательный | Описание |
---|---|---|
direcotry | да | Начальная директория для выбора. Указывается от корневой директории Joomla. Например: directory="images/story" |
hide_none | нет | Спрятать элемент списка не выбора директории. Значение 1 или 0. По умолчанию- 0. |
hide_default | нет | Спрятать элемент списка выбора наследования директории. Значение 1 или 0. По умолчанию- 0. |
Пожалуйста, подпишитесь или установите наблюдение за этой статьей, нажав на кнопке с иконкой . Мы будем дополнять ее новой информацией, и Вы сможете получать уведомления при изменениях или дополнениях этой статьи.