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市场,他们通常不接受带有覆盖的附加组件