PageRenderTime 27ms CodeModel.GetById 30ms RepoModel.GetById 0ms app.codeStats 0ms

/static/smarty-docs/plugins.modifiers.html

https://github.com/dgmike/wikka
HTML | 280 lines | 280 code | 0 blank | 0 comment | 0 complexity | 9204e7158fb5308a24bbe48001251153 MD5 | raw file
  1. <HTML
  2. ><HEAD
  3. ><TITLE
  4. >Modifiers</TITLE
  5. ><META
  6. NAME="GENERATOR"
  7. CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
  8. REL="HOME"
  9. TITLE="Smarty Manual"
  10. HREF="index"><LINK
  11. REL="UP"
  12. TITLE="Extending Smarty With Plugins"
  13. HREF="plugins"><LINK
  14. REL="PREVIOUS"
  15. TITLE="Template Functions"
  16. HREF="plugins.functions"><LINK
  17. REL="NEXT"
  18. TITLE="Block Functions"
  19. HREF="plugins.block.functions"><META
  20. HTTP-EQUIV="Content-type"
  21. CONTENT="text/html; charset=ISO-8859-1"></HEAD
  22. ><BODY
  23. CLASS="sect1"
  24. BGCOLOR="#FFFFFF"
  25. TEXT="#000000"
  26. LINK="#0000FF"
  27. VLINK="#840084"
  28. ALINK="#0000FF"
  29. ><DIV
  30. CLASS="NAVHEADER"
  31. ><TABLE
  32. SUMMARY="Header navigation table"
  33. WIDTH="100%"
  34. BORDER="0"
  35. CELLPADDING="0"
  36. CELLSPACING="0"
  37. ><TR
  38. ><TH
  39. COLSPAN="3"
  40. ALIGN="center"
  41. >Smarty Manual</TH
  42. ></TR
  43. ><TR
  44. ><TD
  45. WIDTH="10%"
  46. ALIGN="left"
  47. VALIGN="bottom"
  48. ><A
  49. HREF="plugins.functions"
  50. ACCESSKEY="P"
  51. >Prev</A
  52. ></TD
  53. ><TD
  54. WIDTH="80%"
  55. ALIGN="center"
  56. VALIGN="bottom"
  57. >Chapter 16. Extending Smarty With Plugins</TD
  58. ><TD
  59. WIDTH="10%"
  60. ALIGN="right"
  61. VALIGN="bottom"
  62. ><A
  63. HREF="plugins.block.functions"
  64. ACCESSKEY="N"
  65. >Next</A
  66. ></TD
  67. ></TR
  68. ></TABLE
  69. ><HR
  70. ALIGN="LEFT"
  71. WIDTH="100%"></DIV
  72. ><DIV
  73. CLASS="sect1"
  74. ><H1
  75. CLASS="sect1"
  76. ><A
  77. NAME="plugins.modifiers"
  78. ></A
  79. >Modifiers</H1
  80. ><P
  81. >&#13; <A
  82. HREF="language.modifiers"
  83. >Modifiers</A
  84. > are little functions
  85. that are applied to a variable in the template before it is displayed or
  86. used in some other context. Modifiers can be chained together.
  87. </P
  88. ><DIV
  89. CLASS="funcsynopsis"
  90. ><A
  91. NAME="AEN7338"
  92. ></A
  93. ><P
  94. ></P
  95. ><P
  96. ><CODE
  97. ><CODE
  98. CLASS="FUNCDEF"
  99. >mixed <B
  100. CLASS="function"
  101. >smarty_modifier_<TT
  102. CLASS="replaceable"
  103. ><I
  104. >name</I
  105. ></TT
  106. ></B
  107. ></CODE
  108. > (mixed $value, [mixed $param1, ...])</CODE
  109. ></P
  110. ><P
  111. ></P
  112. ></DIV
  113. ><P
  114. >&#13; The first parameter to the modifier plugin is the value on which
  115. the modifier is to operate. The rest of the parameters are optional,
  116. depending on what kind of operation is to be performed.
  117. </P
  118. ><P
  119. >&#13; The modifier has to <A
  120. HREF="http://php.net/return"
  121. TARGET="_top"
  122. >return</A
  123. >
  124. the result of its processing.
  125. </P
  126. ><TABLE
  127. WIDTH="100%"
  128. BORDER="0"
  129. CELLPADDING="0"
  130. CELLSPACING="0"
  131. CLASS="EXAMPLE"
  132. ><TR
  133. ><TD
  134. ><DIV
  135. CLASS="example"
  136. ><A
  137. NAME="AEN7350"
  138. ></A
  139. ><P
  140. ><B
  141. >Example 16-3. A simple modifier plugin</B
  142. ></P
  143. ><P
  144. >&#13; This plugin basically aliases one of the built-in PHP functions. It
  145. does not have any additional parameters.
  146. </P
  147. ><TABLE
  148. BORDER="0"
  149. BGCOLOR="#E0E0E0"
  150. CELLPADDING="5"
  151. ><TR
  152. ><TD
  153. ><code><span style="color: #000000">
  154. <span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br />&nbsp;*&nbsp;Smarty&nbsp;plugin<br />&nbsp;*&nbsp;-------------------------------------------------------------<br />&nbsp;*&nbsp;File:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modifier.capitalize.php<br />&nbsp;*&nbsp;Type:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modifier<br />&nbsp;*&nbsp;Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;capitalize<br />&nbsp;*&nbsp;Purpose:&nbsp;&nbsp;capitalize&nbsp;words&nbsp;in&nbsp;the&nbsp;string<br />&nbsp;*&nbsp;-------------------------------------------------------------<br />&nbsp;*/<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">smarty_modifier_capitalize</span><span style="color: #007700">(</span><span style="color: #0000BB">$string</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">ucwords</span><span style="color: #007700">(</span><span style="color: #0000BB">$string</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
  155. </span>
  156. </code></TD
  157. ></TR
  158. ></TABLE
  159. ></DIV
  160. ></TD
  161. ></TR
  162. ></TABLE
  163. ><P
  164. ></P
  165. ><TABLE
  166. WIDTH="100%"
  167. BORDER="0"
  168. CELLPADDING="0"
  169. CELLSPACING="0"
  170. CLASS="EXAMPLE"
  171. ><TR
  172. ><TD
  173. ><DIV
  174. CLASS="example"
  175. ><A
  176. NAME="AEN7355"
  177. ></A
  178. ><P
  179. ><B
  180. >Example 16-4. More complex modifier plugin</B
  181. ></P
  182. ><TABLE
  183. BORDER="0"
  184. BGCOLOR="#E0E0E0"
  185. CELLPADDING="5"
  186. ><TR
  187. ><TD
  188. ><code><span style="color: #000000">
  189. <span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br />&nbsp;*&nbsp;Smarty&nbsp;plugin<br />&nbsp;*&nbsp;-------------------------------------------------------------<br />&nbsp;*&nbsp;File:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modifier.truncate.php<br />&nbsp;*&nbsp;Type:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modifier<br />&nbsp;*&nbsp;Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;truncate<br />&nbsp;*&nbsp;Purpose:&nbsp;&nbsp;Truncate&nbsp;a&nbsp;string&nbsp;to&nbsp;a&nbsp;certain&nbsp;length&nbsp;if&nbsp;necessary,<br />&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;optionally&nbsp;splitting&nbsp;in&nbsp;the&nbsp;middle&nbsp;of&nbsp;a&nbsp;word,&nbsp;and<br />&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;appending&nbsp;the&nbsp;$etc&nbsp;string.<br />&nbsp;*&nbsp;-------------------------------------------------------------<br />&nbsp;*/<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">smarty_modifier_truncate</span><span style="color: #007700">(</span><span style="color: #0000BB">$string</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$length&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">80</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$etc&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'...'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$break_words&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$length&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$string</span><span style="color: #007700">)&nbsp;&gt;&nbsp;</span><span style="color: #0000BB">$length</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$length&nbsp;</span><span style="color: #007700">-=&nbsp;</span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #0000BB">$etc</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$fragment&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$string</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$length</span><span style="color: #007700">+</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$break_words</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$fragment&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">$fragment</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;-</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$fragment&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">preg_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">'/\s+(\S+)?$/'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fragment</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$fragment</span><span style="color: #007700">.</span><span style="color: #0000BB">$etc</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$string</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
  190. </span>
  191. </code></TD
  192. ></TR
  193. ></TABLE
  194. ></DIV
  195. ></TD
  196. ></TR
  197. ></TABLE
  198. ><P
  199. >&#13; See also
  200. <A
  201. HREF="api.register.modifier"
  202. ><TT
  203. CLASS="varname"
  204. >register_modifier()</TT
  205. ></A
  206. >,
  207. <A
  208. HREF="api.unregister.modifier"
  209. ><TT
  210. CLASS="varname"
  211. >unregister_modifier()</TT
  212. ></A
  213. >.
  214. </P
  215. ></DIV
  216. ><DIV
  217. CLASS="NAVFOOTER"
  218. ><HR
  219. ALIGN="LEFT"
  220. WIDTH="100%"><TABLE
  221. SUMMARY="Footer navigation table"
  222. WIDTH="100%"
  223. BORDER="0"
  224. CELLPADDING="0"
  225. CELLSPACING="0"
  226. ><TR
  227. ><TD
  228. WIDTH="33%"
  229. ALIGN="left"
  230. VALIGN="top"
  231. ><A
  232. HREF="plugins.functions"
  233. ACCESSKEY="P"
  234. >Prev</A
  235. ></TD
  236. ><TD
  237. WIDTH="34%"
  238. ALIGN="center"
  239. VALIGN="top"
  240. ><A
  241. HREF="index"
  242. ACCESSKEY="H"
  243. >Home</A
  244. ></TD
  245. ><TD
  246. WIDTH="33%"
  247. ALIGN="right"
  248. VALIGN="top"
  249. ><A
  250. HREF="plugins.block.functions"
  251. ACCESSKEY="N"
  252. >Next</A
  253. ></TD
  254. ></TR
  255. ><TR
  256. ><TD
  257. WIDTH="33%"
  258. ALIGN="left"
  259. VALIGN="top"
  260. >Template Functions</TD
  261. ><TD
  262. WIDTH="34%"
  263. ALIGN="center"
  264. VALIGN="top"
  265. ><A
  266. HREF="plugins"
  267. ACCESSKEY="U"
  268. >Up</A
  269. ></TD
  270. ><TD
  271. WIDTH="33%"
  272. ALIGN="right"
  273. VALIGN="top"
  274. >Block Functions</TD
  275. ></TR
  276. ></TABLE
  277. ></DIV
  278. ></BODY
  279. ></HTML
  280. >