我是想解决这个需求,网站的后台代码的view不变,前台的view可以根据theme不同选择不同的view。
想法1 如果变化theme,全部的view都变,这样会增加一些不必要的代码维护,出现很大的冗余,因为我大部分的view没有变。
想法2 如果大部分不变的view不使用theme,是否可以?或者是它是用的是A 这个theme,变的部分可以选择A、B、C等等的theme
我是想解决这个需求,网站的后台代码的view不变,前台的view可以根据theme不同选择不同的view。
想法1 如果变化theme,全部的view都变,这样会增加一些不必要的代码维护,出现很大的冗余,因为我大部分的view没有变。
想法2 如果大部分不变的view不使用theme,是否可以?或者是它是用的是A 这个theme,变的部分可以选择A、B、C等等的theme
你完全可以在指定控制器或动作,动态进行更改 theme~ 来达到你的需求
谢谢。如果我只想修改某个controller的view路径呢?假设AController的view目录是a,我现在想让他的目录是b,应该怎么修改?
视图里可以使用$this->renderPartial()
参数使用变量在控制器里控制就好了。。。
恩 ,这是一种方法,但有点不灵活。
如果使用了themes和module,表达的名称应该不一样了吧?
如果能修改getViewPath的方法,或者重载就漂亮了。
还有在view中假如要 createUrl的时候怎么办?也用 application.views.cc.article 的怪名吗?
你可以通过重写getViewPath()实现更改viewpath的目的。
另外, render()函数有三种方式指定视图的位置。请查看CController::getViewFile()的说明。
view和url没关系啊。
可以直接写 $this->render(‘application.views.viwdir.viewfile’)
读一下getViewFile源码立即就明白了。