Создание настроек сайта: различия между версиями

Материал из Wiki from ADT Web Solutions
Перейти к навигации Перейти к поиску
Строка 23: Строка 23:
 
Теперь попробуем вывести всё это на страницах сайта.
 
Теперь попробуем вывести всё это на страницах сайта.
  
И тут мы сталкиваемся с очередной засадой UMI CMS. Казалось бы, каждому сайту должен соответствовать какой-то один набор настроек. Но в интерфейсе видим, что этих наборов можно создать сколько угодно. '''Господа разработчики''', может, стоило бы для упрощения ограничить эти возможности? Кто-то вообще использует больше одного набора настроек для конкретной языковой версии сайта?
+
И тут мы сталкиваемся с очередной засадой UMI CMS. Казалось бы, каждому сайту должен соответствовать какой-то один набор настроек. Но в интерфейсе видим, что этих наборов можно создать сколько угодно. '''Господа разработчики''', может, стоило бы для упрощения ограничить эти возможности? Кто-то вообще использует больше одного набора настроек для конкретной языковой версии сайта? Было бы шикарно получать настройки прямо в массиве $variables, как вы считаете?
  
Зато есть повод поупражняться с API системы.
+
Зато есть повод поупражняться с API системы. Один из способов получить настройки - использовать заданный нами идентификатор настроек, в данном случае 'demo':
 +
 
 +
<pre>
 +
$module = cmsController::getInstance()->getModule('umiSettings');
 +
$id = $module->getIdByCustomId('demo');
 +
$settings = umiObjectsCollection::getInstance()->getObject($id);
 +
</pre>
 +
 
 +
Добавим этот код в самое начало common.phtml. К счастью, в настройках разных языковых версий можно задавать один и тот же идентификатор,

Версия 11:28, 31 октября 2020

Выбираем в админке раздел "Настройки сайта" и не видим никаких настроек:

Screenshot 2020-10-30 UMI CMS - Настройки.png

Жмём "Создать настройки", и создаём:

Screenshot 2020-10-30 UMI CMS - Создание.png

Название может быть любое, идентификатор - только латиница. Если создаем настройки для русской версии сайта, на английской они видны не будут. Что в принципе логично.

Теперь видим, что настройки появились:

Screenshot 2 UMI CMS - Настройки (2).png

Вопрос только - что с ними делать? Ставим рядом галку, в пиктографическом меню нажимаем "Редактировать" - и видим ту же самую форму, что только что заполнили. Где логотип, где копирайт? Так мы незаметно подошли к большой теме - Создание шаблонов данных.

Вывод настроек в шаблоне

Добавим в настройки логотип и копирайт:

Screenshot 4 UMI CMS - Редактирование.png

Теперь попробуем вывести всё это на страницах сайта.

И тут мы сталкиваемся с очередной засадой UMI CMS. Казалось бы, каждому сайту должен соответствовать какой-то один набор настроек. Но в интерфейсе видим, что этих наборов можно создать сколько угодно. Господа разработчики, может, стоило бы для упрощения ограничить эти возможности? Кто-то вообще использует больше одного набора настроек для конкретной языковой версии сайта? Было бы шикарно получать настройки прямо в массиве $variables, как вы считаете?

Зато есть повод поупражняться с API системы. Один из способов получить настройки - использовать заданный нами идентификатор настроек, в данном случае 'demo':

$module = cmsController::getInstance()->getModule('umiSettings');
$id = $module->getIdByCustomId('demo');
$settings = umiObjectsCollection::getInstance()->getObject($id);

Добавим этот код в самое начало common.phtml. К счастью, в настройках разных языковых версий можно задавать один и тот же идентификатор,