2

我编写了一个非常简单的自定义块,但是当我尝试安装它时,我收到以下错误:

致命错误:在第 22 行的 {REMOVED}/concrete/core/controllers/single_pages/dashboard/blocks/types.php 中调用未定义的方法 stdClass::isInternalBlockType()

我已经写了另一个很好并且安装完美,但是这个很痛苦!问题似乎出在 controller.php 上,因为当我删除它时它工作正常(只是安装时没有元数据,这不好!)

<?php 
defined('C5_EXECUTE') or die("Access Denied.");
class QuicklinksBlockController extends BlockController {

    protected $btTable = "btQuicklinks";
    protected $btInterfaceWidth = "600";
    protected $btInterfaceHeight = "400";

    public function getBlockTypeName() {
        return t('Quick Links Section');
    }

    public function getBlockTypeDescription() {
        return t('A quick links section block.');
    }

}
?>

因此,如果我删除除了它安装的类行之外的所有内容,只是没有标题等。

4

2 回答 2

3

我也拉了这个错误。就我而言,这是由于未遵循大写规则造成的。块目录中块的名称有“单词”,用下划线分隔,但这些必须是表名中的大写字母。换句话说,如果您在 blocks 目录中的块如下所示:

根/块/my_block

您的块表表名必须是:

btMyBlock

于 2014-05-25T21:20:54.323 回答
2

固定的!我忘记将 db.xml 文件更改为新的表名,因此出现错误。

于 2013-03-02T19:11:07.543 回答