No Description

ContentReplaceBehavior.class.php 2.7KB

    <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ] // +---------------------------------------------------------------------- // | Copyright (c) 2006-2012 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> // +---------------------------------------------------------------------- // $Id: ContentReplaceBehavior.class.php 2777 2012-02-23 13:07:50Z liu21st $ /** +------------------------------------------------------------------------------ * 系统行为扩展 模板内容输出替换 +------------------------------------------------------------------------------ */ class ContentReplaceBehavior extends Behavior { // 行为参数定义 protected $options = array( 'TMPL_PARSE_STRING'=>array(), ); // 行为扩展的执行入口必须是run public function run(&$content){ $content = $this->templateContentReplace($content); } /** +---------------------------------------------------------- * 模板内容替换 +---------------------------------------------------------- * @access protected +---------------------------------------------------------- * @param string $content 模板内容 +---------------------------------------------------------- * @return string +---------------------------------------------------------- */ protected function templateContentReplace($content) { // 系统默认的特殊变量替换 $replace = array( '__TMPL__' => APP_TMPL_PATH, // 项目模板目录 '__ROOT__' => __ROOT__, // 当前网站地址 '__APP__' => __APP__, // 当前项目地址 '__GROUP__' => defined('GROUP_NAME')?__GROUP__:__APP__, '__ACTION__' => __ACTION__, // 当前操作地址 '__SELF__' => __SELF__, // 当前页面地址 '__URL__' => __URL__, '../Public' => APP_TMPL_PATH.'Public',// 项目公共模板目录 '__PUBLIC__' => __ROOT__.'/Public',// 站点公共目录 ); // 允许用户自定义模板的字符串替换 if(is_array(C('TMPL_PARSE_STRING')) ) $replace = array_merge($replace,C('TMPL_PARSE_STRING')); $content = str_replace(array_keys($replace),array_values($replace),$content); return $content; } }