我对CakePHP2文档的理解使我相信我可以创建一个包含单个视图的简单插件,并且该视图可以(如果正确完成)覆盖默认视图。
例如,如果应用程序有一个app / View / Pages / foo.ctp只显示文本“Foo”,则app / Plugin / Bar / View / Pages / foo.ctp中的插件包含文本“酒吧”
我确保bootstrap.php使用CakePlugin :: load('Bar')加载插件;
我删除了app / tmp / cache / /
根据我的理解,Cake并不要求我需要控制器或模型。
然而,应用程序仅显示“Foo”而不是显示“Bar”的预期覆盖。
根据我的描述,我理解或实施方法的哪些部分似乎有误? (为什么?)实现这个插件视图的简单/更好的方法是什么?
TIA
(我已阅读http://book.cakephp.org/2.0/en/plugins.html和http://book.cakephp.org/2.0/en/views.html)
答案 0 :(得分:0)
theme只是模板文件的集合,可用于覆盖应用程序中使用的模板;而plugins也包含类 - 你在寻找主题吗?
仅仅创建模板文件并加载插件是不够的。要渲染它,您需要:
即。在任何控制器中:
$this->render('Bar.template_name')
即。创建插件文件:
$ Console\cake bake plugin Bar
$ Console\cake bake controller Some --plugin Bar
$ etc.
$ echo "Something" > Plugin/Bar/View/Some/index.ctp
并请求:http://yourapp.com/bar/index
有关详细信息,请参阅the docs on how to create a plugin。