Современная, быстрая и удобная система управления сайтом

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

Любой шаблон начинается с модульной сетки. Технически — это 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-код, через который можно учесть особенности её вывода.