Moodle:如何在新课程中将默认块设置为自定义区域


Moodle: how do I set default blocks into custom region in new courses?

我有一个带有自定义区域的 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';

引用自文档(新课程的默认块布局):

$CFG->defaultblocks_topics = 'participants,tags,admin:messages,online_users,recent_activity';

请注意冒号如何用于将左侧显示的块与右侧显示的块分开。

似乎您必须使用冒号。我查看了解析此字符串的函数代码(在 lib/blocklib.php 中,函数 blocks_parse_default_blocks_list 中,Moodle 2.4),我认为它只能处理左侧或右侧区域(side-preside-post)。对于黑客解决方案,您可以更改以下代码行(lib/blocklib.php):

define('BLOCK_POS_LEFT',  'side-pre');

自:

define('BLOCK_POS_LEFT',  'top');

但我认为更好的解决方案是使用"粘性"块(需要 Moodle > 2.3)。看看这个文档。以下是不同的步骤:

  1. 在首页添加块;
  2. 编辑块的配置。在"显示此块的位置"部分,选择"在整个站点中显示;
  3. 根据需要选择默认区域(在本例中为顶部底部)。
  4. 现在,您必须仅在课程上显示块。输入课程。编辑块(在课程中),然后在页面上显示类型中选择任何课程页面

现在,这些块将仅出现在课程页面上(而不是首页)。

学分:回复:在 Moodle 2.0 中的所有课程中阻止。我亲自在 Moodle 2.4 安装上对其进行了测试。