IWMS太复杂,除了在帮助文档中介绍的几个标签,其他在模板中使用的N多标签都没有相关的文档参考。近日想对其进行WEB标准化改造,准备靠“修改-测试”来搞清除标签的意思,这么多标签靠记忆力是记不住了,所以用此文作为工作笔记。
引用内容 引用内容
本文将在一段时间内置顶,希望同好留言补充。(为了避免垃圾广告留言,在留言内容中不要包含“http:”“www.”)。
“首页模板”部分
1、<html xmlns="http://www.w3.org/1999/xhtml" lang="<%=config.Charset%>">
这是个语言定义。执行后默认值是“gb2312”,可以使用官方“UTF-8转换工具”转成“UTF-8”。虽然IWMS推荐转换成UTF-8,但是其官方站使用的仍然是“gb2312”。根据实验,如果转换成UTF-8后,IWMS的后台“编辑模板”功能将认不出模板内容。建议保持原样,暂不更改。如果是经常使用中文1-2级字库以外的字符,建议还是更换为UTF-8,特别是程序代码内容多,NFO文件内容引用多的站点。
2、<!--#i nclude file="../inc/html_head.inc"-->
这是个服务器端嵌入的语句。表示将../inc/html_head.inc的文本内容填充到该位置,客户端看不出任何痕迹。只要修改这个INC的内容,就能对网站的相应部分进行批量更新(已生成的静态页面需要重新生成)。模板中的嵌入文件路径全是以模板所在目录为起始点计算。这里将INC文件中的内容当作模板的一部分进行解读。
3、<title> <%=htmlTitle%> </title>
这个标签的执行结果是页面的标题。在首页是就网站名称,在分类页就是分类名称,在内容页就是内容名称。如果你想在标题上加上站名,就在前面或者后面加上文字即可。比如<title><%=htmlTitle%>--洪城网世</title>。自动获得站点名,也可以试着使用<%=config.SiteName%>看看。IWMS会在</title>标签后加入“Powered by iwms http://www.iwms.net/”的备注信息,如果不使用</title>标签,备注就不会被加入。但是……页面就没有标题了。
接下来的<%=config.Charset%>,跟前面所说的第1条意思一样。
4、<link rel="icon" href="favicon.ico" type="image/x-icon" />
这个ICO文件是网站的图标,建议修改成自己的文件。以便在多窗口的新型浏览器中更好地标识自己。
5、<meta name="description" content=" <%=config.MetaDescription%> "/>
页面的描述。内容取决于首页的设置、分类的设置,或者正文页的简介。HTML的内容会带上标签,所以尽量在正文的简介中不使用格式化标签。
6、<meta name="keywords" content="">
这个标签是个问题标签,没有默认内容,也无法动态获得新闻正文的关键字。可能是编写中的一个失误。如果觉得有必要,可以自己写一段代表本网站的关键字。我觉得还是可以动态获得新闻正文的关键字标签比较好。
7、<meta name="generator" content="iwms网站管理系统"/>
可随意修改的标签,删除也没关系。
8、<link rel="stylesheet" href=" <%=style.Css%> " type="text/css"/>
获得当前页面采用的“界面风格”的CSS文件路径。如果不想通过后台管理样式表,可以用自定义的CSS绝对路径代替。建议在不熟悉的情况下不要更改。
9、<script type="text/javascript" src=" <%=urlPrefix%> inc/flash.js"></script>
获得当前页面的路径相对深度,就是“..”“../../”之类。其实我觉得写个绝对路径更省事。这个FLASH.JS是个方便插入FLASH内容的东西,如果觉得累赘,可以根据自己的需要改写。
10、var thumbWidth= <%=config.TitleImgWidth%> ;var thumbHeight=0;
var thumbHWidth= <%=config.HeadlineImgWidth%> ;var thumbHHeight=0;
者两个项目数值从后台的“系统设置-新闻相关”中获得。分别是“标题图片最大宽度”“头条标题图片最大宽度”。height数值为0,意思大概是不限定,按比例自动调整。
11、<%=style.PicNavSeparator%> <%=style.PicBullet%> <%=style.PicTop%> <%=style.PicNavBullet%>
这一组预加载的图片是在页面中经常用到的。分别代表当前界面样式中的“导航分割图片”、“新闻条目指示图标”、“置顶标记”、“底部导航指示图标”。这个部分单独修改成自定义的图像文件是没有意义的。
12、 <!--#i nclude file="../head.inc" -->
这里载入的外部文件是网页展示部分的文件头。因为所有页面一般都是共享一个头部,所以将此部分单独拎出来自成一个文件。这个部分的设计其实可以比较随性,那个专为头部设定的ID“sitehead”也可以随便改成自己的。如果要吧网站标准化,首先就要把这个头部改造掉。
13、 <%=config.SiteUrl%> <%=config.Logo%> <%=config.HeadAd%> <%=config.SiteName%>
分别获取在后台设定的网站地址与网站LOGO设定(不仅仅是LOGO图片,可能包含更多的HTML代码),以及广告位中的头部广告代码、后台设置中设定的网站名称。
14、 head.inc的最后一段是关于简繁切换功能的设定。他首先会判断当前字符设定是GB2313还是BIG5,如果不是这其中的一种,则调用一个外部的 inc/language.js文件,用替换指定字符的形式实现简繁转换。个人感觉这种方式效率很低,所以如果采用UTF-8的话,还是把简繁转换的功能关闭。如果是GB2312或者BIG5,还要判断后台是否允许用户更改简繁设定,如果不能更改,则给该DIV加上禁止点击的限制,从而实现“禁止用户更改设定”,这个重任落在了<%=config.UserConvBig5 ? "" : "disabled='disabled' onclick='return false;'"%>身上。
15、<!--#i nclude file="../inc/navclass.aspx"-->
这是插入导航的标签。麻烦从这里开始了。这段标签只是导航菜单的一部分,还有一个关联部分出现在FOOT.INC中。
20、头条图片新闻<%=ImgHeadline(2,"normal",150,true,22,2)%>
这个函数在帮助文件中没有更新最后一个参数的意思。那是个分几列显示的选项。风讯、动易尚且不能及时更新帮助文档,作为一个人开发的IWMS自然也不能幸免。其实作为设计人员,取巧的办法就是在后台模板的“可视化编辑”环境下按编辑器的响应按钮,根据提示去获得函数,也免得记忆参数排列顺序这么费劲,同时随着版本更新,作者肯定会保证这个地方生成的模板代码是最正确的。
第一个参数是表示取多少条具有“头条”性质的图片新闻。
第二个参数是表示是否显示简介信息,是在左边显示在是在右边显示。至于函数参考中的横、纵向显示已经作废,随着列数限制的出现,单独设置横向和纵向显示已经没有意义。
默认的情况下似乎代码没有什么问题,但是多列的时候问题还是出现了。假如显示简介的话,不同的图片新闻将会有不同的高度,而嵌套他们的TD缺少一个TOP的对齐指令,使得排列不整齐,如果遇到九宫格式的排版,这种情况越发严重。解决方法要么是编辑人员控制好简介字数,或者用CSS给这个位置的TD加上TOP 对齐属性。
从这个标签的应用上看,用IWMS设计新模板一味追求标准是不现实的。因为灵活性和标准之间很难作出抉择,在软件作者设想到的变化中,用传统方式解决问题是最简单的途径。通过细读这个标签也纠正我过去一个错误的感觉,那就是ASPX模板很脆弱,一个参数不小心可能就全盘崩溃。其实用可视化编辑生成的代码尽管大胆往模板里填,我做的这么多测试还从来没有发生严重的错误。
21、 <%=GetFrameCss(style.CssDayHot,"lframe")%> <%=GetTitlePic(style.PicDayHot,"今日热门")%>
看过前面解释的朋友自然能了解这两个标签是什么意思了。(见17、18)
22、 <%=TopList("dayhot",8,42,false,false,false,false,false)%>
toplist 是修改改模板中使用最频繁的一个函数了。除了“头条”,几乎所有的新闻引用都使用TOPLIST,因此他的变幻也是最丰富的。函数参考中黑压压一片,两大截都是关于他的描述。我的建议,为了效率考虑还是使用后台的可视化编辑工具产生需要的代码。然后再查看函数参考的内容。
看到这里,IWMS的神秘感基本消除,看来需要亲自修改一个模板来体会了。接下来的问题是哪些纷繁复杂的样式表了,要找出他们谁是谁、用在哪里、改动一个会不会牵扯出其他部位的问题?完全要靠分析CSS语法嵌套。如果考虑到FIREFOX的兼容性,这个工作量确实还不小。
下一步准备建立几个“裸奔”的函数运行结果,然后为裸奔的结果设计样式,从而更仔细地研究IWMS的CSS表现设计问题。
23、IWMS对生成的缩略图执行两个标准。“头条标题图片最大宽度”和“标题图片最大宽度”,两个实际生成的尺寸在提交新闻的一瞬间就已经决定,日后更改新闻属性不会重新生成缩略图,而是通过前台代码强行放缩。
24、如果大改过模板,那就千万不要用可视化编辑之后,直接“修改”保存,否则那自作聪明的可视化编辑工具将把模板“自动修正”得面目全非,无法执行。它只能作为生产代码的工具,如果他是个本地执行文件,或者DW的插件就好了。
25、对模板的改动不能将html_inc文件中的以下段落去除,否则所有图片新闻的图片缩略图调用都无法进行。
引用内容 引用内容
<script type="text/javascript">
var thumbWidth=<%=config.TitleImgWidth%>;var thumbHeight=0;
var thumbHWidth=<%=config.HeadlineImgWidth%>;var thumbHHeight=0;
var urlPrefix = "<%=urlPrefix%>";
</script>
<script type="text/javascript" src="<%=urlPrefix%>inc/thumbnail.js"></script>
这样的一种操作方式实在很不方便。而要修正这个问题,IWMS需要动一动代码的结构,换一种思路,将控制图片大小的任务交给样式表去完成裁切显示。
26、图片新闻列表中使用了class="thumbnailTitle",却没有一个风格的样式表为他指定了内容。
27、 <asp:Literal id="CopyRight" runat="server"/>不仅仅是显示一个“IWMS4.5”这么简单,它还会把系统设置中的“底部版权内容”带进来。最好把这段内容删除,否则不好修改底部信息。
28、以上修改后,login.aspx中对导航的引用也要去除,否则会导致出错。原因大概是因为缺少匹配的东西。从这个方面看,在ASPX文件中去除“navClass.aspx”的内容,不如把这个文件改为空文件。嗯,好像越来越复杂了。
29、\inc、member_reg_statement.inc 这个文件,是在评论时提醒访问的警示语,可以随便更改。
30、 <%=GetSortName(8)%>通过ID数字获得分类名称。其中的8,可以改成后台存在的任何分类ID。