Merge branch 'MDL-27827_head' of git://github.com/grabs/moodle
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Thu, 23 Jun 2011 22:21:58 +0000 (00:21 +0200)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Thu, 23 Jun 2011 22:21:58 +0000 (00:21 +0200)
filter/manage.php
lib/navigationlib.php
lib/tablelib.php
mod/wiki/pagelib.php

index 6e65895..943c7fc 100644 (file)
@@ -34,6 +34,7 @@ list($context, $course, $cm) = get_context_info_array($contextid);
 /// Check login and permissions.
 require_login($course, false, $cm);
 require_capability('moodle/filter:manage', $context);
+$PAGE->set_context($context);
 
 $args = array('contextid'=>$contextid);
 $baseurl = new moodle_url('/filter/manage.php', $args);
index 297fb82..1c24fa2 100644 (file)
@@ -117,7 +117,7 @@ class navigation_node implements renderable {
     public $mainnavonly = false;
     /** @var bool If set to true a title will be added to the action no matter what */
     public $forcetitle = false;
-    /** @var navigation_node A reference to the node parent */
+    /** @var navigation_node A reference to the node parent, you should never set this directly you should always call set_parent */
     public $parent = null;
     /** @var bool Override to not display the icon even if one is provided **/
     public $hideicon = false;
@@ -169,9 +169,6 @@ class navigation_node implements renderable {
             if (array_key_exists('key', $properties)) {
                 $this->key = $properties['key'];
             }
-            if (array_key_exists('parent', $properties)) {
-                $this->parent = $properties['parent'];
-            }
             // This needs to happen last because of the check_if_active call that occurs
             if (array_key_exists('action', $properties)) {
                 $this->action = $properties['action'];
@@ -182,6 +179,9 @@ class navigation_node implements renderable {
                     $this->check_if_active();
                 }
             }
+            if (array_key_exists('parent', $properties)) {
+                $this->set_parent($properties['parent']);
+            }
         } else if (is_string($properties)) {
             $this->text = $properties;
         }
@@ -305,7 +305,7 @@ class navigation_node implements renderable {
             $this->nodetype = self::NODETYPE_BRANCH;
         }
         // Set the parent to this node
-        $childnode->parent = $this;
+        $childnode->set_parent($this);
 
         // Default the key to the number of children if not provided
         if ($childnode->key === null) {
@@ -648,6 +648,24 @@ class navigation_node implements renderable {
         }
         return array(array($tabs, $rows), $selected, $inactive, $activated, $return);
     }
+
+    /**
+     * Sets the parent for this node and if this node is active ensures that the tree is properly
+     * adjusted as well.
+     *
+     * @param navigation_node $parent
+     */
+    public function set_parent(navigation_node $parent) {
+        // Set the parent (thats the easy part)
+        $this->parent = $parent;
+        // Check if this node is active (this is checked during construction)
+        if ($this->isactive) {
+            // Force all of the parent nodes open so you can see this node
+            $this->parent->force_open();
+            // Make all parents inactive so that its clear where we are.
+            $this->parent->make_inactive();
+        }
+    }
 }
 
 /**
index 4039f9a..9c22c9c 100644 (file)
@@ -429,7 +429,7 @@ class flexible_table {
                 isset($this->columns[$showcol])) {
             $this->sess->collapse[$showcol] = false;
 
-        } else if (($hidecol = optional_param($this->request[TABLE_VAR_SHOW], '', PARAM_ALPHANUMEXT)) &&
+        } else if (($hidecol = optional_param($this->request[TABLE_VAR_HIDE], '', PARAM_ALPHANUMEXT)) &&
                 isset($this->columns[$hidecol])) {
             $this->sess->collapse[$hidecol] = true;
             if (array_key_exists($hidecol, $this->sess->sortby)) {
index 0badb1d..6266308 100644 (file)
@@ -1013,7 +1013,7 @@ class page_wiki_preview extends page_wiki_edit {
             $parseroutput = wiki_parse_content($data->contentformat, $text, $options);
             $this->set_newcontent($text);
             echo $OUTPUT->notification(get_string('previewwarning', 'wiki'), 'notifyproblem wiki_info');
-            $content = format_text($parseroutput['parsed_text'], FORMAT_HTML, array('overflowdiv'=>true));
+            $content = format_text($parseroutput['parsed_text'], FORMAT_HTML, array('overflowdiv'=>true, 'filter'=>false));
             echo $OUTPUT->box($content, 'generalbox wiki_previewbox');
             $content = $this->newcontent;
         }