1<?php
2/**
3 * Smarty plugin
4 *
5 * @package    Smarty
6 * @subpackage PluginsModifierCompiler
7 */
8
9/**
10 * Smarty wordwrap modifier plugin
11 * Type:     modifier<br>
12 * Name:     wordwrap<br>
13 * Purpose:  wrap a string of text at a given length
14 *
15 * @link   http://smarty.php.net/manual/en/language.modifier.wordwrap.php wordwrap (Smarty online manual)
16 * @author Uwe Tews
17 *
18 * @param array $params parameters
19 * @param       $compiler
20 *
21 * @return string with compiled code
22 */
23function smarty_modifiercompiler_wordwrap($params, $compiler)
24{
25    if (!isset($params[1])) {
26        $params[1] = 80;
27    }
28    if (!isset($params[2])) {
29        $params[2] = '"\n"';
30    }
31    if (!isset($params[3])) {
32        $params[3] = 'false';
33    }
34    $function = 'wordwrap';
35    if (Smarty::$_MBSTRING) {
36        if ($compiler->template->caching && ($compiler->tag_nocache | $compiler->nocache)) {
37            $compiler->parent_compiler->template->compiled->required_plugins['nocache']['wordwrap']['modifier']['file'] = SMARTY_PLUGINS_DIR . 'shared.mb_wordwrap.php';
38            $compiler->template->required_plugins['nocache']['wordwrap']['modifier']['function'] = 'smarty_mb_wordwrap';
39        } else {
40            $compiler->parent_compiler->template->compiled->required_plugins['compiled']['wordwrap']['modifier']['file'] = SMARTY_PLUGINS_DIR . 'shared.mb_wordwrap.php';
41            $compiler->parent_compiler->template->compiled->required_plugins['compiled']['wordwrap']['modifier']['function'] = 'smarty_mb_wordwrap';
42        }
43        $function = 'smarty_mb_wordwrap';
44    }
45
46    return $function . '(' . $params[0] . ',' . $params[1] . ',' . $params[2] . ',' . $params[3] . ')';
47}
48