📄 preview.php
字号:
<?php // $Id: preview.php,v 1.6 2007/08/06 23:21:48 stronk7 Exp $ require_once('../../../../config.php'); require_once('../../lib.php'); require_once('resource.class.php'); require_once('../../../../backup/lib.php'); require_once('../../../../lib/filelib.php'); require_once('../../../../lib/xmlize.php'); require_once('repository_config.php'); $directory = required_param ('directory', PARAM_PATH); $choose = optional_param ('choose', 'id_reference_value', PARAM_FILE); $page = optional_param ('page', 0, PARAM_INT);/// Calculate the path of the IMS CP to be displayed $deploydir = $CFG->repository . '/' . $directory;/// Confirm that the IMS package has been deployed. Hash not generated/// for repository ones. if (!file_exists($deploydir.'/moodle_inx.ser')) { $errortext = "Not Deployed"; print_header(); print_simple_box_start('center', '60%'); echo '<p align="center">'.$errortext.'</p>'; print_footer(); exit; }/// Load serialized IMS CP index to memory only once. if (empty($items)) { if (!$items = ims_load_serialized_file($deploydir.'/moodle_inx.ser')) { error (get_string('errorreadingfile', 'error', 'moodle_inx.ser')); } }/// fast forward to first non-index page while (empty($items[$page]->href)) $page++;/// Select direction if (get_string('thisdirection') == 'rtl') { $direction = ' dir="rtl"'; } else { $direction = ' dir="ltr"'; }/// Conditional argument to pass to IMS JavaScript. Need to be global to retrieve it from our custom javascript! :-( global $jsarg; $jsarg = 'true';/// Define $CFG->javascript to use our custom javascript. Save the original one to add it from ours. Global too! :-( global $standard_javascript; $standard_javascript = $CFG->javascript; // Save original javascript file $CFG->javascript = $CFG->dirroot.'/mod/resource/type/ims/javascript.php'; //Use our custom IMS javascript code/// The output here/// moodle header print_header();/// content - this produces everything else/// adds side navigation bar if needed. must also adjust width of iframe to accomodate echo "<div id=\"ims-menudiv\">"; preview_buttons($directory, $items['title'], $choose); echo preview_ims_generate_toc($items, $directory, 0, $page); echo "</div>"; $fullurl = "$CFG->repositorywebroot/$directory/".$items[$page]->href;/// prints iframe filled with $fullurl ;width:".$iframewidth." missing also height=\"420px\" echo "<iframe id=\"ims-contentframe\" name=\"ims-contentframe\" src=\"{$fullurl}\"></iframe>"; //Content frame/// moodle footer echo "</div></div><script type=\"text/javascript\">resizeiframe($jsarg);</script></body></html>"; /*** This function will generate the TOC file for the package * from an specified parent to be used in the view of the IMS */ function preview_ims_generate_toc($items, $directory, $page=0, $selected_page) { global $CFG; $contents = ''; /// Configure links behaviour $fullurl = '?directory='.$directory.'&page='; /// Iterate over items to build the menu $currlevel = 0; $currorder = 0; $endlevel = 0; $openlielement = false; foreach ($items as $item) { if (!is_object($item)) { continue; } /// Skip pages until we arrive to $page if ($item->id < $page) { continue; } /// Arrive to page, we store its level if ($item->id == $page) { $endlevel = $item->level; continue; } /// We are after page and inside it (level > endlevel) if ($item->id > $page && $item->level > $endlevel) { /// Start Level if ($item->level > $currlevel) { $contents .= '<ol class="listlevel_'.$item->level.'">'; $openlielement = false; } /// End Level if ($item->level < $currlevel) { $contents .= '</li>'; $contents .= '</ol>'; } /// If we have some openlielement, just close it if ($openlielement) { $contents .= '</li>'; } /// Add item $contents .= '<li>'; if (!empty($item->href)) { if ($item->id == $selected_page) $contents .= '<div id="ims-toc-selected">'; $contents .= '<a href="'.$fullurl.$item->id.'" target="_parent">'.$item->title.'</a>'; if ($item->id == $selected_page) $contents .= '</div>'; } else { $contents .= $item->title; } $currlevel = $item->level; $openlielement = true; continue; } /// We have reached endlevel, exit if ($item->id > $page && $item->level <= $endlevel) { break; } } /// Close up to $endlevel for ($i=$currlevel;$i>$endlevel;$i--) { $contents .= '</li>'; $contents .= '</ol>'; } return $contents; } function preview_buttons($directory, $name, $choose='') { $strchoose = get_string('choose','resource'); $strback = get_string('back','resource'); $path = $directory; $arr = explode('/', $directory); array_pop($arr); $directory = implode('/', $arr); ?> <script type="text/javascript"> //<![CDATA[ function set_value(txt) { opener.document.getElementById('<?php echo $choose ?>').value = txt; window.close(); } //]]> </script> <?php echo "<div id=\"ims_preview_buttons\" style=\"padding:10px;\">". "(<a href=\"finder.php?directory=$directory&choose=$choose\">$strback</a>) ". "(<a onclick=\"return set_value('#$path')\" href=\"#\">$strchoose</a>)</div>"; }?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -