From 69befc84ea08fa5c7e4222e8c6b8fd1c5956c0d5 Mon Sep 17 00:00:00 2001 From: Daniel Thies Date: Fri, 4 Aug 2023 14:28:05 -0500 Subject: [PATCH] VID-686: Move filepicker to embed options form --- options.php | 14 +++++++++++-- plugin/videojs/lib.php | 47 ++++++++++++++++++------------------------ 2 files changed, 32 insertions(+), 29 deletions(-) diff --git a/options.php b/options.php index d840788b..44a886bc 100644 --- a/options.php +++ b/options.php @@ -80,11 +80,21 @@ $classname = "\\videotimetab_$name\\tab"; $classname::data_preprocessing($defaults, $cm->instance); } + foreach (array_keys(core_component::get_plugin_list('videotimeplugin')) as $name) { + component_callback("videotimeplugin_$name", 'data_preprocessing', [&$defaults, $cm->instance]); + } $moduleinstance = ['coursemodule' => $cm->id] + (array) $data + (array) $moduleinstance->to_record() + $defaults; - videotime_update_instance((object) $moduleinstance); + unset($moduleinstance['vimeo_url']); + videotime_update_instance((object) $moduleinstance, $form); redirect($returnurl); } -$form->set_data($moduleinstance->to_record()); + +$defaults = []; +foreach (array_keys(core_component::get_plugin_list('videotimeplugin')) as $name) { + component_callback("videotimeplugin_$name", 'data_preprocessing', [&$defaults, $cm->instance]); +} + +$form->set_data((array)$moduleinstance->to_record() + $defaults); echo $OUTPUT->header(); if (!class_exists('core\\output\\activity_header')) { diff --git a/plugin/videojs/lib.php b/plugin/videojs/lib.php index 3cb15799..9b7bb1db 100644 --- a/plugin/videojs/lib.php +++ b/plugin/videojs/lib.php @@ -62,23 +62,25 @@ function videotimeplugin_videojs_update_instance($moduleinstance, $mform = null) if (!empty($mform) && $data = $mform->get_data()) { $context = context_module::instance($moduleinstance->coursemodule); - file_save_draft_area_files( - $data->mediafile, - $context->id, - 'videotimeplugin_videojs', - 'mediafile', - 0, - ['subdirs' => 0, 'maxfiles' => 1] - ); - - file_save_draft_area_files( - $data->poster, - $context->id, - 'videotimeplugin_videojs', - 'poster', - 0, - ['subdirs' => 0, 'maxfiles' => 1] - ); + if (get_class($mform) == 'videotimeplugin_videojs\form\options') { + file_save_draft_area_files( + $data->poster, + $context->id, + 'videotimeplugin_videojs', + 'poster', + 0, + ['subdirs' => 0, 'maxfiles' => 1] + ); + } else { + file_save_draft_area_files( + $data->mediafile, + $context->id, + 'videotimeplugin_videojs', + 'mediafile', + 0, + ['subdirs' => 0, 'maxfiles' => 1] + ); + } } } @@ -234,16 +236,6 @@ function videotimeplugin_videojs_add_form_fields($mform, $formclass) { 'name' ); $mform->addHelpButton('mediafile', 'mediafile', 'videotimeplugin_videojs'); - - $mform->insertElementBefore( - $mform->createElement('filemanager', 'poster', get_string('poster', 'videotimeplugin_videojs'), null, [ - 'subdirs' => 0, - 'maxfiles' => 1, - 'accepted_types' => ['image'], - ]), - 'name' - ); - $mform->addHelpButton('poster', 'poster', 'videotimeplugin_videojs'); } else { $mform->addElement('filemanager', 'poster', get_string('poster', 'videotimeplugin_videojs'), null, [ 'subdirs' => 0, @@ -275,6 +267,7 @@ function videotimeplugin_videojs_data_preprocessing(array &$defaultvalues, int $ 0 ); $defaultvalues['mediafile'] = $draftitemid; + $draftitemid = file_get_submitted_draft_itemid('poster'); file_prepare_draft_area( $draftitemid,