批次變更 Moodle 課程週數

edited 十一月 -1 in 數位學習平台
如果是以週曆形式呈現課程,預設會放入 10 週,但一般課程是 18 週,所以需要調整。

因為需要調整的數量多了些,找到相關程式位置後寫了個小程式處理:
$moodlePath = dirname(__FILE__);
if (file_exists($moodlePath . '/config.php')) {
define('CLI_SCRIPT', true);
global $DB, $CFG;
require_once($moodlePath . '/config.php');
include $moodlePath . '/course/lib.php';
$records = $DB->get_records_sql(\"SELECT * FROM {course}\");
foreach ($records AS $record) {
course_get_format($record)->update_course_format_options(
array('numsections' => 18));
}
}


存成 hello.php 放在 Moodle 根目錄,在指令模式執行 php -q hello.php 就可以了

後來進一步發現,只要執行這樣的 SQL 即可:
UPDATE mdl_course_format_options SET value = 18 WHERE name = 'numsections'


因為課程週數的調整在檢視課程的時候會自動進行,所以不需要理會 course_sections 資料表的內容。

但是如果課程週數縮減,原有 course_sections 下已經有資料,就不知道會發生什麼事情了(做這件事之前記得備份你的資料...)

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=7523
Sign In or Register to comment.