예제 #1
0
function xmldb_block_sharing_cart_upgrade($oldversion = 0)
{
    global $CFG, $THEME, $DB;
    $result = true;
    if ($oldversion < 2009020300) {
        $result = execute_sql("ALTER TABLE `{$CFG->prefix}sharing_cart`\n            ADD `file` VARCHAR(255) NOT NULL DEFAULT '' AFTER `time`");
        if ($result) {
            require_once dirname(__FILE__) . '../sharing_cart_table.php';
            if ($shared_items = $DB->get_records('sharing_cart')) {
                foreach ($shared_items as $shared_item) {
                    $shared_item->file = sharing_cart_table::gen_zipname($shared_item->time);
                    update_record('sharing_cart', $shared_item);
                }
            }
        }
    }
    if ($oldversion < 2009040600) {
        $result = execute_sql("CREATE TABLE `{$CFG->prefix}sharing_cart_plugins` (\n            `id`     INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n            `plugin` VARCHAR(32)      NOT NULL,\n            `user`   INT(10) UNSIGNED NOT NULL,\n            `data`   TEXT             NOT NULL\n        )");
    }
    return $result;
}
    // バックアップオブジェクト (※ $preferences は Moodle グローバル変数として予約されているので使用不可)
    $worker = new SharingCart_Backup($course_id, $section_id);
    // サイレントモード
    $worker->setSilent();
    // コースオブジェクト取得
    $course = $worker->getCourse();
    // コースモジュールが存在するかチェック
    $modinfo = get_fast_modinfo($course) and isset($modinfo->cms[$cm_id]) or print_error('err_module_id', 'block_sharing_cart', $return_to);
    // コースモジュール取得
    $cm = $modinfo->cms[$cm_id];
    // モジュールが存在するかチェック
    $module = get_record('modules', 'name', $cm->modname) or print_error('err_module_id', 'block_sharing_cart', $return_to);
    // 設定開始
    $worker->beginPreferences();
    // ZIPファイル名設定
    $zipname = sharing_cart_table::gen_zipname($worker->getUnique());
    $worker->setZipName($zipname);
    // モジュールをバックアップリストに追加
    $worker->addModule($module, $cm->id);
    // 設定完了
    $worker->endPreferences();
    // バックアップ実行
    $worker->execute();
} catch (SharingCart_CourseException $e) {
    //print_error('err_course_id', 'block_sharing_cart', $return_to);
    error((string) $e);
    // デバッグ用に詳細メッセージを表示
} catch (SharingCart_SectionException $e) {
    //print_error('err_section_id', 'block_sharing_cart', $return_to);
    error((string) $e);
    // デバッグ用に詳細メッセージを表示