aboutsummaryrefslogtreecommitdiff
path: root/mod/pages/views/default/pages/sidebar/navigation.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/pages/views/default/pages/sidebar/navigation.php')
-rw-r--r--mod/pages/views/default/pages/sidebar/navigation.php42
1 files changed, 42 insertions, 0 deletions
diff --git a/mod/pages/views/default/pages/sidebar/navigation.php b/mod/pages/views/default/pages/sidebar/navigation.php
index ddd931dab..806fc2f52 100644
--- a/mod/pages/views/default/pages/sidebar/navigation.php
+++ b/mod/pages/views/default/pages/sidebar/navigation.php
@@ -1,16 +1,58 @@
<?php
/**
* Navigation menu for a user's or a group's pages
+ *
+ * @uses $vars['page'] Page object if manually setting selected item
*/
+$selected_page = elgg_get_array_value('page', $vars, false);
+if ($selected_page) {
+ $url = $selected_page->getURL();
+}
+
$title = elgg_echo('pages:navigation');
pages_register_navigation_tree(elgg_get_page_owner());
$content = elgg_view_menu('pages_nav', array('class' => 'pages-nav'));
+if (!$content) {
+ $content = '<p>' . elgg_echo('pages:none') . '</p>';
+}
echo elgg_view('layout/objects/module', array(
'title' => $title,
'body' => $content,
'class' => 'elgg-aside-module',
));
+
+?>
+<script type="text/javascript">
+$(document).ready(function() {
+ $(".pages-nav").treeview({
+ persist: "location",
+ collapsed: true,
+ unique: true
+ });
+
+<?php
+if ($selected_page) {
+ // if on a history page, we need to manually select the correct menu item
+ // code taken from the jquery.treeview library
+?>
+ var current = $(".pages-nav a[href='<?php echo $url; ?>']");
+ var items = current.addClass("selected").parents("ul, li").add( current.next() ).show();
+ var CLASSES = $.treeview.classes;
+ items.filter("li")
+ .swapClass( CLASSES.collapsable, CLASSES.expandable )
+ .swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
+ .find(">.hitarea")
+ .swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
+ .swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea );
+<?php
+}
+?>
+
+});
+
+</script>
+