Основа шаблонизатора

Вводная часть

В CMS MMOWEB упрощена шаблонизация сайта на сколько это было возможно, добавлены теги отвечающие за рендеринг виджетов и основных элементов движка.

Список основных тегов.

<html lang="{$_LANG}">
  <head>
    {$_SEO_HEAD}
  </head>
  <body class="body">
    {$_SEO_BODY}
      .....
    {$_SEO_FOOTER}
  </body>
</html>

SEO теги и подключение js и css файлов.

Рекомендовано для сайтов использующие переключения языков все заголовки содержанию информацию на нескольких языках к примеру такие как title description и тому подобные выносить в файл Headers.php формат:

return array(
    'ru' => array(
        //Общий конфиг для лк
        'init' => array(
            'head' => array(
                ['idx' => 'title',      'typex' => 'title',                                         'content' => '%site_name% Сайт сервера %server_name%.'],
                ['idx' => 'og_title',   'typex' => 'meta', 'property' => 'og:title',                'content' => '%site_name% Сайт сервера %server_name%.'],
                ['idx' => 'og_s_name',  'typex' => 'meta', 'property' => 'og:site_name',            'content' => '%site_name%'],
                ['idx' => 'og_type',    'typex' => 'meta', 'property' => 'og:type',                 'content' => 'website'],
                ['idx' => 'og_url',     'typex' => 'meta', 'property' => 'og:url',                  'content' => '%url%'],
                ['idx' => 'desc',       'typex' => 'meta', 'name' => 'description',                 'content' => '%site_name% Сайт сервера %server_name%!'],
                ['idx' => 'og_desc',    'typex' => 'meta', 'property' => 'og:description',          'content' => '%site_name% Сайт сервера %server_name%!'],
                ['idx' => 'tw_desc',    'typex' => 'meta', 'property' => 'twitter:description',     'content' => '%site_name% Сайт сервера %server_name%!'],
                ['idx' => 'keywords',   'typex' => 'meta', 'name' => 'keywords',                    'content' => 'mmoweb, mmoweb4'],

            ),
        ),
    ),
    'en' => array(),
);

Для создания источника тега необходимо создать по примеру запись в массиве head обязательные поля idx - ключ тега для замены из файла IncludeJsCss.php в случаях когда сайт содержит больше 1 страницы и необходимо заменить тег на другой typex - ключ указывающий, что за тип тега может иметь следующие значения title, meta, link, script, html

Значения поля typex

Пример создания тега:

['idx' => 'favicons', 'typex' => 'link', 'rel' => 'shortcut icon', 'href' => TEMPLATE_DIR.'/images/favicon.ico'],

Результат:

<link rel="shortcut icon" href="/template/site/multiworld/images/favicon.ico">

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

Параметры автозамены в тегах

В CMS MMOWEB есть дополнительная возможность передавать определенные вложения которые будут на выходе замениться в зависимости от настроек и выбранных параметров пользователя, к примеру %site_name% заменится на название проекта которое вы указали в админ панели mmoweb.biz.

Доступные значения.

Для более продвинутых можно самостоятельно добавить значения Class/SeoX.php method initReplaceTeg()

Редактирование IncludeJsCss.php

IncludeJsCss.php по сравнению с Headers.php имеет массив с body и footer вставляя теги в эти поля они будут отрисовываться в одноименных шаблонных тегах {$_SEO_HEAD} и {$_SEO_FOOTER} принцип добавления такой же, как и Headers.php.

Добавление тега из шаблона

Бывают задачи добавить JS или CSS только в определенном шаблоне, для этого есть конструкция

{$.site._SEO->addTegHTML('head', 'telInput_css', 'link', ['rel'=>'stylesheet', 'href'=> $.const.VIEWPATH~'/panel/assets/css/intl-telInput/intlTelInput.css?ver=0.1'])}
{$.site._SEO->addTegHTML('footer', 'telInput', 'script', ['src'=> $.const.VIEWPATH~'/panel/assets/js/plugins/intl-telInput/intlTelInput.js?ver=0.1'])}

И при вызове шаблона, где объявлены эти методы будет произведена вставка перед отрисовкой.

Теги виджетов на сайте

Су шествует набор тегов шаблонизатора, для вставки модулей к примеру: статус серверов переключение языка и прочего.

Список доступных тегов для сайта

Last updated