Drupal在高校

60中国教育网络 2015.5

Drupal 是一个开源的内容管理系统(CMS)平台,它是用PHP 写成的。主要用于构造提供多种功能和服务的动态网站,功能包括用户管理、发布工作流、讨论新闻聚合、无数据操作和用于内容共享的XML 发布。多次荣获“全球最佳内容管理系统”评比大奖。实际上,

Drupal 在高校

部署与性能优化、Drupal 模块的应用、Drupal 在高校信息化中的使用现状等内容进行交流并积极推广。

本专题内容包括了对Drupal 的综合介绍以及其在不同系统中的应用,涵盖高校包括上海海事大学、上海外国语大学、温州大学、中国政法大学等。以此希望能让各高在哈尔滨召开的开源软件开发与应用研讨会现场,同仁们对Drupal 展开热烈探讨

2015.5中国教育网络

61

Drupal 是什么及其特点

Drupal 是一款基于PHP 的开源内容管理系统和开发框架;多次荣获“全球最佳内容管理系统”评比大奖;基于GPL 授权,免费商用不侵权;典型案例有美国白宫、法国中央政府、英国政府OpenData、纽约时报、索尼音乐、哈佛大学等。

借助于盖房子的比方和一些流行的开发框架和内容管理系统的对比,我们能更直观清楚地了解Drupal。如表1。

该表中最底下一层和Drupal 无可比性。主要来看Drupal 和上下相邻两层的对比。

“毛坯房”Drupal 虽然不能“拎包入住”,但比WordPress 和Joomla 的优势在于提供了强大得多的可配置性和开发框架,各个功能插件除了能够充分利用核心提供的框架之外,之间还能够互相调用。WordPress 和Joomla 缺乏这一特性,“精装房”定型的比较死,无法应用于对扩展性要求高的中大型解决方案,特别是Joomla 社区的开源不彻底,渐有没落之势。

Drupal 比WordPress 的劣势在于学习曲线比较陡,难以很

快上手。

Drupal 比Java play 等快速开发框架的优势在于其提

供了相当多的开箱即用的功能,尤其是拥有极多的第三方贡献的功能模块,减少了项目中定制开发工作量,降低了开发和维护成本。当然,劣势就在于“毛坯房”没有“预制件”灵活。但值得一提的是:现在已处于beta 阶段的Drupal 8即基于流行的PHP 的快速开发框架Symfony 开发的,这进一步增强了Drupal 8的开发框架特性,其他Symfony 的功能包可以不加修改或小幅修改后就能供Drupal 使用。

Drupal 相比同类系统的另一个很大的特点就是软件工程严谨性非常高,有编码标准、单元测试、代码审查、安全评估、Bug 提交、补丁提交、版本管理、文档手册、产品生命周期管理等一系列规范的流程,且大家都可以参与其中,而非仅仅是功能模块的作者,这样也促成了极为活跃的社区参与和支持,形成了良性循环。这对于开源软件保持生命力最为重要。

Drupal 的基本概念和支柱性功能

Field-able entity

Entity 可以近似理解为以下二者的混合:面向对象开发中的抽象类和数据库建模E-R 图中的实体。Entity 是个抽象的概念,每种Entity 可以拥有各种不同类型的字段(Field)和属性(Property)。其中:Entity 的字段类似于数据库的字段,但是个超集,更侧重于功能应用,且可自由增删Entity 的字段,即所谓Field-able entity,这一特性奠定了Drupal 远超同类系统的灵活性的基石;而属性一般是在创

Drupal

的过去、现在以及未来

表1 开源开发框架对比

Drupal 在高校

“毛坯房”Drupal 虽然不能“拎包入住”,但比WordPress 和Joomla 的优势在于提供了强大得多的可配置性和开发框架。

建Entity时就定义好,用户不可增删,如:创建时间、作者等。另外,有个极为重要的字段Entity reference,类似于数据库设计中的主外键关系,实现了Entity之间的相互关联。

Views

Views主要是用来呈现展示Entity的,可理解为数据库视图和HTML模板的结

合,它调用Drupal的数据库抽象层读取数据并使用各种格式将数据渲染出来,实现了后台数据和前台展示的解耦。这些渲染格式有日历、网格、幻灯片、瀑布流、360度全景图、时间线、Word文档、Excel表格、JSON、XML等。Views有个上下文参数,可以根据当前网址提供动态查询参数,实现了高级的动态(dynamic)内容显示。

Services

Services用于对外暴露调用接口,提供了最通用的、最易跨异构环境的HTTP RESTful接口(也提供了其他常用接口),提供了JSON/XML等多种常用数据格式。且有扩展功能模块用于调用外部接口,实现了系统内外互操作。这对于重视系统开放、资源共享的今天具有不言而喻的重大意义。Rules

Rules用于以下场景:当发生某个(些)事件→满足某个(些)条件→执行某个(些)操作。这为设计业务流程提供了很大的便利。

以上几个概念(功能模块)都是基于Entity互相调用的,且每个功能点自身也是插件式架构,这为构建灵活复杂、可扩展的业务应用提供了无穷的想象力。同时,Drupal成熟的多语言机制、SEO、响应式主题等特性也大幅降低了构建面向国际的、现代化的Web应用的门槛和成本。

Drupal在国外大学的应用

在欧美发达国家,高校从来都是开源的主要使用者和贡献力量之一。Drupal 也不例外,其本身就是由比利时安特卫普大学学生Dries Buytaert在2001年将他

的程序按照GPL授权开源的。据Dries创

办的Drupal云服务公司Acquia 2011年统

计,全球Top 100大学中有71所大学使

用Drupal,其中美国常春藤联盟大学无一

例外。到今天,这一数字仍不断提高,如

2014年底,牛津大学也转用Drupal构建

他们的主页网站。国外高校同时也积极贡

献代码,回馈社区,如表2(仅收录极少

部分数据,且不包括企业贡献的面向高校

的应用及K12学校的应用)。

Drupal在国外高校的主要应用领域

有:WWW门户网站、内网业务应用系统、

Drupal站群托管和自助建站、科学数据库、

图书馆领域应用、全媒体发布、学习管理

系统、学生社团应用等。

值得一提的是:斯坦福大学从

2014年起每年在校园内举办一次Drupal

Camp,高手云集;俄勒冈州立大学使用

Drupal云服务托管一千多个网站(或Web

应用)。这足见Drupal在美国高校中的流

行。另外,还有人写了一本书《Drupal for

Education and E-Learning》。

Drupal在中国和中国大学的发展

到了2006年,标志性版本4.7版发

行后,国内就已有不少人在跟踪研究,并

建设了国内的Drupal社区。2008年发行

了Drupal 6后,Drupal已经发展成熟,稳

居内容管理系统世界第一名。此时国内已

有好几家公司基于Drupal提供服务。2011

年Drupal 7发布后,国内的Drupal社区也

变得非常活跃,并从2013年开始,由从美

国留学归来的人士在上海牵头举办China

Drupal Camp。由于上海从事Drupal的外国

人也比较多,所以从一开始,Drupal中国

的社区就具有国际开放性。目前北京、上

海、广州、深圳、南京、宁波、厦门、成

都、贵阳、西安、兰州、乌鲁木齐等城市

均有公司和团队从事Drupal开发和服务,

其中也包含多家使用Drupal来基于互联网

创业的公司。目前,这些公司和团队主要

服务于外企(很多外企总部指名要求分部

使用Drupal)、 “走出去”的中国企业等

高端市场。

据笔者所知,国内高校最早公开使用

Drupal的可能是哈尔滨工业大学于2010

年上线的教师个人主页系统。标志性的

事件是上海海事大学2012年使用Drupal

重建的WWW主页,以及2015年初上海

外国语大学和企业合作使用Drupal重建

的内网Portal(一定程度上证明国内基于

Drupal的研发能力已经能比肩甚至超越

传统教育行业提供商)。上海纽约大学

2013年也用Drupal开发了主页。中国科

学院植物研究所使用Drupal建设的国家

标本平台,含有1000万条以上数据,有

丰富的查询、展现形式,应该是目前国内

最大的Drupal站点。其他使用Drupal建

设的高校网站有:南京师大的多个二级网

站、中山大学、北大图书馆、清华大学图

书馆、清华大学五道口金融学院等。另外,

很有意思的是衡阳党建网(虽然不是高校

界的),其风格和中国传统式政府网站一

致,这说明Drupal的主题定制性非常灵活,

并非只能做现代化风格的网站。

开源软件的发展离不开社区协作。随

着中国Drupal社区的蓬勃发展,高校也组

建了相应的社区。2013年10

月上海海事大

表2 国外大学对Drupal的应用

62中国教育网络 2015.5

学王玉平在高校信息化委员会华东区青年会议上向大家介绍Drupal;2013年12月笔者在上海MIS年会青年会议上进一步推介,此次会议上Drupal被列为高校信息化委员会开源推进工作组首批3个项目之一;2014年4月,笔者与王玉平面向全国做了一次Drupal网络视频讲座。此后,“Drupal在高校”QQ群(239613913)人数越来越多,从985高校和职业院校都有老师参与。并于2014年10月份上线高校Drupal协作推广网站及配套的严肃协作开发平台(版本控制、任务指派、问题跟踪)。现在基本上能保持每个月一次的在线视频交流讲座,由各位老师免费分享自己的案例和经验。也适当引入企业界Drupal高手加入,打造良性循环的Drupal生态圈。2014年底,温州大学向Drupal社区贡献了中国高校界第一个模块。目前,随着大家对Drupal了解的深入,2015年QQ群内的讨论更加频繁热烈。

Drupal在中国高教领域的机会

当前,我国高等教育领域的信息化工作有了三个明显的转变:1.建设重点已经从网络、存储等基础设施建设演进到信息化软件系统和教学科研信息化资源建设新阶段。2.师生用户在微博、微信等互联网产品快速功能更新和良好的用户体验的“娇惯”下,已经对高校信息化系统的需求有了很大的提高。3.对一线技术了解较为深入的70、80后青年教师逐渐参与项目选型决策。在这个新阶段下,产生了一个很大的矛盾:教育信息化行业传统服务提供商提供的产品和服务模式无法适应用户的新需求。一方面,由于教育行业项目金额相对较小,研发投入普遍不足,这些厂商难以招到高级IT人才,产品自身水平比较有限,如浏览器兼容性等基本问题比比皆是;另一方面,他们大多采用销售成型产品的模式,不大愿意定制开发,或者说定制开发的响应速度很慢,无法满足高校个性化需求,特别不适合边做边有新想法的迭代式项目。而这种快速迭代式项目在互联网产品的冲击下越来越多,如部分高校的移

动App项目在微信的冲击下成了“僵尸”

项目。而Drupal的开箱即用的基础框架、

高可扩展性、高可配置性正好是解决该矛

盾的一剂良药,允许甲乙双方适量试错,

降低双方的时间成本和机会成本。

另外,有些人担心开源软件的质量和

安全问题。其实,Linux和OpenStack的

成功证明了这不是问题。就连一向不开

源的微软2014年也开放了.Net Framework

的部分源代码。现阶段很多成功流行的开

源软件的质量要超过同类商业软件,更是

远超国内商业软件;因为写得差的代码都

不好意思被开源,更不可能流行。

国内有些厂商的产品因为核心开发

人员的离职或其他原因就无法继续提供升

级、维护等服务,校方过几年就不得不推

倒重来,重复建设、浪费资金。这增加

了双方的维护建设成本。而选用开源的

Drupal将会大幅消除这些问题,也降低被

某一家厂商“锁死”的风险。更为重要的

是:基于Drupal这样扩展性好、生命力

强的框架来开发高校业务系统,能使业务

系统可持续运营,能将数据积淀下来,甚

至能建成信息化时代下的校园文化品牌,

并对决策支持产生实实在在的支撑。

笔者保守估计,中国高校现有的这

些基于Web的应用业务系统,大约有

20%~30%可以使用Drupal来建设,且易

用性、可扩展性会大幅提升,能带动信息

化水平的整体提升。具体讲,根据开箱即

用的程度和可扩展性,Drupal特别适合以

下领域的应用(其实,几乎所有数据密集

型应用都可以使用Drupal来做)。

1.多语种网站群:实现国际化、真正

的多语种网站群。这对于985、外语类高

校建设世界研究型大学非常有意义;

2.ITIL系统:知识库、工单管理、工

作日志(自动生成)、项目管理、配置管

理、自助服务、软件版本库管理等;

3.移动应用和微信开发者模式的服务

器端:Drupal实现内容管理,将内容开放

给移动应用和微信调用;

4.图书馆&知识典藏:RDF、Dublin

Core等元数据、知识管理、扫描件数字化

(光学文字识别)、影音资料管理等;

5.学术会议管理系统:论文在线提交、

评审、发行,食宿预定等;

6.表单数据密集型应用,如:招生管

理、校友管理等等;

7.学生社团管理:通知发布、募捐、

活动档案、简历辅助生成等;

8.科研管理社交系统:科研数据提交、

计划执行、交叉学科社交协作等等。

Drupal自带了CAS/LDAP/Shibboleth

等单点登录功能,能使用MySQL、

Oracle、SQL Server等主流数据库,对于

高校信息化环境具有先天的亲和性。当然,

我们也需要知道Drupal的弱点,主要是:

1.不适合做流程密集型应用,如OA等;

2.不适合调用面向Java应用的SDK,但

可以通过PHP/Java Bridge来弥补,或者让

服务端的Java应用提供HTTP接口(这些

年随着RESTful和oAuth的流行,这个问

题也越来越少)。

Drupal在中国高校应用的挑战

当前的主要挑战还是在于Drupal在

中国高校是新事物,大家的认识还不够,

提供基于Drupal的教育行业产品和解决方

案的厂商在业界还是“新人”。在此情况

下,很多青年教师们都是自己基于Drupal

来开发网站和Web应用,由于体制的限制,

没有额外的项目奖励和荣誉,难有可持续

的动力。鉴于此,笔者在此斗胆呼吁高校

信息化委员会建立起可持续、可执行的优

秀开源软件推广机制,从高层推介、厂商

加入、科研课题、项目协作、职称评定、

物质奖励等诸方面予以实质性的支持,将

开源推广落到实处。

期待在不久的将来,Drupal和其他优

秀的世界级开源软件能在中国高校遍地开

花,从技术上助推体制改革,将中国教育

信息化提升到一个新水平。

(作者单位为上海外国语大学信息技术中心)

2015.5中国教育网络 63

64

中国教育网络 2015.5

Drupal 是非常灵活的,从内容类型到版面布局都是可以自定义的,也正是由于这种自定义的灵活性导致了Drupal 的学习曲线比较陡。但是理解了Drupal 的架构思路,会使得学习比较容易。

Drupal 的核心是节点、模块、主题。正是因为模块的引入,极大地完善了Drupal 的功能,吸引了众多Drupal 爱好者为Drupal 开发各类功能,方便了站点管理员和制作者不用写代码即可完成站点的制作与部署。

内容管理

首先让我们看一下Drupal 的核心概念:内容节点、内容类型和字段。

节点(Node)、内容类型和字段

Drupal 站点里的内容都是以节点形式来存储的,一个节点是某个类型的一个内容,如页面、文章、投票、论坛主题或者

博客。正因为所有内容作为节点的这种概念,让我们可以自由定制内容类型。在Drupal 核心代码中有Node 模块来负责整个站点内容的创建、编辑、删除、设置和现实等功能。系统为每个节点默认添加了作者、创建时间、修改时间、内容类型等元数据属性。Drupal 核心代码中的Field 模块为系统提供了字段管理功能,用户可以为内容类型添加字段,并管理这些字段的显示。

Drupal 安装完毕后,默认会创建两个文件类型:基本页面和文章,这两个类型只有标题和正文内容两个基本属性。而在网站中,这两个文件类型不能满足我们的需要,譬如图片新闻需要有图片属性,通知公告需要有附件,因此需要定义自己的内容类型,并为这些自定义内容类型添加不同的字段(属性),如图1所示。

除了以上字段类型,用户也可以自行定义字段类型,譬如Date 模块提供的日

期类型字段,Link 模块提供的链接类型字段,Audiofield 模块提供的音频类型字段,Email field 模块提供的撰写email 地址的字段,Telephone 模块提供的书写电话号码的字段等。

字段是可以重用的,在某个类型下创建的字段,可以应用于另外一个内容类型。譬如图片新闻里的图片字段,可以用于普通新闻里添加图片。

一个字段的值可以限制只有一个或者指定个数,也可以无限个。譬如文章的标题数量只能有一个,而附件可以有无限个。

Drupal 提供了默认的字段值的校验功能,譬如必选填写的字段,有红色*号标

注,若用户没有填写,则会提示必须填写的警告提示。

字段在内容类型中的前后顺序也可以根据实际需要做出调整,编辑节点和显示节点时各字段的顺序可以完全不同,系统提供了Manage Fields 和Manage Display 两个界面来管理字段和管理显示界面。通过这两个界面来控制字段的类型、数量、显示方式。Drupal 允许用户定义内容类型的显示模式,默认提供了全文(Full content)、摘要(Teaser)等显示模式。

Drupal

是怎样帮高校改善网站体验的?

表1 Drupal

默认字段类型

图1 字段属性设定

Drupal 在高校

在Manage Display界面中,用户可以切换显示模式进行定制。

分类(Taxonomy)

分类(Taxonomy)是一个非常强大的核心模块,它使得用户以类别、标签和元数据的形式来组织关键字,允许用户连接、关联和聚类站点内容。在Drupal中,分类是通过术语表来实现,术语表中包含词汇,这些词汇可以呈树状层级分布。

在国内传统网站中,其内容是通过栏目的形式来组织的,任何内容都是先有栏目,再有栏目下的内容,而在Drupal里,先有内容,再把这些内容按照某个关键字或者标签来进行分类,而这些分类就可以对应成传统网站的栏目,但分类不能完全等同于传统栏目。在Drupal中,通过菜单进行树状结构的组织,因此菜单在某种意义上才是传统栏目的对应,而分类主要的目标还是在于聚类相关内容。

分类在Drupal中是作为字段的形式存在的,在字段类型中,有一个“术语来源”类型,就是用来引用各个术语表。术语表里的词汇允许用户在添加内容时手工输入一个新的词汇,也可以在术语表管理中原先定义一组词汇。

在建设网站中,分类、关键字、标签等字段均通过术语来源类型实现,从而形成类别、标签云、访问关键字等展现形式。常见几个字段

1.正文编辑

Drupal核心代码默认提供普通的文本区域编辑器,只能编辑纯文本内容,为了提供完整的HTML可视化编辑器,著名的CKEditor编辑器提供了模块与Drupal对接,允许用户在Drupal中调用CKEditor进行所见即所得的内容编辑界面。该模块支持外部文件浏览器,如CKFinder、IMCE,允许用户上传浏览文件,并且允许用户自定义编辑器的皮肤、工具栏、语言和默认状态。

2.图片

在一个网站中,图片扮演了吸引用户和直观展示内容的重要角色。每一个内容管理系统都要处理图片的存取。在传统网

站中,上传到服务器上的图片已经处理后

的尺寸已定的图片,在下次改版时,图片

的尺寸与新版设计存在不匹配问题,也不

能很好的适应目前多种浏览终端的尺寸问

题。在Drupal中,图片上传到服务器后,

并不会对原始图片进行修改,而是引入图

片样式的概念,根据不同的需求生成新的

图片文件。

在Drupal中,除了调用传统的GD

来处理图片,还可以调用ImageMagick和

GrpahicsMagick等专业图片处理工具来进

行图片渲染,生成高质量的小文件图片。

通过imagecache_actions模块,可以为图

片添加水印和边框、调整亮度和透明度、

调整图片尺寸以及其他图片处理相关功

能。

在我们的网站中,尽量避免使用

CKEditor的图片上传功能,而是使用图片

字段的多个值的功能,把图片显示在内容

后面。并且使用breakout模块来匹配不同

的浏览器终端。

3.附件

附件的功能就是文件上传功能。

Drupal提供了上传进度条等友好界面,并

提供了描述属性,用来在显示时不用直接

显示文件名。

4.视频

Video模块为我们提供了视频上传播

放的功能,借助于ffmpeg开源工具,我们

还可以实现视频转换的功能。JW Player、

jPlayer、Video.js等模块提供了页面播放

视频功能,而实时转换功能可以生成x264

编码的MP4文件,兼容了各种浏览器终端。

Media Youku模块,则可以提供与国内较

大的视频网站优酷进行对接。笔者所在的

上海海事大学与优酷合作,将学校的视频

上传至优酷,然后在学校官网通过Media

Youku模块对接,播放的媒体不在网站本

地,而存储于优酷服务器。

视图(Views)

视图(Views)是Drupal的另一个功

能非常强大的模块,没有该模块,几乎无

法制作一个网站。视图为用户提供了一个

查询可视化设计界面,通过该界面,用户

可以选择要查询的字段、查询条件、排序

字段、展现形式、分页功能以及上下文的

条件。正因为这个查询的可视化设计,用

户不需要接触数据库底层,也不需要了解

PHP、MySQL就可以灵活地设计出各种查

询,并且输出为页面或者区块,以及其他

更多的服务接口。用户也可以通过模板来

定制视图的展现形式。

在网站中,常见的列表,基本都是通

过视图来实现的。各类slideshow、图片

gallery也是通过视图来实现的。

主题

有了内容,我们就需要考虑如何展示

页面,在Drupal里,由主题(Theme)来

负责页面内容的展示。

与传统CMS不同的是,Drupal把页

面分成不同的区域(Region),经典的页

面分隔为头部区域、高亮区域、侧边栏、

正文区域、底部区域。在区域里嵌有区块

(Block)。每个区块里的内容可以是普

通的文本,也可以是通过View模块来组

织的内容,也可以是通过自定义模块通过

PHP代码生成的。

Drupal主题是以文件夹的形式存在

站点目录sites/all/themes或者sites/default/

themes下面。其中的.info文件是必须的,

类似于项目工程文件,描述了主题元数据

(如名称、描述、版本信息)、定义的

区域、应包含的样式单文件、应包含的

JavaScript脚本文件。如:

name=shmtu2012

description=上海海事大学中文网站2012版

version=1.0

core=7.x

engine=phptemplate

regions[header] = Header

regions[highlighted] = Highlighted

regions[help] = Help

regions[content] = Content

regions[sidebar_first] = Left sidebar

2015.5中国教育网络 65

66中国教育网络 2015.5

regions[sidebar_second] = Right sidebar

regions[footer] = Footer regions[banner] = Banner

regions[topnav] = Top Menu Bar regions[menu] = Menu regions[news] = News

regions[hp-content] = HomePage Content regions[hp-banner] = HomePage Banner features[] = logo features[] = favicon features[] = main_menu

features[] = secondary_menu stylesheets[all][] = smu.css

scripts[] = jquery.masonry.min.js scripts[] = pngFix/jquery.pngFix.pack.js

主题定义中还有很多模板文件(.tpl.php)。Drupal 是基于PHPTemplate 引擎来渲染HTML,因此这些模板文件就是嵌入PHP 代码的HTML 文件。Drupal 从HTML 到Page、到区域、到区块、到内容类型、到字段都提供了默认的模板文件,用户可以完全覆写这些模板文件。模板文件的命名非常清晰,譬如整体的HTML 模板命名为html.tpl.php,对于页面的模板命名为page.tpl.php,对于区块的命名为block.tpl.php。如果对于文件命名有疑问,可以启用Theme developer 模块来提示。而对于视图的模板,在视图编辑界面里有详细提示。主题下还有一个template.php 文件,该文件内部为纯php 代码,用来对输出进行逻辑控制和数据处理,也可以自定义过程,覆盖主题输出,如图2所示。

Drupal 提供了子主题的功能,子主题类似于主题,只是它继承了父主题的资源。著名的主题zen、bootstrap、omega 等都是父主题,允许用户在此基础上创建自己的子主题。

Zen 是一个功能强大的简单的、基于HTML5、采用响应式设计、移动设备优先的格状设计主题。Zen 的开发文档很丰富,易于上手,方

便了设计者,因此得到了广泛的应用。

Omega 也是一个开发者比较喜欢的父主题,它允许开发者通过代码完全控制主题的各方面细节,所以比较适合对Drupal 已经熟悉的开发者,部分国外高校的主题基于Omega。

Bootstrap 是排名第三的父主题,该主

题对接了著名的Bootstrap 框架,充分利用了Bootstrap 的功能,因此对于响应式设计有诉求的用户可以使用该主题,Bootstrap 自带的样式和脚本,也极大的方便了用户快速开发自己的主题。

多语言

Drupal 对多语言的支持也是非常全面且非常灵活的。其本身默认为英文,如果需要其他语言,则只需要启用locale 模块和Localization update 模块,然后添加需要的语言即可。通过Localization update 模块,系统可以自动周期性下载启用的语言,包括对核心代码和周边模块的语言包。

Drupal 可以根据URL、请求会话、用户的语言参数、浏览器的语言设置和站点的默认语言来判断当前该以哪种语言来显示界面和内容。在添加内容时,用户可以选择语言;在浏览内容时,用户可以点击“翻译”按钮,把当前内容翻译成其他语

言版本,系统会自动记录对应内容,便于

2 主题内容与区块

图3 通过Solr 来进行搜索

用户随时切换语言显示。对于页面布局中的区块,也可以直接翻译。而菜单、代码中的文本字符串都可以通过翻译界面进行翻译。

此外,网站版面设计中英文可以一样,也可以根据语言有多种不同的设计。

用户与角色

在Drupal中,用户也是一类实体(Entity),管理员可以添加用户的字段,也可以管理用户的显示。对于用户的添加,可以允许用户自行注册,也可以限制只有管理员可以添加。有了SMTP Authentication Support模块的支持,用户状态改变时,可以发送邮件通知用户。SSO

Drupal对单点登录系统CAS支持的非常完美,其中CAS模块借助于phpCAS来实现了对CAS系统的支持。CAS Attributes 模块则相应的提供了CAS返回信息与用户字段的映射关系。用户可以设定是否允许CAS系统自动创建用户。笔者在开发本校网站时,都与本校统一身份认证系统进行对接,用户在使用站点管理内容时,完全不用另外开设用户,也不需要多次登录,密码也无需额外设定,既增强了安全性,又便利了用户登录。

此外,Drupal也支持LDAP协议的对接,以及众多模块提供了对OpenID、OAuth、Shibboleth的支持。

授权

Drupal本身没有组的概念,但是有角色(Role)概念,可以针对角色进行授权。系统默认创建三个角色:管理员、认证用户和匿名用户。借助于Content Access模块,可以提高授权的颗粒度,允许具体某个用户对某个对象拥有特别的权限。而对于更复杂的授权,可以借助于Organic groups可以提供组协作方面的权限设定。对于分类(Taxonomy)也有Taxonomy Access Control模块提供单独的权限控制,因此在授权管理方面Drupal也是非常灵

活的。

SEO

作为一个网站,必然要考虑搜索引擎

优化的问题,SEO Checklist模块为用户提

供了一个检查列表,对照列表,用户可以

检查是否启用或者完成响应的设定,从而

尽快提供经过SEO的站点。

有了PathAuto模块,用户可以定义某

一类型的内容的URL模式。譬如第一篇

文章,Drupal默认的URL为/q=node/1,

启用Clean URL后,URL变为/node/1,

通过PathAuto,它的URL可以变为更有

意义的表示,如/about.htm。

除了URL的优化,用户还可以启用

metatag模块在页面中添加元数据,譬如

author、description、keywords等搜索引擎

会检索的元数据。

搜索是内容管理系统必有的功能,

Drupal核心内建的搜索功能可以满足一般

需要,但要实现类似于Google、Bing等

搜索引擎的功能,可以通过Apache Solr

Search模块与Apache Solr对接,把站点内

容交由Apache Solr去索引,用户的搜索

请求交由Apache Solr去处理,并在Drupal

中返回搜索结果并呈现,如图3所示。

数据协作

Drupal本身不是一个独立的系统,

它可以导入其他站点或者数据服务者的数

据,可以为其他站点和系统提供数据服务。

输入数据

最简单的案例是从.csv文件导入数据,

对于这类操作,Drupal有一个强大的模块

Feeds。它可以导入或集成数据为节点、用

户、分类术语或者简单的数据库记录。它

支持手工操作的一次性导入和周期性导入,

来源数据可以是RSS/Atom种子,也可以是

CSV文件或者OPML文件。笔者所做的上

海海事大学主网站中的今日亮点栏目的内

容,需要同步到招生网站中,为了实现该

功能,在招生网站中安装了Feeds模块,

并设置为1小时同步一次数据。

输出数据

Services模块为Drupal与第三方系统

实现数据集成提供了REST、XMLRPC、

JSON、JSON-RPC、SOAP、AMF等接口,

这允许Drupal站点的数据不再是孤立的

数据,而是成为了一个数据服务商。通过

Services模块,第三方系统不仅可以检索

站点数据,而且可以更新Drupal站点的

数据。更为方便的时候,在提供REST、

JSON、XMLPRC等接口时,无需额外的

代码,只需要更改URL的后缀名,如/

api/node/1.xml返回的是xml格式的节点

1的数据,而/api/node/1.json则提供的是

json格式的节点1的数据。

上海海事大学的图片新闻、校园动态和

今日亮点三个栏目的内容都是通过Services

模块提供API给学校的官方移动APP。

此外,Drupal对于RDF的支持已经

内嵌入核心代码,通过RDF可以实现语

义网络的提纯。安装SPARQL Views模块,

可以使站点引用Linked Open Data数据。

站点群

目前国内高校站点少则数十个,多

则几百个,按照现有策略和公司产品,经

常引用站点群系统来构建管理如此多的网

站。Domain Access模块也提供了类似功能,

允许多个站点共用一套核心代码和一个共

享的数据库,这个模块允许共享用户、内

容和配置。

Drupal同时提供了另外几种类似于站

点群的方案。一种是核心代码共享而数据

库独立,这种模式下,内容、用户都是

相对独立的,站点之间可以通过Feeds和

Services提供数据同步,而用户可以通过

SSO模块实现单点登录。在这种模式下,

站点群维护难度相对容易且工作量小。另

2015.5中国教育网络 67

一种模式是完全独立,核心代码和数据库完全独立,各个站点间内容、用户完全隔离,这种模式下,维护工作量相对较大但简易。

在站点日常维护中,Drush充当了非常重要的角色。Drush是Drupal和Shell 的合并,它是一个针对Drupal的命令行外壳和脚本工具,拥有Drupal瑞士军刀的称誉。它提供了一系列命令,譬如节点的操作、用户的操作、站点更新操作、模块的操作,绝大部分的Drupal操作都可以通过Drush来实现。

如下载并启用模块Views,可以通过一个命令行来实现:drush-y en views。

更新语言包,drush l10n_update。

基本上Drupal站点都会安装drush工具。

安全

安全也是一个站点必须考虑的问题。Drupal站点从架构到代码编写都充分考虑了像SQL注入、XSS跨站脚本等攻击方式的安全问题,而且提供了Security Review 模块供用户审计安全问题。

此外,Drupal是社区开源系统,有着开源系统的大家共同监督的优势。如果代码有安全问题,系统将进行高优先级别的警告,授权用户在管理站点,无论是添加内容还是进行简单管理工作时,系统都会在显著位置警告系统有安全问题,督促用户尽快升级。

目前很少有Drupal系统的站点被入侵,当然,这也需要站点管理员定期监控站点。

性能

Drupal从拓扑架构上支持简易的轻量级服务器性能优化,也支持庞大的集群架服务器性能优化。

Drupal官网为大家提供了服务器性能优化指南,在该指南中,提供了修改php.ini文件调优php性能,优化数据库性能,启用缓存机制,安装Varnish页面静

态缓存,安装APC启用代码缓存以及使

用Redis作为key-value存储的性能优化

机制。对于数据库性能的优化,可以使用

memcached来缓存查询。

缓存机制是站点优化的最直接的

方式。鉴于Drupal的架构,需要做以

下几个方面的缓存:代码缓存(APC、

eAccelerator)、数据库缓存(Memcache)、

服务器反向代理缓存(Varnish)、页面

缓存(Boost)。针对高校的中小规模网

站服务器,我们建议使用boost模块的匿

名用户访问的页面静态化来提供性能,它

可以压缩包括xml、ajax、css、javascript

在内的页面文件从而减少带宽,显著提

高用户访问速度。Boost模块需要用户修

改.htaccess文件,不过Drupal会根据用

户的配置来自动生成修改代码,方便用

户修改。对于授权用户的缓存处理,有

Authenticated User Page Caching(authcache)

模块,它可以提高授权用户的访问速度。

备份

网站的备份很重要,使用Drupal制

作的网站也不例外。Drupal系统的存储内

容主要分为三部分:数据库、核心代码和

用户文件,因此备份Drupal主要就是备份

这三部分的内容。在Drupal提供的备份方

案中,有多个模块可以用来备份数据库和

文件,也可以由系统管理员针对这三部分

内容做出手工备份,如果是在站群或者多

站点的情况下撰写脚本来实现批量备份。

在备份模块中,首选“Backup and

Migrate”,该模块主要用来备份和恢复数

据库、代码和文件,也可以用于迁移站点,

并且配合自动调度任务来自动备份。备份

后的文件支持gzip、bzip和zip压缩,而

且可以存放在本地或者通过FTP/S3/Email

等多种方式备份到异地,而且对于目前

流行的Dropbox、Rackspace Cloudfiles、

Proune、HPCloud也提供了多个模块支持。

为了系统安全,备份文件可以使用AES

算法进行加密。

手工备份Drupal的方式也很简单,

可以使用drush archive-dump命令行来备

份,使用drush archive-restore来还原网站;

也可以使用tar等归档工具压缩Drupal

核心代码和用户文件,对于数据库使用

drush、mysqldump(或pg_dump)来备份

数据库。对于手工操作不熟悉的,可以使

用phpMyAdmin等图形界面来进行数据库

备份,如图4所示。

对于站群系统或者多站点,可以撰写

脚本来进行集中备份,也可以采用子站点

单独备份的策略。

备份周期,Drupal推荐数据库和用户

文件天天备份,而对于核心代码备份间隔

为30天。

在本文中,没有就Rules(规则)、

Voting API和Flag等模块进行介绍,实际

上结合这几个模块,可以避免编写代码,

而实现一些触发器性质的工作流,也可以

实现一个投票网站或者特别标记的功能。

基于Drupal的网站,相对于其他

CMS系统站点,最大的难点在于学习曲线

比较陡峭,尤其是区块的概念,不同于以

往的CMS系统,这是在学习Drupal过程

中需要优先掌握的概念。对Drupal有了

基本的理解后,加上灵活运用丰富多彩的

模块,完全可以满足各类站点的需求。

(作者单位为上海海事大学)

图4 备份管理界面

68中国教育网络 2015.5

2015.5中国教育网络

69

项目描述

中国政法大学证据科学研究院旧版门户系统采用的是传统新闻发布平台,仅能提供基本的信息发布功能,已经无法满足日益增加的对外交流、学术活动、多分类资讯等等细分的内容方面的需求。因此,需要对原有系统进行升级重构。

从笔者参与过的项目来看,高校一般门户系统的功能几乎都可以通过建设者模式搭配而成,这个搭配的过程往往是相当优雅的,通过图形化的配置,鼠标点击就可以实现丰富多彩的业务功能。选择Drupal 作为学院系统的技术平台,仅需要很少的代码开发量,事半功倍。

证据科学研究院新版院网系统在设计阶段强调国际化,希望最终提供给访问者的页面系统可以方便地进行语言切换,使外籍教授、学生能够方便地查阅资讯。根据学院开设的课程,目前需要系统提供简体中文和英文两种页面语言。

师资力量的展示与宣传也是新版院网的设计重点,希望通过详细的院网师资页面,统一并且规范的展示教师的中、英文简历。

在英文版面设计上要符合英语版式习惯,方便阅读。

开发实施

多语言架构搭建

Drupal 提供了完善的多语言体系,可以实现各类国际化站点的需求。院网项目中,不同语言(中/英)需有各自独立的页面风格、菜单、栏目等等。同时,内容页面要能够实现对照翻译。

根据这个总体需求,在Drupal 提供的多种可选方案中,最终选择了使用两套独立的主题再通过

通过Drupal 的模板系统建立中文主题和英文主题:admin/appearance

在ThemeKey 的配置页面,可以建立基于语言的过滤条件:admin/config/user-interface:

图2 界面可以汉化为中文

图1

Drupal Drupal 的境界

简单建站:要达到这个水平并不难,熟悉一些常用模块,能够下载需要的模块或主题并将其安装在目标网站上,熟悉一些Drupal 的术语,如content type,taxonomy 等。

高级建站:达到这个水平,需要付出一些努力,常用模块基本上要做到随需随用,能够根据需求确定模块的使用,至少能在需要的时候找到解决问题的方法,即使是利用网络资源;能够进行简单的定制,对Drupal 的实现方式有一定的理解,能依照Drupal 的标准完成需求。

简单开发:根据需求定制模块和主题,这需要至少会php、js、html、css,可以不必精通每一种,但至少精通其中以两种,这里分模块开发和主题开发,不同方向需要的技能也各不同,功能开发者需要会php,并且熟悉Drupal 核心以及常用模块的API,并能熟练应用;主题定制者至少要会html 和css,并且熟悉Drupal 的主题机制,能够对模板进行覆写,并且需要的时候要能在template.php 中进行一些定制修改。

高级开发:要达到这个水平,需要不懈的努力,不管是主题开发还是模块开发,都要求能依据Drupal 的代码标准,制作出主题或者模块。

70中国教育网络 2015.5

为中文和英文语言指定不同的模板。ThemeKey,提供了大量的过滤条件可以实现多种场景下的

主题切换。

图4

同时,ThemeKey 可以设置多种匹配条件。

完成多语言的相关设置后,就可以开始制作中文版主题了。

中文版首页搭建

Drupal 提供了多种技术来实现首页功能,总体来说可以通过Drupal 的模板引擎系统来实现,也可以通过Panels 这个模块来实现,还可以通过Views 来实现。

在院网这个项目中,采用了整合的方案,通过Drupal 的模

板引擎的复写技术,为首页建立单独的页面模板。

然后,通过Panels 建立一个自定义的页面,并将这个首页设置为默认首页:

admin/structure/pages:

config/system/site-information:

完成首页的建立之后,通过Panels 自带的模板系统定制首页的

各个功能区块位置:

图5

通过Views 操作数据库,将所需的数据从数据库中提取出来,生成区块,再填入Panels

模板中的区块位置内。

图6

将所有Panels 预留位置填入Views

生成的数据区块

图7

通过上述步骤,中文版的首页就生成了。

中文版栏目页面搭建

Drupal 有多种栏目页的搭建方式,适用于不同的需求场景。院网项目中,采用了以Taxonomy(分类)为主体的栏目页面生成方案。这个方案适合小规模的门户系统,是各类方案中较为简单的一种。

Drupal 已经自动为每个Taxonomy

自动生成了一个页面,可

图3

2015.5中国教育网络

71

以直接使用这个页面作为栏目页。如需进一步个性化定制,则需要使用模板技术或者配合其他模块来实现。

院网项目中,使用了Views 模块提供的扩展功能,来接管Taxonomy 生成的页面,将页面各项配置通过Views 来可视化完成。

admin/structure/views:

admin/structure/views/view/taxonomy_term/

8

在Views 的Taxonomy Page 配置页面,可以通过“CONTEXTUAL FILTERS”来控制输入参数。Views 将利用的输入参数作为数据库的筛选条件,当通过地址栏输入一个TERM 的ID,Views 就可以接收到这个ID 信息,并将ID

用于数据库的筛选过滤。

通过Views 的配置页面可以很容易的定制需要在栏目页面上

展示的字段。

在院网这个项目中,默认的栏目页面会展示两个字段组成的列表,一个是Title(标题),另一个是Post date(发布日期)。

中文版内容页面搭建

Drupal 在内容的管理上是独特的,与一般的CMS 系统,包括WordPress、Joomla 都有很大区别。Drupal 通过不同字段组成了Content Type(内容类型),建立一篇新的文章资讯时,是以内容类型为基础的,系统会自动生成一个属于内容类型的NODE 页面来呈现不同的文章。

在院网内容页面的呈现设计上,选用了Display Suite 这个模块

来控制各类内容页面的显示,它可以为内容页面建立不同的模板。

图9

以教师简历这个模板为例,在模板文件中,设计Title、Row01~Row13等等区域,之后,在Manage Display 中,就可以看到模板中建立的区域,通过鼠标的拖拽将各个字段拉入对应的区域,就可以完成内容页面的结构设计。在建立资讯后,对应字段的内容就会呈现在模板的区域中。

图10

英文版总体搭建概述

英文版本的搭建过程中在前端技术的使用上与中文版不同,采用了时下比较流行的Bootstrap 响应式布局,为手机、平板电脑、大屏主机提供更好的阅读体验。

在Drupal 中使用Bootstrap,可安装Bootstrap 响应式主题,该主题已经为Drupal 的响应式设计做好了衔接。可以通过

Drupal 核心生成符合Bootstrap 框架要求的前端代码。

本文从项目整体流程角度概述了从项目分析设计到开发实施的各个环节,并选择了一些技术点展开分析。由于篇幅有限,项目中还有很多有Drupal 特色的技术内容没能呈现出来。Drupal 可供学习研究的空间很大,学习难度也相对较大,比如Views 这一个模块,就有专门书籍来帮助技术人员进行各类数据库的复杂操作、筛选。可也正是因为Drupal 内容丰富、功能强大,研究学习Drupal

也是非常有乐趣的。

(作者单位为中国政法大学现代教育技术中心)

72

中国教育网络 2015.5

Drupal 是使用PHP 语言编写的开源内容管理系统(CMS)和内容管理框架(CMF),曾连续多年荣获全球最佳CMS 大奖。世界顶尖的前100所大学当中就有71所大学使用Drupal,国内也有不少高校在使用它建设网站。然而仅仅只是使用Drupal 来建站,实在是有点大材小用,做为CMF 的Drupal,有着灵活的架构和丰富的模块,通过它来构建业务系统,可以让Drupal 在国内高校的“数字校园”中发挥出更大的作用,而不仅仅只是个CMS。

挑战

国内大部分高校都建成了“数字校园”,“数字校园”建设的目的是为了消除信息孤岛,所做之事简而言之就是建立公共数据交换标准和“公共数据库”,确定权威源数据以及在“公共数据库”与业务系统之间进行数据交换。具体来讲,就是通过前期调研,将“公共数据库”中业务系统需要的数据推到“中间库”中,然后由业务系统根据业务所需到“中间库”去抽取相关的数

Drupal 如何与

“公共数据库”进行数据交换?

据。如果业务系统的数据被确定为权威源数据,那么该业务系统还要将其他业务系统所需的数据通过“中间库”推送到“公共数据库”中,供其他业务系统抽取。

如果想使用Drupal 来构建业务系统,从而在“数字校园”中发挥更大的作用,就需要用它来构建业务系统,并使它能够与“数字校园”中的“公共数据库”之间进行数据交换,从而使其所建系统不至于成为信息孤岛。而这也正是Drupal 在高校推广时遇到的最大挑战,因为Drupal 并没有一个现成的解决方案可以完全满足这一颇具中国高校特色的需求。因此,笔者仔细分析了Drupal 一些相关的模块,并尝试利用这些模块来解决Drupal 与“公共数据库”数据交换时所遇到的部分问题。

实现

纵观“数字校园”中的业务系统,只有少量业务的数据是权威数据源,这也就意味着大多数业务系统只需要到“公共数据库”去抽取数据。因此,实现Drupal 从公共数据库抽取数据的功能模块,是其构建数字校园业务系统的首要任务。

Drupal 在高校

2015.5中国教育网络

73

而实现这一功能,首先需要由Drupal 创建业务所需的内容类型(或实体类型),然后通过相关模块将业务所需数据(大多部分都是人员和机构信息)从“中间库”取出(“中间库”中供业务系统抽取的数据是由“公共数据库”通过ODI 推送过来的),在此需要注意的一点就是“中间库”中的表结构与内容类型中的字段不尽相同。这很好理解:一个是遵循学校公共的数据标准,一个是遵循具体的业务需求。本文以学生基本信息数据为例,介绍Drupal 从“中间库”中抽取数据的功能模块实现方法,具体如下:

1.下载并安装相关模块

使用Drush 工具下载和启用Feeds 和Feeds SQL 模块:drush en feeds_ui feeds_sql feeds_tamper_ui -y,这样Drush 工具就会自动下载并启用Feeds、Feeds SQL 和Feeds Tamper 模块,同时还会下载和启用它们的依赖模块CTools 和JobScheduler。

2.添加“中间库”连接信息

在Drupal 的配置文件sites/default/settings.php 中,添加“中间库”的连接信息,并将其DatabaseKey 设置为mid:

... ...

$databases = array (// 缺省数据库的连接信息'default' => array (

'default' => array (

'database' => 'test','username' => 'Drupal','password' => 'Drupal','host' => 'localhost','port' => '',

'driver' => 'mysql','prefix' => '',),),

// “中间库”连接信息'mid' =>array(

'default' => array (

'database' => 'mid','username' => 'Drupal','password' => 'Drupal','host' => 'localhost','port' => '',

'driver' => 'mysql','prefix' => '',),),);... ...

3. 设置内容类型

在Drupal 中创建一个名为学生基本信息的内容类型,并根据需要设置其字段,如学号、姓名、姓名拼音、曾用名、英文名、身份证件类型、身份证件号、身份证件有效期、出生地码、出生日期、籍贯、血型等,并按照集成方案设置字段类型和长度。一般与“中间库”相关表的字段属性相同,以方便抽取。其中出生日期可以安装Date 模块,并将其字段类型设为

Date(Unix

图1 “中间库”数据表中的字段与内容类型的字段

Timestamp),这样方便用户界面(UI)展示。

4. 设置Feeds Importer

创建一个Feeds Importer,将其命名为“导入学生基本信息”(机器名:fi_xsjbxx),在编辑界面的Basic settings 中将Attach to content type 设为“学生基本信息”,并根据业务需要设置好Periodic import(一般设为every 1 day);

在Fetcher 中将Fetcher 从默认的HTTP Fetcher 改为SQL fetcher,并将SQL fetcher 设置中的Database 勾选为“中间库”的“mid”;

在Parser 中将Parser 改选为SQL parser,并将SQL parser 设置中的Database 选为“mid”,在SQL query 文本框中填入SQL 语句:SELECT * FROM GXXS_XSJBSJZL(其中GXXS_XSJBSJZL 为“公共数据库”同步到“中间库”的学生基本数据子类表名,这里为了方便起见,所以使用了通配符*,一般的用法是需要用到什么字段,就填入什么字段),如果SQL 语句没有出现错误的话,会在下面显示测试信息,会显示执行SQL 语句后记录总数和字段数,并有个表格显示记录内容,以便判断在SQL query 文本框中所输入SQL 语句是否正确;

在Processor 中将Processor 设为默认的Node Processor,并将其设置中的Bundle 选为“学生基本信息”,将Update existing nodes 选为“Update existing nodes”,Text format 保持默认的“Plain Text”,Expire nodes 保持默认的“after 1 day”;接下来就是最关键的一步了,在Processor 中点击Node Processor 中的Mapping,将“中间库”数据表中的字段与内容类型的字段一一对应起来,如图1所示。

5. 设置Feeds Tamper

在完成了上述配置之后,基于Drupal 的业务系统就差不多

可以正常地从“中间库”抽取公共数据了,但这之前还需要做

74中国教育网络 2015.5

一个小处理。“中间库”的出生日期根据部标是8位字符,而为了UI 展示,在前面Drupal 内容类型的字段类型的设置时,是建议安装Date 模块并将字段类型设为Date(Unix Timestamp)的,这就意味着在抽取过来的数据需要在做“一个字符串到时间戳”的转换之后,才能够保存到Drupal 中,因此需要用到Feeds Tamper 模块,可以选择TAMPER 标签页,并找到出生日期这个Mapping,然后点击Add Plugin,将The plugin to add 标签下的单选框选为“String to Unix Timestamp”,这样就可以在抽取出生日期时将部标的8位字符串转换成Date(Unix Timestamp)类型保存在Drupal 中。而且由于Feeds Tamper 是插件式的,还可以自行开发转换代码用以扩展Feeds Tamper 的功能。其设置如图2

所示。

图2 自行开发转换代码用以扩展Feeds Tamper 的功能

本刊讯 近日,“华为企业业务2015炫动ICT 中国行巡展·北京站”落下帷幕。

华为中国区副总裁董明表示,在过去的2014年,华为公司实现全球销售收入约2880亿人民币,同比增长约20%。目前,华为的产品和解决方案已经应用于170多个国家和地区,服务全球超过1/3的人口。中国市场作为华为全球化业务的重要组成部分,企业业务领域、消费者业务领域、运营商业务领域均实现了持续高速增长。

会上,华为提出“全联接”的概念。董明表示,未来将是一个全联接的世界。万物互联、随时在线将成为新常态。“我们预测,到2025年,全球将有超过1000亿的联接,这将是一个规模空前的市场,如何存储与处理、传送与分发、获取与呈现这些庞大的数据流量,既是一个巨大的挑战,也是我们面临的战略机遇。”

在巡展大会上,他表示,华为企业业务近几年在北京大规模发展,ICT 解决方案在北京各行业已广泛应用。在教育领域,华为与北京理工

华为北京ICT 巡展:未来将是全联接的世界

通过上面的配置,基于Drupal 构建的业务系统就可以从外库“中间库”抽取所需的数据了,上述三个模块相互配合就很方便地完成了数据抽取功能,而这么复杂的功能,需要用户做的事情却并不多,不得不让人感叹Drupal 及其模块的强大。

不足

然而,由于目前国内高校“公共数据库”从业务系统抽取

数据的方式比较单一,基本都是基于数据库层面来进行的。因此

Drupal 要融入数字校园就还必须要有一套比较成熟的将数据输出到外部数据库的解决方案。令人遗憾的是,Drupal 虽然有着一套较为成熟的数据输出解决方案,但却是基于WebService 的。基于数据库层面上的数据输出,虽然也有一些模块支持,但还不能形成一个比较成熟的解决方案。

综上所述,要想进一步推动Drupal 在我国高校的发展,就需要解决其与“公共数据库”的数据交换问题。好在Drupal 不仅是一个CMS,还是一个CMF,可以很灵活地通过编写一些功能模块,来满足某些功能需求。笔者和高教学会信息化分会Drupal 推进组的同仁们,正在着手编写DataHub

数据交换模块,

尝试通过这个模块来实现符合国人思维习惯,并能在数据库层面进行数据交换,以期解决Drupal 与外部数据库的数据双向交换问题,从而进一步加快Drupal 在我国高校的推广。

(作者单位为温州大学现代教育技术中心)

大学、北京交通大学、北京邮电大学等高校都有合作,“我们借助智慧校园和三通两平台解决方案,为高等教育和基础教育信息化建设提供了完整的解决方案。”

“教育市场是华为极其关注的一个领域。”华为北京代表处业务解决方案部部长苗实表达了华为对未来教育信息化的理解:“未来的校园将是智慧校园,在校园中,会融合大数据,云服务,在此基础上给校园提供智慧的服务和管理,让整个校园校务管理变得更高效透明。”此外,她认为,未来,许多校园将会把自己的优质教学资源扩展到整个社会中去,那么如何更好更方便地进行资源的分享,这是整个行业值得思考的问题。

苗实表示,今后,在教育领域内,华为的规划是按照“三通两平台”的思路,一是为学校提供良好的无线网络连接,这是智慧校园的基础;二是通过桌面云为师生带来便利,三是重点推广敏捷网络的解决方案和理念,四是推动大型数据中心进校园。

相关主题
相关文档
最新文档