library/smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php
changeset 46 f11c31f7fa3e
parent 45 a56e7f9a0463
child 47 03388ec805b4
deleted file mode 100644
--- a/library/smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php
+++ /dev/null
@@ -1,148 +0,0 @@
-<?php
-/**
- * Smarty Internal Plugin Compile Print Expression
- * Compiles any tag which will output an expression or variable
- *
- * @package    Smarty
- * @subpackage Compiler
- * @author     Uwe Tews
- */
-
-/**
- * Smarty Internal Plugin Compile Print Expression Class
- *
- * @package    Smarty
- * @subpackage Compiler
- */
-class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_CompileBase {
-    /**
-     * Attribute definition: Overwrites base class.
-     *
-     * @var array
-     * @see Smarty_Internal_CompileBase
-     */
-    public $optional_attributes = array('assign');
-    /**
-     * Attribute definition: Overwrites base class.
-     *
-     * @var array
-     * @see Smarty_Internal_CompileBase
-     */
-    public $option_flags = array('nocache', 'nofilter');
-
-    /**
-     * Compiles code for generating output from any expression
-     *
-     * @param array $args array with attributes from parser
-     * @param object $compiler compiler object
-     * @param array $parameter array with compilation parameter
-     *
-     * @throws SmartyException
-     * @return string compiled code
-     */
-    public function compile($args, $compiler, $parameter) {
-        // check and get attributes
-        $_attr = $this->getAttributes($compiler, $args);
-        // nocache option
-        if ($_attr['nocache'] === true) {
-            $compiler->tag_nocache = true;
-        }
-        if (isset($_attr['assign'])) {
-            // assign output to variable
-            $output = "<?php \$_smarty_tpl->assign({$_attr['assign']},{$parameter['value']});?>";
-        } else {
-            // display value
-            $output = $parameter['value'];
-            // tag modifier
-            if (!empty($parameter['modifierlist'])) {
-                $output = $compiler->compileTag('private_modifier', array(), array('modifierlist' => $parameter['modifierlist'], 'value' => $output));
-            }
-            if (!$_attr['nofilter']) {
-                // default modifier
-                if (!empty($compiler->smarty->default_modifiers)) {
-                    if (empty($compiler->default_modifier_list)) {
-                        $modifierlist = array();
-                        foreach ($compiler->smarty->default_modifiers as $key => $single_default_modifier) {
-                            preg_match_all('/(\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'|"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"|:|[^:]+)/', $single_default_modifier, $mod_array);
-                            for ($i = 0, $count = count($mod_array[0]); $i < $count; $i++) {
-                                if ($mod_array[0][$i] != ':') {
-                                    $modifierlist[$key][] = $mod_array[0][$i];
-                                }
-                            }
-                        }
-                        $compiler->default_modifier_list = $modifierlist;
-                    }
-                    $output = $compiler->compileTag('private_modifier', array(), array('modifierlist' => $compiler->default_modifier_list, 'value' => $output));
-                }
-                // autoescape html
-                if ($compiler->template->smarty->escape_html) {
-                    $output = "htmlspecialchars({$output}, ENT_QUOTES, '" . addslashes(Smarty::$_CHARSET) . "')";
-                }
-                // loop over registered filters
-                if (!empty($compiler->template->smarty->registered_filters[Smarty::FILTER_VARIABLE])) {
-                    foreach ($compiler->template->smarty->registered_filters[Smarty::FILTER_VARIABLE] as $key => $function) {
-                        if (!is_array($function)) {
-                            $output = "{$function}({$output},\$_smarty_tpl)";
-                        } elseif (is_object($function[0])) {
-                            $output = "\$_smarty_tpl->smarty->registered_filters[Smarty::FILTER_VARIABLE]['{$key}'][0]->{$function[1]}({$output},\$_smarty_tpl)";
-                        } else {
-                            $output = "{$function[0]}::{$function[1]}({$output},\$_smarty_tpl)";
-                        }
-                    }
-                }
-                // auto loaded filters
-                if (isset($compiler->smarty->autoload_filters[Smarty::FILTER_VARIABLE])) {
-                    foreach ((array)$compiler->template->smarty->autoload_filters[Smarty::FILTER_VARIABLE] as $name) {
-                        $result = $this->compile_output_filter($compiler, $name, $output);
-                        if ($result !== false) {
-                            $output = $result;
-                        } else {
-                            // not found, throw exception
-                            throw new SmartyException("Unable to load filter '{$name}'");
-                        }
-                    }
-                }
-                if (isset($compiler->template->variable_filters)) {
-                    foreach ($compiler->template->variable_filters as $filter) {
-                        if (count($filter) == 1 && ($result = $this->compile_output_filter($compiler, $filter[0], $output)) !== false) {
-                            $output = $result;
-                        } else {
-                            $output = $compiler->compileTag('private_modifier', array(), array('modifierlist' => array($filter), 'value' => $output));
-                        }
-                    }
-                }
-            }
-
-            $compiler->has_output = true;
-            $output = "<?php echo {$output};?>";
-        }
-
-        return $output;
-    }
-
-    /**
-     * @param object $compiler compiler object
-     * @param string $name name of variable filter
-     * @param string $output embedded output
-     *
-     * @return string
-     */
-    private function compile_output_filter($compiler, $name, $output) {
-        $plugin_name = "smarty_variablefilter_{$name}";
-        $path = $compiler->smarty->loadPlugin($plugin_name, false);
-        if ($path) {
-            if ($compiler->template->caching) {
-                $compiler->template->required_plugins['nocache'][$name][Smarty::FILTER_VARIABLE]['file'] = $path;
-                $compiler->template->required_plugins['nocache'][$name][Smarty::FILTER_VARIABLE]['function'] = $plugin_name;
-            } else {
-                $compiler->template->required_plugins['compiled'][$name][Smarty::FILTER_VARIABLE]['file'] = $path;
-                $compiler->template->required_plugins['compiled'][$name][Smarty::FILTER_VARIABLE]['function'] = $plugin_name;
-            }
-        } else {
-            // not found
-            return false;
-        }
-
-        return "{$plugin_name}({$output},\$_smarty_tpl)";
-    }
-}