DNN5.1.4使用的導覽功能表是SoplarMenu,使用到了axd,jquery,不僅資源較大,而且產生的html代碼不是搜尋引擎青睞的<ul><li></li></ul>形式,更讓人頭疼
的是不能在新視窗中開啟。在多位前輩的部落格中都提到改用housemenu,於是乎到其官方網站http://www.houseofnuke.com/下載了最新的版本housemenu2,可
讓人失望的是出現了這樣那樣的問題,比如二級菜單不能出現,IE6中hover到父菜單二級菜單不出現等問題,而且這些問題都是共性的。在其官方論壇中也有好多類似
的提問,但是沒有得到官方的及時回複。不得以,用reflection反編譯了housemenu,經過測試,找到了這些問題所在,並做了修改重新編譯了一下,上傳dll到伺服器
後經測試能使用。同時,結合中國國情,將原來的在本頁面開啟修改成了在新頁面中開啟(_blank).這是我應用這個改進版的站http://www.taotel.com/,大家可以看
看menu的效果,因為CSS我不是擅長,有些地方還不如人意,希望大家多包涵,改進。下面我就將部署的具體過程及相關檔案列出來:
1、上傳附件中的Avastone.HouseMenu.dll到伺服器網站中的bin目錄下,avastone.housemenu檔案夾到DesktopModules檔案夾下,
CSS檔案HouseMenu.css上傳到你哪裡呢?你自己隨便放一個位置吧,比如放到images檔案夾,然後在Default.aspx中添加引用就行。
為簡單起見,我們放在head之間吧。當然這個CSS檔案是我在原來官方的基礎上修改的。你可能要對圖片路徑或者其它樣式做修改以適合你的網站哦。
代碼
<head id="Head" runat="server">
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
<meta id="MetaRefresh" runat="Server" http-equiv="Refresh" name="Refresh" />
<meta id="MetaDescription" runat="Server" name="DESCRIPTION" />
<meta id="MetaKeywords" runat="Server" name="KEYWORDS" />
<meta id="MetaCopyright" runat="Server" name="COPYRIGHT" />
<meta id="MetaGenerator" runat="Server" name="GENERATOR" />
<meta id="MetaAuthor" runat="Server" name="AUTHOR" />
<meta id="MetaRobots" runat="server" name="ROBOTS" />
<link rel="stylesheet" href="/images/housemenu.css" type="text/css">
<script src="/Resources/Shared/scripts/jquery/jquery.min.js" type="text/javascript"></script>
</head>
2、開啟網站所使用的首頁模板檔案。我用的是預設皮膚MinimalExtropy。所以路徑是Portals\_default\Skins\MinimalExtropy\index.ascx.開啟
找到menu所在的位置
代碼
<div class="menu_style">
<dnn:NAV runat="server" id="dnnNAV" ProviderName="DNNMenuNavigationProvider" IndicateChildren="false" ControlOrientation="Horizontal" CSSControl="mainMenu" />
</div>
這是預設的導覽列,即上文所說的soplarmenu.我們不用它,將它換成housemenu,修改成如下
<div class="menu_style">
<dnn:HOUSEMENU runat="server" ID="HouseMenuNav" RootMenuOrientation="Horizontal" MaxDepth="88" RootDepth="0" MenuClientId="houseMenuH"/>
</div>
同時在index.ascx頭部添加
<%@ Register TagPrefix="dnn" TagName="HOUSEMENU" Src="~/DesktopModules/avastone.housemenu/HouseMenu.ascx" %>
3、修改完default.aspx,index.ascx.上傳到伺服器覆蓋即可。
附件(包含一個檔案夾,一個dll,一個css檔案,之前的壓縮包裡dll有誤,請重新下載)
/Files/showker/avastone.housemenu-byshowker2.rar