2010年6月12日星期六

博客网站导航的制作

  今天看完一本不错的书《锦绣蓝图:怎样规划令人流连忘返的网站》,此书主要针对的是网站规划,是很值得信息架构师学习的一本书,前端设计和开发人员也值得一读。

  书中讲了一些原先令很多人忽视的网站设计要素,例如“信息架构”一章,阐述了“标签”(元数据)是组织信息的基础,让我对Tags的作用有了新的认识,而在“导航之道”一章,阐述了一个简单的道理:好的页面导航能让用户找到自己想要的东西。

  关于导航的设计,让我想到自己博客的导航缺陷,我发现我的博客缺少一个很容易让人找到信息的导航页面,而Tags的设计也不合理,全是英文而没有中文,于是我就立刻开工,修改了目前的标签结构,同时设计了一个“更多”的全局导航按钮,用于显示网站的全局导航。

  全局导航使用“分类”+“标签”的形式实现,标签的内部名称Name保留英文,而其外部名称Intro则修改为中文,同时修改Function目录下的c_system_base.asp文件,在BlogReBuild_Tags函数里,将Tags(objRS("tag_ID")).Name修改为Tags(objRS("tag_ID")).Intro,这样大部分的标签就以中文方式显示了。

  站点导航使用了一段简单的代码实现,首先需要修改blog_tag表,将里面的tag_ParentID内容修改为改Tag对应的目录ID,目前只能针对一篇文章一个Tag来修改,具体可以使用以下代码实现。

  For i = 1 To 100
  strSQL = "SELECT log_cateid,count(*) as sumnum FROM blog_Article where log_tag='{" + CStr(i) + "}' group by log_cateid order by count(*) desc "
  Set rs = conn.execute(strSQL)
  strSQL = "update blog_tag set tag_ParentID='" + CStr(rs("log_cateid")) + "' , tag_Order='" + CStr(rs("sumnum")) + "' where tag_id=" + CStr(i)
  conn.execute (strSQL)
  Next

  之后就可以使用一个页面来实现Tag的显示了,其ASP源代码点这里下载,具体导航页面显示效果,可参见我博客各个页面的右上角的“更多”按钮。