Concrete5 覆盖第5.6.1.2节中包内的页面列表控制器
是否有方法覆盖位于Concrete5 覆盖第5.6.1.2节中包内的页面列表控制器,concrete5,Concrete5,是否有方法覆盖位于/concrete/blocks/page\u list/controller.php的控制器文件,并将其放置在/packages/mypackage/blocks/page\u list/中?我想对原始编辑和视图进行一些更改 在/packages/mypackage/blocks/page_list/controller.php中,我尝试过这样做,但似乎没有任何效果: class PageListBlockController扩展了Concrete5\u Controller
/concrete/blocks/page\u list/controller.php的控制器文件,并将其放置在/packages/mypackage/blocks/page\u list/
中?我想对原始编辑和视图进行一些更改
在/packages/mypackage/blocks/page_list/controller.php中,我尝试过这样做,但似乎没有任何效果:
class PageListBlockController扩展了Concrete5\u Controller\u Block\u PageList{…}
否。不能从包内重写块控制器。想象一下,如果不止一个软件包这样做。(但是,您可以在包目录中有一个块模板,但这是有意义的,因为它添加而不是替换。)
如果可以,您应该将其放在/blocks/page\u list/controller.php
中进行覆盖
但是,如果您仍然需要从包中重写它,则应该查看不太受支持的环境::overrideCoreByPackage()
并尝试:
Environment::get()->overrideCoreByPackage('/blocks/page_list/controller.php', $myPackage);
见资料来源:
还有一个用法示例:
否。您不能从包中覆盖块控制器。想象一下,如果不止一个软件包这样做。(但是,您可以在包目录中有一个块模板,但这是有意义的,因为它添加而不是替换。)
如果可以,您应该将其放在/blocks/page\u list/controller.php
中进行覆盖
但是,如果您仍然需要从包中重写它,则应该查看不太受支持的环境::overrideCoreByPackage()
并尝试:
Environment::get()->overrideCoreByPackage('/blocks/page_list/controller.php', $myPackage);
见资料来源:
还有一个用法示例:
您现在可以通过较新版本Concrete5(v.5.6+)中的包覆盖/扩展核心类
您必须将以下内容添加到包的主controller.php文件中:
public function on_start(){
$objEnv = Environment::get();
$objEnv->overrideCoreByPackage('blocks/page_list/controller.php', $this);
}
您不必复制整个核心控制器,只需按如下方式声明新的块控制器:
class PageList extends Concrete5_Controller_Block_Page_List {
public function mymethod() {
}
}
(您要扩展的类和文件放置的位置可能因C5版本而异-只需比较/concrete/
文件夹结构和文件以供参考)
以下C5论坛帖子可能会有所帮助:
不过需要注意的是,如果您希望提交到官方C5市场,他们通常不接受带有覆盖的附加组件。您现在可以通过较新版本Concrete5(v.5.6+)中的包覆盖/扩展核心类
您必须将以下内容添加到包的主controller.php文件中:
public function on_start(){
$objEnv = Environment::get();
$objEnv->overrideCoreByPackage('blocks/page_list/controller.php', $this);
}
您不必复制整个核心控制器,只需按如下方式声明新的块控制器:
class PageList extends Concrete5_Controller_Block_Page_List {
public function mymethod() {
}
}
(您要扩展的类和文件放置的位置可能因C5版本而异-只需比较/concrete/
文件夹结构和文件以供参考)
以下C5论坛帖子可能会有所帮助:
不过需要注意的是,如果您希望提交给官方C5市场,他们通常不接受带有覆盖的附加组件