Комментарии

  • Православное видео
  • Православное богослужение. Сведения об исполнителях православной музыки
  • lampada.su
  • Болт
  • Болты, рым-болты, винты, гайки и др. оптом и в розницу. Выгодные цены
  • amc.kz
Параметры настройки шаблонов Joomla 2.5
( 0 Голосов )
После регистрации в административной части веб-сайта Joomla, выбора сначала команды Extensions1 => Template Manager (Расширения => Диспетчер шаблонов), а затем исходного шаблона Beez2 - Default для редактирования стиля его оформления в правой части экрана появляются дополнительные параметры настройки, приведенные на скриншоте ниже.
 
Параметры настройки шаблона beez_20
Параметры настройки шаблона beez_20
 
Это лишь первый из многих примеров параметров, доступных для настройки в Joomla. Посмотрим, откуда они берутся, как используются и сохраняются в базе данных.
 
Параметры определяются в XML-файлах. В данном случае имеется в виду файл templates/beez_20/templateDetails.xml, в котором содержится и другая информация о шаблоне. Часть этого файла, где находится информация о параметрах, располагается в элементе config, как показано в листинге ниже.
<config>
<fields name="params">
<fieldset name="advanced">
<field name="wrapperSmall"  class="validate-numeric" type="text" default="53"
label="TPL_BEEZ2_FIELD_WRAPPERSMALL_LABEL"
description="TPL_BEEZ2_FIELD_WRAPPERSMALL_DESC"
filter="integer" />
 
<field name="wrapperLarge"  class="validate-numeric" type="text" default="72"
label="TPL_BEEZ2_FIELD_WRAPPERLARGE_LABEL"
description="TPL_BEEZ2_FIELD_WRAPPERLARGE_DESC"
filter="integer" />
 
<field name="logo" type="media"
label="TPL_BEEZ2_FIELD_LOGO_LABEL" description="TPL_BEEZ2_FIELD_LOGO_DESC" />
 
<field name="sitetitle"  type="text" default=""
label="TPL_BEEZ2_FIELD_SITETITLE_LABEL"
description="TPL_BEEZ2_FIELD_SITETITLE_DESC"
filter="string" />
 
<field name="sitedescription"  type="text" default=""
label="TPL_BEEZ2_FIELD_DESCRIPTION_LABEL"
description="TPL_BEEZ2_FIELD_DESCRIPTION_DESC"
filter="string" />
 
<field name="navposition" type="list" default="center"
label="TPL_BEEZ2_FIELD_NAVPOSITION_LABEL"
description="TPL_BEEZ2_FIELD_NAVPOSITION_DESC"
filter="word"
>
<option value="center">TPL_BEEZ2_OPTION_AFTER_CONTENT</option>
<option value="left">TPL_BEEZ2_OPTION_BEFORE_CONTENT</option>
</field>
 
<field name="templatecolor" type="list" default="nature"
label="TPL_BEEZ2_FIELD_TEMPLATECOLOR_LABEL"
description="TPL_BEEZ2_FIELD_TEMPLATECOLOR_DESC"
filter="word"
> 
<option value="nature">TPL_BEEZ2_OPTION_NATURE</option>
<option value="personal">TPL_BEEZ2_OPTION_PERSONAL</option>
 
</field> 
</fieldset>
</fields>
</config>
Если сравнить содержимое XML-файла с экраном Advanced Options (Дополнительные параметры), приведенным на скриншоте выше, то можно заметить следующее:
 
  • Каждая группа параметров определяется элементом разметки fieldset в XML- файле.
  • Каждое поле параметра определяется отдельным элементом разметки field в XML-файле.
  • Поведение каждого параметра определяется атрибутами.

 

Атрибуты элементов разметки полей, определяющих параметры настройки шаблона:

АтрибутОписание
name Имя, используемое для извлечения конкретного значения параметра
class Класс вложенных таблиц стилей CSS для оформления поля при воспроизведении формы на странице. Например, класс validate-numeric запускает на выполнение специальный код JavaScript для отображения ошибок на странице при появлении нечислового символа
type Имя файла исходного кода РНР и соответствующего класса, вызываемого при создании параметра. Так, если установить значение text в атрибуте type, то загружается файл libraries/joomla/form/fields/text.php, в котором определен класс JformFieldText языка РНР
default Исходное значение параметра, отображаемое в форме при создании нового стиля оформления шаблона
label Метка поля в форме. Как правило, она переводится, а следовательно, ее дескриптор обычно находится в файле языковой поддержки. Например, дескриптор ТPL_BEEZ2_FIELD_WRAP PERSMALL_LABEL определен В файле language/en-GB/en-GB. tpl_beez_20.ini, где он переводится как Wrapper Small (%) (Мелкая оболочка (%)). Более подробно перевод текста элементов пользовательского интерфейса на разные языки мира рассматривали в прошлых статьях сайта. Описание поля в форме с отображением всплывающей подсказки при наведении курсора на само поле. Как и метка, описание поля, как правило, переводится.
filter Это фильтр. Если он установлен, то применяется к данным, вводимым в поле, при сохранении формы. Например, в поле wrapperSmall применяется фильтр int, а это означает, что в данном поле можно вводить только целочисленные значения. При наличии атрибута filter вызывается метод clean () класса JFilterlnput из файла libraries/joomla/filter/filterinput.php.
Элементы разметки fields и field были внедрены в версии Joomla 1.6 и заменили собой элементы разметки params и param, применявшиеся в версии 1.5.
 
Следует также заметить, что параметр navposition относится к типу list. Это означает, что пользователь может сделать выбор из раскрывающегося списка параметров шаблона. Каждый параметр в этом списке определен как отдельный элемент разметки option, а у каждого элемента разметки option имеется свой атрибут value, определяющий значение, передаваемое форме при выборе данного параметра из списка. Текст наименования элемента разметки option должен появляться в списке и, как правило, переводится, поэтому он представлен в виде дескриптора, определяемого для данного шаблона в файле языковой поддержки.
 
А теперь посмотрим, каким образом параметры сохраняются в базе данных веб-сайта Joomla. Если проанализировать содержимое таблицы #template_styles базы данных, то в ней можно обнаружить строку со значением Beez2 - Default в столбце title. А если перейти к столбцу params в этой же строке, то в нем можно обнаружить следующее значение:
 
{"wrapperSmall":53,"wrapperLarge":72,"logo":"images\/joomla_black.gif",
"sitetitle":"Joomla!","sitedescription":"Open Source Content Management","navposition":"left", "templatecolor":"personal"}
Приведенный выше текст представлен в формате JSON (JavaScript Object Notation — представление объектов JavaScript). Начиная с версии 1.6 формат JSON используется для сохранения параметров настройки Joomla в базе данных. В рассматриваемом здесь примере сохранения параметров шаблона в формате JSON первым указывается имя параметра в кавычках, а после двоеточия — значение этого параметра. Каждый предыдущий параметр отделяется от последующего запятой, а вся запись параметров заключается в фигурные скобки.
 
С исчерпывающим описанием формата JSON можно ознакомиться по адресу http://www.json.org. В языке PHP имеется функция json_decode () для преобразования текста из формата JSON в объекты или массивы, а также функция json_encode () для преобразования массивов или объектов языка РНР в текст формата JSON.
 
Следует также заметить, что все параметры хранятся в единственном столбце parameters таблицы базы данных. Это означает, что новые параметры можно вводить, не добавляя новые столбцы в таблицу базы данных. Например, стиль оформления шаблона может содержать любое количество параметров с любыми именами, выбираемыми разработчиком шаблона. И такой подход к сохранению многих параметров в одном столбце таблицы базы данных принят повсеместно в Joomla, что в значительной степени упрощает процесс создания параметров. А недостаток такого подхода заключается в том, что пользоваться параметрами в запросах базы данных не так-то просто.

Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости
Добавить комментарий


Защитный код