Часть 2. Вставляем код
Теперь добавим в шаблон разметку системы, которая будет указывать куда и что выводить.
1. В самое начало файла template.php вставляем строку:
<?php if(!defined('VALID_CMS')) { die('ACCESS DENIED'); } ?>
Это запретит обращаться к файлу шаблона напрямую.
В файле template.php (его области видимости ) будут доступны объекты классов: $inCore, $inUser, $inPage($this), $inConf и $inDB.
Затем нужно включить в область <head> вывод метода printHead():
<head> <?php $this->printHead(); ?> <link href="/templates/mytemplate/css/styles.css" rel="stylesheet" type="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head>
Обратите внимание, что в области <head> шаблона только 2 тега - один подключает стили, а другой задает кодировку. Никаких других тегов здесь указывать не нужно, они будут генерироваться системой.
2. Далее в том месте, где должно быть название сайта, вставляем:
<?php $this->printSitename(); ?>
3. В месте размещения глубиномера (пути, пройденного пользователем на сайте) вставляем:
<?php $this->printPathway('→'); ?>
В кавычках можно указать символ-разделитель или его html-код.
4. Далее дело за модулями. В InstantCMS каждому модулю можно указать позицию для вывода (т.е. в какой части страницы его отображать). Выбирать можно только из тех позиций, которые представлены в шаблоне. Чтобы указать позицию в шаблоне используется метод printModules :
<?php $this->printModules('top'); ?>
Что произойдет, если например посетитель откроет пункт меню, к которому не привязан ни один модуль с позицией "right"? Правая колонка останется пустой. чтобы избежать этого, в шаблоне можно сначала проверять, есть ли модули назначенные на эту позицию, а уже потом выводить колонку таблицы. Пример:
<tr> <?php if ($this->countModules("left")) { ?> <td><?php $this->printModules("left"); ?></td> <?php } ?> <?php if ($this->countModules("top")) { ?> <td><?php $this->printModules("top"); ?></td> <?php } ?> <?php if ($this->countModules("right")) { ?> <td><?php $this->printModules("right"); ?></td> <?php } ?> </tr>
Метод countModules возвращает количество модулей, назначенных на позицию. Т.е. теперь, если модулей на позиции нет, то и колонка не будет выводится.
4. Теперь ваш шаблон готов и вы можете прислать его нам для добавления в репозитарий и участия в рейтингах и конкурсах :)
Кроме этого краткого, базового описания есть и более подробные, написанные нашими участниками в блогах, например рекомендуем к прочтению серию публикаций из тринадцати частей пользователя Pasha — "Шаблон своими руками".