#1 dongfan
请问一下,如果做几套皮肤,在后台进行选择,请问如何设置才能使前台的皮肤根根后台的选择来变换啊?
我看了手册,仍旧没有弄明白,请指点一下?
2014-01-27 00:09:09
#2 jake
后台把皮肤的设置记录到数据库里面
前台在全局位置每次都读出皮肤的配置,然后再修改模板的路径。
2014-01-27 08:33:34
#3 dongfan
jake 发表于 2014-1-27 08:33
后台把皮肤的设置记录到数据库里面
前台在全局位置每次都读出皮肤的配置,然后再修改模板的路径。 ...
感谢回复哦,但是老大,能否举例说明一下啊?
目前配置中这样写:
'view' => array(
'enabled' => TRUE, // 开启视图
'config' =>array(
'template_dir' => APP_PATH.'/tpl', // 模板目录
'compile_dir' => APP_PATH.'/tmp', // 编译目录
'cache_dir' => APP_PATH.'/tmp', // 缓存目录
'left_delimiter' => '<{', // smarty左限定符
'right_delimiter' => '}>', // smarty右限定符
),
// 'auto_display' => TRUE, // 使用自动输出模板功能
// 'auto_display_sep' => "-", // 自动输出模板的拼装模式,/为按目录方式拼装,_为按下划线方式,这里用下划线
),
然后在controller中写样写
class main extends spController
{
function index(){
$tpl = $this->spArgs("tpl", "default"); // 这里接收tpl参数,使得模板变化
echo "SpeedPHP框架已经正常运行,欢迎使用!";
$this->display("{$tpl}/index.html"); // 显示模板
}
function baidu(){
$tpl = $this->spArgs("tpl", "baidu"); // 这里接收tpl参数,使得模板变化
echo "SpeedPHP框架已经正常运行,欢迎使用!百度页面";
$this->display("{$tpl}/index.html"); // 显示模板
}
}
在模板tpl文件夹中,我做两个示例:
一个是文件夹:default
-----index.html
一个是文件夹:baidu
-----index.html
但是通过访问:
http://127.0.0.7/index.php?c=main&a=baidu就不行哦?
2014-01-27 13:53:02
#4 dongfan
我的意思中想在tpl中做出几套皮肤,到时通过给$tpl的值,来达到变动前台模块的目的?
2014-01-27 13:54:27
#6 dongfan
可是我不是有这一句的吗
$tpl = $this->spArgs("tpl", "baidu"); // 这里接收tpl参数
这一句不是已经指定了默认的为baidu吗?
2014-01-27 21:51:54
#7 dongfan
老大,我看了一些你指导别人设置模板的帖子,我想问一下,你说的
$this->getView()->template_dir = APP_PATH.'/tpl'; // 这样就可以设置当前smarty对象的模板根路径
对于这个,想要写入控制器最上面,也就是说在控制开头就设置本控制器要读入的模板,请问该如何设置咧?
2014-02-08 20:39:58
#8 jake
dongfan 发表于 2014-2-8 20:39
老大,我看了一些你指导别人设置模板的帖子,我想问一下,你说的
$this->getView()->template_dir = APP_PA ...
看看手册关于全局位置的描述,全局位置就是解决这方面问题的。
2014-02-09 22:55:22
#9 dongfan
老大,我看了,模板内的全局变量赋值啊,但是那个是是在构造函数中设置变量,变量是在模板html文件中使用哦,并不是在controller中的其他方法中用哦!
我想在controller的设置变量,然后在此controller中的每个方法中去引用此变量,有需要时还可以改变此变量的值。
2014-02-10 23:18:39
#10 dongfan
讨论了这么多,还是直接一下 老大,多皮肤如何做到不同的客户可以设置自已的皮肤吧?
2014-02-10 23:19:55