PHP相冊模塊,支持Flash及JS模板插件安裝。

    最近工作,需要整合網絡上流行的Flash和JS相冊,因爲每個客戶要求的相冊展示不盡相同,如果每來一個客戶,安排人手定製,這樣的工作是浪費時間和精力的,並且複用性不強,每次需要定製。

 

(由於公司是SAAS類型的公司,網站特別多,是一個站羣,所有的網站是通過不同的websitePK來標識區分的,模板需要有通用性和動態生成)

 

    於是,我的工作就是做這樣的一個整合功能模塊。(後臺管理就不說了,主要通過讀取flashalbum-config.xml來存儲當前選擇的模板)

 

    先說說Flash相冊,由於網絡上流傳的源碼讀取Image的方式各不相同,寫死的我們肯定不要,所以選擇xml形式的Flash源碼。(每個xml的結構還都不一樣,我們是不可能去改程序,太費勁)

 

   實現方法:首先寫一個接口文件,定義數據的讀取方式。然後針對每個Flash模板,寫個類來拼接該相冊xml組合格式。最後寫個生成源碼的類,動態生成HTML源碼。

 

首先定義接口文件:

 

 

再定義一個抽象類,實現相冊查詢功能:

 

 

 

有了如上架構,對於每個Flash相冊模板,只需要寫一個類Inherit 該抽象類,並實現其抽象方法getAlbumData()即可。

 

下面是一個Flash相冊模板的示例接口:

 

 

 

 

最後,給需要使用到Flash的外界一個開放的接口類,返回Flash的HTML代碼。(即根據該站設置的相冊模板識別動態生成HTML代碼)

 

 

 

 

 

這裏是目錄結構:

 

       /templates 是所有模板的存放位置

 

       flashablum-config.xml 每次安裝模板需要配置改文件,包括相冊的最佳寬高、php接口文件路徑、swf文件等。

 

       getalbum.php 是對外接口類。

 

 

對於JS模板的生成,由於他不像Flash那樣在瀏覽器端通過php接口文件讀取xml信息。

 

JS的所有HTML代碼必須在服務器端生成,故全部圖片拼接在其接口文件中,這裏可以通過PHP的反射機制動態執行接口的方法。

 

下面是我用PHP 的Reflection機制動態執行接口中的方法:

 

 

 

 

這樣的相冊針對不同的需求,只需要慢慢增加其模板插件,客戶愛怎麼換相冊展示方式,他就能隨便換了。通用性也增加了。

 

最後貼上一段flashalbum-config.xml文件

 

 

 

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