Первое знакомство с API

Попробуем наполнить главную страницу более осмысленной информацией. Я хочу дать правильный title главной странице и вывести вверху логотип и название сайта, со ссылкой на главную страницу.

По умолчанию в Cetera CMS в разделах нет поля для привязки рисунков. Однако разделы являются наследниками объекта с произвольным набором полей, поэтому мы легко можем добавить любое необходимое поле. Вперед. Откроем панель «Сервис > Типы материалов». Затем откроем панель редактирования dir_data «Разделы»:

Пример

Видим, что список пользовательских полей пуст. Добавим поле «Рисунок»:

Пример

Теперь, если открыть свойства корневого раздела сайта, то на вкладке «Свойства» мы увидим только что созданное поле. Теперь легким движением руки загрузим логотип сайта:

Пример

Вернемся к фронт-офису. Настало время реализации поставленной в начале главы задачи. Изменим файл www/.templates/default.php:

 

<?php
$application = Application::getInstance();
$server = $application->getServer();
?>
<html>
  <head>
      <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
      <title><?php echo strip_tags($server->name); ?></title>
  </head>
  <body>
      <a href="/" title="На главную"><img src="<?php echo $server->picture; ?>" alt="LOGO" align="left"></a>
      <h1><?php echo $server->name; ?></h1>
  </body>
</html>

 

Немного пояснений:

Application — основной класс, практически все начинается с него. Application реализует шаблон singleton, чтобы предоставить общий доступ к свойства и ресурсам сайта. Следовательно, только один экземпляр Application может быть создан. Базовые методы, которые вам обязательно надо знать:

Application::getServer() возвращает текущий виртуальный сервер

Application::getCatalog() возвращает текущий раздел сайта

Application::getUser() возвращает авторизованного пользователя

Application::getUnparsedUrl() возвращает неразобранную часть url запрошенной страницы. Т.е. на запрос http://server/a/b/c/d система попытается найти виртуальный сервер server, затем в нем раздел «a», в нем — «b» и т.д. Если раздел «с» отсутствует в «b», то getUnparsedUrl вернет «c/d». Если раздела «a» не существует, то getUnparsedUrl вернет «a/b/c/d»

Application::getUserVar($name, $server = 0) возвращает пользовательскую переменную, определенную для сервера (по умолчанию для текущего). Пользовательские переменные можно определять на вкладке «Переменные» в свойствах раздела root и в свойствах серверов.

Итак, получив объект, предоставляющий доступ к текущему серверу, мы можем получить нужные нам свойства сервере, в том числе, определенные пользователем:

$server→name — имя сервера (сайта) — встроенное свойство

$server→picture — логотип — определенное пользователем свойство

Результат:

Пример


Мы на связи

фото Алены Ратниковой

Алена Ратникова
Отвечаю за всё производство

фото Марии Лебедевой

Мария Лебедева
Занимаюсь новыми клиентами


Cetera Labs

График работы

Понедельник-пятница
9:00-18:00

Телефон

8 (800) 775-52-93