function mediaboard_player_video($link, $mime = 'video/mp4', $poster = null, $ids = 0) { global $OUTPUT, $mediaboard, $CFG; $swfflashmediaelement = new moodle_url('/mod/mediaboard/swf/flashmediaelement.swf'); $flowplayer = new moodle_url("/mod/mediaboard/js/flowplayer-3.2.7.swf"); if ($mime == 'audio/mp3') { $player_html5 = '<audio id="mediaboard-player-' . $ids . '" src="' . $link . '" type="' . $mime . '" controls="controls"></audio>'; $player_html5_videojs = '<audio id="mediaboard-player-' . $ids . '" class="video-js vjs-default-skin" controls preload="auto" data-setup=\'{"example_option":true}\'> <source src="' . $link . '" type="' . $mime . '" /> </audio>'; $player_flash = html_writer::script('var fn = function() {var att = { data:"' . $swfflashmediaelement . '", width:"269", height:"198" };var par = { flashvars:"controls=true&file=' . $link . '" };var id = "mediaboard-player-' . $ids . '";var myObject = swfobject.createSWF(att, par, id);};swfobject.addDomLoadEvent(fn);'); $player_flash .= '<div id="mediaboard-player-' . $ids . '"><a href="' . $link . '">audio</a></div>'; $browser = mediaboard_get_browser(); if (mediaboard_is_ios()) { return $player_html5; } else { if ($browser == 'firefox') { return $player_html5_videojs; } else { if ($browser == 'msie') { return $player_flash; } else { if ($browser == 'chrome') { return $player_html5_videojs; } else { return $player_html5; } } } } } else { if ($mime != 'video/mp4') { $mime = 'video/mp4'; $player_html5 = '<video width="269" height="198" id="mediaboard-player-' . $ids . '" src="' . $link . '" type="' . $mime . '" controls="controls"></video>'; $player_html5_videojs = '<video id="mediaboard-player-' . $ids . '" class="video-js vjs-default-skin" controls preload="auto" width="269" height="198" data-setup=\'{"example_option":true}\'> <source src="' . $link . '" type="' . $mime . '" /> </video>'; $player_flash = html_writer::script('var fn = function() {var att = { data:"' . $swfflashmediaelement . '", width:"269", height:"198" };var par = { flashvars:"controls=true&file=' . $link . '" };var id = "mediaboard-player-' . $ids . '";var myObject = swfobject.createSWF(att, par, id);};swfobject.addDomLoadEvent(fn);'); $player_flash .= '<div id="mediaboard-player-' . $ids . '"><a href="' . $link . '">audio</a></div>'; $browser = mediaboard_get_browser(); if (mediaboard_is_ios()) { return $player_html5; } else { if ($browser == 'firefox') { return $player_html5_videojs; } else { if ($browser == 'msie') { return $player_flash; } else { if ($browser == 'chrome') { return $player_html5_videojs; } else { return $player_html5; } } } } } else { $player_flowplayer = ""; $player_flowplayer .= html_writer::start_tag('a', array("id" => "mediaboard-player-{$ids}", "style" => "display:block;width:269px;height:198px;background: url('" . $poster . "') no-repeat 0 0;", "href" => $link)); $player_flowplayer .= html_writer::empty_tag('img', array("src" => new moodle_url("/mod/mediaboard/img/playlayer.png"), "alt" => get_string("video", "mediaboard"), "width" => 269, "height" => 198)); $player_flowplayer .= html_writer::end_tag('a'); $player_flowplayer .= html_writer::script('flowplayer("mediaboard-player-' . $ids . '", "' . $flowplayer . '");'); $player_flash = html_writer::script('var fn = function() {var att = { data:"' . $swfflashmediaelement . '", width:"269", height:"198" };var par = { flashvars:"controls=true&file=' . urlencode($link) . '&poster=' . urlencode($poster) . '" };var id = "mediaboard-player-' . $ids . '";var myObject = swfobject.createSWF(att, par, id);};swfobject.addDomLoadEvent(fn);'); $player_flash .= '<div id="mediaboard-player-' . $ids . '"><a href="' . $link . '">video</a></div>'; if (!empty($poster)) { $poster = 'poster="' . $poster . '"'; } $player_html5 = '<video width="269" height="198" id="mediaboard-player-' . $ids . '" src="' . $link . '" type="' . $mime . '" controls="controls" ' . $poster . '></video>'; $player_html5_mediaelementplayer = '<video width="269" height="198" id="mediaboard-player-' . $ids . '" src="' . $link . '" type="' . $mime . '" class="mediaelementplayer" controls="controls" ' . $poster . '></video>'; $player_html5_videojs = '<video id="mediaboard-player-' . $ids . '" controls class="video-js vjs-default-skin" data-setup=\'{"example_option":true}\' preload="auto" width="269" height="198" ' . $poster . '> <source src="' . $link . '" type="' . $mime . '" /> </video>'; $browser = mediaboard_get_browser(); if (mediaboard_is_ios()) { return $player_html5; } else { if ($browser == 'firefox') { return $player_flash; } else { if ($browser == 'msie') { return $player_html5_mediaelementplayer; } else { if ($browser == 'chrome') { return $player_html5_mediaelementplayer; } else { return $player_html5; } } } } } } }
function definition() { global $COURSE, $CFG, $quizs, $USER, $id, $DB, $mediaboard; $slides = optional_param('slides', NULL, PARAM_CLEAN); $cm = get_coursemodule_from_id('mediaboard', $id); $mform =& $this->_form; $mform->disable_form_change_checker(); $mform->updateAttributes(array('enctype' => 'multipart/form-data')); //------------------------------------------------------------------------------- $mform->addElement('header', 'general', get_string('general', 'form')); $mform->addElement('text', 'name', get_string('mediaboard_name2', 'mediaboard'), array('size' => '64')); $mform->setType('name', PARAM_TEXT); $mform->addRule('name', null, 'required', null, 'client'); $mform->addElement('htmleditor', 'summary', get_string('mediaboard_descr2', 'mediaboard')); $unicalidjpg = "1" . substr(time(), 5) . rand(0, 9) . rand(0, 9); $unicalidmp3 = "2" . substr(time(), 5) . rand(0, 9) . rand(0, 9); if ($mediaboard->type == 'photo') { if (!$slides) { $mform->addElement('header', 'mediaboard', 'MediaBoard'); if (mediaboard_get_browser() == "mobileios") { $version = preg_replace("/(.*) OS ([0-9]*)_(.*)/", "\$2", $_SERVER['HTTP_USER_AGENT']); if ($version >= 6) { $countofslides[0] = "Select"; for ($i = 1; $i <= 10; $i++) { $countofslides[$i] = $i; } $slideslist = ""; for ($i = 0; $i <= 10; $i++) { if ($mediaboard->slides == $i) { $slideslist .= '<option value="' . $i . '" selected>' . $i . '</option>'; } else { $slideslist .= '<option value="' . $i . '">' . $i . '</option>'; } } $mform->addElement('html', '<div id="recorsfields">'); $mform->addElement('html', '<div class="fitem"><div class="fitemtitle"><label for="id_category">' . get_string('mediaboard_selectslides', 'mediaboard') . '</label></div><div class="felement fselect"><select name="category" id="id_category"> ' . $slideslist . ' </select></div></div>'); $mform->addElement('html', '</div>'); $mform->addElement('html', '<script language="JavaScript"> $("select").bind("change keyup", function() { $.post("recordsforms.php", { id: "' . $id . '", slides: $(this).val(), userid: "' . $USER->id . '", unicalidjpg: "' . $unicalidjpg . '", unicalidmp3: "' . $unicalidmp3 . '" }, function(data){$("#recorsfields").html(data);}); });</script>'); //$mform->addElement('hidden', 'mobileslide', $fmstime); for ($i = 0; $i <= 9; $i++) { $mform->addelEment('hidden', 'unicalsjpg[' . $i . ']', $unicalidjpg . $i); } for ($i = 0; $i <= 9; $i++) { $mform->addelEment('hidden', 'unicalsmp3[' . $i . ']', $unicalidmp3 . $i); } } else { $ftime = time(); $mediadata = '<h3 style="padding: 0 20px;"><a href="mediaboard://?link=' . $CFG->wwwroot . '&id=' . $id . '&uid=' . $USER->id . '&cid=' . $COURSE->id . '&time=' . $ftime . '&type=mediaboard" onclick="document.getElementById(\'mform1\').submit();">Add slides</a></h3>'; $mform->addElement('static', 'description', '', $mediadata); $mform->addElement('hidden', 'mobileslide', $ftime); } } else { $countofslides[0] = "Select"; for ($i = 1; $i <= 10; $i++) { $countofslides[$i] = $i; } $mform->addElement('html', '<div id="recorsfields">'); $mform->addElement('html', '<script language="JavaScript"> $(document).ready(function() { $("select").bind("change keyup", function() { $.post("recordsforms.php", { id: "' . $id . '", slides: $(this).val(), userid: "' . $USER->id . '", unicalidjpg: "' . $unicalidjpg . '", unicalidmp3: "' . $unicalidmp3 . '" }, function(data){$("#recorsfields").html(data);activateajaximagesuploading();}); }); }); function activateajaximagesuploading() {'); for ($i = 1; $i <= 10; $i++) { $unicalsjpg[] = $unicalidjpg . ($i - 1); $unicalsmp3[] = $unicalidmp3 . ($i - 1); $filename = str_replace(" ", "_", $USER->username) . '_' . date("Ymd_Hi", time()) . '_' . $i; $mform->addElement('html', ' new AjaxUpload(\'attachment_upload_' . $i . '\', { action: \'' . $CFG->wwwroot . '/mod/mediaboard/uploadimageajax.php\', data: { \'unical\' : ' . $unicalsjpg[$i - 1] . ', \'name\' : \'' . $filename . '\' }, name: \'' . $filename . '\', autoSubmit: true, responseType: false, onSubmit: function(file, extension) { jQuery(\'#slide_preview_' . $i . '\').html(\'<img src="' . $CFG->wwwroot . '/mod/mediaboard/img/ajax-loader.gif" alt="loadeing"/>\'); }, onComplete: function(file, response) { var randomnumber=Math.floor(Math.random()*1100); jQuery(\'#slide_preview_' . $i . '\').html(\'<img src="' . $CFG->wwwroot . '/mod/mediaboard/showslidepreview.php?id=\'+response+\'&random=\' +randomnumber+ \'" alt=" " width="150"/>\'); } });'); } $mform->addElement('html', '}; </script>'); $slideslist = ""; for ($i = 0; $i <= 10; $i++) { if ($mediaboard->slides == $i) { $slideslist .= '<option value="' . $i . '" selected>' . $i . '</option>'; } else { $slideslist .= '<option value="' . $i . '">' . $i . '</option>'; } } $mform->addElement('html', '<div class="fitem"><div class="fitemtitle"><label for="id_category">' . get_string('mediaboard_selectslides', 'mediaboard') . '</label></div><div class="felement fselect"><select name="category" id="id_category"> ' . $slideslist . ' </select></div></div>'); $mform->addElement('html', '</div>'); foreach ($unicalsjpg as $k => $v) { $mform->addelEment('hidden', 'unicalsjpg[' . $k . ']', $v); } foreach ($unicalsmp3 as $k => $v) { $mform->addelEment('hidden', 'unicalsmp3[' . $k . ']', $v); } } } else { $mform->addElement('hidden', 'slides'); } if ($mediaboard->presetimages) { $mform->addElement('html', '<script language="JavaScript"> $.post("recordsforms.php", { id: "' . $id . '", cid: ' . $COURSE->id . ', slides: ' . $mediaboard->slides . ', userid: "' . $USER->id . '", unicalidjpg: "' . $unicalidjpg . '", unicalidmp3: "' . $unicalidmp3 . '" }, function(data){$("#recorsfields").html(data);activateajaximagesuploading();}); </script>'); } } else { $filename = str_replace(" ", "_", $USER->username) . '_' . date("Ymd_Hi", time()); $mform->addElement('header', 'videoupload', get_string('videoupload', 'mediaboard')); //-------------- Record ----------------// $mediadatavideo = ""; if (mediaboard_is_ios()) { $mediadatavideo .= html_writer::empty_tag("input", array("type" => "file", "name" => "mov_video", "accept" => "video/*", "capture" => "camcorder")); } else { if (mediaboard_get_browser() == 'android') { $mediadatavideo .= html_writer::empty_tag("input", array("type" => "file", "name" => "mov_video", "accept" => "video/*", "capture" => "camcorder")); } } //else { $filepickeroptions = array(); //$filepickeroptions['filetypes'] = array('.mp3','.mov','.mp4','.m4a'); $filepickeroptions['maxbytes'] = get_max_upload_file_size($CFG->maxbytes); $mform->addElement('filepicker', 'submitfile', get_string('uploadmp4', 'mediaboard'), null, $filepickeroptions); //} if (!mediaboard_is_ios() && mediaboard_get_browser() != 'android') { //Only for PC $mform->addelEment('hidden', 'filename', $filename); $mform->addelEment('hidden', 'iphonelink', ''); $mform->addelEment('hidden', 'unicalsmp3[0]', ""); $filename = str_replace(" ", "_", $USER->username) . '_' . date("Ymd_Hi", time()) . '_0'; $mform->addElement('html', ' <script> new AjaxUpload(\'attachment_upload_0\', { action: \'' . $CFG->wwwroot . '/mod/mediaboard/uploadimageajax.php\', data: { \'unical\' : ' . "1" . substr(time(), 5) . rand(0, 9) . rand(0, 9) . ', \'name\' : \'' . $filename . '\' }, name: \'' . $filename . '\', autoSubmit: true, responseType: false, onSubmit: function(file, extension) { jQuery(\'#slide_preview_0\').html(\'<img src="' . $CFG->wwwroot . '/mod/mediaboard/img/ajax-loader.gif" alt="loadeing"/>\'); }, onComplete: function(file, response) { var randomnumber=Math.floor(Math.random()*1100); jQuery(\'#slide_preview_0\').html(\'<img src="' . $CFG->wwwroot . '/mod/mediaboard/showslidepreview.php?id=\'+response+\'&random=\' +randomnumber+ \'" alt=" " width="150"/>\'); } }); function callbackjs(e){ /* * Speech to text box stop */ obj = JSON.parse(e.data); $("#id_submitfile").val(obj.id); } </script>'); $o = ""; $o .= html_writer::script('var flashvars={};flashvars.gain=35;flashvars.rate=44;flashvars.call="callbackjs";flashvars.name = "' . $filename . '";flashvars.p = "' . urlencode(json_encode(array("id" => $id, "userid" => $USER->id, "i" => 0))) . '";flashvars.url = "' . urlencode(new moodle_url("/mod/mediaboard/uploadmp3.php")) . '";swfobject.embedSWF("' . new moodle_url("/mod/mediaboard/js/recorder.swf") . '", "mp3_flash_recorder_0", "220", "200", "9.0.0", "expressInstall.swf", flashvars);'); //$o .= '<div id="mp3_flash_recorder"></div><div id="mp3_flash_records" style="margin:20px 0;"></div>'; $o .= html_writer::tag("div", "", array("id" => "mp3_flash_recorder_0", "style" => "float:left;margin-left:200px;")); //$o .= html_writer::end_tag("div"); $mform->addElement('header', 'mp3upload', get_string('recordaudio', 'mediaboard')); $mform->addElement('html', "<div style='margin-left:250px'>" . $o . "</div>"); $youtubeurl = ""; /*if (!empty($fileid) && empty($act)) { $data = $DB->get_record("videoboard_files", array("id" => $fileid, "userid" => $USER->id)); $mform->addElement('editor', 'summary', '')->setValue( array('text' => $data->summary) ); $youtubeurl = $data->itemyoutube; }*/ } //Only for PC if (!empty($mediadatavideo)) { //$mform->addElement('header', 'videoupload', get_string('videoupload', 'mediaboard')); $mform->addElement('static', 'description', '', $mediadatavideo); } /* * Adding audio recorder */ if (mediaboard_is_ios() || mediaboard_get_browser() == 'android') { $mform->addElement('header', 'mp3upload', get_string('recordaudio', 'mediaboard')); $mediadataaudio = ""; $mediadataaudio .= html_writer::empty_tag("input", array("type" => "file", "name" => "mov_audio", "accept" => "audio/*", "capture" => "camcorder")); $mform->addElement('static', 'description', '', $mediadataaudio); } $mform->addElement('header', 'youtubevideo_header', get_string('youtubevideo', 'mediaboard')); $mform->addElement('textarea', 'itemyoutube', '', 'wrap="virtual" rows="5" cols="100"')->setValue($youtubeurl); } $this->add_action_buttons(); }