CakePHP主题应用程序和插件视图元素缺失

时间:2013-10-13 12:30:55

标签: php cakephp plugins cakedc cakephp-2.4

我使用CakePHP 2.4.1并在安装CakeDC评论插件后,我收到了以下注意事项:

  

注意(1024):找不到元素:Elements \ comments \ 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' ;
     } 
}

为了解决这个问题,我尝试了两种方法,其中一种方法成功,但另一方面不如下:

  1. 创建\Plugin\Comments\View\Themed\Slate\Elements,然后将\Plugin\Comments\View\Elements的所有内容复制到新目录。但是,此解决方案无效
  2. \Plugin\Comments\View\Elements\comments目录复制到\app\View\Themed\Slate\Elements。这个解决方案运行正常。如果我复制到\app\View\Elements
  3. ,此解决方案也可以使用

    我从app / Config / bootstrap.php初始化插件,如下所示:

    CakePlugin::loadAll();
    

    从控制器中:

    public function callback_commentsInitType() {
    
            return 'flat'; // threaded, tree and flat supported
        }
    

    以下是该通知的屏幕截图: enter image description here

    此外,当我尝试访问http://mywebsite.com/comments时,它返回有关Action CommentsController::index() could not be found.的错误,该错误以missy布局呈现,混合了我的主题布局和默认的CakePHP布局,以下镜头演示了它:

    enter image description here

    在CakePHP手册中,没有提及复制插件的视图文件。它应该工作原样!我不知道为什么这个插件错过了它的元素?!如何使用应用程序的主题视图正确地进行此插件交互?

1 个答案:

答案 0 :(得分:1)

如果您熟悉,可以为cakephp插件创建主题视图。所以你把这个插件复制到你的主题目录主题的插件目录包中。 将插件的View目录的内容复制到: \应用\视图\主题\板岩\插件\评论

Cake php会将此目录用于您的插件。 喜欢这个例子\ app \ View \ Themed \ Slate \ Plugin \ Comments \ Elements \ comments \ flat.ctp

相关问题