"Fossies" - the Fresh Open Source Software Archive

Member "smarty-3.1.34/libs/sysplugins/smarty_internal_method_literals.php" (28 Feb 2019, 3049 Bytes) of package /linux/www/smarty-3.1.34.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) PHP source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "smarty_internal_method_literals.php" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 3.1.32_vs_3.1.33.

    1 <?php
    2 
    3 /**
    4  * Smarty Method GetLiterals
    5  *
    6  * Smarty::getLiterals() method
    7  *
    8  * @package    Smarty
    9  * @subpackage PluginsInternal
   10  * @author     Uwe Tews
   11  */
   12 class Smarty_Internal_Method_Literals
   13 {
   14     /**
   15      * Valid for Smarty and template object
   16      *
   17      * @var int
   18      */
   19     public $objMap = 3;
   20 
   21     /**
   22      * Get literals
   23      *
   24      * @api Smarty::getLiterals()
   25      *
   26      * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
   27      *
   28      * @return array list of literals
   29      */
   30     public function getLiterals(Smarty_Internal_TemplateBase $obj)
   31     {
   32         $smarty = $obj->_getSmartyObj();
   33         return (array)$smarty->literals;
   34     }
   35 
   36     /**
   37      * Add literals
   38      *
   39      * @api Smarty::addLiterals()
   40      *
   41      * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
   42      * @param array|string                                                    $literals literal or list of literals
   43      *                                                                                  to addto add
   44      *
   45      * @return \Smarty|\Smarty_Internal_Template
   46      * @throws \SmartyException
   47      */
   48     public function addLiterals(Smarty_Internal_TemplateBase $obj, $literals = null)
   49     {
   50         if (isset($literals)) {
   51             $this->set($obj->_getSmartyObj(), (array)$literals);
   52         }
   53         return $obj;
   54     }
   55 
   56     /**
   57      * Set literals
   58      *
   59      * @api Smarty::setLiterals()
   60      *
   61      * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
   62      * @param array|string                                                    $literals literal or list of literals
   63      *                                                                                  to setto set
   64      *
   65      * @return \Smarty|\Smarty_Internal_Template
   66      * @throws \SmartyException
   67      */
   68     public function setLiterals(Smarty_Internal_TemplateBase $obj, $literals = null)
   69     {
   70         $smarty = $obj->_getSmartyObj();
   71         $smarty->literals = array();
   72         if (!empty($literals)) {
   73             $this->set($smarty, (array)$literals);
   74         }
   75         return $obj;
   76     }
   77 
   78     /**
   79      * common setter for literals for easier handling of duplicates the
   80      * Smarty::$literals array gets filled with identical key values
   81      *
   82      * @param \Smarty $smarty
   83      * @param array   $literals
   84      *
   85      * @throws \SmartyException
   86      */
   87     private function set(Smarty $smarty, $literals)
   88     {
   89         $literals = array_combine($literals, $literals);
   90         $error = isset($literals[ $smarty->left_delimiter ]) ? array($smarty->left_delimiter) : array();
   91         $error = isset($literals[ $smarty->right_delimiter ]) ? $error[] = $smarty->right_delimiter : $error;
   92         if (!empty($error)) {
   93             throw new SmartyException(
   94                 'User defined literal(s) "' . $error .
   95                 '" may not be identical with left or right delimiter'
   96             );
   97         }
   98         $smarty->literals = array_merge((array)$smarty->literals, (array)$literals);
   99     }
  100 }