mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
Docs #209 [ru]
This commit is contained in:
parent
027075d7b5
commit
d6aa777fd0
@ -36,8 +36,9 @@ $fenom->setOptions($options);
|
||||
| *force_include* | `Fenom::FORCE_INCLUDE` | стараться по возможности вставить код дочернего шаблона в родительский при подключении шаблона | повышает производительность, увеличивает размер файлов в кеше, уменьшает количество файлов в кеше |
|
||||
| *auto_escape* | `Fenom::AUTO_ESCAPE` | автоматически экранировать HTML сущности при выводе переменных в шаблон | понижает производительность |
|
||||
| *force_verify* | `Fenom::FORCE_VERIFY` | автоматически проверять существование переменной перед использованием в шаблоне | понижает производительность |
|
||||
| *disable_php_calls* | `Fenom::DENY_PHP_CALLS` | отключает возможность вызова статических методов и функций в шаблоне | |
|
||||
| *disable_statics* | `Fenom::DENY_STATICS` | устаревшее название disable_php_calls | |
|
||||
| *disable_call* | `Fenom::DENY_CALL` | отключает возможность вызова статических методов и функций в шаблоне | |
|
||||
| *disable_php_calls* | `Fenom::DENY_PHP_CALLS` | устаревшее название disable_call | |
|
||||
| *disable_statics* | `Fenom::DENY_STATICS` | устаревшее название disable_call | |
|
||||
| *strip* | `Fenom::AUTO_STRIP` | удаляет лишиние пробелы в шаблоне | уменьшает размер кеша |
|
||||
|
||||
```php
|
||||
|
@ -100,9 +100,10 @@
|
||||
* `$.const` обращение к PHP константе: `$.const.PHP_EOL` обращение к константе `PHP_EOL`. Поддерживается пространство имен
|
||||
которое разделяется через точку: `$.const.Storage.FS::DIR_SEPARATOR` обращение к PHP константе `Storage\FS::DIR_SEPARATOR`
|
||||
если такой констатнты нет будет взята константа `Storage\FS\DIR_SEPARATOR`.
|
||||
* `$.php` обращение к статическомому методу. `$.php.Storage.FS::put($filename, $data)` обращение к методу `Storage\FS::put($filename, $data)`.
|
||||
`$.php.Storage.FS.put($filename, $data)` `Storage\FS\put($filename, $data)`
|
||||
* так же вы можете [добавить](./ext/extend.md#Расширение-глобальной-переменной) свои системные переменные и функции
|
||||
* `$.call` обращение к статическомому методу. `$.call.Storage.FS::put($filename, $data)` обращение к методу `Storage\FS::put($filename, $data)`.
|
||||
Настройка `disable_call` отключает возможность обращения к `$.call`. Так же можно ограничить и указать список доступных к вызову классов и функций.
|
||||
* `$.blocks` проверка на сущестование блоков которые были определены до момента обращения к акцессору. Например, `{$.blocks.BLOCK_NAME}`.
|
||||
* так же вы можете [добавить](./ext/extend.md#Расширение-глобальной-переменной) свои или [удалить](./ext/extend.md#Расширение-глобальной-переменной) существующие системные переменные и функции
|
||||
|
||||
|
||||
## Скалярные значения
|
||||
|
@ -45,3 +45,13 @@
|
||||
content ...
|
||||
{/block}
|
||||
```
|
||||
|
||||
### {paste}
|
||||
|
||||
```smarty
|
||||
{block 'b1'}
|
||||
...
|
||||
{/block}
|
||||
|
||||
{paste 'b1'}
|
||||
```
|
7
example/templates/main.tpl
Normal file
7
example/templates/main.tpl
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
|
||||
{foreach $list as $item}
|
||||
<ul>
|
||||
<li>{$item#index}: {$item.index}</li>
|
||||
</ul>
|
||||
{/foreach}
|
@ -5,9 +5,12 @@ require_once __DIR__.'/../tests/tools.php';
|
||||
|
||||
\Fenom::registerAutoload();
|
||||
|
||||
$fenom = Fenom::factory(__DIR__.'/../tests/resources/provider', __DIR__.'/../tests/resources/compile');
|
||||
$fenom = Fenom::factory(__DIR__.'/templates', __DIR__.'/../tests/resources/compile');
|
||||
$fenom->setOptions(Fenom::AUTO_RELOAD);
|
||||
var_dump($fenom->fetch('extends/auto/parent.tpl'));
|
||||
$fenom->addModifier('firstimg', function ($img) {
|
||||
return $img;
|
||||
});
|
||||
var_dump($fenom->compileCode('{block "pb"}- {$a} -{/block} =={paste "pb"}==')->getTemplateCode());
|
||||
//var_dump($fenom->compile("bug158/main.tpl", [])->getTemplateCode());
|
||||
//var_dump($fenom->display("bug158/main.tpl", []));
|
||||
// $fenom->getTemplate("problem.tpl");
|
2
sandbox/templates/bug215/favicon.tpl
Normal file
2
sandbox/templates/bug215/favicon.tpl
Normal file
@ -0,0 +1,2 @@
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="{$path_favicon}apple-touch-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="{$path_favicon}apple-touch-icon-60x60.png">
|
8
sandbox/templates/bug215/index.tpl
Normal file
8
sandbox/templates/bug215/index.tpl
Normal file
@ -0,0 +1,8 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
{include "bug215/favicon.tpl"}
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
@ -330,7 +330,11 @@ class Fenom
|
||||
'unset' => array(
|
||||
'type' => self::INLINE_COMPILER,
|
||||
'parser' => 'Fenom\Compiler::tagUnset'
|
||||
)
|
||||
),
|
||||
'paste' => array( // {include ...}
|
||||
'type' => self::INLINE_COMPILER,
|
||||
'parser' => 'Fenom\Compiler::tagPaste'
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -1044,4 +1044,15 @@ class Compiler
|
||||
}
|
||||
return 'unset('.implode(", ", $unset).')';
|
||||
}
|
||||
|
||||
public static function tagPaste(Tokenizer $tokens, Tag $tag)
|
||||
{
|
||||
$name = $tokens->get(T_CONSTANT_ENCAPSED_STRING);
|
||||
$tokens->next();
|
||||
if(isset($tag->tpl->blocks[$name])) {
|
||||
return "?>".substr($tag->tpl->blocks[$name]["block"], 1, -1)."<?php ";
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user