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

时间:2013-10-17 23:29:22

标签: php moodle

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

1 个答案:

答案 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。以下是不同的步骤:

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

    致谢:Re: Block in all Courses in Moodle 2.0。我个人在Moodle 2.4安装上进行了测试。