1 | <?php namespace VojtaSvoboda\TwigExtensions; |
||
18 | class Plugin extends PluginBase |
||
19 | { |
||
20 | /** |
||
21 | * Returns information about this plugin. |
||
22 | * |
||
23 | * @return array |
||
24 | */ |
||
25 | public function pluginDetails() |
||
35 | |||
36 | /** |
||
37 | * Add Twig extensions. |
||
38 | * |
||
39 | * @see Text extensions http://twig.sensiolabs.org/doc/extensions/text.html |
||
40 | * @see Intl extensions http://twig.sensiolabs.org/doc/extensions/intl.html |
||
41 | * @see Array extension http://twig.sensiolabs.org/doc/extensions/array.html |
||
42 | * @see Time extension http://twig.sensiolabs.org/doc/extensions/date.html |
||
43 | * |
||
44 | * @return array |
||
45 | */ |
||
46 | 1 | public function registerMarkupTags() |
|
94 | |||
95 | /** |
||
96 | * Returns String Loader functions. |
||
97 | * |
||
98 | * @param \Twig_Environment $twig |
||
99 | * |
||
100 | * @return array |
||
101 | */ |
||
102 | 1 | private function getStringLoaderFunctions($twig) |
|
114 | |||
115 | /** |
||
116 | * Returns Text filters. |
||
117 | * |
||
118 | * @param \Twig_Environment $twig |
||
119 | * |
||
120 | * @return array |
||
121 | */ |
||
122 | 3 | private function getTextFilters($twig) |
|
138 | |||
139 | /** |
||
140 | * Returns Intl filters. |
||
141 | * |
||
142 | * @param \Twig_Environment $twig |
||
143 | * |
||
144 | * @return array |
||
145 | */ |
||
146 | 1 | private function getLocalizedFilters($twig) |
|
166 | |||
167 | /** |
||
168 | * Returns Array filters. |
||
169 | * |
||
170 | * @return array |
||
171 | */ |
||
172 | 2 | private function getArrayFilters() |
|
184 | |||
185 | /** |
||
186 | * Returns Date filters. |
||
187 | * |
||
188 | * @param \Twig_Environment $twig |
||
189 | * |
||
190 | * @return array |
||
191 | */ |
||
192 | 1 | private function getTimeFilters($twig) |
|
204 | |||
205 | /** |
||
206 | * Returns mail filters. |
||
207 | * |
||
208 | * @return array |
||
209 | */ |
||
210 | 1 | private function getMailFilters() |
|
211 | { |
||
212 | return [ |
||
213 | 'mailto' => function($string, $link = true, $protected = true, $text = null) { |
||
214 | 1 | return $this->hideEmail($string, $link, $protected, $text); |
|
215 | } |
||
216 | 1 | ]; |
|
217 | } |
||
218 | |||
219 | /** |
||
220 | * Returns plain PHP functions. |
||
221 | * |
||
222 | * @return array |
||
223 | */ |
||
224 | 1 | private function getPhpFunctions() |
|
225 | { |
||
226 | return [ |
||
227 | 'strftime' => function($time, $format = '%d.%m.%Y %H:%M:%S') { |
||
228 | 1 | $timeObj = new Carbon($time); |
|
229 | 1 | return strftime($format, $timeObj->getTimestamp()); |
|
230 | 1 | }, |
|
231 | 'uppercase' => function($string) { |
||
232 | 1 | return mb_convert_case($string, MB_CASE_UPPER, "UTF-8"); |
|
233 | 1 | }, |
|
234 | 'lowercase' => function($string) { |
||
235 | 1 | return mb_convert_case($string, MB_CASE_LOWER, "UTF-8"); |
|
236 | 1 | }, |
|
237 | 'ucfirst' => function($string) { |
||
238 | 1 | return mb_convert_case($string, MB_CASE_TITLE, "UTF-8"); |
|
239 | 1 | }, |
|
240 | 'lcfirst' => function($string) { |
||
241 | 1 | return lcfirst($string); |
|
242 | 1 | }, |
|
243 | 'ltrim' => function($string, $charlist = " \t\n\r\0\x0B") { |
||
244 | 1 | return ltrim($string, $charlist); |
|
245 | 1 | }, |
|
246 | 'rtrim' => function($string, $charlist = " \t\n\r\0\x0B") { |
||
247 | 1 | return rtrim($string, $charlist); |
|
248 | 1 | }, |
|
249 | 'str_repeat' => function($string, $multiplier = 1) { |
||
250 | 1 | return str_repeat($string, $multiplier); |
|
251 | 1 | }, |
|
252 | 'plural' => function($string, $count = 2) { |
||
253 | 1 | return str_plural($string, $count); |
|
254 | 1 | }, |
|
255 | 'strpad' => function($string, $pad_length, $pad_string = ' ') { |
||
256 | 1 | return str_pad($string, $pad_length, $pad_string, $pad_type = STR_PAD_BOTH); |
|
257 | 1 | }, |
|
258 | 'leftpad' => function($string, $pad_length, $pad_string = ' ') { |
||
259 | 1 | return str_pad($string, $pad_length, $pad_string, $pad_type = STR_PAD_LEFT); |
|
260 | 1 | }, |
|
261 | 'rightpad' => function($string, $pad_length, $pad_string = ' ') { |
||
262 | 1 | return str_pad($string, $pad_length, $pad_string, $pad_type = STR_PAD_RIGHT); |
|
263 | 1 | }, |
|
264 | 'rtl' => function($string) { |
||
265 | 1 | return strrev($string); |
|
266 | 1 | }, |
|
267 | 'var_dump' => function($expression) { |
||
268 | 1 | ob_start(); |
|
269 | 1 | var_dump($expression); |
|
270 | 1 | $result = ob_get_clean(); |
|
271 | |||
272 | 1 | return $result; |
|
273 | 1 | }, |
|
274 | 1 | ]; |
|
275 | } |
||
276 | |||
277 | /** |
||
278 | * Works like the config() helper function. |
||
279 | * |
||
280 | * @return array |
||
281 | */ |
||
282 | 1 | private function getConfigFunction() |
|
290 | |||
291 | /** |
||
292 | * Works like the session() helper function. |
||
293 | * |
||
294 | * @return array |
||
295 | */ |
||
296 | 1 | private function getSessionFunction() |
|
304 | |||
305 | /** |
||
306 | * Works like the trans() helper function. |
||
307 | * |
||
308 | * @return array |
||
309 | */ |
||
310 | 1 | private function getTransFunction() |
|
318 | |||
319 | /** |
||
320 | * Dumps information about a variable. |
||
321 | * |
||
322 | * @return array |
||
323 | */ |
||
324 | private function getVarDumpFunction() |
||
336 | |||
337 | /** |
||
338 | * Create protected link with mailto: |
||
339 | * |
||
340 | * @param string $email Email to render. |
||
341 | * @param bool $link If email should be rendered as link. |
||
342 | * @param bool $protected If email should be protected. |
||
343 | * @param string $text Link text. Render email by default. |
||
344 | * |
||
345 | * @see http://www.maurits.vdschee.nl/php_hide_email/ |
||
346 | * |
||
347 | * @return string |
||
348 | */ |
||
349 | 1 | private function hideEmail($email, $link = true, $protected = true, $text = null) |
|
384 | } |
||
385 |