Skip to content
AntonShevchuk edited this page Oct 6, 2014 · 13 revisions

Описание

Верхний уровень двухуровневого шаблонизатора

Настройки

"layout" => array(
    "path" => PATH_APPLICATION .'/layouts',
    "template" => 'index.phtml',
    "data" => array(
        "title" => "Bluz Framework",
    ),
    "helpersPath" => PATH_APPLICATION .'/layouts/helpers',
    "helpers" => array(),
)

Использование

В большинстве функций аналогичное View:

$this->getLayout()->foo = 'bar';

Отключение Layout из контроллера:

$this->useLayout(false);

breadCrumbs

Синтаксис:

<?=$this->breadCrumbs(array $data = [])

Установка/получение списка "хлебных крошек":

<?php
// controller
Layout::breadCrumbs([
    Layout::ahref('Dashboard', ['dashboard', 'index']),
    'ACL'
]);
?>
<!-- layout -->
<ul class="breadcrumb">
<?php if (Layout::breadCrumbs()) foreach (Layout::breadCrumbs() as $crump):?>
     <li>
         <span class="divider">/</span> <?php echo $crump?>
     </li>
<?php endforeach;?>
</ul>

headScript

Синтаксис:

<?php Layout::headScript(\string $script = null)

Добавляет указанный скрипт в стек, дабы в дальнейшем вставить его в тег <head> layout'а, можно вызывать из View. Без параметров возвращает код тега <script> для вставки, и очищает стек. Если layout отсутствует (это может быть AJAX запрос), то вызов скрипта вернёт код тега <script>:

<!-- layout -->
<head>
<?=Layout::headScript()?>
</head>

<!-- view -->
<?=Layout::headScript('js/jquery.js')?>
<?=Layout::headScript('$.ready(function(){
    // la-la-la
})')?>

<!-- result -->
<head>
<script src="js/jquery.js"></script>
<script type="text/javascript">
<!--
$.ready(function(){
    // la-la-la
})	
//-->
</script>
</head>

headStyle

Синтаксис:

<?php Layout::headStyle(\string $style = null, $media = 'all')

Назначение аналогично headScript, но применительно к CSS стилям.

meta

Синтаксис:

<?=Layout::meta(\string $name = null, string $content = null)

Добавление meta тегов в тег <head>, если layout отключен, то вернётся пустая строка:

// controller or view
Layout::meta('keywords', $page->keywords);
Layout::meta('description', $page->description);
<!-- layout -->
<head>
<?=Layout::meta()?>
</head>

Clone this wiki locally