虚心使人进步

虚心学习,天天向上......
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

改进housemenu2使网站导航亲Seo并在新窗口中打开。

Posted on 2010-01-06 16:15  Showker  阅读(953)  评论(1编辑  收藏  举报

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