1 | selectTpl() | Выбирает шаблон |
2 | assign() | Передает переменные в шаблон |
3 | assignHtml() | Передает обработанные переменные в шаблон |
4 | setBlock() | Устанавливает блок |
5 | clearBlock() | Удаляет блок |
6 | extendsTpl() | Наследует макет от шаблона |
7 | parseTpl() | Разбирает и заполняет шаблон |
8 | display() | Визуализирует шаблон |
Выбирает шаблон
Метод загружает для разбора выбранный шаблон. Аргументом принимает путь от директории с шаблонами и название файла без расширения
public Template::selectTpl ( $tplName ) | ||
$tplName | string | Имя шаблона без расширения |
return | $this | Объект |
---|
Передает переменные в шаблон
Этот метод передает значения переменных в шаблон как по имени, так и массивом. При передаче массива ключи становятся именами переменных, а значения их заполняют.
Смотри еще assignHtml().
public Template::assign ( $data, $value = null ) | ||
$data | string|array | Имя переменной в шаблоне. Либо массив, где ключи - имена переменных. |
$value | string | Значение переменной, если первым аргументом передано имя. |
return | $this | Объект |
---|
Передает переменные в шаблон
Этот метод передает значения переменных в шаблон как по имени, так и массивом, предварительно обработав их htmlspecialchars(). При передаче массива, ключи становятся именами переменных, а значения их заполняют.
Смотри еще assign().
public Template::assignHtml ( $data, $value = null ) | ||
$data | string|array | Имя переменной в шаблоне. Либо массив, где ключи - имена переменных. |
$value | string | Значение переменной, если первым аргументом передано имя. |
return | $this | Объект |
---|
Устанавливает блок
Этот метод визуализирует блок, выделенный специальной разметкой
<!--// blockName -->Block<!--// blockName end -->
столько раз, сколько раз вызван метод.
Смотри еще clearBlock().
public Template::setBlock ( $blockName ) | ||
$blockName | string | Название устанавливаемого блока. |
return | $this | Объект |
---|
Удаляет блок
Удаляет из стека шаблонизатора блок с названием, переданным в аргумент. Но оставляет уже визуализированные.
Смотри еще setBlock().
public Template::clearBlock ( $blockName ) | ||
$blockName | string | Название удаляемого блока. |
return | $this | Объект |
---|
Наследует макет от шаблона
Помещает шаблон в макет и передает в макет переменные, назначенные в шаблоне.
public Template::extendsTpl ( $block, $layout = null ) | ||
$block | string | Блок (имя переменной), куда будет помещен шаблон |
$layout | string | Макет (главный шаблон) |
return | $this | Объект |
---|
Разбирает и заполняет шаблон
Возвращает заполненный шаблон в виде строки.
public Template::parseTpl ( ) | ||
return | string | Заполненный шаблон |
---|
Визуализирует шаблон
Выдает результат работы шаблонизатора в поток.
public Template::display ( ) | ||
return | void |
---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ABC-Framework</title>
</head>
<body>
<div class="content">
<!--// content -->
<!--// content end -->
</div>
<div class="footer">
© 2015-{{$date}} IRBIS-team
</div>
</body>
</html>
1
2
3
4
5
6
7
<!--// hello -->
<div style="text-align:center">
<h2>{{$hello}}</h2>
</div>
<!--// hello end -->
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
namespace App\Views;
use ABC\Core\Base;
class MainView extends Base
{
public function createHello()
{
// Выбираем шаблон
$this->selectTpl('main');
// Получаем контент из модели
$data = $this->getModel('MainModel')->getContent();
// Передаем контент в переменную $hello шаблона
$this->tpl->assign('hello', $data['hello']);
// Mожно передать значение переменной прямо в макет:
$this->tpl->assign('date', date('Y'));
// Шаблонизатор наследует макет (по умолчанию index.tpl)
// и выводит в него шаблон
$this->tpl->extendsTpl('content');
// Выводим результат в поток
$this->render();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
namespace App\Views;
use \ABC;
use ABC\Core\Base;
class MainView extends Base
{
public function createHello()
{ // Новый экземпляр шаблонизатора
$tpl = ABC::newService(ABC::TEMPLATE);
$tpl->selectTpl('main');
$data = $this->getModel('MainModel')->getContent();
$tpl->assignHtml($data);
$tpl->setBlock('hello');
$tpl->extendsTpl('content');
$tpl->display();
}
}