A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					98 lines
				
				3.0 KiB
			
		
		
			
		
	
	
					98 lines
				
				3.0 KiB
			| 
								 
											7 years ago
										 
									 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Smarty Method GetLiterals
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Smarty::getLiterals() method
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @package    Smarty
							 | 
						||
| 
								 | 
							
								 * @subpackage PluginsInternal
							 | 
						||
| 
								 | 
							
								 * @author     Uwe Tews
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class Smarty_Internal_Method_Literals
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Valid for Smarty and template object
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @var int
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public $objMap = 3;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Get literals
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @api Smarty::getLiterals()
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @return array list of literals
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function getLiterals(Smarty_Internal_TemplateBase $obj)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $smarty = $obj->_getSmartyObj();
							 | 
						||
| 
								 | 
							
								        return (array)$smarty->literals;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Add literals
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @api Smarty::addLiterals()
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
							 | 
						||
| 
								 | 
							
								     * @param  array|string                                                   $literals  literal or list of literals
							 | 
						||
| 
								 | 
							
								     *                                                                                   to add
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @return \Smarty|\Smarty_Internal_Template
							 | 
						||
| 
								 | 
							
								     * @throws \SmartyException
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function addLiterals(Smarty_Internal_TemplateBase $obj, $literals = null)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        if (isset($literals)) {
							 | 
						||
| 
								 | 
							
								            $this->set($obj->_getSmartyObj(), (array)$literals);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return $obj;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Set literals
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @api Smarty::setLiterals()
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
							 | 
						||
| 
								 | 
							
								     * @param  array|string                                                   $literals  literal or list of literals
							 | 
						||
| 
								 | 
							
								     *                                                                                   to set
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @return \Smarty|\Smarty_Internal_Template
							 | 
						||
| 
								 | 
							
								     * @throws \SmartyException
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function setLiterals(Smarty_Internal_TemplateBase $obj, $literals = null)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $smarty = $obj->_getSmartyObj();
							 | 
						||
| 
								 | 
							
								        $smarty->literals = array();
							 | 
						||
| 
								 | 
							
								        if (!empty($literals)) {
							 | 
						||
| 
								 | 
							
								            $this->set($smarty, (array)$literals);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return $obj;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * common setter for literals for easier handling of duplicates the
							 | 
						||
| 
								 | 
							
								     * Smarty::$literals array gets filled with identical key values
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param \Smarty $smarty
							 | 
						||
| 
								 | 
							
								     * @param  array  $literals
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @throws \SmartyException
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    private function set(Smarty $smarty, $literals)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $literals = array_combine($literals, $literals);
							 | 
						||
| 
								 | 
							
								        $error = isset($literals[ $smarty->left_delimiter ]) ? array($smarty->left_delimiter) : array();
							 | 
						||
| 
								 | 
							
								        $error = isset($literals[ $smarty->right_delimiter ]) ? $error[] = $smarty->right_delimiter : $error;
							 | 
						||
| 
								 | 
							
								        if (!empty($error)) {
							 | 
						||
| 
								 | 
							
								            throw new SmartyException('User defined literal(s) "' . $error .
							 | 
						||
| 
								 | 
							
								                                      '" may not be identical with left or right delimiter');
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $smarty->literals = array_merge((array)$smarty->literals, (array)$literals);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |