問題の背景
Moodle 2.0以降、ファイルは従来の方法でサーバーに保存されなくなりました/this/is/the/path/to/my.file
。代わりに、ファイルは再ハッシュされ、リポジトリに保存されます (つまりmoodledata
、一見ランダムなデータのコレクションとしてフォルダ全体に分散されます)。これにより、セキュリティと OS 間の互換性が向上しますが、FTP 経由で SCORM zip パッケージを単純にアップロードしたい人にとっては複雑になります。Moodle 2.0 でのファイル処理に関する詳細情報は次のとおりです。
ソリューションへのパス
更新したいファイルを見つけて更新しましょう。
- phpmyadmin を実行し、
mdl_files
テーブルに移動し、filename
フィールドで名前でファイルを見つけます (それが であるとしましょうportrait.jpg
)
contenthash
フィールドを見てくださいabcde1234567890
。これは、ファイルがmoodledata/filedir/ab/cd/
という名前のフォルダーに保存されていることを意味しますabcde1234567890
。
- 更新されたファイルの名前を に変更
portrait.jpg
しabcde1234567890
、アップロードして上書きします。
- phpmyadmin に戻り
filesize
、レコードのフィールドをportrait.jpg
更新されたファイルのサイズで更新します。
明らかに、このプロセスは自動化できます。ファイルをアップロードできるようにするスクリプトを作成する必要があります。その後、mdl_files でそのファイルを検索し、正しいフォルダーに保存して、それに応じてすべてのフィールドを更新します。
別のアイデア
外部パッケージ タイプを有効にします (また、「起動ごとに更新」も有効にします)。サイト管理 / プラグイン / アクティビティ / SCORM に移動し、下のボックスにチェックを入れます。これで、SCORM パッケージを別のサーバーから直接起動できるようになるため、Moodle がそれを台無しにすることはありません。もちろん、他の (おそらくクロスドメイン関連の) 問題で実行することもできます。