mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
Rename Cytro to Fenom
This commit is contained in:
@@ -31,19 +31,3 @@ Variant #2. Сloudy.
|
||||
Variant #3. Rain.
|
||||
|
||||
Variant #4. Tornado.
|
||||
|
||||
|
||||
|
||||
Error Info (x2) :
|
||||
Exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '839621621,839622021)' at line 1
|
||||
Query: SELECT `image_id`, `filename` FROM `s3_image_version` WHERE `format_id`=1 AND `image_id` IN (,839621621,839622021)
|
||||
#0 /www/oml.ru/s3/lib/class.db.php(480): Db::parseError('SELECT `image_i...')
|
||||
#1 /www/oml.ru/s3/forms/class.shop2.product.form.php(225): Db::query('SELECT `image_i...')
|
||||
#2 /www/oml.ru/s3/lib/class.form.php(2390): Shop2ProductForm->fillControls()
|
||||
#3 /www/oml.ru/s3/lib/class.form.php(1444): Form->execute()
|
||||
#4 /www/oml.ru/public/my/s3/data/shop2_product/edit.cphp(44): Form->display(Object(Smarty), 'form.ajax.tpl')
|
||||
#5 {main}
|
||||
|
||||
Place: /www/oml.ru/s3/lib/class.db.php:607
|
||||
Time: 2013-06-05 03:54:51
|
||||
Url: http://agyumama.ru/my/s3/data/shop2_product/edit.cphp?shop_id=196421&ver_id=636664&access=u%3B270377&popup=1&product_id=89445221&rnd=9296&xhr=1
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
|
||||
```
|
||||
$cytro->addModifier(string $modifier, callable $callback);
|
||||
$fenom->addModifier(string $modifier, callable $callback);
|
||||
```
|
||||
|
||||
* `$modifier` - название модификатора, которое будет использоваться в шаблоне
|
||||
@@ -16,7 +16,7 @@ For example:
|
||||
```
|
||||
|
||||
```php
|
||||
$cytro->addModifier('my_modifier', function ($variable, $param1, $param2) {
|
||||
$fenom->addModifier('my_modifier', function ($variable, $param1, $param2) {
|
||||
// ...
|
||||
});
|
||||
```
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
Parsing templates
|
||||
=================
|
||||
Parsing templates [RU]
|
||||
======================
|
||||
|
||||
### Tokenizer
|
||||
|
||||
Объект Tokenizer содержит список готовых к обработке токенов и необходимые для фильтрации токенов методы. Помимо основнях констант расширения Tokenizer у объекта есть макросы, объединения, определенных токенов.
|
||||
|
||||
### Parsers
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
Add template provider
|
||||
Add template provider [RU]
|
||||
=====================
|
||||
|
||||
Источники шаблонов позволяют хранить шаблоны не только на файловой системе, а там где вам удобдно будет. Что бы указать откуда нужно взять шаблон используется схема в имени шаблона `db:page/about.tpl`, шаблон будет взят из источника `db`. Источник шаблонов добавляется через метод `addProvider`, при добавлении необходимо указать схему по которой можно запросить шаблон из этого источника:
|
||||
|
||||
```php
|
||||
$fenom->addProvider("db", $db_provider);
|
||||
```
|
||||
@@ -11,15 +11,15 @@ Tags [RU]
|
||||
Примитивное добавление функции можно осуществить следующим образом:
|
||||
|
||||
```php
|
||||
$cytro->addFunction(string $function_name, callable $callback[, callable $parser]);
|
||||
$fenom->addFunction(string $function_name, callable $callback[, callable $parser]);
|
||||
```
|
||||
|
||||
В данном случае запускается стандартный парсер, который автоматически разберет аргументы тега, которые должны быть в формате HTML аттрибутов и отдаст их в функцию ассоциативным массивом.
|
||||
В данном случае вы можете переопределить парсер на произвольный в формате `function (Cytro\Tokenizer $tokenizer, Cytro\Template $template)`
|
||||
В данном случае вы можете переопределить парсер на произвольный в формате `function (Fenom\Tokenizer $tokenizer, Fenom\Template $template)`
|
||||
Существует более совершенный способ добавления функции:
|
||||
|
||||
```php
|
||||
$cytro->addFunctionSmarty(string $function_name, callable $callback);
|
||||
$fenom->addFunctionSmarty(string $function_name, callable $callback);
|
||||
```
|
||||
|
||||
В данном случае парсер просканирует список аргументов коллбека и попробует сопоставить с аргументами из тега. Таким образом вы успешно можете добавлять Ваши штатные функции.
|
||||
@@ -29,7 +29,7 @@ $cytro->addFunctionSmarty(string $function_name, callable $callback);
|
||||
Добавление блоковой функции аналогичен добавлению строковой за исключением того что есть возможность указать парсер для закрывающего тега.
|
||||
|
||||
```php
|
||||
$cytro->addBlockFunction(string $function_name, callable $callback[, callable $parser_open[, callable $parser_close]]);
|
||||
$fenom->addBlockFunction(string $function_name, callable $callback[, callable $parser_open[, callable $parser_close]]);
|
||||
```
|
||||
|
||||
Сам коллбек принимает первым аргументом контент между открывающим и закрывающим тегом, а вторым аргументом - ассоциативный массив из аргуметов тега.
|
||||
@@ -39,14 +39,14 @@ $cytro->addBlockFunction(string $function_name, callable $callback[, callable $p
|
||||
Добавление строчного компилятора осуществляеться очень просто:
|
||||
|
||||
```php
|
||||
$cytro->addCompiler(string $compiler, callable $parser);
|
||||
$fenom->addCompiler(string $compiler, callable $parser);
|
||||
```
|
||||
|
||||
Парсер должен принимать `Cytro\Tokenizer $tokenizer`, `Cytro\Template $template` и возвращать PHP код.
|
||||
Парсер должен принимать `Fenom\Tokenizer $tokenizer`, `Fenom\Template $template` и возвращать PHP код.
|
||||
Компилятор так же можно импортировать из класса автоматически
|
||||
|
||||
```php
|
||||
$cytro->addCompilerSmart(string $compiler, $storage);
|
||||
$fenom->addCompilerSmart(string $compiler, $storage);
|
||||
```
|
||||
|
||||
`$storage` может быть как классом так и объектом. В данном случае шаблонизатор будет искать метод `tag{$compiler}`, который будет взят в качестве парсера тега.
|
||||
@@ -56,13 +56,13 @@ $cytro->addCompilerSmart(string $compiler, $storage);
|
||||
Добавление блочного компилятора осуществяется двум способами. Первый
|
||||
|
||||
```php
|
||||
$cytro->addBlockCompiler(string $compiler, array $parsers, array $tags);
|
||||
$fenom->addBlockCompiler(string $compiler, array $parsers, array $tags);
|
||||
```
|
||||
|
||||
где `$parser` ассоциативный массив `["open" => parser, "close" => parser]`, сождержащий парсер на открывающий и на закрывающий тег, а `$tags` содержит список внутренних тегов в формате `["tag_name"] => parser`, которые могут быть использованы только с этим компилятором.
|
||||
Второй способ добавления парсера через импортирование из класса или объекта методов:
|
||||
|
||||
```php
|
||||
$cytro->addBlockCompilerSmart(string $compiler, $storage, array $tags, array $floats);
|
||||
$fenom->addBlockCompilerSmart(string $compiler, $storage, array $tags, array $floats);
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user