Exemple #1
0
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;
                        }
                    }
                }
            }
        }
    }
}
Exemple #2
0
    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();
    }