3

私は、moodleフォームを使用してmoodleアップロードメカニズムを実装するのにいくつかの困難があります。私の目標は、ユーザー/管理者が画像をアップロードして保存し、後でブロックにアクセスできるようにすることです。

現在、私はこれを次の形式で持っています:

$mform->addElement('filemanager', 'attachments', 'Pic:', null, array('subdirs' => 0, 'maxfiles' => 1,'accepted_types' => '*' ));

そしてこれはファイルを保存します:

if ($draftitemid = file_get_submitted_draft_itemid('attachments')) {
file_save_draft_area_files($draftitemid, $context->id, 'mod_assignment', 'attachments', 0, array('subdirs' => false, 'maxfiles' => 1));
}

そして私はこのようにファイルにアクセスしようとします:

file_encode_url($CFG->wwwroot . '/pluginfile.php', '/' . $context->id . '/mod_assignment/attachments')

エラーは発生しませんが、ファイルにアクセスすることもできません。私はmoodle2.0を使用しています。

よろしくお願いします

4

1 に答える 1

2

カスタム ブロックを作成しようとしているように思えます。その場合は、 mod_assignment の代わりに block_myblockコンポーネント名として指定する必要があります。

ファイルを提供する各 Moodle コンポーネントは、ファイル要求を処理するために、lib.php 内で独自の関数を定義する必要があります。あなたの場合、その関数は のようなものと呼ばれたいと思っていますblock_myblock_pluginfile()

これの良い例はblock_html_pluginfile()moodle/blocks/html/lib.phpで見つけることができ、あなたが望むものと非常によく似たことを行います。

于 2012-11-08T09:09:07.413 に答える