K2教程(七)-修改項目時間格式(另附 joomla高級技巧)

在上一節中,可能有些朋友已經注意到默認情況下K2項目的時間格式是有問題的,如圖-1。這樣的時間格式是西方的顯示方式,不符合中國人的使用習慣,我們希望的格式是“年月日 星期 時分秒 ”。那麼在這一節中將介紹如何修改項目時間格式。
首先給出修改的方法
打開文件\administrator\language\zh-CN\zh-CN.com_k2.j16.ini 
找到代碼:K2_DATE_FORMAT_LC2="l, d F Y H:i"
改成:K2_DATE_FORMAT_LC2=" Y年Fd日 l, H:i"
保存後刷新前臺,如圖-2,時間格式已經改成我們希望的樣式。
--------------------------------------------------------------------------------------------------------
如果你只是想知道怎麼改K2的時間格式,那麼看到這裏就可以了。
K2教程(七)-修改項目時間格式(另附 joomla高級技巧) - hznupeter - 智慧之樹
圖-1
 K2教程(七)-修改項目時間格式(另附 joomla高級技巧) - hznupeter - 智慧之樹
 圖-2

----------------------------------------------------------------------------------------------------------------------
其實這篇文章的關鍵從這裏纔開始。以上只是提供了這道題目的答案,以下將介紹這道題目的解題思路,聰明的人都不是隻知道抄答案的。

按圖索驥找源碼
利用瀏覽器的審查元素功能,我們可以得知項目創建時間這個元素的class名爲itemDateCreated。如圖-3.【關於審查元素,恕不細講】
知道這個元素的class之後,我們就希望找到它在源代碼裏的位置,通過查看源文件,找出日期格式顯示不如意的原因。利用dreamweaver的全站搜索功能,我們搜索在源代碼中搜索該字符串itemDateCreated。【具體方法可以參考 前期教程 
查看搜索結果,如圖-4,可能好多文件中都會含有該字符串,首先對文件類型進行分析。主要有xml、php、css。根據分析,顯示前臺元素的應該在php文件中。接下來,我們就對php文件進行排查,只有兩個php文件中出現三條該字符串,這就好辦了,逐個檢查。我們可以發現item.php中的結構正好跟前臺的DOM結構對上。如果你不放心,可以在源代碼中加入一個標記,比如aaa,如圖-5和圖-6,在源代碼中添加的aaa出現在了前端頁面,由此就可以證明該源文件與該前臺頁面對應。
K2教程(七)-修改項目時間格式(另附 joomla高級技巧) - hznupeter - 智慧之樹
 圖-3.

K2教程(七)-修改項目時間格式(另附 joomla高級技巧) - hznupeter - 智慧之樹
 圖-4
K2教程(七)-修改項目時間格式(另附 joomla高級技巧) - hznupeter - 智慧之樹
 圖-5
K2教程(七)-修改項目時間格式(另附 joomla高級技巧) - hznupeter - 智慧之樹
圖-6

分析源碼找出路
我們已經找到了與日期對應的源代碼,接下來,該怎麼辦呢?
我們先看這段代碼,如圖-5.
在span裏面有一個php輸出,很醒目的,我們可以看到 K2_DATE_FORMAT_LC2  ,我們斷定這是跟時間有關的一個字符串,因爲其大衣是時間格式,但我們還不知道具體是什麼格式。

順藤摸瓜探究竟
我們可以斷定時間的格式就是由K2_DATE_FORMAT_LC2 控制的,再次利用dreamweaver的全站功能搜索這個站點下哪些文件中有這個字符串。
重要提示】由於該字符串是出現在ini文件中的,默認情況下dreamweaver全站搜不會搜到ini文件,需要進行設置,具體請參看 在DreamWeaver裏搜索ini文件的問題  。
 設置後,我們發現,很多文件中含有該字符串。搜索結果如圖-7.搜索結果文件有兩類,php和ini。
小科普:ini是語言配置文件,記錄的是字符串和字符串變量的關係,php文件通過調用字符串變量,輸出其實際指向的字符串,joomla 的多語言就是建立在此基礎之上的。
由於我們是從php文件一路找過來的,所以在這裏我們就可以忽略它們,而直接看ini文件。前幾條搜索記錄應該是讓我們很興奮的,因爲我們看到了帶有時間格式的字符串【其中的關鍵標誌是 小時和分鐘之間的冒號 】。
由此判斷,我們尋找的方向是沒有出錯的。別急着打開某一個文件,這裏還有很多信息可讀。我們來看這些文件路徑。
前兩個都是在language下的en-GB中,該目錄下放的是英語的語言配置文件,當網站設爲英語時,該文件夾中的文件會被調用。如果網站是設爲簡體中文的,語言文件就會從language\zh-CN中調用。由於我使用的是簡體中文,我就排除所有en-GB的文件。
接下來,我們重點關注zh-CN.com_k2.ini ,zh-CN.com_k2.j16.ini,zh-CN.mod_k2.j16.ini。根據joomla的命名法則,我們可以判斷,第一個文件是用於漢化k2組件的,第二個應該是用在joomla1.6下的k2組件漢化,第三個是joomla1.6下k2模塊漢化的。
我們打開第一個文件zh-CN.com_k2.ini,修改其時間格式,比如在字符串的前面加abc,刷新前臺,竟然沒有變化。那對第二個文件zh-CN.com_k2.j16.ini進行同樣的試驗,結果前臺的時間前多了abc,說明該字符串對應了前臺的時間格式。【此處不明白爲何是要修改j16這個文件,這不應該是針對joomla1.6的嗎,不明白,但至少找到修改的地方了。】
找到後,我們分析其時間的格式,很快就可以將各個字母與年月日對應起來,稍作順序調整,就能將格式改成我們希望的樣子。
K2教程(七)-修改項目時間格式(另附 joomla高級技巧) - hznupeter - 智慧之樹
 圖-7

理清思路回頭看
我們回看整個過程,會發現時間顯示的原理大致是這樣的。在php文件中有一個元素的class爲itemDateCreated,其中通過 JText::_('K2_DATE_FORMAT_LC2'));輸出時間,時間的格式爲K2_DATE_FORMAT_LC2,這是一個字符串變量,其真正代表的含義在某一個ini文件中。通過一路的解析,最終就把項目的發佈時間以ini文件中記錄的時間格式顯示在前臺。

移花接木顯身手
本次所講,不僅僅是在講修改項目時間格式,更關鍵的是介紹一種放之四海而皆準的方法和解題思路。用這個方法你可以找到前臺頁面的每一個元素所對應的源代碼,比如頁腳的版權信息,某些插件的logo、標語。用這個方法,可以修改前臺頁面的某些部分,比如某元素的顯示與否無法在後臺控制,就可以直接在源代碼中找到他,並刪除;也可以對前臺元素的先後位置進行調整。總之,想要對頁面進行個性化的改造,就可以使用此法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章