永久地在Moodle中显示阻止?

时间:2012-09-28 14:23:24

标签: moodle

有没有办法在Moodle中永久显示一个块?我正在开发配置主题,我想知道是否有办法确保无论您在哪个页面上都可以看到块。

1 个答案:

答案 0 :(得分:1)

一个解决方案应该是添加一个新的区域 在主题目录 config.php文件中,修改布局选项,并将新区域添加到所有已使用的布局中:

$THEME->layouts = array(
'base' => array(
    'file' => 'admin.php',
    'regions' => array('your-region'),
    'defaultregion' => 'your-region',
),
'standard' => array(
    'file' => 'admin.php',
    'regions' => array('your-region', 'side-post'),
    'defaultregion' => 'your-region',
),
// The site home page.
'frontpage' => array(
    'file' => 'general.php',
    'regions' => array('tools-menu', 'side-post'),
    'defaultregion' => 'tools-menu',
    'defaultregion' => 'tools-menu',
),
'course' => array(
    'file' => 'general.php',
    'regions' => array('your-region'),
    'defaultregion' => 'your-region',
    'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
),
etc...

然后您编辑所有布局文件 theme/your_theme/layout/*.php ,并将此行添加到您想要显示块的位置

echo $OUTPUT->blocks_for_region('your-region');

现在,您必须将您的块添加到此区域以获取所有页面类型,只需在您的数据库中执行此sql:

INSERT INTO `mdl_block_instances` (
`id` ,
`blockname` ,
`parentcontextid` ,
`showinsubcontexts` ,
`pagetypepattern` ,
`subpagepattern` ,
`defaultregion` ,
`defaultweight` ,
`configdata`
)
VALUES ( NULL ,  'your_block_name',  '1',  '1',  '*',  NULL,  'your-region',  '0', NULL );