-
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,'/');
———————待完善———————–