Шаблоны CimWebCenter используются для управления отображением информационных страниц сайта. При создании новых или редактировании существующих страниц пользователь имеет возможность выбрать один из доступных ему шаблонов. Однако, прежде эти шаблоны необходимо разработать.
Шаблон может состоять из макросов включения в себя других шаблонов, HTML и PHP кодов.
Макросы
Макросы удобно использовать для создания часто повторяющихся блоков страницы, например, блока кнопок рейтингов или мета тегов. Макросы представляют собой обычные шаблоны и могут содержать PHP код, но не могут содержать других макросов.
Синтаксис подключения макросов выглядит следующим образом:
[%my_macros_box%] , где
my_macros_box– это название шаблона, а символы [% и %] - открывающие и закрывающие знаки.
Включение PHP кода
По умолчанию система считает все шаблоны HTML кодом. Поэтому для включения в них PHP кода используется стандартный синтаксис:
<?phpInfo()?>
Подключение пользовательских библиотек из API
Для того, чтобы использовать функции пользовательского API, необходимо подключить библиотеку к шаблону:
<?require_once("./userlib/lib.inc")?> , где
lib.inc – это имя файла подключаемой библиотеки.
Подключение CSS и Javascript файлов
Разработчик шаблона должен самостоятельно позаботится о том, чтобы отображаемая страница могла использовать CSS или Javascript файлы, для этого применяется стандартный HTML синтаксис:
<LINK REL="STYLESHEET" TYPE="text/css" HREF="/css/cim.css">
<SCRIPT SRC="/js/cim.js"></SCRIPT>
где cim.css и cim.js – подключаемые CSS и Javascript файлы.
Системные переменные
При разработке шаблонов широко используются глобальные переменные:
|
$id |
ID страницы |
|
$pname |
название страницы |
|
$pcontent |
содержание страницы |
|
$pkeywords |
META name="keywords" |
|
$pdescription |
META name="description" |
|
$purl |
Метка страницы |
|
$ptitle |
Title |
|
$ppub |
Флаг публикации |
|
$ppubDate |
Дата публикации |
|
$pcreateDate |
Дата создания |
|
$pupdateDate |
Дата последнего изменения страницы |
|
$ptmpl |
Шаблон |
|
$pcss |
Файл стилей -css |
Например, для формирования заголовка страницы можно воспользоваться следующим синтаксисом:
<TITLE><?=$ptitle?></TITLE>
Системные функции
Эти функции всегда доступны. Для использования этих функций не требуется подключения дополнительных библиотек и модулей, поскольку они являются частью ядра CimWebCenter.
get_fields_length
Эта функция определяет длину полей в базе и возвращает их в именованном массиве (хеше).
Описание:
array get_fields_length($dbname, $tbname)
возвращает array('field1_name' => $field1_length, 'field2_name' => $field2_length, … ), $dbname - имя базы,$tbname - имя таблицы.
query_die
Эта функция завершения работы скрипта и вывод информации об ошибке SQL запроса.
Описание:
void query_die()
is_folder
Эта функция определяет является ли объект папкой.
Описание:
boolis_folder($id [, $table])
возвращает TRUE если да и FALSE если нет, $tbname - не обязательный параметр, имя таблицы, по умолчанию "relation".
get_name
Эта функция нахождения имени объекта по его ID.
Описание:
string get_name($id [, $tbname ])
Возвращает имя объекта, $id - ID объекта, $tbname - не обязательный параметр, имя таблицы, по умолчанию "object".
split_on_page
Эта функция выполняет постраничный вывод длинного списка.
Описание:
array function split_on_page($pstr, $num_rows, $pos [, $tmpl_label, $cfgMaxRows, $cfgMaxPages] )
Где $num_rows - общее кол-во элементов, которое нужно разбить на страницы, $pos - позиция, с которой начинается вывод, $tmpl_label - шаблон (по умолчанию - 'SPLIT_ON_PAGE'), $cfgMaxRows - кол-во строк на странице (по умолчанию 30),
$cfgMaxPages - кол-во ссылок на страницы (это когда появляется ссылка "Далее") по умолчанию 10. (по-умолчанию означает, что эти параметры можно не писать в функции вообще), $pstr - строка, которая будет выводиться в ссылке перед номером $pos (это нужно, если кроме номера позиции нужно передавать еще какие-нибудь параметры, например нужно передать $a=2, $b=4. Название переменной $pos пусть будет "pageNumber"), пишем split_on_page('a=2&b=4&pageNumber=', …), получаем ссылки:
для первой страницы <ahref="a=2&b=4&pageNumber=0">…
для второй страницы <ahref="a=2&b=4&pageNumber=30">…
Возвращает массив array($LIMIT, $tmpl), первый елемент которого строка для подстановки в SQL запрос для ограничения вывода строк:
$LIMIT = " LIMIT 30, 20";
второй элемент – шаблон панели постраничного вывода( <<Prev 1/ 2/ 3/ 4/ Next>> )
object_properties
Эта функция возвращает свойства объекта в виде именованного массива.
Описание:
array object_properties($objectID)
$objectID - ID объекта, возвращает массив:
array(
'url' => URL объекта,
'title' =>TITLE объекта,
'name' => название объекта,
'content' => контент,
'keywords' => KEYWORDS,
'description' => DESCRIPTION,
'pub' => публикуемый ли объект (значения'Y' или 'N'),
'createDate' => дата создания в формате TIMESTAMP,
'updateDate' => дата последнего изменения в формате TIMESTAMP
'pubDate' =>- дата публикации в формате TIMESTAMP
'css' => файл css объекта,
'tmpl' => текст шаблона этого объекта,
)
object_childsProperties
Эта функция возвращает многомерный массив свойств объектов, которые являются дочерними к заданному.
Описание:
array object_childsProperties($parentID [, $order = 'number', $pub = ['Y', 'N', FALSE]] )
$parentID - ID родительского объекта
$order - не обязательный параметр - порядок сортировки, по умолчанию "number"
$pub - не обязательный параметр - выборка элементов, отмеченных как "публикуемые", по умолчанию 'Y',если FALSE, то поле pub вообще не учитывается (выбираются и публикуемые и не публикуемые элементы).
Возвращает массив:
array(
нулевой элемент => array(
'id' => ID объекта,
'url' => URL объекта,
'title' => TITLE объекта,
'name' => название объекта,
'content' => контент,
'keywords' => KEYWORDS,
'description' => DESCRIPTION,
'pub' => публикуемый ли объект (значения 'Y' или 'N'),
'createDate' => элемент - дата создания в формате TIMESTAMP,
'updateDate' => дата последнего изменения в формате TIMESTAMP
'pubDate' =>дата публикации в формате TIMESTAMP
первый элемент => array(
'id' => ID объекта,
'url' => URL объекта,
'title' => TITLE объекта,
'name' => название объекта,
'content' => контент,
'keywords' => KEYWORDS,
'description' => DESCRIPTION,
'pub' => публикуемый ли объект (значения 'Y' или 'N'),
'createDate' => дата создания в формате TIMESTAMP,
'updateDate' => дата последнего изменения в формате TIMESTAMP
'pubDate' =>дата публикации в формате TIMESTAMP
)
object_parentsProperties
Эта функция возвращает многомерный массив свойств объектов, которые являются родительскими к заданному.
Описание:
array object_parentsProperties($childID [, $order = 'number', $pub = ['Y', 'N', FALSE]] )
$childID - ID дочернего объекта
$order - не обязательный параметр - порядок сортировки, по умолчанию "number"
$pub - не обязательный параметр - выборка элементов, отмеченных как "публикуемые", по умолчанию 'Y', если FALSE, то поле pub вообще не учитывается (выбираются и публикуемые и не публикуемые элементы)
Возвращает массив:
array(
нулевой элемент => array(
'id' => ID объекта,
'url' => URL объекта,
'title' => TITLE объекта,
'name' => название объекта,
'content' => контент,
'keywords' => KEYWORDS,
'description' => DESCRIPTION,
'pub' => публикуемый ли объект (значения 'Y' или 'N'),
'createDate' => элемент - дата создания в формате TIMESTAMP,
'updateDate' => дата последнего изменения в формате TIMESTAMP
'pubDate' =>дата публикации в формате TIMESTAMP
первый элемент => array(
'id' => ID объекта,
'url' => URL объекта,
'title' => TITLE объекта,
'name' => название объекта,
'content' => контент,
'keywords' => KEYWORDS,
'description' => DESCRIPTION,
'pub' => публикуемый ли объект (значения 'Y' или 'N'),
'createDate' => дата создания в формате TIMESTAMP,
'updateDate' => дата последнего изменения в формате TIMESTAMP
'pubDate' =>дата публикации в формате TIMESTAMP
)
get_file($filename)
Эта функция принимает параметром имя файла на диске и возвращает содержимое этого файла как строку.
Описание:
string get_file($filename)
get_index_page_ID
Возвращает ID главной страницы сайта.
Описание:
int get_index_page_ID()