论文部分内容阅读
笔者所在的闵行区教师进修学院承担着全区教育系统教职工、干部的职后培训任务,日常工作中有很多活动、会议,需要拍摄大量照片,将这些日积月累的图片存放在本地机器的各个文件夹中,使用、检索和管理非常不方便,因此萌发了建设图库管理系统的想法,方便各个部门管理、共享图片素材。本着低投入高产出的要求,将有限的资金用于购买服务器,而服务器软件系统则采用开源软件。基于对市场上流行的开源图库系统的比较分析,最终选择了Gallery,搭建起符合我们需求的图库管理系统。
● 需求分析
图库管理系统定位于为学校各部门管理、共享图片(如图1)。总体要求为简洁、方便、易用。最好是基于PHP语言开发的,方便兼容现有的服务器和其他应用系统。
1.图库管理。图库管理主要包括图库分类、图片上传、存储功能,支持浏览器批量上传和打包上传,并为图片设置标题、摘要、描述等信息,能够实现图片的拍摄时间、拍摄地点、拍摄人物、发生事件等内容的输入,并能够根据这些内容进行检索。图库分类方式方法简便,支持无限极分类及无限制二级分类。支持生成缩略图,能够自定义缩略图的尺寸。支持显示图片的EXIF信息,方便拍摄者了解照片的相关拍摄信息,便于摄影爱好者学习、交流、沟通。
2.用户管理。闵行区教师进修学院教师众多,大家都有拍摄照片的需求,而且不同部门的教师对不同的图片使用权限不同,因此需要有强大的用户管理功能。账号管理主要包括用户注册方式、用户分组,注册方式最好支持手动导入与自由注册等多种方式。此外,还需要针对不同的分类设置不同的用户权限,本部门的人只能对本部门所属的文件夹进行编辑、修改、添加,而其他部门的文件夹则只能查看,没有编辑权限。访客用户则只能查看小图,不能查看大尺寸的原始图片,以防止访客下载到原始大图。
3.图片检索。快速方便的检索是构建图库的主要目的,能够支持基于标题、概要、关键字的检索,最好能够支持全文检索。
4.流程需求。图库操作应该符合我们的使用习惯,上传图片的同时应该填写文件名、描述等信息。图片上传过程应该比较灵活,在图片上传后,应该提供编辑图片的功能,能够对图片信息进行编辑、修改。
● 常用系统比较
目前,流行的开源图库程序众多,有简便易用短小精悍的,也有功能强大设计复杂的。为了找到最符合的程序,我们对目前口碑不错的几个程序进行了比较分析(如下表),为了便于跟学院目前的服务器相匹配,只选取基于PHP和MySQL的开放源代码的程序。从表中我们可以看到Gallery的强大权限管理功能及检索功能。
● 系统安装
Gallery支持Unix和Windows系统;支持包括Apache、IISWeb等主流网站服务器;PHP的最低要求是4.3.0版本以上,要求必须关闭安全模式;为了支持自动生成缩略图,需要系统安装GD、ImageMagick、Netpbm中的一种库,目前大多习惯使用GD库;数据库可支持MySQL3.x以上版本、PostgreSQL7.x以上版本、MS SQL2005以上版本等主流数据库。Gallery的安装非常简单,选择安装语言后点击“开始安装”,安装分为11个步骤。
1.确认身份。为了安全起见,Gallery需要管理员上传一份login.txt的密码文档到服务器,可以直接下载login.txt,然后上传到服务器的Gallery根目录下,接着确认“我的身份”。
2.检查系统设置是否符合Gallery要求,其中一般要根据实际情况设置最大文件上传大小。
3.选择安装类型。Gallery支持两种安装类型,分别是标准安装和多站点模式安装。多站点模式安装时,每个图库对应单独的数据库和单独的数据存放目录,适合作为个人相册情况下选择。对单位来说还是适合标准安装模式,因此选择“默认”。
4.设置图片存储位置。一般设置一个比较大的硬盘存储图片数据。在这里需要注意的是,应该设置权限允许Gallery读写该目录。
5.配置数据库。首先创建数据库,然后在数据库配置页面设置相应的数据库名、密码等信息。
6.设置管理员账号信息。
7.创建配置文件。系统会根据前边的设置自动创建。
8.安装图库核心模块。
9.安装插件。Gallery有着丰富的插件支持,可以根据需要选择安装,如EXIF插件用于显示EXIF信息。
10.安全检查。
11.安装完成,现在可以进入图库添加图片了(如图2)。
● 模板设计
Gallery采用smarty框架编写,所有主题文件的后缀都是.tpl。Gallery的主题分前台主题和后台主题,后台主题采用统一样式,要想修改只能重新编写模板文件;前台主题可以根据需要选择不同的模板。Gallery默认内置了8个主题模板,此外还可以从Gallery官方网站下载其他的一些主题使用。
tpl模板样式采用标准的XHTML格式,在html标签里嵌套了PHP的代码,如:
{if $theme.useFullScreen}
{include file="gallery:`$theme.moduleTemplate`" l10Domain=$theme.moduleL10Domain}
{elseif $theme.pageType == ’progressbar’}
<div id="gsHeader">
<img src="{g->url href="images/Logo_sm.gif"}"alt="闵行区教师进修学院"/>
</div>
{g->theme include="progressbar.tpl"}
{else}
…
● 需求分析
图库管理系统定位于为学校各部门管理、共享图片(如图1)。总体要求为简洁、方便、易用。最好是基于PHP语言开发的,方便兼容现有的服务器和其他应用系统。

1.图库管理。图库管理主要包括图库分类、图片上传、存储功能,支持浏览器批量上传和打包上传,并为图片设置标题、摘要、描述等信息,能够实现图片的拍摄时间、拍摄地点、拍摄人物、发生事件等内容的输入,并能够根据这些内容进行检索。图库分类方式方法简便,支持无限极分类及无限制二级分类。支持生成缩略图,能够自定义缩略图的尺寸。支持显示图片的EXIF信息,方便拍摄者了解照片的相关拍摄信息,便于摄影爱好者学习、交流、沟通。
2.用户管理。闵行区教师进修学院教师众多,大家都有拍摄照片的需求,而且不同部门的教师对不同的图片使用权限不同,因此需要有强大的用户管理功能。账号管理主要包括用户注册方式、用户分组,注册方式最好支持手动导入与自由注册等多种方式。此外,还需要针对不同的分类设置不同的用户权限,本部门的人只能对本部门所属的文件夹进行编辑、修改、添加,而其他部门的文件夹则只能查看,没有编辑权限。访客用户则只能查看小图,不能查看大尺寸的原始图片,以防止访客下载到原始大图。
3.图片检索。快速方便的检索是构建图库的主要目的,能够支持基于标题、概要、关键字的检索,最好能够支持全文检索。
4.流程需求。图库操作应该符合我们的使用习惯,上传图片的同时应该填写文件名、描述等信息。图片上传过程应该比较灵活,在图片上传后,应该提供编辑图片的功能,能够对图片信息进行编辑、修改。
● 常用系统比较
目前,流行的开源图库程序众多,有简便易用短小精悍的,也有功能强大设计复杂的。为了找到最符合的程序,我们对目前口碑不错的几个程序进行了比较分析(如下表),为了便于跟学院目前的服务器相匹配,只选取基于PHP和MySQL的开放源代码的程序。从表中我们可以看到Gallery的强大权限管理功能及检索功能。

● 系统安装
Gallery支持Unix和Windows系统;支持包括Apache、IISWeb等主流网站服务器;PHP的最低要求是4.3.0版本以上,要求必须关闭安全模式;为了支持自动生成缩略图,需要系统安装GD、ImageMagick、Netpbm中的一种库,目前大多习惯使用GD库;数据库可支持MySQL3.x以上版本、PostgreSQL7.x以上版本、MS SQL2005以上版本等主流数据库。Gallery的安装非常简单,选择安装语言后点击“开始安装”,安装分为11个步骤。
1.确认身份。为了安全起见,Gallery需要管理员上传一份login.txt的密码文档到服务器,可以直接下载login.txt,然后上传到服务器的Gallery根目录下,接着确认“我的身份”。
2.检查系统设置是否符合Gallery要求,其中一般要根据实际情况设置最大文件上传大小。
3.选择安装类型。Gallery支持两种安装类型,分别是标准安装和多站点模式安装。多站点模式安装时,每个图库对应单独的数据库和单独的数据存放目录,适合作为个人相册情况下选择。对单位来说还是适合标准安装模式,因此选择“默认”。

4.设置图片存储位置。一般设置一个比较大的硬盘存储图片数据。在这里需要注意的是,应该设置权限允许Gallery读写该目录。
5.配置数据库。首先创建数据库,然后在数据库配置页面设置相应的数据库名、密码等信息。
6.设置管理员账号信息。
7.创建配置文件。系统会根据前边的设置自动创建。
8.安装图库核心模块。
9.安装插件。Gallery有着丰富的插件支持,可以根据需要选择安装,如EXIF插件用于显示EXIF信息。
10.安全检查。
11.安装完成,现在可以进入图库添加图片了(如图2)。

● 模板设计
Gallery采用smarty框架编写,所有主题文件的后缀都是.tpl。Gallery的主题分前台主题和后台主题,后台主题采用统一样式,要想修改只能重新编写模板文件;前台主题可以根据需要选择不同的模板。Gallery默认内置了8个主题模板,此外还可以从Gallery官方网站下载其他的一些主题使用。
tpl模板样式采用标准的XHTML格式,在html标签里嵌套了PHP的代码,如:
{if $theme.useFullScreen}
{include file="gallery:`$theme.moduleTemplate`" l10Domain=$theme.moduleL10Domain}
{elseif $theme.pageType == ’progressbar’}
<div id="gsHeader">
<img src="{g->url href="images/Logo_sm.gif"}"alt="闵行区教师进修学院"/>
</div>
{g->theme include="progressbar.tpl"}
{else}
…