繁体   English   中英

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

[英]CakePHP Themed application and plugin view elements missing

我使用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此解决方案也可以使用。

我从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.错误Action CommentsController::index() could not be found. 它以混合了我主题的布局和默认的CakePHP布局的missy布局呈现,下面的快照演示了它:

在此处输入图片说明

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

如果知道的话,您可以为cakephp插件创建主题视图。 因此,在将此插件复制到Plugins目录后,请在主题目录中的主题中创建箱子。 将插件的View目录的内容复制到:\\ app \\ View \\ Themed \\ Slate \\ Plugin \\ Comments

Cake php将使用此目录作为您的插件。 像这个例子\\ app \\ View \\ Themed \\ Slate \\ Plugin \\ Comments \\ Elements \\ comments \\ flat.ctp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM