IWMS太復雜,除了在幫助文檔中介紹的幾個標簽,其他在模板中使用的N多標簽都沒有相關的文檔參考。近日想對其進行WEB標準化改造,準備靠“修改-測試”來搞清除標簽的意思,這么多標簽靠記憶力是記不住了,所以用此文作為工作筆記。
引用內容 引用內容
本文將在一段時間內置頂,希望同好留言補充。(為了避免垃圾廣告留言,在留言內容中不要包含“http:”“www.”)。
“首頁模板”部分
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。