【问题标题】:PHP Menu Items Count then add under more buttonPHP菜单项计数然后在更多按钮下添加
【发布时间】:2010-04-17 08:55:23
【问题描述】:

我使用下面的代码从一些 CMS 加载主菜单元素,目前的代码是完美的,除了它将所有主要项目加载到单行菜单上 - 这将使它的宽度在任何居中设计中都无法使用(低于 1000 像素).. 我想更改此脚本,因此在 15 个主要元素之后将添加一个“更多”按钮,在该按钮下,其余主菜单项将显示为此“更多”按钮的子项(它们不会有自己作为第15个子项做)..我该怎么做呢? 谢谢!

        <?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>";

    ?>

【问题讨论】:

    标签: php button menu items


    【解决方案1】:

    我个人会使用 CSS 和 Javascript (+jQuery) 来做到这一点。

    使用 Javascript 在ul#ddmenu 中查找索引为 15 或更大的任何lis,并为它们分配不同的类。然后,添加您的“更多”按钮,并使用 onclick/hover 等显示剩余的lis。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-04
      • 1970-01-01
      • 2023-03-10
      • 2014-02-04
      • 1970-01-01
      相关资源
      最近更新 更多