Gantry 4 framework

Использование cookie, url и сессии в Gantry Framework

Joomla

Использование cookie, url и сессии

В Gantry framework существует два варианта установки параметров: статический и динамический. Статический способ установки — способ привязки групп параметров к пунктам меню. Данный метод был описан в статье Назначение стилей для пунктов меню.  Второй способ — динамический — использует пользовательскую сессию, cookie браузера клиента и строку запроса url.

Приоритет параметров

Все настройки шаблона хранятся в конфигурационном файле template-options.xml. Но все они могут быть изменены различными методами, причём методы имеют свои приоритеты в иерархии. Методы по приоритету:

  1. Строка запроса URl
  2. Сookie браузера
  3. Сессия пользователя
  4. Установленные путём привязки к пунктам меню
  5. Параметры, выставленные по-умолчанию

Параметр выставленный более приоритетным методом будет принят системой как действующий, не зависимо от того, что использовалось ранее. Таким образом, если у вас шаблон настроен по умолчанию стиль 1, а к какому-то пункту меню привязан стиль 2, то естественно на странице этого пункта меню будет стиль 2. Всё логично. Другой пример, если у вас существует preset1 и preset2, и по умолчанию установлен первый, то введя в адресную строку ВАШ_САЙТ/?presets=preset2 вы увидите что будет использован preset2.

Разрешение динамических параметров

Управлять динамическими методами изменениями параметров вы можете используя следующее атрибуты, которые имеют два состояния true — истина и false — ложь:

  • setbyurl — Может ли значение параметра быть определенно строкой запроса url.
  • setbycookie — Может ли значение быть установлено используя cookie браузера.
  • setincookie — Может ли значение храниться в cookie, если оно отличается от значения по-умолчанию.
  • setbysession — Может ли значение быть определено сессией пользователя.
  • setinsession — Может ли значение храниться сессией пользователя, если оно отличается от значения по-умолчанию.
  • isbodyclass - Позволяет использовать значение параметра в качестве класса CSS.

Пример использования параметров для цвета фона приведен ниже.

Пресеты определены следующим образом:


$gantry_presets = array(
    'presets' => array(
        'preset1' => array(
            'name' => 'Preset 1',
            'linkcolor' => '#00c',
            'backgroundlevel' => 'low',
        ),
        'preset2' => array(
            'name' => 'Preset 2',
            'linkcolor' => '#ff0000',
            'backgroundlevel' => 'med',
        )
      )
    )
);

И параметры определены как показано ниже:

<param name="presets" type="preset" mode="scroller" default="preset1" label="STYLE_PRESETS" description="STYLE_PRESETS_DESC" setbyurl="true" setinsession="true" setbysession="true" setbycookie="true" setinmenuitem="false" />
<param name="backgroundlevel" default="med" type="slider" class="graphic-level" label="BG_LEVEL" description="BG_LEVEL_DESC" setbyurl="true" setinsession="true" setbysession="true" setincookie="true" setbycookie="true" isbodyclass="true">
    <option>low</option>
    <option>med</option>
    <option>high</option>
</param>

Вызов параметров через URL:

?presets=preset2&backgroundlevel=high

Даст включение параметров:

linkcolor=#ff0000
backgroundlevel=high

Оригинальная статья: Gantry team
Artem Valchuk
Привет меня зовут Артем. Я занимаюсь разработкой сайтов, шаблонов HTML, Joomla и WP.