Theme能否只影响一部分view?

我是想解决这个需求,网站的后台代码的view不变,前台的view可以根据theme不同选择不同的view。

想法1 如果变化theme,全部的view都变,这样会增加一些不必要的代码维护,出现很大的冗余,因为我大部分的view没有变。

想法2 如果大部分不变的view不使用theme,是否可以?或者是它是用的是A 这个theme,变的部分可以选择A、B、C等等的theme

1 Like

你完全可以在指定控制器或动作,动态进行更改 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源码立即就明白了。