コード例 #1
0
ファイル: Rhaco.php プロジェクト: riaf/ethna
 /**
  * smarty_function dispatcher
  *
  * @access protected
  * @param string $src
  */
 function _exec9002_smartyfunctions($src)
 {
     $tag = new SimpleTag();
     $smarty_plugin_list = $this->getSmartyPluginList();
     foreach ($smarty_plugin_list as $name => $plugin_config) {
         while ($tag->set($src, $this->_getTagName($name))) {
             if ($plugin_config['type'] == 'function') {
                 $param = $tag->toHash();
                 $src = str_replace($tag->getPlain(), $plugin_config['plugin']($param, $this), $src);
             } else {
                 if ($plugin_config['type'] == 'block') {
                     $repeat_before = true;
                     $repeat_after = false;
                     $param_list = $tag->getParameter();
                     foreach ($param_list as $param_tag) {
                         $param[$param_tag->getName()] = $param_tag->getValue();
                     }
                     $content = $tag->getValue();
                     //before(not return value)
                     $result = $plugin_config['plugin']($param, $content, $this, $repeat_before);
                     //after
                     $result = $plugin_config['plugin']($param, $content, $this, $repeat_after);
                     $src = str_replace($tag->getPlain(), $result, $src);
                 }
             }
         }
     }
     return $src;
 }