📄 resource.class.php
字号:
} else if (!empty($defaults['popup'])) { $defaults['windowpopup'] = 1; if (array_key_exists('popup', $defaults)) { $rawoptions = explode(',', $defaults['popup']); foreach ($rawoptions as $rawoption) { $option = explode('=', trim($rawoption)); $defaults[$option[0]] = $option[1]; } } } else { $defaults['windowpopup'] = 0; } //Converts the alltext to form fields if (!empty($defaults['alltext'])) { $parameters = $this->alltext2parameters($defaults['alltext']); $defaults['param_tableofcontents'] = $parameters->tableofcontents; $defaults['param_navigationbuttons'] = $parameters->navigationbuttons; $defaults['param_skipsubmenus'] = $parameters->skipsubmenus; $defaults['param_navigationmenu'] = $parameters->navigationmenu; $defaults['param_navigationupbutton'] = $parameters->navigationupbutton; } } function setup_elements(&$mform) { global $CFG, $RESOURCE_WINDOW_OPTIONS; $mform->addElement('choosecoursefileorimsrepo', 'reference', get_string('location')); $mform->addRule('name', null, 'required', null, 'client'); $mform->addElement('header', 'displaysettings', get_string('display', 'resource')); $woptions = array(0 => get_string('pagewindow', 'resource'), 1 => get_string('newwindow', 'resource')); $mform->addElement('select', 'windowpopup', get_string('display', 'resource'), $woptions); $mform->setDefault('windowpopup', !empty($CFG->resource_popup)); foreach ($RESOURCE_WINDOW_OPTIONS as $option) { if ($option == 'height' or $option == 'width') { $mform->addElement('text', $option, get_string('new'.$option, 'resource'), array('size'=>'4')); $mform->setDefault($option, $CFG->{'resource_popup'.$option}); $mform->disabledIf($option, 'windowpopup', 'eq', 0); } else { $mform->addElement('checkbox', $option, get_string('new'.$option, 'resource')); $mform->setDefault($option, $CFG->{'resource_popup'.$option}); $mform->disabledIf($option, 'windowpopup', 'eq', 0); } $mform->setAdvanced($option); } $mform->addElement('header', 'parameters', get_string('parameters', 'resource')); $mform->addElement('selectyesno', 'param_navigationmenu', get_string('navigationmenu', 'resource')); $mform->setDefault('param_navigationmenu', 1); $mform->addElement('selectyesno', 'param_tableofcontents', get_string('tableofcontents', 'resource')); $mform->disabledIf('param_tableofcontents', 'param_navigationmenu', 'eq', 1); $mform->setDefault('param_tableofcontents', 0); $mform->addElement('selectyesno', 'param_navigationbuttons', get_string('navigationbuttons', 'resource')); $mform->setDefault('param_navigationbuttons', 0); $mform->addElement('selectyesno', 'param_skipsubmenus', get_string('skipsubmenus', 'resource')); $mform->setDefault('param_skipsubmenus', 1); $mform->disabledIf('param_skipsubmenus', 'param_navigationmenu', 'eq', 1); $mform->addElement('selectyesno', 'param_navigationupbutton', get_string('navigationup', 'resource')); $mform->setDefault('param_navigationupbutton', 1); $mform->disabledIf('param_navigationupbutton', 'param_navigationmenu', 'eq', 1); }} //End class////// General purpose functions/// /*** This function will serialize the variable passed and send it * to filesystem */ function ims_save_serialized_file($destination, $var) { $status = false; if ($ser = serialize($var)) { $status = ims_var2file($destination, $ser); } return $status; } /*** This function will unserialize the variable stored * in filesystem */ function ims_load_serialized_file($file) { $status = false; if ($ser = ims_file2var($file)) { $status = unserialize($ser); } return $status; } /*** This function will load all the contents of one file to one variable * Not suitable for BIG files */ function ims_file2var ($file) { $status = true; $var = ''; $fp = fopen($file, 'r') or $status = false; if ($status) { while ($data = fread($fp, 4096)) { $var = $var.$data; } fclose($fp); } if (!$status) { $var = false; } return $var; } /*** This file will write the contents of one variable to a file * Not suitable for BIG files */ function ims_var2file ($file, $var) { $status = false; if ($out = fopen($file,"w")) { $status = fwrite($out, $var); fclose($out); } return $status; } /*** This function will generate the TOC file for the package * from an specified parent to be used in the view of the IMS * Now hilights 'selected page' also. */ function ims_generate_toc($items, $resource, $page=0, $selected_page = -1) { global $CFG; $contents = ''; /// Configure links behaviour $fullurl = $CFG->wwwroot.'/mod/resource/view.php?r='.$resource->id.'&frameset=ims&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; } /*** This function will return the correct html code needed * to show the previous button in the nav frame **/ function ims_get_prev_nav_button ($items, $resource_obj, $page) { $strprevious = get_string("previous", "resource"); $cm = $resource_obj->cm; $resource = $resource_obj->resource; $contents = ''; $page--; /// Skips any menu pages since these are redundant with sidemenu. if (!empty($resource_obj->parameters->skipsubmenus)) { while(empty($items[$page]->href) && $page >= 0) { $page--; } } if ($page >= 1 ) { //0 and 1 pages haven't previous $contents .= "<span class=\"ims-nav-button\"><a href=\"view.php?id={$cm->id}&type={$resource->type}&page={$page}&frameset=ims\">$strprevious</a></span>"; } else { $contents .= '<span class="ims-nav-dimmed">'.$strprevious.'</span>'; } return $contents; } /*** This function will return the correct html code needed * to show the next button in the nav frame **/ function ims_get_next_nav_button ($items, $resource_obj, $page) { $strnext = get_string("next", "resource"); $cm = $resource_obj->cm; $resource = $resource_obj->resource; $contents = ''; $page++; /// Skips any menu pages since these are redundant with sidemenu. if (!empty($resource_obj->parameters->skipsubmenus)) { while(empty($items[$page]->href) && !empty($items[$page])) { $page++; } } if (!empty($items[$page])) { //If the next page exists $contents .= "<span class=\"ims-nav-button\"><a href=\"view.php?id={$cm->id}&type={$resource->type}&page={$page}&frameset=ims\">$strnext</a></span>"; } else { $contents .= '<span class="ims-nav-dimmed">'.$strnext.'</span>'; } return $contents; } /*** This function will return the correct html code needed * to show the up button in the nav frame **/ function ims_get_up_nav_button ($items, $resource_obj, $page) { $strup = get_string("upbutton", "resource"); $cm = $resource_obj->cm; $resource = $resource_obj->resource; $contents = ''; if (!empty($resource_obj->parameters->navigationupbutton)) { if ($page > 1 && $items[$page]->parent > 0) { //If the page has parent $page = $items[$page]->parent; $contents .= "<span class=\"ims-nav-button\"><a href=\"view.php?id={$cm->id}&type={$resource->type}&page={$page}&frameset=ims\">$strup</a></span>"; } else { $contents .= "<span class=\"ims-nav-dimmed\">$strup</span>"; } } return $contents; } /*** This function will return the correct html code needed * to show the toc button in the nav frame **/ function ims_get_toc_nav_button ($items, $resource_obj, $page) { $cm = $resource_obj->cm; $resource = $resource_obj->resource; $strtoc = get_string('tableofcontentsabbrev', 'resource'); $contents = ''; if (!empty($resource_obj->parameters->tableofcontents)) { //The toc is enabled $page = 0; $contents .= "<span class=\"ims-nav-button\"><a href=\"view.php?id={$cm->id}&type={$resource->type}&page={$page}&frameset=ims\">{$strtoc}</a></span>"; } return $contents; }?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -