From 28fbce88cf7fb6ae4e837b001006cfb321cba867 Mon Sep 17 00:00:00 2001 From: nicolasconnault Date: Wed, 5 Aug 2009 08:49:56 +0000 Subject: [PATCH] MDL-19756 Fixed bugs and improved API in various places --- lib/deprecatedlib.php | 135 ++++++++++++------------------------------ lib/outputlib.php | 41 +++++++++++++ lib/weblib.php | 27 +++++++++ 3 files changed, 106 insertions(+), 97 deletions(-) diff --git a/lib/deprecatedlib.php b/lib/deprecatedlib.php index 7b3b32d165..60d2bbcd82 100644 --- a/lib/deprecatedlib.php +++ b/lib/deprecatedlib.php @@ -2096,35 +2096,6 @@ function print_continue($link, $return = false) { } } -/** - * Returns a string containing a link to the user documentation for the current - * page. Also contains an icon by default. Shown to teachers and admin only. - * - * @deprecated since Moodle 2.0 - * - * @global object - * @global object - * @param string $text The text to be displayed for the link - * @param string $iconpath The path to the icon to be displayed - * @return string The link to user documentation for this current page - */ -function page_doc_link($text='', $iconpath='') { - global $CFG, $PAGE; - - if (empty($CFG->docroot) || during_initial_install()) { - return ''; - } - if (!has_capability('moodle/site:doclinks', $PAGE->context)) { - return ''; - } - - $path = $PAGE->docspath; - if (!$path) { - return ''; - } - return doc_link($path, $text, $iconpath); -} - /** * Print a standard header * @@ -2423,7 +2394,7 @@ function blocks_move_block($page, &$instance, $destpos, $destweight=NULL, $pinne function print_table($table, $return=false) { global $OUTPUT; // TODO MDL-19755 turn debugging on once we migrate the current core code to use the new API - // debugging('print_table() has been deprecated. Please change your code to use $OUTPUT->table().'); + debugging('print_table() has been deprecated. Please change your code to use $OUTPUT->table().'); $newtable = new html_table(); foreach ($table as $property => $value) { if (property_exists($newtable, $property)) { @@ -2469,7 +2440,7 @@ function link_to_popup_window ($url, $name=null, $linkname=null, $options=null, $return=false) { global $OUTPUT; - // debugging('link_to_popup_window() has been deprecated. Please change your code to use $OUTPUT->link_to_popup().'); + debugging('link_to_popup_window() has been deprecated. Please change your code to use $OUTPUT->link_to_popup().'); if ($options == 'none') { $options = null; @@ -2480,9 +2451,7 @@ function link_to_popup_window ($url, $name=null, $linkname=null, } // Create a html_link object - $link = new html_link(); - $link->text = $linkname; - $link->url = $url; + $link = html_link::make($url, $linkname); $link->title = $title; // Parse the $options string @@ -2539,7 +2508,7 @@ function button_to_popup_window ($url, $name=null, $linkname=null, $id=null, $class=null) { global $OUTPUT; - // debugging('link_to_popup_window() has been deprecated. Please change your code to use $OUTPUT->link_to_popup().'); + debugging('link_to_popup_window() has been deprecated. Please change your code to use $OUTPUT->link_to_popup().'); if ($options == 'none') { $options = null; @@ -2550,13 +2519,12 @@ function button_to_popup_window ($url, $name=null, $linkname=null, } // Create a html_button object - $button = new html_button(); - $button->value = $linkname; - $button->url = $url; - $button->id = $id; - $button->add_class($class); - $button->method = 'post'; - $button->title = $title; + $form = new html_form(); + $form->button->text = $linkname; + $form->button->title = $title; + $form->button->id = $id; + $form->url = $url; + $form->add_class($class); // Parse the $options string $popupparams = array(); @@ -2583,9 +2551,8 @@ function button_to_popup_window ($url, $name=null, $linkname=null, $popupparams['width'] = $width; } - $popupaction = new popup_action('click', $url, $name, $popupparams); - $button->add_action($popupaction); - $output = $OUTPUT->button($button); + $form->button->add_action(new popup_action('click', $url, $name, $popupparams)); + $output = $OUTPUT->button($form); if ($return) { return $output; @@ -2615,13 +2582,12 @@ function print_single_button($link, $options, $label='OK', $method='get', $notus $return=false, $tooltip='', $disabled = false, $jsconfirmmessage='', $formid = '') { global $OUTPUT; - // debugging('print_single_button() has been deprecated. Please change your code to use $OUTPUT->button().'); + debugging('print_single_button() has been deprecated. Please change your code to use $OUTPUT->button().'); // Cast $options to array $options = (array) $options; $form = new html_form(); $form->url = new moodle_url($link, $options); - $form->button = new html_button(); $form->button->text = $label; $form->button->disabled = $disabled; $form->button->title = $tooltip; @@ -2635,8 +2601,6 @@ function print_single_button($link, $options, $label='OK', $method='get', $notus $output = $OUTPUT->button($form); - $icon = new action_icon(); - if ($return) { return $output; } else { @@ -2657,7 +2621,7 @@ function print_single_button($link, $options, $label='OK', $method='get', $notus function print_spacer($height=1, $width=1, $br=true, $return=false) { global $CFG, $OUTPUT; - // debugging('print_spacer() has been deprecated. Please change your code to use $OUTPUT->spacer().'); + debugging('print_spacer() has been deprecated. Please change your code to use $OUTPUT->spacer().'); $spacer = new html_image(); $spacer->height = $height; @@ -2709,7 +2673,7 @@ function print_file_picture($path, $courseid=0, $height='', $width='', $link='', function print_user_picture($user, $courseid, $picture=NULL, $size=0, $return=false, $link=true, $target='', $alttext=true) { global $CFG, $DB, $OUTPUT; - // debugging('print_user_picture() has been deprecated. Please change your code to use $OUTPUT->user_picture($user, $link, $popup).'); + debugging('print_user_picture() has been deprecated. Please change your code to use $OUTPUT->user_picture($user, $link, $popup).'); $userpic = new user_picture(); $userpic->user = $user; @@ -2719,13 +2683,11 @@ function print_user_picture($user, $courseid, $picture=NULL, $size=0, $return=fa $userpic->alttext = $alttext; if (!empty($picture)) { - $userpic->image = new html_image(); $userpic->image->src = $picture; } if (!empty($target)) { - $popupaction = new popup_action('click', new moodle_url($target)); - $userpic->add_action($popupaction); + $userpic->add_action(new popup_action('click', new moodle_url($target))); } $output = $OUTPUT->user_picture($userpic); @@ -2834,7 +2796,7 @@ function print_textarea($usehtmleditor, $rows, $cols, $width, $height, $name, $v * @return string|void Depending on value of $return */ function helpbutton($page, $title, $module='moodle', $image=true, $linktext=false, $text='', $return=false, $imagetext='') { - // debugging('helpbutton() has been deprecated. Please change your code to use $OUTPUT->help_icon().'); + debugging('helpbutton() has been deprecated. Please change your code to use $OUTPUT->help_icon().'); global $OUTPUT; @@ -2940,30 +2902,13 @@ function print_arrow($direction='up', $strsort=null, $return=false) { function doc_link($path='', $text='', $iconpath='') { global $CFG, $OUTPUT; - // debugging('doc_link() has been deprecated. Please change your code to use $OUTPUT->action_icon().'); + debugging('doc_link() has been deprecated. Please change your code to use $OUTPUT->action_icon().'); if (empty($CFG->docroot)) { return ''; } - $icon = new action_icon(); - $icon->linktext = $text; - - if (!empty($iconpath)) { - $icon->image->src = $iconpath; - $icon->image->alt = $text; - $icon->image->add_class('iconhelp'); - } else { - $icon->image->src = $CFG->httpswwwroot . '/pix/docs.gif'; - } - - $icon->link->url = new moodle_url(get_docs_url($path)); - - if (!empty($CFG->doctonewwindow)) { - $icon->actions[] = new popup_action('click', $icon->link->url); - } - - return $OUTPUT->action_icon($icon); + return $OUTPUT->doc_link($path, $text, $iconpath); } /** @@ -2984,7 +2929,7 @@ function doc_link($path='', $text='', $iconpath='') { function print_paging_bar($totalcount, $page, $perpage, $baseurl, $pagevar='page',$nocurr=false, $return=false) { global $OUTPUT; - // debugging('print_paging_bar() has been deprecated. Please change your code to use $OUTPUT->paging_bar($pagingbar).'); + debugging('print_paging_bar() has been deprecated. Please change your code to use $OUTPUT->paging_bar($pagingbar).'); $pagingbar = new moodle_paging_bar(); $pagingbar->totalcount = $totalcount; @@ -3020,7 +2965,7 @@ function print_paging_bar($totalcount, $page, $perpage, $baseurl, $pagevar='page */ function notice_yesno($message, $linkyes, $linkno, $optionsyes=NULL, $optionsno=NULL, $methodyes='post', $methodno='post') { - // debugging('notice_yesno() has been deprecated. Please change your code to use $OUTPUT->confirm($message, $buttoncontinue, $buttoncancel).'); + debugging('notice_yesno() has been deprecated. Please change your code to use $OUTPUT->confirm($message, $buttoncontinue, $buttoncancel).'); global $OUTPUT; @@ -3080,15 +3025,12 @@ function choose_from_menu ($options, $name, $selected='', $nothing='choose', $sc $id='', $listbox=false, $multiple=false, $class='') { global $OUTPUT; - // debugging('choose_from_menu() has been deprecated. Please change your code to use $OUTPUT->select($select).'); + debugging('choose_from_menu() has been deprecated. Please change your code to use $OUTPUT->select($select).'); if ($script) { debugging('The $script parameter has been deprecated. You must use component_actions instead', DEBUG_DEVELOPER); } - $select = new moodle_select(); - $select->options = $options; - $select->name = $name; - $select->selectedvalue = $selected; + $select = moodle_select::make($options, $name, $selected); $select->nothinglabel = $nothing; $select->nothingvalue = $nothingvalue; $select->disabled = $disabled; @@ -3128,9 +3070,8 @@ function choose_from_menu ($options, $name, $selected='', $nothing='choose', $sc * @param int $tabindex * @return string|void If $return=true returns string, else echo's and returns void */ -function choose_from_menu_yesno($name, $selected, $script = '', - $return = false, $disabled = false, $tabindex = 0) { - // debugging('choose_from_menu_yesno() has been deprecated. Please change your code to use $OUTPUT->select($select).'); +function choose_from_menu_yesno($name, $selected, $script = '', $return = false, $disabled = false, $tabindex = 0) { + debugging('choose_from_menu_yesno() has been deprecated. Please change your code to use $OUTPUT->select($select).'); global $OUTPUT; if ($script) { @@ -3177,7 +3118,7 @@ function choose_from_menu_yesno($name, $selected, $script = '', function choose_from_menu_nested($options,$name,$selected='',$nothing='choose',$script = '', $nothingvalue=0,$return=false,$disabled=false,$tabindex=0) { - // debugging('choose_from_menu_nested() has been deprecated. Please change your code to use $OUTPUT->select($select).'); + debugging('choose_from_menu_nested() has been deprecated. Please change your code to use $OUTPUT->select($select).'); global $OUTPUT; if ($script) { @@ -3214,7 +3155,7 @@ function choose_from_menu_nested($options,$name,$selected='',$nothing='choose',$ * @return string|bool Depending on value of $return */ function print_scale_menu_helpbutton($courseid, $scale, $return=false) { - // debugging('print_scale_menu_helpbutton() has been deprecated. Please change your code to use $OUTPUT->help_button($scaleselect).'); + debugging('print_scale_menu_helpbutton() has been deprecated. Please change your code to use $OUTPUT->help_button($scaleselect).'); global $OUTPUT; $helpbutton = help_button::make_scale_menu($courseid, $scale); @@ -3261,7 +3202,7 @@ function print_timer_selector($timelimit = 0, $unit = '', $name = 'timelimit', $ * @return string|bool Depending on value of $return */ function print_time_selector($hour, $minute, $currenttime=0, $step=5, $return=false) { - // debugging('print_time_selector() has been deprecated. Please change your code to use $OUTPUT->select($timeselector).'); + debugging('print_time_selector() has been deprecated. Please change your code to use $OUTPUT->select($timeselector).'); global $OUTPUT; $hourselector = moodle_select::make_time_selector('hours', $hour, $currenttime); $minuteselector = moodle_select::make_time_selector('minutes', $minute, $currenttime, $step); @@ -3289,7 +3230,7 @@ function print_time_selector($hour, $minute, $currenttime=0, $step=5, $return=fa */ function print_date_selector($day, $month, $year, $currenttime=0, $return=false) { - // debugging('print_date_selector() has been deprecated. Please change your code to use $OUTPUT->select($dateselector).'); + debugging('print_date_selector() has been deprecated. Please change your code to use $OUTPUT->select($dateselector).'); global $OUTPUT; $dayselector = moodle_select::make_time_selector('days', $day, $currenttime); @@ -3337,7 +3278,7 @@ function popup_form($baseurl, $options, $formid, $selected='', $nothing='choose' $targetwindow='self', $selectlabel='', $optionsextra=NULL, $submitvalue='', $disabled=false, $showbutton=false) { global $OUTPUT; - // debugging('popup_form() has been deprecated. Please change your code to use $OUTPUT->select($dateselector).'); + debugging('popup_form() has been deprecated. Please change your code to use $OUTPUT->select($dateselector).'); if (empty($options)) { return ''; @@ -3388,7 +3329,7 @@ function popup_form($baseurl, $options, $formid, $selected='', $nothing='choose' function close_window_button($name='closewindow', $return=false, $reloadopener = false) { global $OUTPUT; - // debugging('close_window_button() has been deprecated. Please change your code to use $OUTPUT->close_window_button().'); + debugging('close_window_button() has been deprecated. Please change your code to use $OUTPUT->close_window_button().'); $output = $OUTPUT->close_window_button(get_string($name)); if ($return) { @@ -3413,7 +3354,7 @@ function close_window_button($name='closewindow', $return=false, $reloadopener = */ function choose_from_radio ($options, $name, $checked='', $return=false) { - // debugging('choose_from_radio() has been deprecated. Please change your code to use $OUTPUT->select($select).'); + debugging('choose_from_radio() has been deprecated. Please change your code to use $OUTPUT->select($select).'); global $OUTPUT; $select = moodle_select::make($options, $name, $checked); @@ -3447,7 +3388,7 @@ function choose_from_radio ($options, $name, $checked='', $return=false) { */ function print_checkbox ($name, $value, $checked = true, $label = '', $alt = '', $script='',$return=false) { - // debugging('print_checkbox() has been deprecated. Please change your code to use $OUTPUT->checkbox($checkbox).'); + debugging('print_checkbox() has been deprecated. Please change your code to use $OUTPUT->checkbox($checkbox).'); global $OUTPUT; if (!empty($script)) { @@ -3488,7 +3429,7 @@ function print_checkbox ($name, $value, $checked = true, $label = '', $alt = '', */ function print_textfield ($name, $value, $alt = '',$size=50,$maxlength=0, $return=false) { - // debugging('print_textfield() has been deprecated. Please change your code to use $OUTPUT->textfield($field).'); + debugging('print_textfield() has been deprecated. Please change your code to use $OUTPUT->textfield($field).'); global $OUTPUT; @@ -3521,7 +3462,7 @@ function print_textfield ($name, $value, $alt = '',$size=50,$maxlength=0, $retur */ function print_heading_with_help($text, $helppage, $module='moodle', $icon=false, $return=false) { - // debugging('print_heading_with_help() has been deprecated. Please change your code to use $OUTPUT->textfield($field).'); + debugging('print_heading_with_help() has been deprecated. Please change your code to use $OUTPUT->textfield($field).'); global $OUTPUT; @@ -3560,7 +3501,7 @@ function update_mymoodle_icon() { * @return string */ function update_tag_button($tagid) { - // debugging('update_tag_button() has been deprecated. Please change your code to use $OUTPUT->edit_button(moodle_url).'); + debugging('update_tag_button() has been deprecated. Please change your code to use $OUTPUT->edit_button(moodle_url).'); return $OUTPUT->edit_button(new moodle_url($CFG->wwwroot.'/tag/index.php', array('id' => $tagid))); } @@ -3578,7 +3519,7 @@ function update_tag_button($tagid) { function update_module_button($cmid, $ignored, $string) { global $OUTPUT; - // debugging('update_module_button() has been deprecated. Please change your code to use $OUTPUT->update_module_button().'); + debugging('update_module_button() has been deprecated. Please change your code to use $OUTPUT->update_module_button().'); return $OUTPUT->update_module_button($cmid, $string); } @@ -3614,7 +3555,7 @@ function print_user($user, $course, $messageselect=false, $return=false) { function update_course_icon($courseid) { global $CFG, $OUTPUT; - // debugging('update_course_button() has been deprecated. Please change your code to use $OUTPUT->edit_button(moodle_url).'); + debugging('update_course_button() has been deprecated. Please change your code to use $OUTPUT->edit_button(moodle_url).'); return $OUTPUT->edit_button(new moodle_url($CFG->wwwroot.'/course/view.php', array('id' => $courseid))); } diff --git a/lib/outputlib.php b/lib/outputlib.php index 4bb480279a..e63004087e 100644 --- a/lib/outputlib.php +++ b/lib/outputlib.php @@ -2565,6 +2565,35 @@ class moodle_core_renderer extends moodle_renderer_base { return $output; } + /** + * Returns a string containing a link to the user documentation. + * Also contains an icon by default. Shown to teachers and admin only. + * @param string $path The page link after doc root and language, no leading slash. + * @param string $text The text to be displayed for the link + * @param string $iconpath The path to the icon to be displayed + */ + public function doc_link($path, $text=false, $iconpath=false) { + global $CFG, $OUTPUT; + $icon = new action_icon(); + $icon->linktext = $text; + $icon->image->alt = $text; + $icon->image->add_class('iconhelp'); + $icon->link->url = new moodle_url(get_docs_url($path)); + + if (!empty($iconpath)) { + $icon->image->src = $iconpath; + } else { + $icon->image->src = $this->old_icon_url('docs'); + } + + if (!empty($CFG->doctonewwindow)) { + $icon->actions[] = new popup_action('click', $icon->link->url); + } + + return $this->action_icon($icon); + + } + /** * Given a action_icon object, outputs an image linking to an action (URL or AJAX). * @@ -5268,6 +5297,18 @@ class moodle_paging_bar extends moodle_html_component { * @return void */ public function prepare() { + if (empty($this->totalcount)) { + throw new coding_exception('moodle_paging_bar requires a totalcount value.'); + } + if (empty($this->page)) { + throw new coding_exception('moodle_paging_bar requires a page value.'); + } + if (empty($this->perpage)) { + throw new coding_exception('moodle_paging_bar requires a perpage value.'); + } + if (empty($this->baseurl)) { + throw new coding_exception('moodle_paging_bar requires a baseurl value.'); + } if (!($this->baseurl instanceof moodle_url)) { $this->baseurl = new moodle_url($this->baseurl); } diff --git a/lib/weblib.php b/lib/weblib.php index b68a9b6907..8ab83c042c 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -620,6 +620,33 @@ function close_window($delay = 0, $reloadopener = false) { exit; } +/** + * Returns a string containing a link to the user documentation for the current + * page. Also contains an icon by default. Shown to teachers and admin only. + * + * @global object + * @global object + * @param string $text The text to be displayed for the link + * @param string $iconpath The path to the icon to be displayed + * @return string The link to user documentation for this current page + */ +function page_doc_link($text='', $iconpath='') { + global $CFG, $PAGE, $OUTPUT; + + if (empty($CFG->docroot) || during_initial_install()) { + return ''; + } + if (!has_capability('moodle/site:doclinks', $PAGE->context)) { + return ''; + } + + $path = $PAGE->docspath; + if (!$path) { + return ''; + } + return $OUTPUT->doc_link($path, $text, $iconpath); +} + /** * Validates an email to make sure it makes sense. -- 2.39.5