Просмотр файла manual-ru/advanced.features.outputfilters.html

Размер файла: 5.1Kb
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <title>Фильтры вывода</title>
  5. <meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
  6. <link rel="home" href="index.html" title="Руководство по Smarty">
  7. <link rel="up" href="advanced.features.html" title="Chapter 15. Расширенные возможности">
  8. <link rel="prev" href="advanced.features.postfilters.html" title="Постфильтры">
  9. <link rel="next" href="section.template.cache.handler.func.html" title="Управление кэшированием">
  10. </head>
  11. <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
  12. <div class="navheader">
  13. <table width="100%" summary="Navigation header">
  14. <tr><th colspan="3" align="center">Фильтры вывода</th></tr>
  15. <tr>
  16. <td width="20%" align="left">
  17. <a accesskey="p" href="advanced.features.postfilters.html">Prev</a> </td>
  18. <th width="60%" align="center">Chapter 15. Расширенные возможности</th>
  19. <td width="20%" align="right"> <a accesskey="n" href="section.template.cache.handler.func.html">Next</a>
  20. </td>
  21. </tr>
  22. </table>
  23. <hr>
  24. </div>
  25. <div class="sect1" title="Фильтры вывода">
  26. <div class="titlepage"><div><div><h2 class="title" style="clear: both">
  27. <a name="advanced.features.outputfilters"></a>Фильтры вывода</h2></div></div></div>
  28. <p>
  29. Когда шаблон выводится через
  30. <a class="link" href="api.display.html" title="display()">display()</a> или
  31. <a class="link" href="api.fetch.html" title="fetch">fetch()</a>, результат может быть
  32. пропущен через один или несколько фильтров вывода. Отличие их от
  33. <a class="link" href="advanced.features.postfilters.html" title="Постфильтры">постфильтров</a>
  34. состоит в том, что постфильтры действуют на уже скомпилированный
  35. шаблон, перед его записью на диск, в то время как фильтры вывода обрабатывают
  36. шаблон в момент его исполнения.
  37. </p>
  38. <p>
  39. Фильтры вывода могут быть или
  40. <a class="link" href="api.register.outputfilter.html" title="register_outputfilter">зарегистрированы</a> или
  41. загружены из
  42. <a class="link" href="variable.plugins.dir.html" title="$plugins_dir">папки плагинов</a>
  43. с помощью
  44. функции <a class="link" href="api.load.filter.html" title="load_filter">load_filter()</a>, или
  45. с помощью установки переменной
  46. <a class="link" href="variable.autoload.filters.html" title="$autoload_filters">$autoload_filters</a>.
  47. Smarty передаёт фильтру результат обработки шаблона в качестве первого
  48. аргумента и предполагает, что функция вернёт результат своей работы.
  49. </p>
  50. <div class="example">
  51. <a name="id2735966"></a><p class="title"><b>Example 15.4. Использование фильтра вывода</b></p>
  52. <div class="example-contents"><pre class="programlisting">
  53.  
  54. &lt;?php
  55. // код в вашем скрипте
  56. function protect_email($tpl_output, &amp;$smarty)
  57. {
  58. $tpl_output =
  59. preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',
  60. '$1%40$2', $tpl_output);
  61. return $tpl_output;
  62. }
  63.  
  64. // регистрация фильтра вывода
  65. $smarty-&gt;register_outputfilter('protect_email');
  66. $smarty-&gt;display('index.tpl');
  67.  
  68. // теперь все адреса электронной почты в выводе шаблона будут
  69. // обработаны несложной функцией защиты от спам-ботов
  70. ?&gt;
  71.  
  72. </pre></div>
  73. </div>
  74. <br class="example-break"><p>
  75. См. также
  76. <a class="link" href="api.register.outputfilter.html" title="register_outputfilter">register_outpurfilter()</a>,
  77. <a class="link" href="api.load.filter.html" title="load_filter">load_filter()</a>,
  78. <a class="link" href="variable.autoload.filters.html" title="$autoload_filters">$autoload_filters</a>,
  79. <a class="link" href="advanced.features.postfilters.html" title="Постфильтры">постфильтрі</a>
  80. и
  81. <a class="link" href="variable.plugins.dir.html" title="$plugins_dir">$plugins_dir</a>.
  82. </p>
  83. </div>
  84. <div class="navfooter">
  85. <hr>
  86. <table width="100%" summary="Navigation footer">
  87. <tr>
  88. <td width="40%" align="left">
  89. <a accesskey="p" href="advanced.features.postfilters.html">Prev</a> </td>
  90. <td width="20%" align="center"><a accesskey="u" href="advanced.features.html">Up</a></td>
  91. <td width="40%" align="right"> <a accesskey="n" href="section.template.cache.handler.func.html">Next</a>
  92. </td>
  93. </tr>
  94. <tr>
  95. <td width="40%" align="left" valign="top">Постфильтры </td>
  96. <td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
  97. <td width="40%" align="right" valign="top"> Управление кэшированием</td>
  98. </tr>
  99. </table>
  100. </div>
  101. </body>
  102. </html>