用户后台设置皮肤?

#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

#5 jake

http://127.0.0.7/index.php?c=main&a=baidu&tpl=baidu

tpl都没传进来嘛,建议看看入门教程

2014-01-27 14:21:52

#6 dongfan

jake 发表于 2014-1-27 14:21
http://127.0.0.7/index.php?c=main&a=baidu&tpl=baidu

tpl都没传进来嘛,建议看看入门教程 ...
可是我不是有这一句的吗
$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

#11 jake

dongfan 发表于 2014-2-10 23:19
讨论了这么多,还是直接一下 老大,多皮肤如何做到不同的客户可以设置自已的皮肤吧? ...
把用户的设置存到数据库

2014-02-12 09:11:03