本文整理汇总了PHP中js_writer类的典型用法代码示例。如果您正苦于以下问题:PHP js_writer类的具体用法?PHP js_writer怎么用?PHP js_writer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了js_writer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: render_curdate_controls
protected function render_curdate_controls(attforblock_filter_controls $fcontrols)
{
global $CFG;
$curdate_controls = '';
if ($fcontrols->curdatetxt) {
$this->page->requires->strings_for_js(array('calclose', 'caltoday'), 'attforblock');
$jsvals = array('cal_months' => explode(',', get_string('calmonths', 'attforblock')), 'cal_week_days' => explode(',', get_string('calweekdays', 'attforblock')), 'cal_start_weekday' => $CFG->calendar_startwday, 'cal_cur_date' => $fcontrols->curdate);
$curdate_controls = html_writer::script(js_writer::set_variable('M.attforblock', $jsvals));
$this->page->requires->yui2_lib('container');
$this->page->requires->yui2_lib('calendar');
$this->page->requires->js('/mod/attforblock/calendar.js');
$curdate_controls .= html_writer::link($fcontrols->url(array('curdate' => $fcontrols->prevcur)), $this->output->larrow());
$params = array('title' => get_string('calshow', 'attforblock'), 'id' => 'show', 'type' => 'button');
$button_form = html_writer::tag('button', $fcontrols->curdatetxt, $params);
foreach ($fcontrols->url_params(array('curdate' => '')) as $name => $value) {
$params = array('type' => 'hidden', 'id' => $name, 'name' => $name, 'value' => $value);
$button_form .= html_writer::empty_tag('input', $params);
}
$params = array('id' => 'currentdate', 'action' => $fcontrols->url_path(), 'method' => 'post');
$button_form = html_writer::tag('form', $button_form, $params);
$curdate_controls .= $button_form;
$curdate_controls .= html_writer::link($fcontrols->url(array('curdate' => $fcontrols->nextcur)), $this->output->rarrow());
}
return $curdate_controls;
}
示例2: toHtml
function toHtml()
{
global $CFG;
if ($this->_flagFrozen) {
return $this->getFrozenHtml();
} else {
$id = $this->getAttribute('id');
$unmask = get_string('unmaskpassword', 'form');
$unmaskjs = html_writer::script(js_writer::set_variable('punmask', array('id' => $id, 'unmaskstr' => $unmask)));
$unmaskjs .= html_writer::script('', $CFG->httpswwwroot . '/lib/form/passwordunmask.js');
return $this->_getTabs() . '<input' . $this->_getAttrString($this->_attributes) . ' /><div class="unmask" id="' . $id . 'unmaskdiv"></div>' . $unmaskjs;
}
}
示例3: print_item
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');
}
示例4: toHtml
/**
* Returns the recaptcha element in HTML
*
* @return string
*/
function toHtml()
{
global $CFG, $PAGE;
require_once $CFG->libdir . '/recaptchalib.php';
$recaptureoptions = array('theme' => 'custom', 'custom_theme_widget' => 'recaptcha_widget');
$html = html_writer::script(js_writer::set_variable('RecaptchaOptions', $recaptureoptions));
$attributes = $this->getAttributes();
if (empty($attributes['error_message'])) {
$attributes['error_message'] = null;
$this->setAttributes($attributes);
}
$error = $attributes['error_message'];
unset($attributes['error_message']);
$strincorrectpleasetryagain = get_string('incorrectpleasetryagain', 'auth');
$strenterthewordsabove = get_string('enterthewordsabove', 'auth');
$strenterthenumbersyouhear = get_string('enterthenumbersyouhear', 'auth');
$strgetanothercaptcha = get_string('getanothercaptcha', 'auth');
$strgetanaudiocaptcha = get_string('getanaudiocaptcha', 'auth');
$strgetanimagecaptcha = get_string('getanimagecaptcha', 'auth');
$html .= '
<div id="recaptcha_widget" style="display:none">
<div id="recaptcha_image"></div>
<div class="recaptcha_only_if_incorrect_sol" style="color:red">' . $strincorrectpleasetryagain . '</div>
<span class="recaptcha_only_if_image"><label for="recaptcha_response_field">' . $strenterthewordsabove . '</label></span>
<span class="recaptcha_only_if_audio"><label for="recaptcha_response_field">' . $strenterthenumbersyouhear . '</label></span>
<input type="text" id="recaptcha_response_field" name="recaptcha_response_field" />
<input type="hidden" name="recaptcha_element" value="dummyvalue" /> <!-- Dummy value to fool formslib -->
<div><a href="javascript:Recaptcha.reload()">' . $strgetanothercaptcha . '</a></div>
<div class="recaptcha_only_if_image"><a href="javascript:Recaptcha.switch_type(\'audio\')">' . $strgetanaudiocaptcha . '</a></div>
<div class="recaptcha_only_if_audio"><a href="javascript:Recaptcha.switch_type(\'image\')">' . $strgetanimagecaptcha . '</a></div>
</div>';
return $html . recaptcha_get_html($CFG->recaptchapublickey, $error, $this->_https);
}
示例5: preg_replace
</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'));
}
示例6: filter_mediaplugin_flv_callback
/**
* 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;
}
示例7: _update
/**
* 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();
}
示例8: scorm_get_toc
//.........这里部分代码省略.........
}
} else {
if ($play && empty($scoid)) {
$scoid = $sco->id;
}
$incomplete = true;
if ($sco->scormtype == 'sco') {
$statusicon = '<img src="'.$OUTPUT->pix_url('notattempted', 'scorm').'" alt="'.get_string('notattempted','scorm').'" title="'.get_string('notattempted','scorm').'" />';
} else {
$statusicon = '<img src="'.$OUTPUT->pix_url('asset', 'scorm').'" alt="'.get_string('asset','scorm').'" title="'.get_string('asset','scorm').'" />';
}
}
if ($sco->id == $scoid) {
$findnext = true;
}
if (($nextid == 0) && (scorm_count_launchable($scorm->id,$currentorg) > 1) && ($nextsco!==false) && (!$findnext)) {
if (!empty($sco->launch)) {
$previd = $sco->id;
}
}
if (empty($sco->prerequisites) || scorm_eval_prerequisites($sco->prerequisites,$usertracks)) {
if ($sco->id == $scoid) {
$result->prerequisites = true;
}
$thisscoidstr = '&scoid='.$sco->id;
$link = 'a='.$scorm->id.$thisscoidstr.'¤torg='.$currentorg.$modestr.'&attempt='.$attempt;
if ($toclink == TOCFULLURL) { //display toc with urls for structure page
$url = $CFG->wwwroot.'/mod/scorm/player.php?a='.$scorm->id.'&currentorg='.$currentorg.$modestr.'&scoid='.$sco->id;
$result->toc .= $statusicon.' <a href="'.$url.'">'.format_string($sco->title).'</a>'.$score."\n";
} else {
if ($sco->launch) {
$result->toc .= '<a title="'.$link.'">'.$statusicon.' '.format_string($sco->title).' '.$score.'</a>';
} else {
$result->toc .= '<span>'.$statusicon.' '.format_string($sco->title).'</span>';
}
}
$tocmenus[$sco->id] = scorm_repeater('−',$level) . '>' . format_string($sco->title);
} else {
if ($sco->id == $scoid) {
$result->prerequisites = false;
}
if ($play) {
// should be disabled
$result->toc .= '<span>'.$statusicon.' '.format_string($sco->title).'</span>';
} else {
$result->toc .= $statusicon.' '.format_string($sco->title)."\n";
}
}
if (($nextsco === false) || $nextsco->parent == $sco->parent) {
$result->toc .= '</li>';
}
}
} else {
$result->toc .= ' '.format_string($sco->title)."</li>\n";
}
if (($nextsco !== false) && ($nextid == 0) && ($findnext)) {
if (!empty($nextsco->launch)) {
$nextid = $nextsco->id;
}
}
}
for ($i=0;$i<$level;$i++) {
$result->toc .= "\t\t</ul></li>\n";
}
if ($play) {
$sco = scorm_get_sco($scoid);
$sco->previd = $previd;
$sco->nextid = $nextid;
$result->sco = $sco;
$result->incomplete = $incomplete;
} else {
$result->incomplete = $incomplete;
}
}
$result->toc .= '</ul>';
// NEW IMS TOC
if ($tocheader) {
$result->toc .= '</div></div></div>';
$result->toc .= '<div id="scorm_navpanel"></div>';
}
if ($scorm->hidetoc == 0) {
$result->toc .= html_writer::script(js_writer::set_variable('scormdata', array(
'plusicon' => $OUTPUT->pix_url('plus', 'scorm'),
'minusicon' => $OUTPUT->pix_url('minus', 'scorm'))));
$result->toc .= html_writer::script('', $CFG->wwwroot.'/lib/cookies.js');
$result->toc .= html_writer::script('', $CFG->wwwroot.'/mod/scorm/datamodels/scorm_datamodels.js');
}
$url = new moodle_url('/mod/scorm/player.php?a='.$scorm->id.'¤torg='.$currentorg.$modestr);
$result->tocmenu = $OUTPUT->single_select($url, 'scoid', $tocmenus, $sco->id, null, "tocmenu");
return $result;
}
示例9: _update
/**
* 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();
}
示例10: preg_replace
// 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>
示例11: resourcelib_embed_flashvideo
/**
* 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;
}
示例12: get_string
$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);
示例13: get_end_code
/**
* Generate any HTML that needs to go at the end of the page.
*
* @return string the HTML code to to at the end of the page.
*/
public function get_end_code()
{
global $CFG;
$output = '';
// Call amd init functions.
$output .= $this->get_amd_footercode();
// Add other requested modules.
$output .= $this->get_extra_modules_code();
// All the other linked scripts - there should be as few as possible.
if ($this->jsincludes['footer']) {
foreach ($this->jsincludes['footer'] as $url) {
$output .= html_writer::script('', $url);
}
}
if (!empty($this->stringsforjs)) {
// Add all needed strings.
$strings = array();
foreach ($this->stringsforjs as $component => $v) {
foreach ($v as $indentifier => $langstring) {
$strings[$component][$indentifier] = $langstring->out();
}
}
// Append don't overwrite.
$output .= html_writer::script('require(["jquery"], function($) {
M.str = $.extend(true, M.str, ' . json_encode($strings) . ');
});');
}
// Add variables.
if ($this->jsinitvariables['footer']) {
$js = '';
foreach ($this->jsinitvariables['footer'] as $data) {
list($var, $value) = $data;
$js .= js_writer::set_variable($var, $value, true);
}
$output .= html_writer::script($js);
}
$inyuijs = $this->get_javascript_code(false);
$ondomreadyjs = $this->get_javascript_code(true);
// See if this is still needed when we get to the ajax page.
$jsinit = $this->get_javascript_init_code();
$handlersjs = $this->get_event_handler_code();
// There is a global Y, make sure it is available in your scope.
$js = "(function() {{$inyuijs}{$ondomreadyjs}{$jsinit}{$handlersjs}})();";
$output .= html_writer::script($js);
return $output;
}
示例14: scorm_get_toc
//.........这里部分代码省略.........
}
}
if ($usertrack->score_raw != '') {
$score = '(' . get_string('score', 'scorm') . ': ' . $usertrack->score_raw . ')';
}
$strsuspended = get_string('suspended', 'scorm');
if ($incomplete && isset($usertrack->{'cmi.core.exit'}) && $usertrack->{'cmi.core.exit'} == 'suspend') {
$statusicon = '<img src="' . $OUTPUT->pix_url('suspend', 'scorm') . '" alt="' . $strstatus . ' - ' . $strsuspended . '" title="' . $strstatus . ' - ' . $strsuspended . '" />';
}
} else {
if ($play && empty($scoid)) {
$scoid = $sco->id;
}
$incomplete = true;
if ($sco->scormtype == 'sco') {
$statusicon = '<img src="' . $OUTPUT->pix_url('notattempted', 'scorm') . '" alt="' . get_string('notattempted', 'scorm') . '" title="' . get_string('notattempted', 'scorm') . '" />';
} else {
$statusicon = '<img src="' . $OUTPUT->pix_url('asset', 'scorm') . '" alt="' . get_string('asset', 'scorm') . '" title="' . get_string('asset', 'scorm') . '" />';
}
}
if ($sco->id == $scoid) {
$startbold = '<b>';
$endbold = '</b>';
$findnext = true;
$shownext = isset($sco->next) ? $sco->next : 0;
$showprev = isset($sco->previous) ? $sco->previous : 0;
}
if ($nextid == 0 && scorm_count_launchable($scorm->id, $currentorg) > 1 && $nextsco !== false && !$findnext) {
if (!empty($sco->launch)) {
$previd = $sco->id;
}
}
if (empty($sco->prerequisites) || scorm_eval_prerequisites($sco->prerequisites, $usertracks)) {
if ($sco->id == $scoid) {
$result->prerequisites = true;
}
$url = $CFG->wwwroot . '/mod/scorm/player.php?a=' . $scorm->id . '&currentorg=' . $currentorg . $modestr . '&scoid=' . $sco->id;
$thisscoidstr = '&scoid=' . $sco->id;
//$link = $CFG->wwwroot.'/mod/scorm/loadSCO.php?a='.$scorm->id.$thisscoidstr.$modestr;
$link = 'a=' . $scorm->id . $thisscoidstr . '¤torg=' . $currentorg . $modestr . '&attempt=' . $attempt;
//$result->toc .= $statusicon.' '.$startbold.'<a href="'.$url.'">'.format_string($sco->title).'</a>'.$score.$endbold."</li>\n";
//$result->toc .= '<a title="'.$link.'">'.$statusicon.' '.format_string($sco->title).' '.$score.'</a>';
if ($sco->launch) {
$result->toc .= '<a title="' . $link . '">' . $statusicon . ' ' . format_string($sco->title) . ' ' . $score . '</a>';
} else {
$result->toc .= '<span>' . $statusicon . ' ' . format_string($sco->title) . '</span>';
}
$tocmenus[$sco->id] = scorm_repeater('−', $level) . '>' . format_string($sco->title);
} else {
if ($sco->id == $scoid) {
$result->prerequisites = false;
}
if ($play) {
// should be disabled
$result->toc .= '<span>' . $statusicon . ' ' . format_string($sco->title) . '</span>';
} else {
$result->toc .= $statusicon . ' ' . format_string($sco->title) . "\n";
}
}
if ($nextsco === false || $nextsco->parent == $sco->parent) {
$result->toc .= '</li>';
}
}
} else {
$result->toc .= ' ' . format_string($sco->title) . "</li>\n";
}
if ($nextsco !== false && $nextid == 0 && $findnext) {
if (!empty($nextsco->launch)) {
$nextid = $nextsco->id;
}
}
}
for ($i = 0; $i < $level; $i++) {
$result->toc .= "\t\t</ul></li>\n";
}
if ($play) {
$sco = scorm_get_sco($scoid);
$sco->previd = $previd;
$sco->nextid = $nextid;
$result->sco = $sco;
$result->incomplete = $incomplete;
} else {
$result->incomplete = $incomplete;
}
}
$result->toc .= '</ul>';
// NEW IMS TOC
if ($tocheader) {
$result->toc .= '</div></div></div>';
$result->toc .= '<div id="scorm_navpanel"></div>';
}
if ($scorm->hidetoc == 0) {
$result->toc .= html_writer::script(js_writer::set_variable('scormdata', array('plusicon' => $OUTPUT->pix_url('plus', 'scorm'), 'minusicon' => $OUTPUT->pix_url('minus', 'scorm'))));
$result->toc .= html_writer::script('', $CFG->wwwroot . '/lib/cookies.js');
$result->toc .= html_writer::script('', $CFG->wwwroot . '/mod/scorm/datamodels/scorm_datamodels.js');
}
$url = new moodle_url('/mod/scorm/player.php?a=' . $scorm->id . '¤torg=' . $currentorg . $modestr);
$result->tocmenu = $OUTPUT->single_select($url, 'scoid', $tocmenus, $sco->id, null, "tocmenu");
return $result;
}
示例15: _update
/**
* 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();
}