Cotonti шаблон

    Cotonti шаблон выполняет роль html каркаса для вывода содержимого, как статического, так и динамического (например специальные теги, блоки или переменные).

    1. Основа шаблона Cotonti

    Основа шаблона (темы) состоит из трёх частей. Верхняя  (header.tpl) и нижняя (footer.tpl), которые выводятся глобально, и центральная (контентная), выводится между ними в зависимости от текущего расширения (большинство php файлов имеют свой .tpl файл шаблона).

    Cotonti шаблон

    2. Шаблонизатор coTemplate

    Шаблонизатор coTemplate — это замечательная возможность, позволяющая гибко настраивать Cotonti шаблон, и в то же время отделяющая полностью логическую часть кода от дизайна. Логическая часть находится в php файлах, а весь html код вынесен в .tpl файлы и ресурсы.

    Условные операторы, циклы, логические блоки, callback функции, переменные, специальные теги — всё это можно применять в шаблоне, создавая продвинутые отзывчивые сайты, подчиняющиеся логике и правилам. Шаблонизатор обрабатывает содержимое методом парсинга налету.

    3. Переменные и теги

    Переменные и теги в шаблоне окружены фигурными скобками {ПЕРЕМЕННАЯ}{ТЕГ}, шаблонизатор их подхватит автоматически. Переменную можно вывести в шаблон с помощью конструкции {PHP.переменная}, а тег просто внутри скобок, например:

    1

    2

    3

    {HEADER_TITLE} // тег заголовка в header.tpl

    {PHP.d} // переменная d, отвечает за текущую страницу

    {PHP.L.Polls} //значение Polls массива $L (для модуля опросов)

    4. Блоки

    Блоки — это основные конструкции шаблона, могут содержать вложенные, содержимое находящееся вне корневых блоков игнорируется. Это самые быстрые структуры в шаблоне, идентифицируются и выводятся контроллером, названия обязательно задаются в верхнер регистре. Пример блока:

    1

    2

    3

    <!— BEGIN: BLOCK_NAME —>

    Содержимое блока в виде обычного HTML кода

    <!— END: BLOCK_NAME —>

    5. Включение одного .tpl файла в другой

    Включение одного .tpl файла в другой с помощью конструкции FILE позволяет существенно упростить код, разбить содержимое на определенные части. Например сайдбар, меню, форму поиска, удобнее держать в отдельном файле, вместо того чтобы нагромождать код в несколько экранов для общего файла, например index.tpl, который отвечает за вывод содержимого на главной.

    Пример подключения одного tpl фала в другой (внутри него не должно быть блоков).

    1{FILE «{PHP.cfg.themes_dir}/{PHP.usr.theme}/warnings.tpl»}

    Так как Cotonti CMF является модульной системой, а шаблонизатор coTemplate позволяет создавать для каждого standalone  модуля / плагина отдельный .tpl файл.  Набор файлов внутри папки шаблона будет зависеть от набора установленных расширений.

    По умолчанию каждое standalone расширение имеет необходимые файлы в папке tpl самого модуля или плагина, поэтому не обязательно его копировать в шаблон. Это может понадобиться в том случае, если планируется изменять что-то, делать свой дизайн. Тогда нужно скопировать  нужные файлы в одноименную с расширением папку внутри шаблона.

    6. Шаблоны находятся в корневой папке themes

    Так как все шаблоны находятся в корневой папке themes , то копировать файлы нужно в /themes/ваш шаблон/ или в /themes/ваш шаблон/расширение. Под расширением подразумевается название модуля или плагина, tpl файлы которого копируются. Например файл page.list.tpl нужно скопировать в папку шаблона или создать папку page, и скопировать в неё.

    Шаблонизатор отдаёт преимущество папке в шаблоне по сравнению с папкой в самом плагине. Это сделано специально, чтобы можно было изменять содержимое .tpl файлов не на оригинале, а на копии, которая и будет отображаться. Особенно актуально это для новичков. Если что-то не так сделал, можно удалить, или заменить копией оригинала снова и снова.

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

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

    Как уже было сказано выше, верхняя и нижняя части шаблона (header.tpl и footer.tpl) выводятся глобально. Это значит, что добавленное содержимое будет отображаться везде одинаково, например верхнее меню, шапка, добавленные в header.tpl будут выводиться везде, как и содержимое добавленное в footer.tpl, например счетчик.

    Таким образом можно вывести каркас, точнее его верхнюю и нижнюю части. А содержимое центральной части является в подавляющем большинстве динамическим, и могут понадобиться разные варианты вывода. Главная страница это одно (index.tpl), а полная новость это другое (page.tpl). Форма обратной связи это третье (contact.tpl), а добавление новости это четвертое (page.add.tpl), и тд.

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

    7. Натянуть свою верстку на Cotonti

    Чтобы натянуть свою верстку на Cotonti шаблон нужно сначала определиться, какие расширения нужны. Затем перенести верхнюю часть верстки в header.tpl , нижнюю часть в footer.tpl, добавить туда соответствующие блоки и теги (посмотреть в шаблоне дистрибутива). После этого приступить к интеграции центральной части в нужные файлы (index.tpl, page.list.tpl и тд) в зависимости от задумок.

    8. Дебаггер

    Для того чтобы узнать, какие теги доступны в конкретном файле, достаточно включить дебаггер. Делается это довольно просто. Открываем файл конфигурации, который лежит в корневой папке /datas/, называется он config.php. В нём находим:

    1$cfg[‘debug_mode’]= FALSE;

    Меняем значение на:

    1$cfg[‘debug_mode’]= TRUE;

    После чего можно пользоваться, для этого достаточно на странице расширения (например для page.tpl это будет страница самой новости) в адресной строке браузера после самого адреса добавить:

    1&tpl_debug=1

    В результате чего на экран выведутся все доступные в этой части теги. Также можно воспользоваться расшифровкой содержимого переменных с помощью колбек функции dump(), размещенной в нужном .tpl файле. Радиус её применения достаточно широк, можно применять как саму по себе, для вывода всего списка переменных, так и для конкретного тега или переменной, например:

    1

    2

    3

    {PHP|dump}

    {ANY_TAG|dump}

    {PHP.env|dump}

    Не рекомендуется включать дебаггер на работающем сайте, с посетителями. Лучше это делать на тестовом. А если всё-таки включали, то не забудьте вернуть значение в  $cfg[‘debug_mode’]= FALSE, иначе кто угодно сможет посмотреть содержимое переменных.

    Шаблонизатор coTemplate имеет много возможностей, для раскрытия которых нужна отдельная статья. Здесь же примеры приведены для общего понимания потенциала работы с шаблонами в Cotonti. Любой из tpl файлов это по сути своей обычный html, внутри которого выводятся блоки, теги, переменные, функции. На этом тема «Cotonti шаблон» не заканчивается, есть еще много интересных возможностей, которые обязательно будут описаны в следующих статьях.

    Близкие по теме «Cotonti шаблон»

    Создание сайта

    Поделиться:
    Нет комментариев

      Добавить комментарий

      Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

      ×
      Рекомендуем посмотреть
      Cогласие на обработку своих персональных данных Политика конфиденциальности Договор публичной оферты