`
haohappy2
  • 浏览: 326275 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Drupal:Using of Primary/Secondary Links for Building of Split-Level Menu

阅读更多

You need:

  • Create split-level menu.
  • The upper string is main items (first level), and sub-menu appears to the left of the selected item.
  • Parent item from main menu items is active when navigation through submenus.

 

Solution:

We need to form one menu creating its structure through selection of parent items, and then make the same menu primary and secondary in menu settings and add location of these menus in the form of ‘links’in  page.tpl.php.

Please follow step-by-step instructions to do this::

  1. GO to Administer → Site Building → Menus
  2. Create menu (you can create the required items just in primary links – menu is already created by default). To make menu split-level, select parents for menu items. Do nor create 2 different menus.
  3. Open Settings tab and select:
    Menu with primary links: your menu (Primary links)
    Menu with secondary links: your menu (Primary links)
  4. Insert the following code to page.tpl.php:
    For primary_links

<?php if (isset($primary_links)) { ?><?php print theme(‘links’, $primary_links) ?><?php } ?>

          For secondary_links:

<?php if (isset($secondary_links)) { ?><?php print theme(‘links’, $secondary_links) ?><?php } ?>

This method can be used for two-level hierarchy i.e. there are upper items and left items. No other submenus – secondary menu won’t show them.

We will use TemplatePHP  snippet from this page to create parent link with class="active". Insert the following code (without closing ?>) to template.php.

<?php
function phptemplate_links($links, $attributes = array()) {
  if (!count($links)) {
    return ”;
  }
  $level_tmp = explode(‘-’, key($links));
  $level = $level_tmp[0];
  $output = "<ul class=\"links-$level ".$attributes['class']. "\">\n";
  foreach ($links as $index => $link) {
    $output .= ‘<li’;
    if (stristr($index, ‘active’)) {
      $output .= ‘ class="active"’;
    }// frontpage AND current-link in menu is <front>
    elseif((drupal_is_front_page()) && ($link['href']==’<front>’)){
      $link['attributes']['class'] = ‘active’;//add class active to <li
      $output .= ‘ class="active"’;//add class active to <a
    }
    $output .= ">". l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment']) ."</li>\n";
  }
  $output .= ‘</ul>’;
  return $output;
}
?>

分享到:
评论

相关推荐

    docker-drupal:Docker 上的 Drupal

    git clone https://github.com/nhoag/docker-drupal.gitcd ./docker-drupal/exampledrush dl --drupal-project-rename=app drupaldocker-compose up然后在浏览器中访问 http://{boot2docker-ip}:8080:延长可以通过...

    弃用:有关最新代码和问题,请参阅https://drupal.org/project/dropzonejs-DropzoneJS的D8集成。-PHP开发

    关于DropzoneJS这是DropzoneJS的Drupal 8集成。 ###如何安装:下载此模块下载DropzoneJS并将其放置在库文件夹中以通常方式安装dropzonejs删除“ test”文件夹f关于DropzoneJS这是DropzoneJS的Drupal 8集成。 ###如何...

    drupal 6.12

    This will create a new directory drupal-x.x/ containing all Drupal files and directories. Move the contents of that directory into a directory within your web server's document root or your public ...

    Linux 下PHP环境配置 LAMP.docx

    完成以上步骤后,你就成功配置了一个LAMP环境,可以用来运行PHP应用程序,如WordPress、Drupal等。记得在安装过程中,根据实际的系统环境和软件版本进行适当的调整。如果在配置过程中遇到错误,应仔细查看错误信息,...

    indows2012安装iis8.5php(FastCGI)MySQL环境搭建教程.docx

    这个环境是搭建Web服务器的基础,能够支持动态网页应用程序,例如WordPress、Drupal或Magento等。 首先,确保你的系统满足以下条件: 1. 操作系统:Windows Server 2012 R2 2. PHP 版本:php 5.5.8 3. MySQL 版本:...

    怎样学习iphone

    - 地址:[http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-fall](http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-fall) - **Apple Developer Library**:这是官方文档...

    相关LAMP(apache+php+mysqld)安装完整教程.doc

    LAMP(Linux、Apache、MySQL、PHP)是搭建Web服务器的一种常见组合,用于开发和运行...这个环境可以用来开发和部署基于PHP的Web应用程序,如WordPress、Drupal或Magento等。记得定期更新这些组件以保持安全性和性能。

    USING DRUPAL

    DRUPAL新书 USING DRUPAL 英文原版 最好的Drupal教材 亚马逊4.5星推荐 http://www.amazon.com/Using-Drupal-Angela-Byron/dp/0596515804

    nuxt-module-drupal-ce:一个Nuxt.js模块,可通过自定义元素轻松连接Drupal

    nuxtjs-drupal-ce-Nuxt.js Drupal自定义元素连接器 通过自定义元素轻松将Nuxt.js连接到Drupal。 请参阅了解更多信息。 先决条件 安装了模块的后端。 设置 将nuxtjs-drupal-ce依赖项添加到您的Nuxt.js项目 yarn ...

    drupal7-xowl-client:用于Xowl服务的Drupal 7模块(使用语义技术命名实体识别)

    Xowl-service客户端,用于drupal 7 该客户端使您可以通过语义层将托管的内容丰富到Drupal中。 您可以在此处在线测试此服务: : 要求 Drupal 7核心: : Drupal 7的模块ckeditor: ://ftp.drupal.org/files/...

    helm-drupal:Kubernetes的Drupal舵图

    头盔图:Drupal 。 这些是利用Helm安装Drupal的说明。 该图表将使您可以设置和配置Drupal以及其他集成: 使用ProxySQL配置MySQL 使用PGBouncer配置的PostgreSQL 雷迪斯漆请查阅我们的体系结构图以获取有关Azure的...

    Drupal高手建站技术手册(前四章).pdf.rar

    解压密码在:http://www.pin5i.com/showtopic-drupal-chinese-tutorial-e-book-download-drupal-building-website-technical-manuals-pdf.html

    flash标签云 3D效果 PHP插件 by weefselkweekje

    If you haven't already, I recommend you decide on a single URL for your blog and redirect visitors using other options. This will increase your search engine ranking and in the process help solve ...

    CKAN-CMS:与 CKAN 集成的 Drupal 7 发行版

    与 CKAN 集成的 Drupal 7 发行版 安装 要使用这个 drupal 发行版,您需要有一个 LAMP 堆栈和一个有效的 drush 安装。 有关详细要求,请参阅 。 您可以从这里获取 drush 及其安装说明: : 理清要求后,您可以使用...

    robo-drupal-coding:Robo Task Runner的Drupal编码命令

    在您的composer.json文件中添加"amarie88/robo-drupal-coding": "~0.1" : { " require-dev " : { " amarie88/robo-drupal-coding " : " ~0.1 " } } 并执行composer update 。 或者 composer require --dev ...

    十大建站开源程序.docx

    除了以上提到的程序,还有如PHPWind、动网论坛等其他优秀的论坛系统,以及更多的CMS选项,如Joomla、Drupal等,它们都为创建网站提供了丰富的功能和灵活性。选择合适的开源程序取决于你的需求、技术背景以及对网站...

    Drupal详细介绍.pdf

    - **站长下载**:[http://down.zzbaike.com/download/drupal-7-2879.html](http://down.zzbaike.com/download/drupal-7-2879.html) Drupal是一款用PHP编写的开源内容管理系统(CMS),广泛应用于搭建各种功能丰富的...

Global site tag (gtag.js) - Google Analytics