Подвал

Просмотров: 540Комментарии: 0
MaxSite CMSСоздание шаблонов

Теперь займёмся подвалом. Сделаем простой компонент, чтобы потренироваться с версткой и его подключением. Пусть у нас будет таже схема, что и с шапкой — файл custom/footer1.php. Сбросим настройки шаблона в my-template.php — уберем комментарий со строчки

mso_delete_option('template_set_component_options', getinfo('template'));

Пропишем компонент подвала file2 и его файл:

my_set_opt('footer_component1', 'file2');
my_set_opt('file2_file', 'custom/footer1.php');

После обновления любой страницы (F5), комментарий можно вернуть. Такая настройка позволит вам, или вашему клиенту получить начальные настройки шаблона, без необходимости вручную их указывать в админ-панели.

Пусть наш подвал будет выводить простой копирайт слева и menu3 справа.

© Copyright 2017. All right reserved

Такое размещение нам уже знакомо по компоненту шапки, только используется другой компонент меню.

<div class="layout-center-wrap bg-blue800 t-white t80"><div class="layout-wrap flex flex-wrap pad20-tb">	
	<div class="flex-grow1">
	© Copyright {{ date('Y') }}. All right reserved
	</div>
 
	<nav class="flex-grow0"><ul class="menu-simple menu-sep t-white links-no-color">
	{%
		if ($menu = mso_get_option('menu3', 'templates', '/ | Главная ~ about | О сайте')) 
			echo mso_menu_build($menu, 'selected', false);
	%}
	</ul></nav>	
</div></div>

Класс .menu-sepобьявлен в _menu-simple.scssи выводит разделительную черту между пунктами меню. Все остальные классы вам должны буть уже знакомы.

Теперь усложним задачу и введем в подвал ещё один блок, который будет настраиваться из админ-панели.

Очевидно, что здесь нам потребуется создать опцию шаблона. Логичным вариантом будет перенести подвал как компонент, но есть и другой вариант — использовать опции на уровне шаблона.

Для этого созадим новый файл custom/my_options.ini:

[Блок 1 (footer1)]
options_type = "%TEMPLATE%"
options_key = footer1-block1
type = textarea
description = "Текст для Блок 1 (footer1)"
default = ""
section = "Шаблонные опции"

Опции задаются стандартно. Для options_type используется спецзамена «%TEMPLATE%», которая автоматически превратится в название/каталог шаблона. Таким образом эта опция будет работать только для текущего шаблона.

Строчка section = "Шаблонные опции"задает название секции в Настройках шаблона. В этом файле она должна быть только в самой первой опции (вверху) и больше не повторяться. Тогда все опции шаблона окажутся на одной странице.

Название/ключ опции указывается в options_key. В своём файле мы и будем её выводить. Делается это так:

<div class="w100">{{ 
	mso_get_option('footer1-block1', getinfo('template'), '') 
}}</div>

Функция mso_get_option()собственно и выводит нужную опцию, где первым аргументом идет её ключ/название, вторым тип, который равен названию текущего шаблона. Третий параметр — это то, что будет выведено, если опция еще не определена.

Если мы хотим разрешить в опции задавать какой-то php-код (в виде php-шаблонизатора), то делаем так:

<div class="w100">{% 
	eval(mso_tmpl_prepare(mso_get_option('footer1-block1', getinfo('template'), ''))); 
%}</div>

Функция eval() запускает php-код, а mso_tmpl_prepare() подготавливает его из php-шаблонизатора.

Таким нехитрым способом можно выносить в админ-панель любые опции шаблона.

Оставьте свой комментарий!

Комментарий будет опубликован после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)

О проекте

MaxSite CMS предназначена для создания сайтов любой сложности. Система отлично подходит обычным пользователям, вебмастерам, фрилансерам и вебстудиям.