mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
Update docs
This commit is contained in:
118
docs/syntax.md
118
docs/syntax.md
@ -1,7 +1,7 @@
|
||||
Синтаксис
|
||||
=========
|
||||
|
||||
### Вывод переменной
|
||||
### Переменные
|
||||
|
||||
Вывод значений переменных в шаблонизаторе Aspect идентичен правилам вывода шаблонизатора Smarty
|
||||
|
||||
@ -36,13 +36,22 @@
|
||||
### Математические операции
|
||||
|
||||
```smarty
|
||||
{$x+$y} // will output the sum of x and y.
|
||||
{$foo[$x+3]} // as array index
|
||||
{$x+$y}
|
||||
{$foo[$x+3]}
|
||||
{$foo[$x+3]*$x+3*$y % 3}
|
||||
```
|
||||
|
||||
[Список всех операторов](./operators.md)
|
||||
|
||||
### Объявление переменных
|
||||
|
||||
```smarty
|
||||
{var $foo = "bar"}
|
||||
{var $foo = 5}
|
||||
```
|
||||
|
||||
в качестве значения так же допускаются математические, логические операции и результаты функций
|
||||
|
||||
```smarty
|
||||
{var $foo = $x + $y}
|
||||
{var $foo = $x.y[z] + $y}
|
||||
@ -51,12 +60,22 @@
|
||||
{var $foo.bar.baz = 1}
|
||||
```
|
||||
|
||||
Подробнее смотрите [{var}](./tags/var.md)
|
||||
|
||||
#### Объявление массивов
|
||||
|
||||
```smarty
|
||||
{var $foo=[1,2,3]}
|
||||
{var $foo=['y'=>'yellow','b'=>'blue']}
|
||||
{var $foo=[1,[9,8],3]} // can be nested
|
||||
{var $foo=['y'=>'yellow','b'=>'blue']} can be associative
|
||||
{var $foo=[1,[9,8],3]} can be nested
|
||||
```
|
||||
|
||||
в качестве ключа и значения так же допускаются математические, логические операции и результаты функций
|
||||
|
||||
```smarty
|
||||
{var $foo=[$a, $d.c, $a + $f]}
|
||||
{var $foo=['y'=>'yellow', $color=>$colors[ $color ]} can be associative
|
||||
{var $foo=[1,[$parent ,$a + $e],3]} can be nested
|
||||
```
|
||||
|
||||
### Работа с объектами
|
||||
@ -66,22 +85,42 @@
|
||||
{var $foo=$object->item->method($y, 'named')}
|
||||
```
|
||||
|
||||
Вызов метода в шаблоне можно запретить [настройками](./settings.md)
|
||||
|
||||
### Работа со строками
|
||||
### Работа со скалярными значениями
|
||||
|
||||
Строки в Aspect обрабатываются идентично правилам подстановки переменных в строки в PHP, т.е. в двойных кавычках переменная заменяется на её значение, в одинарных замены не происходит.
|
||||
В отличие от Smarty в строках не обрабатываются управляющие конструкции, например "if", но работают модификаторы.
|
||||
|
||||
```smarty
|
||||
{var $foo="Ivan"}
|
||||
{var $user.name="Ivan"}
|
||||
{"Hi, $foo"} выведет "Hi, Ivan"
|
||||
{"Hi, {$foo}"} выведет "Hi, Ivan"
|
||||
{"Hi, {$user.name}"} выведет "Hi, Ivan"
|
||||
{var $foo="Username"}
|
||||
{var $user.name="Username"}
|
||||
{"Hi, $foo"} выведет "Hi, Username"
|
||||
{"Hi, {$foo}"} выведет "Hi, Username"
|
||||
{"Hi, {$user.name}"} выведет "Hi, Username"
|
||||
{var $message = "Hi, {$user.name}"}
|
||||
{'Hi, $foo'} выведет 'Hi, $foo'
|
||||
{'Hi, {$foo}'} выведет 'Hi, {$foo}'
|
||||
```
|
||||
|
||||
Переменные в строках так же поддерживают [модификаторы](#modifiers)
|
||||
|
||||
```smarty
|
||||
{"Hi, {$user.name|up}"} outputs Hi, USERNAME
|
||||
```
|
||||
|
||||
Поддерживается вызов методов
|
||||
|
||||
```smarty
|
||||
{"Hi, {$user->getName(true)}"} outputs Hi, Username
|
||||
```
|
||||
|
||||
Числовые значение обрабатывается как есть
|
||||
|
||||
```smarty
|
||||
{2|pow:10}
|
||||
{var $magick = 5381|calc}
|
||||
```
|
||||
|
||||
### Модификаторы
|
||||
|
||||
* Модификаторы позволяют изменить значение переменной перед выводом или использованием в выражении
|
||||
@ -92,30 +131,31 @@
|
||||
* Модификаторы могут составлять цепочки. В этом случае они применяются к переменной последовательно слева направо
|
||||
|
||||
```smarty
|
||||
{var $foo="Ivan"}
|
||||
{$foo|upper} выведет "IVAN"
|
||||
{$foo|lower} выведет "ivan"
|
||||
{var $foo="User"}
|
||||
{$foo|upper} выведет "USER"
|
||||
{$foo|lower} выведет "user"
|
||||
{"{$foo|lower}"} выведет "user"
|
||||
{"User"|lower}} выведет "user"
|
||||
{$looong_text|truncate:80:"..."} обрежет текст до 80 символов и добавит "..." в конец текста
|
||||
{$looong_text|lower|truncate:$settings.count:$settings.etc}
|
||||
{var $foo="Ivan"|upper} переменная $foo будет содержать "IVAN"
|
||||
{var $foo="Ivan"|upper} переменная $foo будет содержать "USER"
|
||||
```
|
||||
|
||||
Подробнее модификаторы описаны в разделе [модификаторы](./docs/modifiers.md)
|
||||
[Список модификаторов](./main.md#modifiers)
|
||||
|
||||
### Функции
|
||||
### Теги
|
||||
|
||||
Каждый тэг шаблонизатора либо выводит переменную, либо вызывает какую-либо функцию.
|
||||
Каждый тэг шаблонизатора либо выводит переменную, либо вызывает какую-либо функцию. (переписать)
|
||||
Тег вызова функции начинается с названия функции и содержит список аргументов:
|
||||
|
||||
```smarty
|
||||
{FUNCNAME attr1 = "val1" attr2 = $val2}
|
||||
```
|
||||
|
||||
Это общий формат функций, но могут быть исключения, например функция {var}, использовавшаяся выше.
|
||||
Это общий формат функций, но могут быть исключения, например функция [{var}](./tags/var.md), использованная выше.
|
||||
|
||||
```smarty
|
||||
{include file="my.tpl"}
|
||||
{mailto address="bzick@megagroup.ru" text="Article's author"}
|
||||
{var $foo=5}
|
||||
{if $user.loggined}
|
||||
Welcome, <span style="color: red">{$user.name}!</span>
|
||||
@ -124,9 +164,7 @@
|
||||
{/if}
|
||||
```
|
||||
|
||||
Аргументы
|
||||
|
||||
Аргументы принимают любой формат переменных, в том числе результаты арифметических операций и модификаторов.
|
||||
В общем случае аргументы принимают любой формат переменных, в том числе результаты арифметических операций и модификаторов.
|
||||
|
||||
```smarty
|
||||
{funct arg=true}
|
||||
@ -150,15 +188,13 @@
|
||||
{funct arg=($a.d.c|count+4)/3}
|
||||
```
|
||||
|
||||
### Игнорирование разделителя
|
||||
|
||||
|
||||
###
|
||||
|
||||
Как и в Smarty, в шаблонизаторе Aspect используются фигурные скобки для отделения HTML от кода Aspect.
|
||||
В шаблонизаторе Aspect используются фигурные скобки для отделения HTML от кода Aspect.
|
||||
Если требуется вывести текст, содержащий фигурные скобки помните о следующих возможностях:
|
||||
|
||||
1. Использование блочного тега `{ignore}{/ignore}`. Текст внутри этого тега не компилируется шаблонизатором и выводится "как есть".
|
||||
2. Если после открывающей фигурной скобки есть пробельный символ, то она не воспринимается как разделитель Aspect и код после неё выводится "как есть".
|
||||
1. Использование блочного тега `{ignore}{/ignore}`. Текст внутри этого тега текст не компилируется шаблонизатором и выводится как есть.
|
||||
2. Если после открывающей фигурной скобки есть пробельный символ (пробел или `\t`) или перенос строки (`\r` или `\n`), то она не воспринимается как разделитель rкода Aspect и код после неё выводится как есть.
|
||||
|
||||
Пример:
|
||||
|
||||
@ -190,4 +226,26 @@
|
||||
document.body.appendChild(e);
|
||||
})('test');
|
||||
</script>
|
||||
```
|
||||
|
||||
### Пробелы и переносы строк
|
||||
|
||||
Шаблонизатор допускает любое количество пробелов или переносов строк в своём коде
|
||||
|
||||
```smarty
|
||||
{include 'control.tpl'
|
||||
options=$list
|
||||
name=$cp.name
|
||||
type='select'
|
||||
}
|
||||
|
||||
{foreach [
|
||||
"one" => 1,
|
||||
"two" => 2,
|
||||
"three" => 3
|
||||
] as $key => $val}
|
||||
|
||||
{$key}: {$val}
|
||||
|
||||
{/foreach}
|
||||
```
|
Reference in New Issue
Block a user