-
Notifications
You must be signed in to change notification settings - Fork 39
Layout
с версии 0.6.0 выделен в отдельный пакет со своим набором помощников
Верхний уровень двухуровневого шаблонизатора
"layout" => array(
"path" => PATH_APPLICATION .'/layouts',
"template" => 'index.phtml',
"helpersPath" => PATH_APPLICATION .'/layouts/helpers'
)
с версии 0.6.0 изменился способ вызова - теперь только через Proxy
В большинстве функций аналогичное View, а так же добавлен trait Container\RegularAccess для работы через Proxy:
Layout::set('foo', 'bar');
Отключение Layout из контроллера:
$this->useLayout(false);
Layout наследует все помощники View, и добавляет ряд своих.
Синтаксис:
Layout::breadCrumbs(array $data = [])
Установка/получение списка "хлебных крошек":
// controller
Layout::breadCrumbs([
Layout::ahref('Dashboard', ['dashboard', 'index']),
'ACL'
]);
<!-- layout -->
<?php if (Layout::breadCrumbs()): ?>
<ul class="breadcrumb">
<?php foreach (Layout::breadCrumbs() as $crump): ?>
<li>
<span class="divider">/</span> <?php echo $crump ?>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
Синтаксис:
Layout::headScript($script = null)
Добавляет указанный скрипт в стек, дабы в дальнейшем вставить его в тег <head>
layout'а, можно вызывать из контроллера и шаблонов. Без параметров возвращает код тега <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>
Синтаксис:
Layout::headStyle(string $style = null, $media = 'all')
Назначение аналогично headScript, но применительно к CSS стилям.
Синтаксис:
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>
Синтаксис:
$this->link(string $src = null, string $rel = 'stylesheet')
Добавление link тегов в тег <head>
, если layout отключен, то вернётся пустая строка:
Layout::link(['rel'=>"profile", 'href'=>"http://gmpg.org/xfn/11"]);
<!-- layout -->
<head>
<?=Layout::link()?>
</head>
Синтаксис:
Layout::title(string $title = null, string $position = 'replace', string $separator = ' :: ')
Изменяет заголовок HTML (тот что в теге <head>
), можно заменить существующий заголовок, или добавить в начало, либо конец текущего:
// controller
Layout::title('Hello', View::POS_PREPEND);
// view
Layout::title('World', View::POS_APPEND, ' ');
// layout
Layout::title();
Acl
Application
Auth
Cache
Common
— Exception
— Collection
— Container
— Helper
— Options
— Singleton
Config
Controller
— Data
— Mapper
—— Crud
—— Rest
— Reflection
Crud
— Crud Table
Db
— Row
— Table
— Relations
— Query
Debug
EventManager
Grid
Http
Layout
Logger
Mailer
Messages
Nil
Proxy
Registry
Request
Response
Router
Session
Translator
Validator
View