Gantry 4 framework

Создание разметки для модуля в шаблонах Gantry

Joomla

Создание разметки для модуля

Шаг 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'); ?>

Оригинальная статья: Gantry team
Artem Valchuk
Привет меня зовут Артем. Я занимаюсь разработкой сайтов, шаблонов HTML, Joomla и WP.