]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-19756 Fixed regression in popup_form()
authornicolasconnault <nicolasconnault>
Tue, 4 Aug 2009 09:09:06 +0000 (09:09 +0000)
committernicolasconnault <nicolasconnault>
Tue, 4 Aug 2009 09:09:06 +0000 (09:09 +0000)
course/jumpto.php
lib/deprecatedlib.php
lib/outputlib.php

index ce4df789f03b9a7dac5f6a9706fb3000d3e18930..3cea4f459de19960a76da36a9e50830a4c9dc1ab 100644 (file)
     }
 
     if (strpos($jump, $CFG->wwwroot) === 0) {            // Anything on this site
-        redirect(urldecode($jump));
+        redirect(new moodle_url(urldecode($jump)));
     } else if (preg_match('/^[a-z]+\.php\?/', $jump)) { 
-        redirect(urldecode($jump));
+        redirect(new moodle_url(urldecode($jump)));
     }
 
-    redirect($_SERVER['HTTP_REFERER']);   // Return to sender, just in case
+    redirect(new moodle_url($_SERVER['HTTP_REFERER']));   // Return to sender, just in case
 
 ?>
index a9c63aa4c68fb0a8f8e3d403bb0eae9e72570c7d..0200a40f209526e7c0a09ae8312cc746e7329f2a 100644 (file)
@@ -3339,22 +3339,22 @@ function popup_form($baseurl, $options, $formid, $selected='', $nothing='choose'
 
     // debugging('popup_form() has been deprecated. Please change your code to use $OUTPUT->select($dateselector).');
 
-    if (!empty($optionsextra)) {
-        debugging('the optionsextra param has been deprecated in popup_form, it will be ignored.', DEBUG_DEVELOPER);
-    }
-
     if (empty($options)) {
         return '';
     }
-    $select = moodle_select::make_popup_form($baseurl, $options, $formid, $submitvalue, $selected);
-    $select->disabled = $disabled;
 
-    // Extract the last param of the baseurl for the name of the select
-    if (preg_match('/([a-z_]*)=$/', $baseurl, $matches)) {
-        $select->name = $matches[1];
-        $select->form->url->remove_params(array($matches[1]));
+    foreach ($options as $var => $val) {
+        $url = new moodle_url($baseurl . $var);
+        if (!empty($optionsextra[$var])) {
+            new moodle_url($baseurl . $var . $optionsextra[$var]);
+        }
+        $options[$url->out(false, array(), false)] = $val;
+        unset($options[$var]);
     }
 
+    $select = moodle_select::make_popup_form($options, $formid, $submitvalue, $selected);
+    $select->disabled = $disabled;
+
     if ($nothing == 'choose') {
         $select->nothinglabel = '';
     } else {
index 4a342f969bf0a258e0ad39a54556c51963b16461..d2f9f5c06c1dc8714295c9ae1ce6925217c5d2e7 100644 (file)
@@ -2684,12 +2684,15 @@ class moodle_core_renderer extends moodle_renderer_base {
         $this->prepare_event_handlers($image);
 
         $attributes = array('class' => $image->get_classes_string(),
-                            'style' => $this->prepare_legacy_width_and_height($image),
                             'src' => prepare_url($image->src),
                             'alt' => $image->alt,
+                            'style' => $image->style,
                             'title' => $image->title,
                             'id' => $image->id);
-
+        
+        if (!empty($image->height) || !empty($image->width)) {
+            $attributes['style'] .= $this->prepare_legacy_width_and_height($image);
+        }
         return $this->output_empty_tag('img', $attributes);
     }
 
@@ -3417,6 +3420,10 @@ class moodle_html_component {
      * @var string $alt value to use for the alt attribute of this HTML tag.
      */
     public $alt = '';
+    /**
+     * @var string $style value to use for the style attribute of this HTML tag.
+     */
+    public $style = '';
     /**
      * @var array class names to add to this HTML element.
      */
@@ -3755,6 +3762,7 @@ class moodle_select extends moodle_html_component {
         } else {
             $inoptgroup = false;
             $optgroup = false;
+
             foreach ($options as $value => $display) {
                 if ($display == '--') { /// we are ending previous optgroup
                     $this->options[] = $optgroup;
@@ -3813,7 +3821,6 @@ class moodle_select extends moodle_html_component {
                 $this->options[] = $optgroup;
             }
         }
-
         parent::prepare();
     }
 
@@ -3915,13 +3922,14 @@ class moodle_select extends moodle_html_component {
      * @param string $selected The option that is initially selected
      * @return moodle_select A menu initialised as a popup form.
      */
-    public function make_popup_form($baseurl, $options, $formid, $submitvalue='', $selected=null) {
+    public function make_popup_form($options, $formid, $submitvalue='', $selected=null) {
+        global $CFG;
         $select = self::make($options, 'jump', $selected);
         $select->form = new html_form();
         $select->form->id = $formid;
         $select->form->method = 'get';
         $select->form->add_class('popupform');
-        $select->form->url = new moodle_url($baseurl);
+        $select->form->url = new moodle_url($CFG->wwwroot . '/course/jumpto.php', array('sesskey' => sesskey()));
         $select->form->button->text = get_string('go');
 
         if (!empty($submitvalue)) {
@@ -3929,7 +3937,6 @@ class moodle_select extends moodle_html_component {
         }
 
         $select->id = $formid . '_jump';
-        $select->baseurl = $baseurl;
 
         $select->add_action('change', 'submit_form_by_id', array('id' => $formid, 'selectid' => $select->id));