Размер файла: 12.54Kb
<html> <head> <meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" > <title> Chapter 5. Модификаторы переменных </title> <meta name = "generator" content = "DocBook XSL Stylesheets V1.75.1" > <link rel = "home" href = "index.html" title = "Руководство по Smarty" > <link rel = "up" href = "smarty.for.designers.html" title = "Part II. Smarty для дизайнеров шаблонов" > <link rel = "prev" href = "language.variables.smarty.html" title = "Зарезервированная переменная {$smarty}" > <link rel = "next" href = "language.modifier.cat.html" title = "cat" > </head> <body bgcolor = "white" text = "black" link = "#0000FF" vlink = "#840084" alink = "#0000FF" > <div class = "navheader" > <table width = "100%" summary = "Navigation header" > <tr><th colspan = "3" align = "center" > Chapter 5. Модификаторы переменных </th></tr> <tr> <td width = "20%" align = "left" > <a accesskey = "p" href = "language.variables.smarty.html" > Prev </a> </td> <th width = "60%" align = "center" > Part II. Smarty для дизайнеров шаблонов </th> <td width = "20%" align = "right" > <a accesskey = "n" href = "language.modifier.cat.html" > Next </a> </td> </tr> </table> <hr> </div> <div class = "chapter" title = "Chapter 5. Модификаторы переменных" > <div class = "titlepage" ><div><div><h2 class = "title" > <a name = "language.modifiers" ></a> Chapter 5. Модификаторы переменных </h2></div></div></div> <div class = "toc" > <p><b> Table of Contents </b></p> <dl> <dt><span class = "sect1" ><a href = "language.modifiers.html#language.modifier.capitalize" > capitalize </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.cat.html" > cat </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.count.characters.html" > count_characters </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.count.paragraphs.html" > count_paragraphs </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.count.sentences.html" > count_sentences </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.count.words.html" > count_words </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.date.format.html" > date_format </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.default.html" > default </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.escape.html" > escape </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.indent.html" > indent </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.lower.html" > lower </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.nl2br.html" > nl2br </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.regex.replace.html" > regex_replace </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.replace.html" > replace </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.spacify.html" > spacify </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.string.format.html" > string_format </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.strip.html" > strip </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.strip.tags.html" > strip_tags </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.truncate.html" > truncate </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.upper.html" > upper </a></span></dt> <dt><span class = "sect1" ><a href = "language.modifier.wordwrap.html" > wordwrap </a></span></dt> </dl> </div> <p> Модификаторы переменных могут быть прмменены к <a class = "link" href = "language.syntax.variables.html" title = "Переменные" > переменным </a> , <a class = "link" href = "language.custom.functions.html" title = "Chapter 8. Пользовательские Функции" > пользовательским функциям </a> или строкам. Для их применения надо после модифицируемого значения указать символ <code class = "literal" > | </code> (вертикальная черта) и название модификатора. Так же модификаторы могут принимать параметры, которые влияют на их поведение. Эти параметры следуют за названием модификатора и разделяются <code class = "literal" > : </code> (двоеточием). Кроме того, <span class = "emphasis" ><em> все функции PHP могут быть использованы в качестве модификаторов </em></span> (об этом дальше) и модификаторы можно <a class = "link" href = "language.combining.modifiers.html" title = "Chapter 6. Комбинирование модификаторов" > комбинировать </a> . </p> <div class = "example" > <a name = "id2652795" ></a><p class = "title" ><b> Example 5.1. Примеры модификаторов </b></p> <div class = "example-contents" ><pre class = "programlisting" > {* применение модификатора к переменной *} {$title|upper} {* модификатор с параметрами *} {$title|truncate:40:'...'} {* применение модификатора к аргументу функции *} {html_table loop=$myvar|upper} {* с параметрами *} {html_table loop=$myvar|truncate:40:'...'} {* применение модификатора к строке *} {'foobar'|upper} {* использование date_format для форматирования текущей даты *} {$smarty.now|date_format:"%Y/%m/%d"} {* применение модификатора к функции *} {mailto|upper address=' smarty@example.com '} {* использование функции PHP str_repeat *} {'='|str_repeat:80} {* функция PHP count *} {$myArray|@count} {* функция PHP shuffle, применяемая к IP адресу сервера *} {$smarty.server.SERVER_ADDR|shuffle} (* это приведет в верхний регистр букв и обрежет пробелы у всех элементов массива *} <select name="name_id"> {html_options output=$myArray|upper|truncate:20} </select> </pre></div> </div> <br class = "example-break" ><div class = "itemizedlist" ><ul class = "itemizedlist" type = "disc" > <li class = "listitem" > <p> Если модификатор применяется к переменной-массиву, то он будет применен к каждому элементу массива. Если же требуется применить модификатор к массиву, как к переменной, то необходимо перед именем модификатора указать символ <code class = "literal" > @ </code> . </p> <div class = "note" title = "Пример" style = " margin - left : 0.5in ; margin - right : 0.5in ; " > <h3 class = "title" > Пример </h3> <p> <code class = "literal" > {$articleTitle|@count} </code> - выведет количество елементов в массиве <em class = "parameter" ><code> $articleTitle </code></em> используя стандартную функцию PHP <a class = "ulink" href = "http://php.net/count" target = "_top" ><code class = "varname" > count() </code></a> в качестве модификатора. </p> </div> <p> </p> </li> <li class = "listitem" > <p> Модификаторы автоматически загружаются из директории <a class = "link" href = "variable.plugins.dir.html" title = "$plugins_dir" ><em class = "parameter" ><code> $plugins_dir </code></em></a> или могут быть явно зарегистрированы при помощи функции <a class = "link" href = "api.register.modifier.html" title = "register_modifier" > <code class = "varname" > register_modifier() </code></a> ; это удобно для использования функции как в PHP-коде, так и в шаблоне. </p> <p> Любая PHP-функция может быть использована в качестве модификатора. Тем не менее, использование PHP-функций в качестве модификаторов имеет две маленькие "ловушки": </p> <div class = "itemizedlist" ><ul class = "itemizedlist" type = "circle" > <li class = "listitem" ><p> Во-первых, иногда порядок аргументов функции не самый удобный. Форматирование <code class = "literal" > $foo </code> при помощи <code class = "literal" > {"%2.f"|sprintf:$float} </code> - это рабочий, но не совсем удобный вариант. Больше подойдет <code class = "literal" > {$float|string_format:"%2.f"} </code> , который предлагает дистрибутив Smarty). </p></li> <li class = "listitem" ><p> Во-вторых, в случае включения <a class = "link" href = "variable.security.html" title = "$security" > $security </a> , все PHP-функции, которые будут использованы как модификаторы, должны быть объявлены "безопасными" в элементе <code class = "literal" > MODIFIER_FUNCS </code> массива <a class = "link" href = "variable.security.settings.html" title = "$security_settings" > <em class = "parameter" ><code> $security_settings </code></em></a> . </p></li> </ul></div> <p> </p> </li> </ul></div> <p> См. также <a class = "link" href = "api.register.modifier.html" title = "register_modifier" > <code class = "varname" > register_modifier() </code></a> , <a class = "link" href = "language.combining.modifiers.html" title = "Chapter 6. Комбинирование модификаторов" > Комбинирование модификаторов </a> и <a class = "link" href = "plugins.html" title = "Chapter 16. Плагины - расширение функциональности Smarty" > Плагины - расширение функциональности Smarty </a> . </p> <div class = "sect1" title = "capitalize" > <div class = "titlepage" ><div><div><h2 class = "title" style = " clear : both " > <a name = "language.modifier.capitalize" ></a> capitalize </h2></div></div></div> <p> Преобразовывает первые буквы каждого в переменной слова в заглавные. </p> <div class = "informaltable" ><table border = "1" > <colgroup> <col align = "center" > <col align = "center" > <col align = "center" > <col align = "center" > <col> </colgroup> <thead><tr> <th align = "center" > Позиция параметра </th> <th align = "center" > Тип </th> <th align = "center" > Обязателен </th> <th align = "center" > По умолчанию </th> <th> Описание </th> </tr></thead> <tbody><tr> <td align = "center" > 1 </td> <td align = "center" > boolean </td> <td align = "center" > Нет </td> <td align = "center" > false </td> <td> Этот параметр определяет, распространяется ли действие модификатора на слова с цифрами </td> </tr></tbody> </table></div> <div class = "example" > <a name = "id2653777" ></a><p class = "title" ><b> Example 5.2. capitalize </b></p> <div class = "example-contents" > <pre class = "programlisting" > <?php $smarty->assign('articleTitle', 'next x-men film, x3, delayed.'); ?> </pre> <p> Шаблон: </p> <pre class = "programlisting" > {$articleTitle} {$articleTitle|capitalize} {$articleTitle|capitalize:true} </pre> <p> Результат обработки: </p> <pre class = "screen" > next x-men film, x3, delayed. Next X-Men Film, x3, Delayed. Next X-Men Film, X3, Delayed. </pre> </div> </div> <br class = "example-break" ><p> См. также <a class = "link" href = "language.modifier.lower.html" title = "lower" > lower </a> и <a class = "link" href = "language.modifier.upper.html" title = "upper" > upper </a> </p> </div> </div> <div class = "navfooter" > <hr> <table width = "100%" summary = "Navigation footer" > <tr> <td width = "40%" align = "left" > <a accesskey = "p" href = "language.variables.smarty.html" > Prev </a> </td> <td width = "20%" align = "center" ><a accesskey = "u" href = "smarty.for.designers.html" > Up </a></td> <td width = "40%" align = "right" > <a accesskey = "n" href = "language.modifier.cat.html" > Next </a> </td> </tr> <tr> <td width = "40%" align = "left" valign = "top" > Зарезервированная переменная {$smarty} </td> <td width = "20%" align = "center" ><a accesskey = "h" href = "index.html" > Home </a></td> <td width = "40%" align = "right" valign = "top" > cat </td> </tr> </table> </div> </body> </html>