注意:当前重写效果,只支持 bootstrap 3,如要使用其他框架结构,需要你自己修改代码。
正题:模板目录新建 navbar.php,内部内容为
- <?php
- if ( !defined( 'IN_DISCUZ' ) ) {
- exit( 'Access Denied' );
- }
- function SetHighLight( $HighLight ) {
- if ( $HighLight ) {
- $ColorArray = array( '', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray' );
- $String = sprintf( '%02d', $HighLight );
- $StyleStr = sprintf( '%03b', $String[ 0 ] );
- $Style = ' style="';
- $Style .= $StyleStr[ 0 ] ? 'font-weight: bold;' : '';
- $Style .= $StyleStr[ 1 ] ? 'font-style: italic;' : '';
- $Style .= $StyleStr[ 2 ] ? 'text-decoration: underline;' : '';
- $Style .= $String[ 1 ] ? 'color: ' . $ColorArray[ $String[ 1 ] ] : '';
- $Style .= '"';
- } else {
- $Style = '';
- }
- return $Style;
- }
- foreach ( C::t('common_nav')->fetch_all_mainnav() as $GetNav ) {
- if ( $GetNav[ 'title' ] ) {
- $NavSpan = '<span>' . $GetNav[ 'title' ] . '</span>';
- }
- $GetNav[ 'style' ] = SetHighLight( $GetNav[ 'highlight' ] );
- if ( $GetNav[ 'logo' ] ) {
- $GetNavLogo = str_replace( '{STATICURL}', STATICURL, $GetNav[ 'logo' ] );
- if ( !preg_match( "/^" . preg_quote( STATICURL, '/' ) . "/i", $GetNavLogo ) && !( ( $valueparse = parse_url( $GetNavLogo ) ) && isset( $valueparse[ 'host' ] ) ) ) {
- $NavLogo = $_G[ 'setting' ][ 'attachurl' ] . 'common/' . $GetNav[ 'logo' ];
- }
- $Logo = "<img src="$NavLogo">";
- } else {
- $Logo = '';
- }
- $NavItemBase = "<a href="$GetNav[url]" hidefocus="true" " . ( $GetNav[ 'title' ] ? "title="$GetNav[title]" " : '' ) . ( $GetNav[ 'target' ] == 1 ? "target="_blank" " : '' ) . " $GetNav[style]>$Logo$GetNav[name]</a>";
- $NavItemExtend = "<a href="$GetNav[url]" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" onclick="location=href" hidefocus="true" " . ( $GetNav[ 'title' ] ? "title="$GetNav[title]" " : '' ) . ( $GetNav[ 'target' ] == 1 ? "target="_blank" " : '' ) . " $GetNav[style]>$Logo$GetNav[name]</a>";
- $SubNavItem = '';
- foreach ( C::t('common_nav')->fetch_all_subnav( $GetNav[ 'id' ] ) as $GetSubNav ) {
- $SubItem = "<li><a href="$GetSubNav[url]" hidefocus="true" " . ( $GetSubNav[ 'title' ] ? "title="$GetSubNav[title]" " : '' ) . ( $GetSubNav[ 'target' ] == 1 ? "target="_blank" " : '' ) . SetHighLight( $GetSubNav[ 'highlight' ] ) . ">$GetSubNav[name]</a></li>";
- $SubNavItem .= $SubItem;
- }
- list( $NavID ) = explode( '.', basename( $GetNav[ 'url' ] ) );
- if ( $GetNav[ 'type' ] || $NavID == 'misc' || $GetNav[ 'identifier' ] == 6 ) {
- if ( $GetNav[ 'type' ] == 4 ) {
- $NavID = 'P' . $GetNav[ 'identifier' ];
- } elseif ( $GetNav[ 'type' ] == 5 ) {
- $NavID = 'F' . $GetNav[ 'identifier' ];
- } else {
- $NavID = 'N' . substr( md5( ( $GetNav[ 'url' ] != '#' ? $GetNav[ 'url' ] : $GetNav[ 'name' ] ) ), 0, 4 );
- }
- }
- $NavID = 'mn_' . $NavID;
- if ( in_array( $NavID, $NavIDs ) ) {
- $NavID .= '_' . $GetNav[ 'identifier' ];
- }
- $NavIDs[] = $NavID;
- if ( $mnid == $NavID ) {
- $LiTagBase = '<li id="' . $NavID . '" class="active">';
- $LiTagExtend = '<li id="' . $NavID . '" class="dropdown active">';
- } else {
- $LiTagBase = '<li id="' . $NavID . '">';
- $LiTagExtend = '<li id="' . $NavID . '" class="dropdown">';
- }
- if ( $SubNavItem ) {
- if ( $GetNav[ 'subtype' ] ) {
- echo $LiTagBase;
- echo $NavItemBase;
- } else {
- echo $LiTagExtend;
- echo $NavItemExtend;
- echo '<ul class="dropdown-menu">';
- echo $SubNavItem;
- echo '</ul>';
- }
- } else {
- echo $LiTagBase;
- echo $NavItemBase;
- }
- echo '</li>';
- }
复制代码
然后在 你想要显示菜单的地方 调用 <!--{eval include TPLDIR.'/source/include/NavBar.php';}-->
TPLDIR为模板目录 以此类推。