101 lines
3.0 KiB
PHP
101 lines
3.0 KiB
PHP
|
<?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 addto 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 setto 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);
|
||
|
}
|
||
|
}
|