【发布时间】:2013-10-21 03:13:28
【问题描述】:
我使用的是CakePHP 2.4.1,安装CakeDC cmets插件后,收到如下提示:
通知 (1024):未找到元素:Elements\cmets\flat\main.ctp [CORE\Cake\View\View.php,第 415 行]
我的基础应用程序正在使用主题。我从 AppController beforeFilter 回调中初始化主题,如下所示:
class AppController extends Controller {
function beforeFilter(){
App::uses('Security', 'Utility');
$this->theme = 'Slate';
$this->layout = 'blog' ;
}
}
为了解决这个问题,我尝试了两种方法,一种成功了,另一种没有如下:
- 创建
\Plugin\Comments\View\Themed\Slate\Elements,然后将\Plugin\Comments\View\Elements的所有内容复制到新目录。但是,此解决方案不起作用。 - 将
\Plugin\Comments\View\Elements\comments目录复制到\app\View\Themed\Slate\Elements。该解决方案运行良好。如果我复制到\app\View\Elements,此解决方案也有效。
我从 app/Config/bootstrap.php 初始化插件如下:
CakePlugin::loadAll();
而从控制器为:
public function callback_commentsInitType() {
return 'flat'; // threaded, tree and flat supported
}
以下为通知截图:
此外,当我尝试访问http://mywebsite.com/comments 时,它返回关于Action CommentsController::index() could not be found. 的错误,该错误以混合了我的主题布局和默认CakePHP 布局的missy 布局呈现,下面的截图展示了它:
在 CakePHP 手册中没有提到复制插件的视图文件。它应该按原样工作!我不知道为什么插件错过了它的元素?!我怎样才能使这个插件与应用的主题视图正确交互?
【问题讨论】:
标签: php cakephp plugins cakedc cakephp-2.4