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); // デバッグ用に詳細メッセージを表示