• CanPHP在模板文件中调用模块方法

    默认在模板文件中只能接受调用方法传过来的参数,需要调用模块(module)方法的话,对框架中的cpTemplate文件进行一些修改就很方便了,使用方法与开发文档中相同。
    修改 CanPHP/core/cpTemplate.class.php 添加模块调用方法,使前台模板中可以调用指定模块中的方法
    ///查看 CanPHP/lib/common.function.php

    //模块之间相互调用

    public function  module($module)
    {
        static $module_obj=array();
        static $config=array();
        if(isset($module_obj[$module]))
        {
            return $module_obj[$module];
        }
        if(!isset($config['MODULE_PATH']))
        {
            $config['MODULE_PATH']=cpConfig::get('MODULE_PATH');
            $config['MODULE_SUFFIX']=cpConfig::get('MODULE_SUFFIX');
            $suffix_arr=explode('.',$config['MODULE_SUFFIX'],2);
            $config['MODULE_CLASS_SUFFIX']=$suffix_arr[0];
        }
        if(file_exists($config['MODULE_PATH'].$module.$config['MODULE_SUFFIX']))
        {
                require_once($config['MODULE_PATH'].$module.$config['MODULE_SUFFIX']);//加载模型文件
                $classname=$module.$config['MODULE_CLASS_SUFFIX'];
                if(class_exists($classname))
                {
                    return  $module_obj[$module]=new $classname();
                }
        }
        return false;

    }

    ——————–补充——————————–
    修改cpTemplate 文件之后,导致其他方法重新加载是网站出现异常 状况记录
    。LANG::get()  多语言中的cookie 重设问题,修改lib/Lang.class.php 中85行附近的setcookie 代码,添加if 判断

    if($_COOKIE['cp_language'] != $lang) setcookie('cp_language',$lang,time()+3600*24*365,'/');

    ———————待完善———————–

click
©2010-2024 Jeen All Rights Reserved.Powered by emlog 京ICP备15058100号-1