MDL-20204 all popup forms converted
authorPetr Skoda <skodak@moodle.org>
Wed, 10 Feb 2010 12:00:18 +0000 (12:00 +0000)
committerPetr Skoda <skodak@moodle.org>
Wed, 10 Feb 2010 12:00:18 +0000 (12:00 +0000)
lib/deprecatedlib.php
lib/outputcomponents.php

index f0a76b4..eeff8e1 100644 (file)
@@ -3309,42 +3309,35 @@ function print_date_selector($day, $month, $year, $currenttime=0, $return=false)
  */
 function popup_form($baseurl, $options, $formid, $selected='', $nothing='choose', $help='', $helptext='', $return=false,
     $targetwindow='self', $selectlabel='', $optionsextra=NULL, $submitvalue='', $disabled=false, $showbutton=false) {
-    global $OUTPUT;
+    global $OUTPUT, $CFG;
 
-    // debugging('popup_form() has been deprecated. Please change your code to use $OUTPUT->select($select).');
+    debugging('popup_form() has been deprecated. Please change your code to use $OUTPUT->single_select() or $OUTPUT->url_select().');
 
     if (empty($options)) {
         return '';
     }
 
-    // Extract the last param in the baseurl
-    $name = null;
-    if (preg_match('/([a-zA-Z0-9\-_]*)=$/', $baseurl, $matches)) {
-        $name = $matches[1];
-    }
-
-    $baseurl = new moodle_url($baseurl);
-    $select = html_select::make_popup_form($baseurl, $name, $options, $formid, $selected);
-    $select->disabled = $disabled;
+    $urls = array();
 
-    if (!empty($submitvalue)) {
-        $select->form->button->text = $submitvalue;
+    foreach ($options as $value=>$label) {
+        $url = $baseurl.$value;
+        $url = str_replace($CFG->wwwroot, '', $url);
+        $url = str_replace('&amp;', '&', $url);
+        $urls[$url] = $label;
+        if ($selected == $value) {
+            $active = $url;
+        }
     }
 
-    if (!empty($optionsextra)) {
-        // debugging('The $optionsextra (11th) param to popup_form is not supported, please improve your code.', DEBUG_DEVELOPER);
-    }
+    $nothing = $nothing ? array(''=>$nothing) : null;
 
-    if ($nothing == 'choose') {
-        $select->nothinglabel = '';
-    } else {
-        $select->nothinglabel = $nothing;
-    }
+    $select = new url_select($urls, $active, $nothing, $formid);
+    $select->disabled = $disabled;
 
     $select->set_label($selectlabel);
     $select->set_help_icon($help, $helptext);
 
-    $output = $OUTPUT->select($select);
+    $output = $OUTPUT->render($select);
 
     if ($return) {
         return $output;
index 0dfaecf..1c896ab 100644 (file)
@@ -1453,51 +1453,6 @@ class html_select extends labelled_html_component {
         return $selects;
     }
 
-    /**
-     * This is a shortcut for making a select popup form.
-     * @param mixed $baseurl The target URL, string or moodle_url
-     * @param string $name The variable which this select's options are changing in the URL
-     * @param array $options A list of value-label pairs for the popup list
-     * @param string $formid id for the control. Must be unique on the page. Used in the HTML.
-     * @param string $selected The option that is initially selected
-     * @return html_select A menu initialised as a popup form.
-     */
-    public static function make_popup_form($baseurl, $name, $options, $formid, $selected=null) {
-        global $CFG;
-
-        $selectedurl = null;
-
-        if (!($baseurl instanceof moodle_url)) {
-            $baseurl = new moodle_url($baseurl);
-        }
-
-        if (!empty($selected)) {
-            $selectedurl = $baseurl->out(false, array($name => $selected));
-        }
-
-        // Replace real value by formatted URLs
-        foreach ($options as $value => $label) {
-            $options[$baseurl->out(false, array($name => $value))] = $label;
-            unset($options[$value]);
-        }
-
-        $select = self::make($options, 'jump', $selectedurl);
-
-        $select->form = new html_form();
-        $select->form->id = $formid;
-        $select->form->method = 'get';
-        $select->form->jssubmitaction = true;
-        $select->form->add_class('popupform');
-        $select->form->url = new moodle_url('/course/jumpto.php', array('sesskey' => sesskey()));
-        $select->form->button->text = get_string('go');
-
-        $select->id = $formid . '_jump';
-
-        $select->add_action('change', 'submit_form_by_id', array('id' => $formid, 'selectid' => $select->id));
-
-        return $select;
-    }
-
     /**
      * Adds a help icon next to the select menu.
      *