12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace KIF\Core;
- use Smarty;
- include KIF_PATH . "/smarty/Smarty.class.php";
- use KIF\Core\Config;
- /**
- * 定义MVC里的V,即View
- * @author gaoxiaogang@gmail.com
- */
- class View extends Smarty
- {
- /**
- *
- * 存放要自动注册的 函数 信息
- * @var array
- */
- static private $auto_registers = array();
- private $tpl_type ; //静态文件的类型
-
- private $directory; //模板子目录
-
- public function __construct($directory = '')
- {
- $this->left_delimiter = "<{";
- $this->right_delimiter = "}>";
- $this->directory = $directory;
- foreach (self::$auto_registers as $tmpV) {
- $this->register_function($tmpV['smarty_func'], $tmpV['php_func'], $tmpV['cacheable'], $tmpV['cache_attrs']);
- }
- }
- /**
- *
- * 类方法.通知模版引擎自动注册函数
- * 目的:在使用项目处,方便的自动注册一些全局性的模版函数
- * @param string $function 注册后,模版使用时的 函数名
- * @param string $function_impl 要被注册的php函数名
- * @param bookean $cacheable
- * @param unknown_type $cache_attrs
- * @author gxg@gaojie100.com
- */
- static function auto_register_function($function, $function_impl, $cacheable=true, $cache_attrs=null) {
- self::$auto_registers[] = array(
- 'smarty_func' => $function,
- 'php_func' => $function_impl,
- 'cacheable' => $cacheable,
- 'cache_attrs' => $cache_attrs,
- );
- }
- /**
- *
- * 渲染模版并打印出来
- * @param string $tpl 模版文件名
- * @param unknown_type $cache_id
- * @param unknown_type $compile_id
- * @return NULL 无返回值
- */
- public function d($tpl, $cache_id = null, $compile_id = null)
- {
- $this->r($tpl, $cache_id , $compile_id ,true);
- }
-
- /**
- *
- * 渲染模版。默认时返回内容
- * @param string $tpl 模版文件名
- * @param unknown_type $cache_id
- * @param unknown_type $compile_id
- * @param boolean $display 是否打印出来?
- * @return string
- */
- public function r($tpl, $cache_id = null, $compile_id = null, $display = false)
- {
- $smarty_config = Config::getInstance()->get('smarty');
-
- $this->template_dir = $smarty_config['template_dir'];
- $this->compile_dir = $smarty_config['compile_dir'];
- $this->tpl_type = $smarty_config['tpl_type'] ? $smarty_config['tpl_type'] : 'html';
- $content = $this->fetch($tpl . "." . $this->tpl_type, $cache_id , $compile_id , $display);
- return $content;
- }
- }
|