Бесплатная CMS для вашего сайта Разумная альтернатива WordPress

Модульная сетка

Любой шаблон начинается с модульной сетки. Технически — это html-каркас, внутри которого размещаются блоки для вывода шапки, подвала, контента и сайдбара.

Такое деление не случайно. Шапка и подвал настраиваются как компоненты, то есть самостоятельными файлами. Контент определяется на основе текста записи, а вывод сайдбара происходит через специальную функцию.

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

Модульные сетки в рамках MaxSite CMS называются «Шаблоны вывода». Они располагаются в каталоге шаблона main, где main/main.php — сетка по умолчанию. Остальные варианты должны располагаться в своих подкаталогах с обязательным файлом main.php.

Модульня сетка — это не что иное как html-разметка. Рассмотрим простой пример.

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

if ($fn = mso_fe('main/blocks/_start.php')) require $fn;
if ($fn = mso_fe('main/blocks/header.php')) require $fn;
?>
<div class="layout-center-wrap">
	<div class="layout-wrap">
		<div class="flex">
			<div class="w65">
				<div>
					<?php if ($fn = mso_fe('main/blocks/content.php')) require $fn; ?>
				</div>
			</div>

			<div class="w30">
				<?php mso_show_sidebar('1'); ?>
			</div>
		</div>
	</div>
</div>
<?php
if ($fn = mso_fe('main/blocks/footer.php')) require $fn;
?>
</body></html><?php if ($fn = mso_fe('main/blocks/_end.php')) require $fn; ?>

Для того, чтобы упростить создание html-разметки, часть php-кода вынесена в каталог main/blocks. Код:

if ($fn = mso_fe('main/blocks/_start.php')) require $fn;

Функция mso_fe() работает так: если есть файл main/blocks/_start.php, то происходит его подключение (стандартная функция require).

Файл _start.php содержит код для включения буферизации вывода, а _end.php получает данные из буфера и выводит его в браузер. Это позволяет задействовать дополнительные возможности, например сжатие html-кода и смена http-протокола на универсальный.

Файлы header.php и footer.php содержат код для вывода компонентов шапки и подвала. А функция mso_show_sidebar() выводит сайдбар.

В main/blocks расположены и другие файлы, позволяющие кастомизировать шаблон без правки main-файла. Это могут быть например ушки или type_foreach-файлы.

Для своих шаблонов вы можете использовать модульные сетки из Default, с готовыми blocks-файлами. Что касается html-разметки, то она полностью определяется css-классами и html-тэгами. В данном случае мы видим уже знакомый пример разметки flex-сетки.

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

Некоторые модульные сетки особенные. Сетки landing, landing0 и content-only используются для создания лендингов: в них нет обрамляющей html-разметки, поэтому её нужно формировать прямо в тексте записи.

Особенно удобно при этом использовать парсера Simple.

У модульной сетки может быть специальный файл main-function.php, в котором можно разместить дополнительный php-код, через который можно учесть особенности её вывода.