Шаг 1 Подготовка
Определите название для вашей разметки. Мы будем использовать имя example.
Шаг 2 Создание новой разметки
Самый простой способ создания — это скопировать существующий файл разметки и модифицировать его. Нужные нам файлы находятся в этой директории ВАШ_САЙТ/libraries/gantry/html/layouts/
.Разберем файл mod_standard.php
, скопируем его в директорию ВАШ_САЙТ/templates/ВАШ_ШАБЛОН/html/layouts
(если такой папки нет — создайте её).
Шаг 3 Структура файла
Каждая пользовательская разметка модулей использует функцию render(), отвечающую за вывод и отображение разметки. В данном случае, так как мы имеем скопированную уже существующую разметку, она будет уже написана. В шапке данного модуля находятся параметры gantry, которые не следует изменять.
function render($params = array()){
/** @var $gantry Gantry */
global $gantry;
$rparams = $this-> _getParams($params);
$prefixClass = '';
if ($rparams->prefixCount !=0) {
$prefixClass = " rt-prefix-".$rparams->prefixCount;
}
ob_start();
// XHTML LAYOUT
.....
После строки ob_start() (Эта функция включает буферизацию вывода) разметка должна быть описана в XHTML. После добавления вашего XHTML кода, необходимо получить содержимое буфера и отчистить его с помощью запроса ob_get_clean();. Полностью это будет выглядеть так:
class GantryLayoutMod_Standard extends GantryLayout {
var $render_params = array(
'contents' => null,
'gridCount' => null,
'prefixCount' => 0,
'extraClass' => ''
);
function render($params = array()){
/** @var $gantry Gantry */
global $gantry;
$rparams = $this-> _getParams($params);
$prefixClass = '';
if ($rparams->prefixCount !=0) {
$prefixClass = " rt-prefix-".$rparams->prefixCount;
}
ob_start();
// XHTML LAYOUT
?>
<div class="rt-grid-<?php echo $rparams->gridCount.$prefixClass.$rparams->extraClass; ?>">
<?php echo $rparams->contents; ?>
</div>
<?php
return ob_get_clean();
}
}
Шаг 4 Добавление разметки в шаблон
Откройте файл шаблона index.php
и найдите модуль, к которому нам нужно применить пользовательскую разметку. Отредактируйте функции displayModules второго параметра, дав ему имя вашей собственной разметки модулей, которую мы создавали в шаге № 3. Как показано на примере ниже:
<?php echo $gantry->displayModules('top','example','standard'); ?>