Размер файла: 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>