function print_item($item) { global $textelemid; $name = empty($item->fullname) ? $item->itemname : $item->fullname; if (empty($item->idnumber)) { $item->idnumber = get_string('noidnumber', 'local_eliscore'); } else { $link = true; } echo html_writer::start_tag('li'); if (!empty($link)) { echo html_writer::start_tag('a', array('onclick' => 'return ' . js_writer::function_call('M.local_eliscore.set_value', array($textelemid, $item->idnumber)), 'href' => '')); } echo html_writer::empty_tag('img', array('src' => $item->icon)); echo ' ' . s($name) . ' (' . s($item->idnumber) . ')'; if (!empty($link)) { echo html_writer::end_tag('a'); } echo html_writer::end_tag('li'); }
/** * Update the progress bar * * @param int $percent from 1-100 * @param string $msg * @return void Echo's output */ private function _update($percent, $msg) { if (empty($this->time_start)) { throw new coding_exception('You must call create() (or use the $autostart ' . 'argument to the constructor) before you try updating the progress bar.'); } if (CLI_SCRIPT) { return; // temporary solution for cli scripts } $es = $this->estimate($percent); if ($es === null) { // always do the first and last updates $es = "?"; } else { if ($es == 0) { // always do the last updates } else { if ($this->lastupdate + 20 < time()) { // we must update otherwise browser would time out } else { if (round($this->percent, 2) === round($percent, 2)) { // no significant change, no need to update anything return; } } } } $this->percent = $percent; $this->lastupdate = microtime(true); $w = $this->percent / 100 * $this->width; echo html_writer::script(js_writer::function_call('update_progress_bar', array($this->html_id, $w, $this->percent, $msg, $es))); flush(); }
/** * Adds extra modules specified after printing of page header. * * @return string */ protected function get_extra_modules_code() { if (empty($this->extramodules)) { return ''; } return html_writer::script(js_writer::function_call('M.yui.add_module', array($this->extramodules))); }
// No Martin(i), No Party ;-) ?> </div> </noscript> <?php if ($result->prerequisites) { if ($scorm->popup != 0) { // Clean the name for the window as IE is fussy $name = preg_replace("/[^A-Za-z0-9]/", "", $scorm->name); if (!$name) { $name = 'DefaultPlayerWindow'; } $name = 'scorm_' . $name; echo html_writer::script('', $CFG->wwwroot . '/mod/scorm/player.js'); echo html_writer::script(js_writer::function_call('scorm_openpopup', array("loadSCO.php?id=" . $cm->id . $scoidpop, $name, $scorm->options, $scorm->width, $scorm->height))); ?> <noscript> <!--[if IE]> <iframe id="main" class="scoframe" name="main" src="loadSCO.php?id=<?php echo $cm->id . $scoidstr . $modestr; ?> "></iframe> <![endif]--> <!--[if !IE]> <object id="main" class="scoframe" type="text/html" data="loadSCO.php?id=<?php echo $cm->id . $scoidstr . $modestr; ?> "></object> <![endif]--> </noscript>
</div> </noscript> <?php if ($result->prerequisites) { if ($scorm->popup != 0 && $displaymode !=='popup') { // Clean the name for the window as IE is fussy $name = preg_replace("/[^A-Za-z0-9]/", "", $scorm->name); if (!$name) { $name = 'DefaultPlayerWindow'; } $name = 'scorm_'.$name; echo html_writer::script('', $CFG->wwwroot.'/mod/scorm/player.js'); $url = new moodle_url($PAGE->url, array('scoid' => $sco->id, 'display' => 'popup')); echo html_writer::script( js_writer::function_call('scorm_openpopup', Array($url->out(false), $name, $scorm->options, $scorm->width, $scorm->height))); ?> <noscript> <!--[if IE]> <iframe id="main" class="scoframe" name="main" src="loadSCO.php?id=<?php echo $cm->id.$scoidstr.$modestr; ?>"></iframe> <![endif]--> <!--[if !IE]> <object id="main" class="scoframe" type="text/html" data="loadSCO.php?id=<?php echo $cm->id.$scoidstr.$modestr; ?>"></object> <![endif]--> </noscript> <?php } } else { echo $OUTPUT->box(get_string('noprerequisites', 'scorm')); }
/** * Replace flv links with flow player. * * @param $link * @return string */ function filter_mediaplugin_flv_callback($link) { static $count = 0; if (filter_mediaplugin_ignore($link[0])) { return $link[0]; } $count++; $id = 'filter_flv_' . time() . '_' . $count; //we need something unique because it might be stored in text cache list($urls, $width, $height) = filter_mediaplugin_parse_alternatives($link[1], 0, 0); $autosize = false; if (!$width and !$height) { $width = FILTER_MEDIAPLUGIN_VIDEO_WIDTH; $height = FILTER_MEDIAPLUGIN_VIDEO_HEIGHT; $autosize = true; } $flashurl = null; $sources = array(); foreach ($urls as $url) { $mimetype = filter_mediaplugin_get_mimetype($url); if (strpos($mimetype, 'video/') !== 0) { continue; } $source = html_writer::tag('source', '', array('src' => $url, 'type' => $mimetype)); if ($mimetype === 'video/mp4') { // better add m4v as first source, it might be a bit more compatible with problematic browsers array_unshift($sources, $source); } else { $sources[] = $source; } if ($flashurl === null) { $flashurl = $url; } } if (!$sources) { return $link[0]; } $info = trim($link[4]); if (empty($info) or strpos($info, 'http') === 0) { $info = get_string('fallbackvideo', 'filter_mediaplugin'); } $printlink = html_writer::link($flashurl . '#', $info, array('class' => 'mediafallbacklink')); // the '#' prevents the QT filter $title = s($info); if (count($sources) > 1) { $sources = implode("\n", $sources); // html 5 fallback $printlink = <<<OET <video controls="true" width="{$width}" height="{$height}" preload="metadata" title="{$title}"> {$sources} {$printlink} </video> <noscript><br /> {$printlink} </noscript> OET; } // note: no need to print "this is flv link" because it is printed automatically if JS or Flash not available $output = html_writer::tag('span', $printlink, array('id' => $id, 'class' => 'mediaplugin mediaplugin_flv')); $output .= html_writer::script(js_writer::function_call('M.util.add_video_player', array($id, addslashes_js($flashurl), $width, $height, $autosize))); // we can not use standard JS init because this may be cached return $output; }
/** * Update the progress bar * * @param int $percent from 1-100 * @param string $msg * @return void Echo's output * @throws coding_exception */ private function _update($percent, $msg) { if (empty($this->time_start)) { throw new coding_exception('You must call create() (or use the $autostart ' . 'argument to the constructor) before you try updating the progress bar.'); } if (CLI_SCRIPT) { return; // Temporary solution for cli scripts. } $estimate = $this->estimate($percent); if ($estimate === null) { // Always do the first and last updates. } else { if ($estimate == 0) { // Always do the last updates. } else { if ($this->lastupdate + 20 < time()) { // We must update otherwise browser would time out. } else { if (round($this->percent, 2) === round($percent, 2)) { // No significant change, no need to update anything. return; } } } } if (is_numeric($estimate)) { $estimate = get_string('secondsleft', 'moodle', round($estimate, 2)); } $this->percent = round($percent, 2); $this->lastupdate = microtime(true); echo html_writer::script(js_writer::function_call('updateProgressBar', array($this->html_id, $this->percent, $msg, $estimate))); flush(); }
/** * @todo Document this function */ function forum_print_big_search_form($course) { global $CFG, $DB, $words, $subject, $phrase, $user, $userid, $fullwords, $notwords, $datefrom, $dateto, $PAGE, $OUTPUT; echo $OUTPUT->box(get_string('searchforumintro', 'forum'), 'searchbox boxaligncenter', 'intro'); echo $OUTPUT->box_start('generalbox boxaligncenter'); echo html_writer::script('', $CFG->wwwroot . '/mod/forum/forum.js'); echo '<form id="searchform" action="search.php" method="get">'; echo '<table cellpadding="10" class="searchbox" id="form">'; echo '<tr>'; echo '<td class="c0"><label for="words">' . get_string('searchwords', 'forum') . '</label>'; echo '<input type="hidden" value="' . $course->id . '" name="id" alt="" /></td>'; echo '<td class="c1"><input type="text" size="35" name="words" id="words"value="' . s($words, true) . '" alt="" /></td>'; echo '</tr>'; echo '<tr>'; echo '<td class="c0"><label for="phrase">' . get_string('searchphrase', 'forum') . '</label></td>'; echo '<td class="c1"><input type="text" size="35" name="phrase" id="phrase" value="' . s($phrase, true) . '" alt="" /></td>'; echo '</tr>'; echo '<tr>'; echo '<td class="c0"><label for="notwords">' . get_string('searchnotwords', 'forum') . '</label></td>'; echo '<td class="c1"><input type="text" size="35" name="notwords" id="notwords" value="' . s($notwords, true) . '" alt="" /></td>'; echo '</tr>'; if ($DB->get_dbfamily() == 'mysql' || $DB->get_dbfamily() == 'postgres') { echo '<tr>'; echo '<td class="c0"><label for="fullwords">' . get_string('searchfullwords', 'forum') . '</label></td>'; echo '<td class="c1"><input type="text" size="35" name="fullwords" id="fullwords" value="' . s($fullwords, true) . '" alt="" /></td>'; echo '</tr>'; } echo '<tr>'; echo '<td class="c0">' . get_string('searchdatefrom', 'forum') . '</td>'; echo '<td class="c1">'; if (empty($datefrom)) { $datefromchecked = ''; $datefrom = make_timestamp(2000, 1, 1, 0, 0, 0); } else { $datefromchecked = 'checked="checked"'; } echo '<input name="timefromrestrict" type="checkbox" value="1" alt="' . get_string('searchdatefrom', 'forum') . '" onclick="return lockoptions(\'searchform\', \'timefromrestrict\', timefromitems)" ' . $datefromchecked . ' /> '; $selectors = html_writer::select_time('days', 'fromday', $datefrom) . html_writer::select_time('months', 'frommonth', $datefrom) . html_writer::select_time('years', 'fromyear', $datefrom) . html_writer::select_time('hours', 'fromhour', $datefrom) . html_writer::select_time('minutes', 'fromminute', $datefrom); echo $selectors; echo '<input type="hidden" name="hfromday" value="0" />'; echo '<input type="hidden" name="hfrommonth" value="0" />'; echo '<input type="hidden" name="hfromyear" value="0" />'; echo '<input type="hidden" name="hfromhour" value="0" />'; echo '<input type="hidden" name="hfromminute" value="0" />'; echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<td class="c0">' . get_string('searchdateto', 'forum') . '</td>'; echo '<td class="c1">'; if (empty($dateto)) { $datetochecked = ''; $dateto = time() + 3600; } else { $datetochecked = 'checked="checked"'; } echo '<input name="timetorestrict" type="checkbox" value="1" alt="' . get_string('searchdateto', 'forum') . '" onclick="return lockoptions(\'searchform\', \'timetorestrict\', timetoitems)" ' . $datetochecked . ' /> '; $selectors = html_writer::select_time('days', 'today', $dateto) . html_writer::select_time('months', 'tomonth', $dateto) . html_writer::select_time('years', 'toyear', $dateto) . html_writer::select_time('hours', 'tohour', $dateto) . html_writer::select_time('minutes', 'tominute', $dateto); echo $selectors; echo '<input type="hidden" name="htoday" value="0" />'; echo '<input type="hidden" name="htomonth" value="0" />'; echo '<input type="hidden" name="htoyear" value="0" />'; echo '<input type="hidden" name="htohour" value="0" />'; echo '<input type="hidden" name="htominute" value="0" />'; echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<td class="c0"><label for="menuforumid">' . get_string('searchwhichforums', 'forum') . '</label></td>'; echo '<td class="c1">'; echo html_writer::select(forum_menu_list($course), 'forumid', '', array('' => get_string('allforums', 'forum'))); echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<td class="c0"><label for="subject">' . get_string('searchsubject', 'forum') . '</label></td>'; echo '<td class="c1"><input type="text" size="35" name="subject" id="subject" value="' . s($subject, true) . '" alt="" /></td>'; echo '</tr>'; echo '<tr>'; echo '<td class="c0"><label for="user">' . get_string('searchuser', 'forum') . '</label></td>'; echo '<td class="c1"><input type="text" size="35" name="user" id="user" value="' . s($user, true) . '" alt="" /></td>'; echo '</tr>'; echo '<tr>'; echo '<td class="submit" colspan="2" align="center">'; echo '<input type="submit" value="' . get_string('searchforums', 'forum') . '" alt="" /></td>'; echo '</tr>'; echo '</table>'; echo '</form>'; echo html_writer::script(js_writer::function_call('lockoptions_timetoitems')); echo html_writer::script(js_writer::function_call('lockoptions_timefromitems')); echo $OUTPUT->box_end(); }
public function embed($urls, $name, $width, $height, $options) { // Use first url (there can actually be only one unless some idiot // enters two mp3 files as alternatives). $url = reset($urls); // Unique id even across different http requests made at the same time // (for AJAX, iframes). $id = 'core_media_flv_' . md5(time() . '_' . rand()); // Compute width and height. $autosize = false; if (!$width && !$height) { $width = CORE_MEDIA_VIDEO_WIDTH; $height = CORE_MEDIA_VIDEO_HEIGHT; $autosize = true; } // Fallback span (will normally contain link). $output = html_writer::tag('span', core_media_player::PLACEHOLDER, array('id' => $id, 'class' => 'mediaplugin mediaplugin_flv')); // We can not use standard JS init because this may be cached. $output .= html_writer::script(js_writer::function_call('M.util.add_video_player', array($id, addslashes_js($url->out(false)), $width, $height, $autosize))); return $output; }
/** * Returns flash video embedding html. * @param string $fullurl * @param string $title * @param string $clicktoopen * @return string html */ function resourcelib_embed_flashvideo($fullurl, $title, $clicktoopen) { global $CFG, $PAGE; if ($fullurl instanceof moodle_url) { $fullurl = $fullurl->out(false); } $id = 'resource_flv_' . time(); //we need something unique because it might be stored in text cache //note: nobody should be adding any dimensions to themes!!! if (preg_match('/\\?d=([\\d]{1,4}%?)x([\\d]{1,4}%?)/', $fullurl, $matches)) { $width = $matches[1]; $height = $matches[2]; $autosize = false; } else { $width = 400; $height = 300; $autosize = true; } $output = '<div class="resourcecontent resourceflv">'; $output .= html_writer::tag('span', $clicktoopen, array('id' => $id, 'class' => 'resourcemediaplugin resourcemediaplugin_flv', 'title' => $title)); $output .= html_writer::script(js_writer::function_call('M.util.add_video_player', array($id, $fullurl, $width, $height, $autosize))); $output .= '</div>'; return $output; }
$table->head[] = 'Filename'; $table->attributes['class'] = 'admintable generaltable'; $table->head[] = 'Time Created'; $table->head[] = get_string('action'); $table->colclasses[] = 'centeralign'; $table->head[] = ""; $table->colclasses[] = 'centeralign'; $table->id = "recorded_data"; foreach ($recordings as $record) { $buttons = array(); $lastcolumn = ''; $row = array(); $row[] = $record->vcsessionname . ' ' . module_get_rename_action($cm, $record); $row[] = userdate($record->timecreated); $playurl = new moodle_url($CFG->wwwroot . '/mod/virtualclass/classroom.php', array('id' => $id, 'vcSid' => $record->id, 'play' => 1)); $playpopup = js_writer::function_call('virtualclass_openpopup', array($playurl->out(false), $popupname, $popupoptions, $popupwidth, $popupheight)); // play button if (has_capability('mod/virtualclass:view', $context)) { $buttons[] = html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('e/insert_edit_video'), 'alt' => $strplay, 'class' => 'iconsmall hand', 'onclick' => $playpopup)); } // delete button if (has_capability('mod/virtualclass:addinstance', $context)) { $buttons[] = html_writer::link(new moodle_url($returnurl, array('delete' => $record->id, 'sesskey' => sesskey())), html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('t/delete'), 'alt' => $strdelete, 'class' => 'iconsmall')), array('title' => $strdelete)); } $row[] = implode(' ', $buttons); $row[] = $lastcolumn; $table->data[] = $row; } if (!empty($table->data)) { echo html_writer::start_tag('div', array('class' => 'no-overflow')); echo html_writer::table($table);
/** * Update the progress bar * * @param int $percent from 1-100 * @param string $msg * @return void Echo's output */ private function _update($percent, $msg) { if (empty($this->time_start)){ $this->time_start = microtime(true); } if (CLI_SCRIPT) { return; // temporary solution for cli scripts } $es = $this->estimate($percent); if ($es === null) { // always do the first and last updates $es = "?"; } else if ($es == 0) { // always do the last updates } else if ($this->lastupdate + 20 < time()) { // we must update otherwise browser would time out } else if (round($this->percent, 2) === round($percent, 2)) { // no significant change, no need to update anything return; } $this->percent = $percent; $this->lastupdate = microtime(true); $w = ($this->percent/100) * $this->width; echo html_writer::script(js_writer::function_call('update_progress_bar', array($this->html_id, $w, $this->percent, $msg, $es))); flush(); }