diff options
Diffstat (limited to 'views/default/navigation')
| -rw-r--r-- | views/default/navigation/breadcrumbs.php | 3 | ||||
| -rw-r--r-- | views/default/navigation/listtype.php | 28 | ||||
| -rw-r--r-- | views/default/navigation/menu/default.php | 29 | ||||
| -rw-r--r-- | views/default/navigation/menu/elements/group.php | 19 | ||||
| -rw-r--r-- | views/default/navigation/menu/elements/item.php | 23 | ||||
| -rw-r--r-- | views/default/navigation/menu/elements/section.php | 30 | ||||
| -rw-r--r-- | views/default/navigation/menu/page.php | 11 | ||||
| -rw-r--r-- | views/default/navigation/menu/site.php | 25 | ||||
| -rw-r--r-- | views/default/navigation/menu/user_hover.php | 38 | ||||
| -rw-r--r-- | views/default/navigation/pagination.php | 21 | ||||
| -rw-r--r-- | views/default/navigation/tabs.php | 93 | ||||
| -rw-r--r-- | views/default/navigation/topbar_tools.php | 3 | ||||
| -rw-r--r-- | views/default/navigation/viewtype.php | 6 |
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>@$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' => '« ' . elgg_echo('previous'), 'href' => '', + 'is_trusted' => true, ); $pages->next = array( 'text' => elgg_echo('next') . ' »', '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); |
