aboutsummaryrefslogtreecommitdiff
path: root/views/default/navigation
diff options
context:
space:
mode:
Diffstat (limited to 'views/default/navigation')
-rw-r--r--views/default/navigation/breadcrumbs.php3
-rw-r--r--views/default/navigation/listtype.php28
-rw-r--r--views/default/navigation/menu/default.php29
-rw-r--r--views/default/navigation/menu/elements/group.php19
-rw-r--r--views/default/navigation/menu/elements/item.php23
-rw-r--r--views/default/navigation/menu/elements/section.php30
-rw-r--r--views/default/navigation/menu/page.php11
-rw-r--r--views/default/navigation/menu/site.php25
-rw-r--r--views/default/navigation/menu/user_hover.php38
-rw-r--r--views/default/navigation/pagination.php21
-rw-r--r--views/default/navigation/tabs.php93
-rw-r--r--views/default/navigation/topbar_tools.php3
-rw-r--r--views/default/navigation/viewtype.php6
13 files changed, 190 insertions, 139 deletions
diff --git a/views/default/navigation/breadcrumbs.php b/views/default/navigation/breadcrumbs.php
index 53d1ffaaf..88577a8ff 100644
--- a/views/default/navigation/breadcrumbs.php
+++ b/views/default/navigation/breadcrumbs.php
@@ -17,7 +17,7 @@ if (isset($vars['breadcrumbs'])) {
$breadcrumbs = elgg_get_breadcrumbs();
}
-$class = 'elgg-breadcrumbs';
+$class = 'elgg-menu elgg-breadcrumbs';
$additional_class = elgg_extract('class', $vars, '');
if ($additional_class) {
$class = "$class $additional_class";
@@ -30,6 +30,7 @@ if (is_array($breadcrumbs) && count($breadcrumbs) > 0) {
$crumb = elgg_view('output/url', array(
'href' => $breadcrumb['link'],
'text' => $breadcrumb['title'],
+ 'is_trusted' => true,
));
} else {
$crumb = $breadcrumb['title'];
diff --git a/views/default/navigation/listtype.php b/views/default/navigation/listtype.php
deleted file mode 100644
index 9b86df40c..000000000
--- a/views/default/navigation/listtype.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * Elgg list view switcher
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$baseurl = elgg_http_remove_url_query_element($vars['baseurl'], 'search_listtype');
-
-if ($vars['listtype'] == "list") {
- $listtype = "gallery";
-} else {
- $listtype = "list";
-}
-
-if (substr_count($baseurl,'?')) {
- $baseurl .= "&search_listtype=" . $listtype;
-} else {
- $baseurl .= "?search_listtype=" . $listtype;
-}
-
-?>
-
-<p class="margin-top">
- <?php echo elgg_echo("listtype:change") ?>:
- <a href="<?php echo $baseurl; ?>"><?php echo elgg_echo("listtype:{$listtype}"); ?></a>
-</p> \ No newline at end of file
diff --git a/views/default/navigation/menu/default.php b/views/default/navigation/menu/default.php
index d849fb80e..006deb3ea 100644
--- a/views/default/navigation/menu/default.php
+++ b/views/default/navigation/menu/default.php
@@ -2,19 +2,30 @@
/**
* Default menu
*
- * @uses $vars['menu']
- * @uses $vars['class']
+ * @uses $vars['name'] Name of the menu
+ * @uses $vars['menu'] Array of menu items
+ * @uses $vars['class'] Additional CSS class for the menu
+ * @uses $vars['item_class'] Additional CSS class for each menu item
+ * @uses $vars['show_section_headers'] Do we show headers for each section?
*/
-$class = 'elgg-menu';
+// we want css classes to use dashes
+$vars['name'] = preg_replace('/[^a-z0-9\-]/i', '-', $vars['name']);
+$headers = elgg_extract('show_section_headers', $vars, false);
+$item_class = elgg_extract('item_class', $vars, '');
+
+$class = "elgg-menu elgg-menu-{$vars['name']}";
if (isset($vars['class'])) {
- $class = "$class {$vars['class']}";
+ $class .= " {$vars['class']}";
}
foreach ($vars['menu'] as $section => $menu_items) {
- echo "<ul class=\"$class\">";
- foreach ($menu_items as $menu_item) {
- echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item));
- }
- echo '</ul>';
+ echo elgg_view('navigation/menu/elements/section', array(
+ 'items' => $menu_items,
+ 'class' => "$class elgg-menu-{$vars['name']}-$section",
+ 'section' => $section,
+ 'name' => $vars['name'],
+ 'show_section_headers' => $headers,
+ 'item_class' => $item_class,
+ ));
}
diff --git a/views/default/navigation/menu/elements/group.php b/views/default/navigation/menu/elements/group.php
deleted file mode 100644
index b0c0f54d4..000000000
--- a/views/default/navigation/menu/elements/group.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Menu group
- *
- * @uses $vars['items']
- * @uses $vars['class']
- * @uses $vars['section']
- */
-
-$class = elgg_extract('class', $vars, '');
-if (isset($vars['section'])) {
- $class = "$class elgg-section-{$vars['section']}";
-}
-
-echo "<ul class=\"$class\">";
-foreach ($vars['items'] as $menu_item) {
- echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item));
-}
-echo '</ul>';
diff --git a/views/default/navigation/menu/elements/item.php b/views/default/navigation/menu/elements/item.php
index 7b07c9485..fd9738826 100644
--- a/views/default/navigation/menu/elements/item.php
+++ b/views/default/navigation/menu/elements/item.php
@@ -4,31 +4,38 @@
*
* @package Elgg.Core
* @subpackage Navigation
+ *
+ * @uses $vars['item'] ElggMenuItem
+ * @uses $vars['item_class'] Additional CSS class for the menu item
*/
$item = $vars['item'];
$link_class = 'elgg-menu-closed';
if ($item->getSelected()) {
- $item->setItemClass('elgg-state-selected');
+ // @todo switch to addItemClass when that is implemented
+ //$item->setItemClass('elgg-state-selected');
$link_class = 'elgg-menu-opened';
}
$children = $item->getChildren();
if ($children) {
- $item->setLinkClass($link_class);
- $item->setLinkClass('elgg-menu-parent');
+ $item->addLinkClass($link_class);
+ $item->addLinkClass('elgg-menu-parent');
}
$item_class = $item->getItemClass();
-if ($item_class) {
- $class = "class=\"$item_class\"";
+if ($item->getSelected()) {
+ $item_class = "$item_class elgg-state-selected";
+}
+if (isset($vars['item_class']) && $vars['item_class']) {
+ $item_class .= ' ' . $vars['item_class'];
}
-echo "<li $class>";
-echo $item->getLink($link_vars);
+echo "<li class=\"$item_class\">";
+echo $item->getContent();
if ($children) {
- echo elgg_view('navigation/menu/elements/group', array(
+ echo elgg_view('navigation/menu/elements/section', array(
'items' => $children,
'class' => 'elgg-menu elgg-child-menu',
));
diff --git a/views/default/navigation/menu/elements/section.php b/views/default/navigation/menu/elements/section.php
new file mode 100644
index 000000000..c0e9ba750
--- /dev/null
+++ b/views/default/navigation/menu/elements/section.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Menu group
+ *
+ * @uses $vars['items'] Array of menu items
+ * @uses $vars['class'] Additional CSS class for the section
+ * @uses $vars['name'] Name of the menu
+ * @uses $vars['section'] The section name
+ * @uses $vars['item_class'] Additional CSS class for each menu item
+ * @uses $vars['show_section_headers'] Do we show headers for each section
+ */
+
+$headers = elgg_extract('show_section_headers', $vars, false);
+$class = elgg_extract('class', $vars, '');
+$item_class = elgg_extract('item_class', $vars, '');
+
+if ($headers) {
+ $name = elgg_extract('name', $vars);
+ $section = elgg_extract('section', $vars);
+ echo '<h2>' . elgg_echo("menu:$name:header:$section") . '</h2>';
+}
+
+echo "<ul class=\"$class\">";
+foreach ($vars['items'] as $menu_item) {
+ echo elgg_view('navigation/menu/elements/item', array(
+ 'item' => $menu_item,
+ 'item_class' => $item_class,
+ ));
+}
+echo '</ul>';
diff --git a/views/default/navigation/menu/page.php b/views/default/navigation/menu/page.php
index 92006e956..56a288234 100644
--- a/views/default/navigation/menu/page.php
+++ b/views/default/navigation/menu/page.php
@@ -5,8 +5,12 @@
* @uses $vars['menu']
* @uses $vars['selected_item']
* @uses $vars['class']
+ * @uses $vars['name']
+ * @uses $vars['show_section_headers']
*/
+$headers = elgg_extract('show_section_headers', $vars, false);
+
$class = 'elgg-menu elgg-menu-page';
if (isset($vars['class'])) {
$class = "$class {$vars['class']}";
@@ -14,6 +18,7 @@ if (isset($vars['class'])) {
if (isset($vars['selected_item'])) {
$parent = $vars['selected_item']->getParent();
+
while ($parent) {
$parent->setSelected();
$parent = $parent->getParent();
@@ -21,9 +26,11 @@ if (isset($vars['selected_item'])) {
}
foreach ($vars['menu'] as $section => $menu_items) {
- echo elgg_view('navigation/menu/elements/group', array(
+ echo elgg_view('navigation/menu/elements/section', array(
'items' => $menu_items,
+ 'class' => "$class elgg-menu-page-$section",
'section' => $section,
- 'class' => $class,
+ 'name' => $vars['name'],
+ 'show_section_headers' => $headers
));
}
diff --git a/views/default/navigation/menu/site.php b/views/default/navigation/menu/site.php
index 706e56fe5..24c21dd57 100644
--- a/views/default/navigation/menu/site.php
+++ b/views/default/navigation/menu/site.php
@@ -6,20 +6,25 @@
* @uses $vars['menu']['more']
*/
-echo '<ul class="elgg-menu elgg-menu-site clearfix">';
-foreach ($vars['menu']['default'] as $menu_item) {
+$default_items = elgg_extract('default', $vars['menu'], array());
+$more_items = elgg_extract('more', $vars['menu'], array());
+
+echo '<ul class="elgg-menu elgg-menu-site elgg-menu-site-default clearfix">';
+foreach ($default_items as $menu_item) {
echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item));
}
-if (isset($vars['menu']['more'])) {
- $more = elgg_echo('more');
+if ($more_items) {
echo '<li class="elgg-more">';
- echo "<a class='subnav' title=\"$more\"><span class=\"elgg-icon elgg-icon-arrow-s\"></span>$more</a>";
- echo '<ul>';
- foreach ($vars['menu']['more'] as $menu_item) {
- echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item));
- }
- echo '</ul>';
+
+ $more = elgg_echo('more');
+ echo "<a href=\"#\">$more</a>";
+
+ echo elgg_view('navigation/menu/elements/section', array(
+ 'class' => 'elgg-menu elgg-menu-site elgg-menu-site-more',
+ 'items' => $more_items,
+ ));
+
echo '</li>';
}
echo '</ul>';
diff --git a/views/default/navigation/menu/user_hover.php b/views/default/navigation/menu/user_hover.php
index bbca41e21..5c89e585c 100644
--- a/views/default/navigation/menu/user_hover.php
+++ b/views/default/navigation/menu/user_hover.php
@@ -19,34 +19,42 @@ echo '<ul class="elgg-menu elgg-menu-hover">';
$name_link = elgg_view('output/url', array(
'href' => $user->getURL(),
'text' => "<span class=\"elgg-heading-basic\">$user->name</span>&#64;$user->username",
+ 'is_trusted' => true,
));
echo "<li>$name_link</li>";
// actions
if (elgg_is_logged_in() && $actions) {
- echo '<li><ul>';
- foreach ($actions as $menu_item) {
- echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item));
- }
- echo '</ul></li>';
+ echo '<li>';
+ echo elgg_view('navigation/menu/elements/section', array(
+ 'class' => "elgg-menu elgg-menu-hover-actions",
+ 'items' => $actions,
+ ));
+ echo '</li>';
}
// main
if ($main) {
- echo '<li><ul>';
- foreach ($main as $menu_item) {
- echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item));
- }
- echo '</ul></li>';
+ echo '<li>';
+
+ echo elgg_view('navigation/menu/elements/section', array(
+ 'class' => 'elgg-menu elgg-menu-hover-default',
+ 'items' => $main,
+ ));
+
+ echo '</li>';
}
// admin
if (elgg_is_admin_logged_in() && $admin) {
- echo '<li><ul class="elgg-hover-admin">';
- foreach ($admin as $menu_item) {
- echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item));
- }
- echo '</ul></li>';
+ echo '<li>';
+
+ echo elgg_view('navigation/menu/elements/section', array(
+ 'class' => 'elgg-menu elgg-menu-hover-admin',
+ 'items' => $admin,
+ ));
+
+ echo '</li>';
}
echo '</ul>';
diff --git a/views/default/navigation/pagination.php b/views/default/navigation/pagination.php
index c0cb801dd..04044c51c 100644
--- a/views/default/navigation/pagination.php
+++ b/views/default/navigation/pagination.php
@@ -8,7 +8,7 @@
* @uses int $vars['offset'] The offset in the list
* @uses int $vars['limit'] Number of items per page
* @uses int $vars['count'] Number of items in list
- * @uses string $vars['baseurl'] Base URL to use in links
+ * @uses string $vars['base_url'] Base URL to use in links
* @uses string $vars['offset_key'] The string to use for offet in the URL
*/
@@ -25,7 +25,15 @@ if (!$limit = (int) elgg_extract('limit', $vars, 10)) {
$count = (int) elgg_extract('count', $vars, 0);
$offset_key = elgg_extract('offset_key', $vars, 'offset');
-$base_url = elgg_extract('baseurl', $vars, current_page_url());
+// some views pass an empty string for base_url
+if (isset($vars['base_url']) && $vars['base_url']) {
+ $base_url = $vars['base_url'];
+} else if (isset($vars['baseurl']) && $vars['baseurl']) {
+ elgg_deprecated_notice("Use 'base_url' instead of 'baseurl' for the navigation/pagination view", 1.8);
+ $base_url = $vars['baseurl'];
+} else {
+ $base_url = current_page_url();
+}
$num_pages = elgg_extract('num_pages', $vars, 10);
$delta = ceil($num_pages / 2);
@@ -42,10 +50,12 @@ $pages = new stdClass();
$pages->prev = array(
'text' => '&laquo; ' . elgg_echo('previous'),
'href' => '',
+ 'is_trusted' => true,
);
$pages->next = array(
'text' => elgg_echo('next') . ' &raquo;',
'href' => '',
+ 'is_trusted' => true,
);
$pages->items = array();
@@ -103,7 +113,12 @@ foreach ($pages->items as $page) {
} else {
$page_offset = (($page - 1) * $limit);
$url = elgg_http_add_url_query_elements($base_url, array($offset_key => $page_offset));
- echo "<li><a href=\"$url\">$page</a></li>";
+ $link = elgg_view('output/url', array(
+ 'href' => $url,
+ 'text' => $page,
+ 'is_trusted' => true,
+ ));
+ echo "<li>$link</li>";
}
}
diff --git a/views/default/navigation/tabs.php b/views/default/navigation/tabs.php
index 0108126ad..95e3f2669 100644
--- a/views/default/navigation/tabs.php
+++ b/views/default/navigation/tabs.php
@@ -5,64 +5,77 @@
* @uses string $vars['type'] horizontal || vertical - Defaults to horizontal
* @uses string $vars['class'] Additional class to add to ul
* @uses array $vars['tabs'] A multi-dimensional array of tab entries in the format array(
- * 'title' => string, // Title of link
- * 'url' => string, // URL for the link
+ * 'text' => string, // The string between the <a></a> tags
+ * 'href' => string, // URL for the link
* 'class' => string // Class of the li element
* 'id' => string, // ID of the li element
- * 'selected' => bool // if this li element is currently selected
- * 'url_class' => string, // Class to pass to the link
- * 'url_id' => string, // ID to pass to the link
+ * 'selected' => bool // if this tab is currently selected (applied to li element)
+ * 'link_class' => string, // Class to pass to the link
+ * 'link_id' => string, // ID to pass to the link
* )
*/
+$options = elgg_clean_vars($vars);
$type = elgg_extract('type', $vars, 'horizontal');
+
if ($type == 'horizontal') {
- $type_class = "elgg-tabs elgg-htabs";
+ $options['class'] = "elgg-tabs elgg-htabs";
} else {
- $type_class = "elgg-tabs elgg-vtabs";
+ $options['class'] = "elgg-tabs elgg-vtabs";
}
-
if (isset($vars['class'])) {
- $type_class = "$type_class {$vars['class']}";
+ $options['class'] = "{$options['class']} {$vars['class']}";
}
+unset($options['tabs']);
+unset($options['type']);
+
+$attributes = elgg_format_attributes($options);
+
if (isset($vars['tabs']) && is_array($vars['tabs']) && !empty($vars['tabs'])) {
-?>
- <ul class="<?php echo $type_class; ?>">
- <?php
- foreach ($vars['tabs'] as $info) {
- $class = elgg_extract('class', $info, '');
- $id = elgg_extract('id', $info, '');
-
- $selected = elgg_extract('selected', $info, FALSE);
- if ($selected) {
- $class .= ' elgg-state-selected';
- }
+ ?>
+ <ul <?php echo $attributes; ?>>
+ <?php
+ foreach ($vars['tabs'] as $info) {
+ $class = elgg_extract('class', $info, '');
+ $id = elgg_extract('id', $info, '');
- $class_str = ($class) ? "class=\"$class\"" : '';
- $id_str = ($id) ? "id=\"$id\"" : '';
- $title = htmlspecialchars($info['title'], ENT_QUOTES, 'UTF-8');
- $url = htmlspecialchars($info['url'], ENT_QUOTES, 'UTF-8');
+ $selected = elgg_extract('selected', $info, FALSE);
+ if ($selected) {
+ $class .= ' elgg-state-selected';
+ }
- $options = array(
- 'href' => $url,
- 'title' => $title,
- 'text' => $title
- );
+ $class_str = ($class) ? "class=\"$class\"" : '';
+ $id_str = ($id) ? "id=\"$id\"" : '';
- if (isset($info['url_class'])) {
- $options['class'] = $info['url_class'];
- }
+ $options = $info;
+ unset($options['class']);
+ unset($options['id']);
+ unset($options['selected']);
- if (isset($info['url_id'])) {
- $options['id'] = $info['url_id'];
- }
+ if (!isset($info['href']) && isset($info['url'])) {
+ $options['href'] = $info['url'];
+ unset($options['url']);
+ }
+ if (!isset($info['text']) && isset($info['title'])) {
+ $options['text'] = $options['title'];
+ unset($options['title']);
+ }
+ if (isset($info['link_class'])) {
+ $options['class'] = $options['link_class'];
+ unset($options['link_class']);
+ }
- $link = elgg_view('output/url', $options);
+ if (isset($info['link_id'])) {
+ $options['id'] = $options['link_id'];
+ unset($options['link_id']);
+ }
- echo "<li $class_str $js>$link</li>";
- }
- ?>
- </ul>
+ $link = elgg_view('output/url', $options);
+
+ echo "<li $id_str $class_str>$link</li>";
+ }
+ ?>
+ </ul>
<?php
}
diff --git a/views/default/navigation/topbar_tools.php b/views/default/navigation/topbar_tools.php
index 44cf4a63d..307f03fc6 100644
--- a/views/default/navigation/topbar_tools.php
+++ b/views/default/navigation/topbar_tools.php
@@ -4,5 +4,6 @@
*
* @package Elgg
* @subpackage Core
- *
+ *
+ * @deprecated 1.8 Extend the topbar menus or the page/elements/topbar view directly
*/
diff --git a/views/default/navigation/viewtype.php b/views/default/navigation/viewtype.php
index cdf167eb5..6dfa4ebc7 100644
--- a/views/default/navigation/viewtype.php
+++ b/views/default/navigation/viewtype.php
@@ -4,8 +4,8 @@
*
* @package Elgg
* @subpackage Core
+ *
+ * @deprecated 1.8 See how file plugin adds a toggle in function file_register_toggle()
*/
-elgg_deprecated_notice('navigation/viewtype was deprecated by navigation/listtype', 1.8);
-
-echo elgg_view('navigation/listtype', $vars); \ No newline at end of file
+elgg_deprecated_notice('navigation/viewtype was deprecated', 1.8);