From dc287f08b24323f33994adcb2f495b874a0f34f0 Mon Sep 17 00:00:00 2001 From: Ivan Shalganov Date: Wed, 29 Jan 2014 10:01:31 +0200 Subject: [PATCH] Translate modifier's docs --- docs/mods/date_format.md | 24 +++++++++++------------- docs/mods/escape.md | 21 +++++++++++++-------- docs/mods/in.md | 8 ++++---- docs/mods/length.md | 15 ++++++++------- docs/mods/lower.md | 4 ++-- docs/mods/strip.md | 8 ++++---- docs/mods/truncate.md | 16 ++++++++-------- docs/mods/unescape.md | 6 +++--- docs/mods/upper.md | 12 ++++++------ src/Fenom/Modifier.php | 7 +++++-- 10 files changed, 64 insertions(+), 57 deletions(-) diff --git a/docs/mods/date_format.md b/docs/mods/date_format.md index 0e7eb27..772981a 100644 --- a/docs/mods/date_format.md +++ b/docs/mods/date_format.md @@ -1,21 +1,19 @@ -Modifier date_format [RU] -========================= - -Модификатор позволят вывести дату в произвольном формате, согласно форматированию [strftime()](http://docs.php.net/strftime). -Модификатор принимает timestamp или строку, которую можно преобразовать через [strtotime()](http://docs.php.net/strtotime). -Формат по умолчанию: `%b %e, %Y`. - - -**[Допустимые квантификаторы](http://docs.php.net/strftime#refsect1-function.strftime-parameters) в формате даты** +Modifier date_format +==================== +This formats a date and time into the given [strftime()](http://docs.php.net/strftime) format. +Dates can be passed to Fenom as unix timestamps, DateTime objects or any string made up of month day year, parsable by [strftime()](http://docs.php.net/strftime). +By default format is: `%b %e, %Y`. ```smarty {var $ts = time()} -{$ts|date_format:"%Y/%m/%d %H:%M:%s"} output like 2013/02/08 21:01:43 -{$ts|date_format:"-1 day"} output like 2013/02/07 21:01:43 +{$ts|date_format:"%Y/%m/%d %H:%M:%s"} outputs 2013/02/08 21:01:43 +{$ts|date_format:"-1 day"} outputs 2013/02/07 21:01:43 {var $date = "2008-12-08"} -{$ts|date_format:"%Y/%m/%d %H:%M:%s"} output like 2008/12/08 00:00:00 -``` \ No newline at end of file +{$ts|date_format:"%Y/%m/%d %H:%M:%s"} outputs 2008/12/08 00:00:00 +``` + +[Allowed quantificators](http://docs.php.net/strftime#refsect1-function.strftime-parameters) in **date_format** diff --git a/docs/mods/escape.md b/docs/mods/escape.md index e522f14..c824ca4 100644 --- a/docs/mods/escape.md +++ b/docs/mods/escape.md @@ -1,15 +1,20 @@ -Modifier escape [RU] -==================== +Modifier escape +=============== -Используется для кодирования / экранирования спецсимволов по алгоритмам экранирования HTML, URL'ов. По умолчанию активирован режим экранирования HTML. +The modifier escapes a string for safe insertion into the output. +It supports different escaping strategies depending on the template context. +By default, it uses the HTML escaping strategy: ```smarty -{$html_data|escape:'HTML'} +{$post.title|escape:'html'} ``` -Возможные режимы экранирования +The modifier supports the following escaping strategies: -* HTML -* URL +* html: escapes a string for the HTML body context. +* url: escapes a string for the URI or parameter contexts. +* js: escapes a string for the JavaScript context. -для простоты, модификатор обладает коротким псевдонимом `|e` \ No newline at end of file +For convenience, the `e` modifier is defined as an alias of `escape` modifier. + +Second parameter is charset. diff --git a/docs/mods/in.md b/docs/mods/in.md index ed53458..798a93d 100644 --- a/docs/mods/in.md +++ b/docs/mods/in.md @@ -1,10 +1,10 @@ -Modifier in [RU] -================ +Modifier in +=========== -Булевый модификатор, позволяющий проверить наличие значения переменной в массиве: +The modifier is implementation of `in` operator (performs containment test). ```smarty -{if $number|in:[1, 3, 55]} +{if $number|in:[1, 3, 42]} ... {/if} ``` \ No newline at end of file diff --git a/docs/mods/length.md b/docs/mods/length.md index c91ab54..3e62e7e 100644 --- a/docs/mods/length.md +++ b/docs/mods/length.md @@ -1,9 +1,10 @@ -Modifier length [RU] -==================== +Modifier length +=============== -Модификатор возвращает длину значения переменной +The modifier returns the number of items of a sequence or mapping, or the length of a string (works with UTF8 without `mbstring`) -* если массив - длина массива -* если итератор - длина итератора -* если строка - длина строки (поддерживается UTF8 и не требует `mbstring`) -* для других значений возвращается 0 \ No newline at end of file +```smarty +{if $images|length > 5} + to many images +{/if} +``` \ No newline at end of file diff --git a/docs/mods/lower.md b/docs/mods/lower.md index 86ff225..49d24ca 100644 --- a/docs/mods/lower.md +++ b/docs/mods/lower.md @@ -1,5 +1,5 @@ -Modifier |lower -=============== +Modifier lower +============== Modifier is used to lowercase a variable or string. Have short alias `low` This is equivalent to the PHP [strtolower()](http://docs.php.net/lower) function. diff --git a/docs/mods/strip.md b/docs/mods/strip.md index 61802a6..94680a8 100644 --- a/docs/mods/strip.md +++ b/docs/mods/strip.md @@ -1,13 +1,13 @@ -Modifier strip [RU] -=================== +Modifier strip +============== -Для удаления символы пробелов при использовании переменной используйте можификатор `|strip` +This replaces all repeated spaces and tabs with a single space, or with the supplied string. ```smarty {" one two "|strip} => 'one two' ``` -Что бы убрать переносы строк укажите **TRUE** первым аргументом модификатора +Optional boolean parameter tell to the modifier strip also newline ```smarty {" multi diff --git a/docs/mods/truncate.md b/docs/mods/truncate.md index cfbc6ec..0c9f600 100644 --- a/docs/mods/truncate.md +++ b/docs/mods/truncate.md @@ -1,16 +1,16 @@ -Modifier truncate [RU] -======================= +Modifier truncate +================= -Обрезает строку до указанной длины. Может обрезать как ровно по символу так и завершивемогуся слову, где итоговоя строка не привыет указанной длины. +Modifier truncates a variable to a character length. ```smarty {$long_string|truncate:$length:$etc:$by_words:$middle} ``` -* `$length` обязательный параметр, указывающий максимальную длину выводимой сроки -* `$etc`, по умолчанию `...`, содержащий строку которой будет заменены "лишние" символы. -* `$by_word`, по умолчанию **FALSE**. Флаг указывает модификатору не разбивать слово, а найти ближайший (в меньшую строну) пробельный символ, после которого строка буде обрезана -* `$middle`, по умочанию **FALSE**. Включенный флаг, который указывает, что "лишние" данные нужно вырезать из середины строки, а не из конца. +* `$length`, required. Parameter determines how many characters to truncate to. +* `$etc`, by default `...`. This is a text string that replaces the truncated text. +* `$by_word`, by default **FALSE**. This determines whether or not to truncate at a word boundary with TRUE, or at the exact character with FALSE. +* `$middle`, by default **FALSE**. This determines whether the truncation happens at the end of the string with FALSE, or in the middle of the string with TRUE. ```smarty {var $str = "very very long string"} @@ -19,4 +19,4 @@ Modifier truncate [RU] {$str|truncate:5:" ... ":true:true} output: very ... string ``` -Модификатор работает отлично с UTF8 и не требует расширения `mbstring` \ No newline at end of file +Modifier do not use `mbstring` when works with UTF8. \ No newline at end of file diff --git a/docs/mods/unescape.md b/docs/mods/unescape.md index 7314d03..66fb606 100644 --- a/docs/mods/unescape.md +++ b/docs/mods/unescape.md @@ -1,5 +1,5 @@ -Modifier unescape [RU] -====================== +Modifier unescape +================= -Модификатор, обратный модификатору [escape](./escape.md) +`Unescape` is used to decode entity, html, js and URI. See [escape](./escape.md) diff --git a/docs/mods/upper.md b/docs/mods/upper.md index 4d64ac6..7552abe 100644 --- a/docs/mods/upper.md +++ b/docs/mods/upper.md @@ -1,13 +1,13 @@ -Modifier |upper -=============== +Modifier upper +============== -Modifier is used to uppercase a variable or string. Have short alias `up` +Modifier is used to uppercase a variable or string. Have short alias `up`. This is equivalent to the PHP [strtoupper()](http://docs.php.net/strtoupper) function. ```smarty {var $name = "Bzick"} -{$name} output Bzick -{$name|upper} output BZICK -{$name|up} output BZICK too +{$name} outputs Bzick +{$name|upper} outputs BZICK +{$name|up} outputs BZICK too ``` \ No newline at end of file diff --git a/src/Fenom/Modifier.php b/src/Fenom/Modifier.php index 554da90..b1a8ef3 100644 --- a/src/Fenom/Modifier.php +++ b/src/Fenom/Modifier.php @@ -51,15 +51,18 @@ class Modifier * * @param string $text * @param string $type + * @param string $charset * @return string */ - public static function escape($text, $type = 'html') + public static function escape($text, $type = 'html', $charset = 'UTF-8') { switch (strtolower($type)) { case "url": return urlencode($text); case "html"; - return htmlspecialchars($text, ENT_COMPAT, 'UTF-8'); + return htmlspecialchars($text, ENT_COMPAT, $charset); + case "js": + return json_encode($text, 64 | 256); // JSON_UNESCAPED_SLASHES = 64, JSON_UNESCAPED_UNICODE = 256 default: return $text; }