PHP相册模块,支持Flash及JS模板插件安装。

来源:互联网 发布:淘宝联盟导购推广id 编辑:程序博客网 时间:2024/06/06 05:58

    最近工作,需要整合网络上流行的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文件