Просмотр файла manual-ru/language.function.include.html

Размер файла: 8.82Kb
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <title>{include}</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="language.builtin.functions.html" title="Chapter 7. Встроенные функции">
  8. <link rel="prev" href="language.function.if.html" title="{if},{elseif},{else}">
  9. <link rel="next" href="language.function.include.php.html" title="{include_php}">
  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">{include}</th></tr>
  15. <tr>
  16. <td width="20%" align="left">
  17. <a accesskey="p" href="language.function.if.html">Prev</a> </td>
  18. <th width="60%" align="center">Chapter 7. Встроенные функции</th>
  19. <td width="20%" align="right"> <a accesskey="n" href="language.function.include.php.html">Next</a>
  20. </td>
  21. </tr>
  22. </table>
  23. <hr>
  24. </div>
  25. <div class="sect1" title="{include}">
  26. <div class="titlepage"><div><div><h2 class="title" style="clear: both">
  27. <a name="language.function.include"></a>{include}</h2></div></div></div>
  28. <p>
  29. Тэги {include} используются для включения других шаблонов в текущий.
  30. Любые переменные, доступные в текущем шаблоне, доступны и во
  31. включаемом. Тэг {include} должен иметь атрибут <span class="emphasis"><em>'file'</em></span>,
  32. который указывает путь к ресурсу шаблона.
  33. </p>
  34. <p>
  35. Опциональный атрибут <span class="emphasis"><em>assign</em></span> указывает, что
  36. результат выполнения {include} будет присвоен переменной вместо отображения.
  37. </p>
  38. <p>
  39. Все значения присвоенных переменных восстанавливаются после того,
  40. как подключаемый шаблон отработал. Это значит, что вы можете использовать
  41. все переменные из подключающего шаблона в подключаемом, но изменения
  42. переменных внутри подключаемого шаблона не будут видны внутри подключающего
  43. шаблона после команды {include}.
  44. </p>
  45. <div class="informaltable"><table border="1">
  46. <colgroup>
  47. <col align="center">
  48. <col align="center">
  49. <col align="center">
  50. <col align="center">
  51. <col>
  52. </colgroup>
  53. <thead><tr>
  54. <th align="center">Имя атрибута</th>
  55. <th align="center">Тип</th>
  56. <th align="center">Обязателен</th>
  57. <th align="center">По умолчанию</th>
  58. <th>Описание</th>
  59. </tr></thead>
  60. <tbody>
  61. <tr>
  62. <td align="center">file</td>
  63. <td align="center">string</td>
  64. <td align="center">Да</td>
  65. <td align="center"><span class="emphasis"><em>n/a</em></span></td>
  66. <td>Имя файла шаблона для включения</td>
  67. </tr>
  68. <tr>
  69. <td align="center">assign</td>
  70. <td align="center">string</td>
  71. <td align="center">Нет</td>
  72. <td align="center"><span class="emphasis"><em>n/a</em></span></td>
  73. <td>Имя переменной, которой присвоится вывод
  74. шаблона</td>
  75. </tr>
  76. <tr>
  77. <td align="center">[var ...]</td>
  78. <td align="center">[var type]</td>
  79. <td align="center">Нет</td>
  80. <td align="center"><span class="emphasis"><em>n/a</em></span></td>
  81. <td>Переменные, переданные в локальную область
  82. включаемого шаблона</td>
  83. </tr>
  84. </tbody>
  85. </table></div>
  86. <div class="example">
  87. <a name="id2672100"></a><p class="title"><b>Example 7.17. Функция {include}</b></p>
  88. <div class="example-contents"><pre class="programlisting">
  89.  
  90. &lt;html&gt;
  91. &lt;head&gt;
  92. &lt;title&gt;{$title}&lt;/title&gt;
  93. &lt;/head&gt;
  94. &lt;body&gt;
  95. {include file='page_header.tpl'}
  96. {* тут идёт тело шаблона *}
  97. {include file="$tpl_name.tpl"} &lt;-- заменит $tpl_name его значением
  98. {include file='page_footer.tpl'}
  99. &lt;/body&gt;
  100. &lt;/html&gt;
  101.  
  102. </pre></div>
  103. </div>
  104. <br class="example-break"><p>
  105. Вы также можете передать переменные в подключаемый шаблон в
  106. виде <a class="link" href="language.syntax.attributes.html" title="Параметры">атрибутов</a>.
  107. Любая переменная, переданная в подключаемый
  108. шаблон, доступны только в области видимости подключаемого
  109. файла. Переданные переменные имеют преимущество перед
  110. существующими переменными с аналогичными именами.
  111. </p>
  112. <div class="example">
  113. <a name="id2672148"></a><p class="title"><b>Example 7.18. передача переменных в {include}</b></p>
  114. <div class="example-contents">
  115. <pre class="programlisting">
  116.  
  117. {include file='header.tpl' title='Main Menu' table_bgcolor='#c0c0c0'}
  118.  
  119. {* тут идёт тело шаблона *}
  120.  
  121. {include file='footer.tpl' logo='http://my.example.com/logo.gif'}
  122.  
  123. </pre>
  124. <p>где header.tpl может быть</p>
  125. <pre class="programlisting">
  126.  
  127. &lt;table border='1' width='100%' bgcolor='{$table_bgcolor|default:"#0000FF"}'&gt;
  128. &lt;tr&gt;
  129. &lt;td&gt;
  130. &lt;h1&gt;{$title}&lt;/h1&gt;
  131. &lt;/td&gt;
  132. &lt;/tr&gt;
  133. &lt;/table&gt;
  134.  
  135. </pre>
  136. </div>
  137. </div>
  138. <br class="example-break"><div class="example">
  139. <a name="id2672178"></a><p class="title"><b>Example 7.19. {include} и присвоение переменной</b></p>
  140. <div class="example-contents">
  141. <p>
  142. Этот пример присвоит содержимое nav.tpl переменной $navbar,
  143. которая затем выводится сверху и снизу страницы.
  144. </p>
  145. <pre class="programlisting">
  146.  
  147. &lt;body&gt;
  148. {include file='nav.tpl' assign=navbar}
  149. {include file='header.tpl' title='Main Menu' table_bgcolor='#effeef'}
  150. {$navbar}
  151.  
  152. {* тут идёт тело шаблона *}
  153.  
  154. {include file='footer.tpl' logo='http://my.example.com/logo.gif'}
  155. {$navbar}
  156. &lt;/body&gt;
  157.  
  158. </pre>
  159. </div>
  160. </div>
  161. <br class="example-break"><p>
  162. Для подключения файлов вне папки
  163. <a class="link" href="api.variables.html#variable.template.dir" title="$template_dir">$template_dir</a>
  164. можно указывать файл с помощью
  165. <a class="link" href="template.resources.html" title="Ресурсы">ресурсов</a>.
  166. </p>
  167. <div class="example">
  168. <a name="id2672237"></a><p class="title"><b>Example 7.20. Примеры ресурсов шаблонов в {include}</b></p>
  169. <div class="example-contents"><pre class="programlisting">
  170.  
  171. {* абсолютные пути *}
  172. {include file='/usr/local/include/templates/header.tpl'}
  173.  
  174. {* абсолютные пути (то же самое) *}
  175. {include file='file:/usr/local/include/templates/header.tpl'}
  176.  
  177. {* абсолютные пути в windows (ОБЯЗАТЕЛЬНО используйте префикс "file:") *}
  178. {include file='file:C:/www/pub/templates/header.tpl'}
  179.  
  180. {* подключение шаблона из ресурса с именем "db" *}
  181. {include file='db:header.tpl'}
  182.  
  183. {* подключение шаблона с переменным именем - например, $module = 'contacts' *}
  184. {include file="$module.tpl"}
  185. {* не будет работать, т.к. в одинарных кавычках не работает подстановка переменных *}
  186. {include file='$module.tpl'}
  187.  
  188.  
  189. </pre></div>
  190. </div>
  191. <br class="example-break"><p>
  192. См. также
  193. <a class="link" href="language.function.include.php.html" title="{include_php}">{include_php}</a>,
  194. <a class="link" href="language.function.insert.html" title="{insert}">{insert}</a>,
  195. <a class="link" href="language.function.php.html" title="{php}">{php}</a>,
  196. <a class="link" href="template.resources.html" title="Ресурсы">Ресурсы</a> and
  197. <a class="link" href="tips.componentized.templates.html" title="Составные шаблоны">Составные шаблоны</a>.
  198. </p>
  199. </div>
  200. <div class="navfooter">
  201. <hr>
  202. <table width="100%" summary="Navigation footer">
  203. <tr>
  204. <td width="40%" align="left">
  205. <a accesskey="p" href="language.function.if.html">Prev</a> </td>
  206. <td width="20%" align="center"><a accesskey="u" href="language.builtin.functions.html">Up</a></td>
  207. <td width="40%" align="right"> <a accesskey="n" href="language.function.include.php.html">Next</a>
  208. </td>
  209. </tr>
  210. <tr>
  211. <td width="40%" align="left" valign="top">{if},{elseif},{else} </td>
  212. <td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
  213. <td width="40%" align="right" valign="top"> {include_php}</td>
  214. </tr>
  215. </table>
  216. </div>
  217. </body>
  218. </html>