2010-04-17 99 views
0

我使用以下代碼從一些CMS加載主菜單元素,現在的代碼是完美的,只不過它將一行菜單中的所有主項加載 - 這將使它的寬度在任何居中設計(不足1000px)下都不可用。我想要更改此腳本,因此在15個主要元素添加一個「更多」按鈕後,其餘主菜單項將顯示爲此子項「更多」按鈕(他們將沒有自己的子項目,前15名)我該怎麼做? 謝謝!PHP菜單項計數,然後在更多按鈕下添加

 <?php 

require_once('../../../inc/header.inc.php'); 
require_once(DIRECTORY_PATH_INC . 'membership_levels.inc.php'); 
require_once(DIRECTORY_PATH_ROOT . "templates/tmpl_{$tmpl}/scripts/TemplMenu.php"); 

      class SimpleMenu extends TemplMenu 
      { 
      function getCode() 
      { 
      $this->iElementsCntInLine = 100; 
      $this->getMenuInfo(); 
      $this->genTopItems(); 
      return $this->sCode; 
      } 

      function genTopItem($sText, $sLink, $sTarget, $sOnclick, $bActive, $iItemID, $isBold = false, $sPicture = '') 
      { 
      $sActiveStyle = ($bActive) ? ' id="tm_active"' : ''; 

      if (!$bActive) { 
      $sAlt= $sOnclick ? (' alt="' . $sOnclick . '"') : ''; 
      $sTarget = $sTarget ? (' target="_parent"') : ''; 
      } 

      $sLink = (strpos($sLink, 'http://') === false && !strlen($sOnclick)) ? $this->sSiteUrl . $sLink : $sLink; 

      $sSubMenu = $this->getAllSubMenus($iItemID); 

      $sImgTabStyle = $sPictureRep = ''; 
      if ($isBold && $sPicture != '') { 
      $sPicturePath = getTemplateIcon($sPicture); 
      $sPictureRep = "<img src='{$sPicturePath}' style='vertical-align:middle;width:16px;height:16px;' />"; 
      $sText = '&nbsp;'; 
      $sImgTabStyle = 'style="width:38px;"'; 
      } 

      $sMainSubs = ($sSubMenu=='') ? '' : " {$sSubMenu} </a>"; 
      $this->sCode .= " 

       <li><a href='{$sLink}' {$sOnclick} target='_parent'>{$sPictureRep}{$sText}</a> 
       <div id='submenu'> 
       <ul> 
       <li>{$sMainSubs}</li> 
       </ul> 
       </div> 
       </li> 
      "; 
      } 
      } 

      $objMenu = new SimpleMenu(); 
      echo "<ul id='ddmenu'>"; 
      echo $objMenu->getCode(); 
      echo "</ul>"; 

    ?> 

回答

0

個人我會使用CSS和Javascript(+ jQuery)來做到這一點。

使用Javascript查找ul#ddmenu中的任何li,其索引爲15或更多,併爲它們分配不同的類別。然後,添加您的「更多」按鈕,並使用onclick/hover等顯示剩餘的li s。

相關問題