2013-10-17 108 views
1

我有一個自定義區域的Moodle網站,即'頂部'和'底部'。我想自動將HTML塊添加到頂部區域中的所有新課程。Moodle:如何在新課程中將默認塊設置爲自定義區域?

我有這些在我的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

從文檔(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-preside-post)。對於hackish的解決方案,你可以改變這個代碼行(在lib/blocklib.php):

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

要:

define('BLOCK_POS_LEFT', 'top'); 

但我認爲更好的解決方案是使用「粘性」塊(Moodle的> 2.3需要)。看看這個doc。以下是不同的步驟:

  1. 將該塊添加到首頁;
  2. 編輯塊的組態。關於這一塊出現的地方選擇顯示整個網站;
  3. 根據需要選擇默認區域(在您的情況下,頂部底部)。
  4. 現在,您必須僅在課程中顯示該塊。輸入課程。編輯塊(在課程中)和顯示頁面類型選擇任何課程頁面

現在塊將只出現在課程頁面(而不是在首頁)。

Credits:Re: Block in all Courses in Moodle 2.0。我親自測試了一下Moodle 2.4的安裝。

+1

謝謝。可悲的粘性塊對我來說不是一種可能性,因爲我想爲每個頁面添加一個HTML塊,但是具有不同的內容......編輯blocklib.php對我來說非常合適! – hdomos

+0

很高興有幫助:) – franzlorenzon

相關問題