Что такое «компонент»

Компоненты используют для отображения информации на страницах сайта. Для формирования логики вывода информации на сайте, компоненты размещаются и в главном шаблоне сайта и в шаблонах самих же компонентов.

Главный шаблон сайта

В главном шаблоне сайта (файл "index.tpl"), компонент представлен ввиде парного html тега, и имеет вид:

<component id="list" class="List"></component>

Каждый тег имеет атрибуты:

  1. id Идентификатор компонента, используется для хранения информации о компоненте (универсальный для каждого компонента);
  2. class Класс компонента, определяет какой компонент установлен и какой ему шаблон соответствует;
  3. path Путь к компоненту. Если компонент не зарегистрирован в списке компонентов, но находится в каталоге компонентов на сервере, его можно вызвать указав атрибут «path»;
  4. template В каждом компоненте указан шаблон по умолчанию если на сайте находятся одинаковые компоненты, то они должны иметь разные шаблоны. Каждый шаблон компонента соответствует определенной теме и находится в каталоге "application/templates/{название темы}/{шаблон компонента}.tpl.php". Шаблон можно изменять с помощью компонента "Шаблоны сайта" панели управления сайтом.
  5. for Атрибут проверки «условия» компонента (если компонент необходимо скрыть или показать), имеет значение:
    • user - проверка пользователя;
    • page - проверка текущей страницы;
    • url - проверка url адреса текущей страницы;
    • date - проверка текущей даты;
    • domain - проверка название домена;
    • category - проверка текущей категории;
  6. for-data Атрибут проверки значение на совпадение (зависит от атрибута «for»):
    • если for="user" - for-data имеет значение "signin" (пользователь авторизирован), "no" (пользователь не авторизирован).
      Пример: <component id="list" class="List" for="user" for-data="signin"></component> (список будет доступен для авторизированных пользователей);
    • если for="page"
      - for-data имеет значение "index" (главная страница),
      - for-data-no имеет значение "index" (не главная страница);
      Пример: <component id="list" class="List" for="page" for-data-no="index"></component> (список будет отображаться на всех страницах кроме главной);
    • если for="url" - for-data указывают url адрес страницы, на которой будет отображаться компонент
      Пример: <component id="list" class="List" for="url" for-data="/folder1/folder2/file.html"></component>;
    • если for="date" - for-data указывают дату в формате "дд-мм-гггг", если будет совпадение дат, компонент будет отображаться
      Пример: <component id="list" class="List" for="url" for-data="/folder1/folder2/file.html"></component>;
    • если for="domain" - for-data имеет значение "all" или название домена.
      Пример: <component id="list" class="List" for="domain" for-data="domain.com"></component>;
    • если for="category" - for-data указывают идентификатор категории статьи
      Пример: <component id="list" class="List" for="category" for-data="1"></component>;

Шаблон компонента сайта

В шаблоне компонента сайта (файл "{шаблон компонента}.tpl.php"), компоненты имеет вид:

<?php
Gear::component("List", array(
    "template" => "list.tpl.php"
));
?>

Описание: Gear::component(string $class, array $params)

  1. $class Название класса компонента
  2. $params Параметры вывода соответсвуют атрибутам компонента (у кжадого компонента свой "набор" параметров):
    • id - идентификатор компонента
    • path - путь к компоненту
    • template - шаблон компонента

Список установленных по умолчанию компонентов в системе управления сайтом Gear CMS, начиная с версии 3.2.