1

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

1 回答 1

1

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

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

请注意冒号是如何用于将出现在左侧的块与出现在右侧的块分开的。

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

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

到:

define('BLOCK_POS_LEFT',  'top');

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

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

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

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

于 2013-10-18T08:18:23.633 回答