コースのアップロード
コースのアップロード機能は、新しいコースの作成に加えて、コースの更新や削除、別のコースからのコンテンツのインポートにも使用できます。この機能を使用してコーステンプレートを作成する方法については、新しいコースの追加をご覧ください。
管理者に加えて、マネージャロールにもケイパビリティtool/uploadcourse:useが付与されるようになり、マネージャもコース情報を含む.CSVファイルをアップロードできます。(他のユーザにもこのケイパビリティを付与できますが、そのユーザにはケイパビリティmoodle/course:create、moodle/course:update、また場合によってはmoodle/course:deleteも必要です。)
- 管理 > サイト管理 > コース > コースをアップロードするに移動します。
- CSVファイルをドラッグ&ドロップするか、「ファイルを選択する」ボタンをクリックしてファイルピッカでファイルを選択します。
- 適切なインポートオプションを慎重に選択し、「プレビュー」ボタンをクリックします。
注:コマンドラインツールadmin/tool/uploadcourse/cli/uploadcourse.phpを使用することもできます。
ウェブインタフェースを使用する場合は、「プレビュー」オプションを使用して、プレビューした行でエラーが検出されたかどうかを確認してください。問題が検出されたコースがある状態でアップロードを続行すると、そのコースは無視されます。
短いファイルの例
uploadcourse.csv:
注:shortname、fullname、categoryは必須です。
categoryフィールドにはカテゴリのIDを指定します。デフォルトカテゴリ「Miscellaneous」のIDは1です。カテゴリはすでに存在している必要があります。存在しないカテゴリIDを指定すると、アップロードのプレビュー時に「IDでカテゴリを解決できませんでした。」というエラーが表示され、そのカテゴリのコースは作成されません。
shortname,fullname,category,summary,enrolment_1,enrolment_1_role,enrolment_1_enrolperiod,role_student courserestored,Course restored,1,a summary,manual,student,1 month, courserestored2,Course restored 2,1,a summary,,,, courserestored3,Course restored 3,1,a summary,,,,padawan courserestored4,Course restored 4,1,"a summary, with comma",manual,student,1 month,padawan
項目の間にスペースがないことに注意してください。
テキストファイルの作成
コースをアップロードするためのテキストファイルは、CSVファイルである必要があります。CSVファイルでは次のカラムを使用でき、これらのカラムはコース情報とコースアクションの2つのカテゴリに分かれています。
コース情報フィールド
これらの設定のほとんどは、コースの設定ページで設定できます。詳細については、コース設定をご覧ください。フィールド名は小文字にする必要があります。
- shortname
- 省略名
- fullname
- 長いコース名
- idnumber
- コースIDナンバ
- category
- コースを配置するカテゴリのデータベース識別子(カテゴリのURLで確認できます)です。category_idnumberおよびcategory_pathよりも優先されます。
- category_idnumber
- コースを配置するカテゴリのIDナンバ(「カテゴリを編集する」ページで確認および編集できます)です。category_pathよりも優先されます。
- category_path
- コースを配置するカテゴリのパスです。「Movies」カテゴリの下にある「Science-Fiction」という名前のカテゴリにコースを配置したい場合、指定する値は
Movies / Science-Fictionです。区切り文字は[space]/[space]でなければならないことに注意してください。また、カテゴリは必ず存在している必要があり、新たに作成されることはない点にも注意してください。トップレベルのカテゴリ「Movies」にコースを配置したい場合、指定する値はMoviesです。 - visible
- コースを表示する場合は1、非表示にする場合は0です。
- startdate
- コースの開始日時です。この値は、タイムスタンプを生成するためにPHP関数strtotimeに渡されることに注意してください。サーバの設定に基づくローカライズされた日時フォーマットも使用できますが、標準のISO日付フォーマットであれば常に機能します。例:2021-05-17(2021年5月17日)。このフォーマットを使用する場合、このフィールドに引用符を付ける必要はありません。
- enddate
- コースの終了日時です。startdateと同様に、この値は正しいフォーマットで指定する必要があることに注意してください。例:2022-11-14。
- summary
- コース概要
- format
- 使用するコースフォーマットです。有効なコースフォーマットプラグイン名である必要があります。例:weeks、topics。
- theme
- 使用するテーマ
- lang
- 使用する言語
- newsitems
- アナウンスメントの数
- showgrades
- 学生に評定表を表示する場合は1、非表示にする場合は0です。
- showreports
- 活動レポートを表示する場合は1、非表示にする場合は0です。
- legacyfiles
- レガシコースファイルを有効にする場合は1、有効にしない場合は0です。
- maxbytes
- コースの最大アップロードサイズ(バイト単位)です。サイトの上限を使用する場合は0を指定します。
- groupmode
- 0は「グループなし」、1は「分離グループ」、2は「可視グループ」です。
- groupmodeforce
- グループモードを強制する場合は1、それ以外の場合は0を入力します。
- enablecompletion
- 活動完了を有効にする場合は1、有効にしない場合は0です。
- downloadcontent
- コースコンテンツのダウンロードを有効にする場合は1、有効にしない場合は0です。
- tags
- コースに追加するタグのカンマ区切りリストです。既存のタグは削除されます。複数のタグは引用符で囲んでください。
- showactivitydates
- コースページに活動日付を表示する場合は1、表示しない場合は0です。
登録フィールド
登録方法を有効化および設定するためのフィールドを作成できます。フィールド名は、登録方法名にはenrolment_[number]、そのプロパティにはenrolment_[number]_propertyとする必要があります。
- enrolment_[number]
- 登録方法の名前です(例:manual、guest、self)。
- enrolment_[number]_delete
- この登録方法をコースから削除する場合は1です。1に設定した場合、その他のプロパティはすべて無視されます。
- enrolment_[number]_disable
- この登録方法をコースで無効にする場合は1です。1に設定した場合、その他のプロパティはすべて無視されます。
- enrolment_[number]_startdate
- 登録開始日です。この値はPHP関数strtotime()に渡されます。
- enrolment_[number]_enddate
- 登録終了日です。この値はPHP関数strtotime()に渡されます。
- enrolment_[number]_enrolperiod
- 秒数、または秒数でない場合は「4 days」のようにstrtotime()が解釈できる値です。
- enrolment_[number]_role
- ロールの省略名
- enrolment_[number]_[property]
- 指定した登録方法が解釈できるプロパティです。
- enrolment_[number]_password
- コースの登録キー
例
enrolment_1: manual enrolment_1_role: student enrolment_1_enrolperiod: 1 month enrolment_2: self enrolment_2_startdate: 2013-01-30
コーホート登録
CSVでコーホート登録を使用するには、次のフィールドを使用します。
- enrolment_N - 必須。コーホート同期登録方法でコースをアップロードする場合は、'cohort'にする必要があります。
- enrolment_N_cohortidnumber - 必須。コーホートIDです。このIDのコーホートがシステムに存在している必要があります。注:これは「コーホートID」フィールドの値であり、数値でない場合もあります。
- enrolment_N_role - 必須。ロールの省略名です。
- enrolment_N_addtogroup - 任意。コーホートをコース内のグループに追加するためのものです。
- 設定されていない場合 - グループモードは使用されません。
- enrolment_N_addtogroup = 0 の場合 - グループモードは使用されません。
- enrolment_N_addtogroup = 1 の場合 - enrolment_N_cohortidnumberに対応する名前で新しいグループが作成され、同期されたコーホートがそのグループに追加されます。
- enrolment_N_groupname - 任意。enrolment_N_addtogroupが設定されていない場合にのみ使用するものです。enrolment_N_cohortidnumberのメンバが追加される、コース内の既存のグループです。
ID = "mycohort1" の既存のコーホートの登録を追加するファイルの例:
shortname,fullname,category,enrolment_1,enrolment_1_cohortidnumber,enrolment_1_role Course 1,Course 1,1,cohort,mycohort1,student
カスタムコースフィールド
カスタムコースフィールドにデータを入力できます。これらのフィールドのヘッダはcustomfield_[shortname]の形式で、shortnameはコースカスタムフィールドの一意の省略名です。
カスタムフィールドは、サイト管理 > コース > コースカスタムフィールドで定義され、サイトにすでに存在している必要があります。サイトにまだ存在しないフィールドのヘッダを使用した場合、そのフィールドはアップロード処理で無視されます。コースプロファイルフィールドは、サイトにすでに存在している必要があります。コースのアップロード処理を使用してサイトに新しいフィールドを作成することはできません。できるのは、定義済みのコースカスタムプロファイルフィールドにデータを入力することだけです。
コースカスタムフィールドには、「チェックボックス」「日時」「ドロップダウンメニュー」「ショートテキスト」「テキストエリア」の5種類があります。したがって、アップロードファイルに入力するデータは、定義したフィールドのタイプによって異なります。チェックボックスフィールドに指定できる値は、1(チェックあり)と0(チェックなし)です。
定義済みのコースカスタムフィールドのいずれかをアップロードファイルに含めなかった場合、アップロード処理では、そのフィールドにデフォルト値が定義されていればその値が使用されます。定義されていなければ、他の設定と同様に、アップロードのプレビュー段階でデフォルト値を設定できます。
以下は、5種類すべてのカスタムフィールドタイプを含む例を示したサンプルファイルです(上記のトラッカーから引用)。ここでは、省略名が「checkbox」「date」「select」「text」「textarea」のフィールドがすでに作成されています。
shortname,fullname,category,customfield_checkbox,customfield_date,customfield_select,customfield_text,customfield_textarea CF1,Course fields example,1,1,2019-10-01 14:00,b,Hello,Goodbye
これにより、コース省略名が「CF1」の「Course fields example」というコースが「Miscellaneous」カテゴリに作成され、5つのカスタムコースフィールドそれぞれにデータが入力されます。
ロールのリネーム
ロールをリネームするには、次のパターンを使用します。
- role_[shortname]
- ロール[shortname]の新しい名前です。
例
role_student: Apprentice role_teacher: Master role_mycustomrole: Jedi
教師ロールの省略名はeditingteacher、編集権限のない教師の省略名はteacherであることに注意してください。
コースアクションフィールド
これらの設定は、「コース処理」のパラメータよりも優先されます。
- delete
- コースを削除する場合は1
- rename
- コースのリネーム後の省略名
- backupfile
- コースにインポートするバックアップファイル(.mbz)の絶対パスです。
(これはコースへのフルパスを意味します。例:/home/yourmoodle/public_html/moodle27/transfert/backup.mbz。わからない場合は、サイト管理 > サーバ > PHP情報でinclude_pathを確認してください。)
- templatecourse
- コンテンツのインポート元となるコースの省略名
- reset
- コースをリセットする場合は1
必須フィールド
- shortname
- このフィールドは、新しいコースを作成する場合を唯一の例外として、すべての操作で必須です。詳細については、コース処理のパラメータ「省略名を生成するテンプレート」をご覧ください。
- fullname
- 新しいコースを作成する場合に必須です。
- category, category_idnumber, category_path
- コースを作成する場合は、これらのいずれかが必須です。
インポートオプション
予期しない動作を防ぐため、このツールに何を許可するかを指定する必要があります。
- アップロードモード
- コースの作成と更新のどちらを(または両方を)許可するかを指定できます。
- 更新モード
- コースの更新を許可する場合は、何を使ってコースを更新するかもツールに指定する必要があります。
- 削除を許可する
- deleteフィールドを受け入れるかどうか
- リネームを許可する
- renameフィールドを受け入れるかどうか
- リセットを許可する
- resetフィールドを受け入れるかどうか
コース処理
アップロードされるすべてのコースに対して実行する処理を指定できます。
- 省略名を生成するテンプレート
- 省略名なしでコースを作成する場合、このフィールドを使用して省略名を自動生成できます。このフィールドでは、IDナンバを表す%iと、概要を表す%fの2つのプレースホルダを使用できます。
- アップロード後、このファイルからリストアする
- 作成/更新後にコースにインポートするバックアップファイル(.mbz)
- アップロード後、このコースをリストアする
- 作成/更新後にコンテンツをインポートするコースの省略名
- アップロード後、コースをリセットする
- コースの作成/更新後にコースをリセットするかどうか
デフォルトコース値
CSVファイルで指定されていないすべてのフィールドについて、ウェブインタフェースで設定できる値です。これらの値は、コースの作成時には常に使用されますが、更新時には指定した場合にのみ使用されることに注意してください(「更新モード」をご覧ください)。
速度の向上
バックアップファイルまたは別のコースのコンテンツをインポートする場合は、設定keeptempdirectoriesonbackupを有効にすることをお勧めします。同じソースから複数回インポートする場合、アップロード処理が大幅に高速化されます。
関連項目
- デモスクリーンキャスト:コースの一括作成
- ユーザのアップロード

