修改PyroCMS的页面模块中的默认块数

时间:2012-11-08 14:35:40

标签: php codeigniter pyrocms

我想在制作新页面时有2个默认块而不是1个。

原因是,我的主模板分为两部分,我想从2个部分开始。

我想要做的是编辑页面模块,这样无论何时用户创建新页面,它们总是以我已命名和定义的2个块开始。

为了达到这个目的,我需要修改什么?

注意:我已经修改了页面模块和数据库以添加一些自定义字段。我认为这是相同的交易,但我找不到创建初始块的位置......

2 个答案:

答案 0 :(得分:2)

如果查看pages模块的admin控制器中的第340行,则会在$pages->chunks属性中创建一个数组。我通过添加另一个数组/对象修改了这个,这创建了两个名为“default”和“default2”的块的页面。

$page->chunks = array((object) array(
    'id' => 'NEW',
    'slug' => 'default',
    'body' => '',
    'type' => 'wysiwyg-advanced',
),
(object) array(
        'id' => 'NEW2',
        'slug' => 'default2',
        'body' => '',
        'type' => 'wysiwyg-advanced',
    ),
);

说实话,我不确定id的作用,但最好确保它是唯一的。

答案 1 :(得分:1)

感谢@ nick-pyett。这是适用于我的代码。

这是最终的代码:

$page->chunks = array(array(
'id' => 'NEW',
'slug' => 'default',
'class' => '',
'body' => '',
'type' => 'wysiwyg-advanced',
),
array(
'id' => 'NEW2',
'slug' => 'default2',
'class' => '',
'body' => '',
'type' => 'wysiwyg-advanced',
),
);

我看了看id到底在哪里。它似乎附加到每个元素的名称。像这样:

  

chunk_slug [NEW2]

实际的slug进入块上的第一个输入,这将是你用来在页面中调用它的slug。

  

{{pages:chunk id =“{{page:id}}”name =“default2”}}