Source for file Smarty3.php
Documentation is available at Smarty3.php
// vim: foldmethod=marker
* @author Sotaro Karasawa <sotaro.k@gmail.com>
* @license http://www.opensource.org/licenses/bsd-license.php The BSD License
* @version $Id: 92f2d101591a2c7b61fc5674f9b75c9b3eb6c3fa $
// {{{ Ethna_Renderer_Smarty3
* @author Sotaro Karasawa <sotaro.k@gmail.com>
/** @private string compile directory */
/** @protected string path of smarty3 */
* Constructor for Ethna_Renderer_Smarty3
$smarty_config = isset
($this->config['smarty3'])
// Configurerd by controller
$template_dir =
$controller->getTemplatedir();
$compile_dir =
$controller->getDirectory('template_c');
$this->setTemplateDir($template_dir);
$this->compile_dir =
$compile_dir;
$this->engine->template_dir =
$template_dir;
$this->engine->compile_dir =
$compile_dir;
if (isset
($smarty_config['left_delimiter'])) {
$this->engine->left_delimiter =
$smarty_config['left_delimiter'];
if (isset
($smarty_config['right_delimiter'])) {
$this->engine->right_delimiter =
$smarty_config['right_delimiter'];
$controller->getDirectory('plugins'),
array(ETHNA_BASE .
'/class/Plugin/Smarty', SMARTY_DIR .
'plugins')
* @param string $template template name
* @param bool $capture if true, not display but return as string
public function perform($template =
null, $capture =
false)
if ($template ===
null &&
$this->template ===
null) {
if ($template !==
null) {
} catch
(SmartyCompilerException $e) {
* @param string $name variable name
* @return mixed variables
public function getProp($name =
null)
$property =
$this->engine->get_template_vars($name);
if ($property !==
null) {
* remove template variable
* @param name variable name
$this->engine->clear_assign($name);
* set array to template variable
$this->engine->assign($array);
* set array to template variable by reference
$this->engine->assignByRef($array);
* @param string $name variable name
* @param mixed $value value
public function setProp($name, $value)
$this->engine->assign($name, $value);
* set template variable by reference
* @param string $name variable name
* @param mixed $value value
$this->engine->assignByRef($name, $value);
* @param string $name plugin name
* @param string $type plugin type
* @param mixed $plugin plugin
* @TODO i don't know whether this is working or not
public function setPlugin($name, $type, $plugin)
$register_method =
'register_' .
$type;
if ($type ===
'prefilter' ||
$type ===
'postfilter' ||
$type ===
'outputfilter') {
parent::setPlugin($name, $type, $plugin);
$this->engine->$register_method($plugin);
parent::setPlugin($name, $type, $plugin);
$this->engine->$register_method($name, $plugin);
Documentation generated on Fri, 11 Nov 2011 03:59:06 +0900 by phpDocumentor 1.4.3