简体   繁体   English

访问Joomla中的菜单内容

[英]Accessing contents of a menu in Joomla

I'm having trouble adapting an html document into a Joomla 3.4 CMS Template. 我无法将html文档改编为Joomla 3.4 CMS模板。 I'm using bootstrap and I want to implement the following section of navigation bar code: 我正在使用引导程序,并且想实现导航条码的以下部分:

<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
    <li><a href="index.php">Home</a></li>
    <li class="active"><a href="services.php">Services</a></li>
    <li><a href="about.php">About</a></li>
    <li><a href="contact.php">Contact</a></li>
</ul>
</div>

I've put all of the links in the same menu. 我已将所有链接放在同一菜单中。 Is there some way to retrieve all of the items in a menu so that I can use them in a module? 有什么方法可以检索菜单中的所有项目,以便可以在模块中使用它们?

The best way to achieve this is through "template override". 实现此目的的最佳方法是通过“模板覆盖”。

When you create the override of the module menu, in the file default.php you can add the structure that you need to use bootstrap 3. 创建模块菜单的替代时,可以在文件default.php中添加使用引导程序3所需的结构。

For example I use this in my override ... 例如我在覆盖中使用它...

 <?php /** * @package Joomla.Site * @subpackage mod_menu * * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; // Note. It is important to remove spaces between elements. ?> <?php // The menu class is deprecated. Use nav instead. ?> <ul class="nav navbar-nav<?php echo $class_sfx;?>"<?php $tag = ''; if ($params->get('tag_id') != null) { $tag = $params->get('tag_id') . ''; echo ' id="' . $tag . '"'; } ?>> <?php foreach ($list as $i => &$item) { $class = 'item-' . $item->id; if ($item->id == $active_id) { $class .= ' current'; } if (in_array($item->id, $path)) { $class .= ' active'; } elseif ($item->type == 'alias') { $aliasToId = $item->params->get('aliasoptions'); if (count($path) > 0 && $aliasToId == $path[count($path) - 1]) { $class .= ' active'; } elseif (in_array($aliasToId, $path)) { $class .= ' alias-parent-active'; } } if ($item->type == 'separator') { $class .= ' divider'; } if ($item->deeper) { $class .= ' deeper'; } if ($item->parent) { $class .= ' parent'; } if (!empty($class)) { $class = ' class="' . trim($class) . '"'; } echo '<li' . $class . '>'; // Render the menu item. switch ($item->type) : case 'separator': case 'url': case 'component': case 'heading': require JModuleHelper::getLayoutPath('mod_menu', 'default_' . $item->type); break; default: require JModuleHelper::getLayoutPath('mod_menu', 'default_url'); break; endswitch; // The next item is deeper. if ($item->deeper) { echo '<ul class="nav-child unstyled small dropdown-menu">'; } elseif ($item->shallower) { // The next item is shallower. echo '</li>'; echo str_repeat('</ul></li>', $item->level_diff); } else { // The next item is on the same level. echo '</li>'; } } ?></ul> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM