我有一个带有自定义区域的Moodle网站,即“顶部”和“底部”。我想自动为顶部区域的所有新课程添加一个HTML块。
我在config.php
中有这些,并且该块已添加到新课程中,但在错误的位置,添加到side-pre
区域...如何更改此项以将块添加到顶级地区?
'course' => array(
'file' => 'course.php',
'regions' => array('side-pre', 'top', 'bottom'),
'defaultregion' => 'bottom',
'options' => array('nonavbar'=>false),
$CFG->defaultblocks_override = 'html';
$CFG->defaultblocks_site = 'html';
$CFG->defaultblocks_social = 'html';
$CFG->defaultblocks_topics = 'html';
$CFG->defaultblocks_weeks = 'html';
答案 0 :(得分:1)
引用文档(Default block layout for new courses):
$CFG->defaultblocks_topics = 'participants,tags,admin:messages,online_users,recent_activity';
注意如何使用冒号将左侧出现的块与右侧出现的块分开。
好像你必须使用冒号。我查看了解析此字符串的函数代码(在lib/blocklib.php
,函数blocks_parse_default_blocks_list
,Moodle 2.4),我认为它只能处理左或右区域side-pre
和{{1 }})。对于一个hackish解决方案,您可以更改这行代码(在side-post
中):
lib/blocklib.php
要:
define('BLOCK_POS_LEFT', 'side-pre');
但我认为更好的解决方案是使用" sticky"块(需要Moodle define('BLOCK_POS_LEFT', 'top');
)。看看这个doc。以下是不同的步骤:
现在这些块只会出现在课程页面上(而不是在首页上)。
致谢:Re: Block in all Courses in Moodle 2.0。我个人在Moodle 2.4安装上进行了测试。