文/王玉平
Drupal是怎樣幫高校改善網(wǎng)站體驗的?
文/王玉平
Drupal是非常靈活的,從內(nèi)容類型到版面布局都是可以自定義的,也正是由于這種自定義的靈活性導(dǎo)致了Drupal的學(xué)習(xí)曲線比較陡。但是理解了Drupal的架構(gòu)思路,會使得學(xué)習(xí)比較容易。
Drupal的核心是節(jié)點、模塊、主題。正是因為模塊的引入,極大地完善了Drupal的功能,吸引了眾多Drupal愛好者為Drupal開發(fā)各類功能,方便了站點管理員和制作者不用寫代碼即可完成站點的制作與部署。
首先讓我們看一下Drupal的核心概念:內(nèi)容節(jié)點、內(nèi)容類型和字段。
節(jié)點(Node)、內(nèi)容類型和字段
Drupal站點里的內(nèi)容都是以節(jié)點形式來存儲的,一個節(jié)點是某個類型的一個內(nèi)容,如頁面、文章、投票、論壇主題或者博客。正因為所有內(nèi)容作為節(jié)點的這種概念,讓我們可以自由定制內(nèi)容類型。在Drupal核心代碼中有Node模塊來負責整個站點內(nèi)容的創(chuàng)建、編輯、刪除、設(shè)置和現(xiàn)實等功能。系統(tǒng)為每個節(jié)點默認添加了作者、創(chuàng)建時間、修改時間、內(nèi)容類型等元數(shù)據(jù)屬性。Drupal核心代碼中的Field模塊為系統(tǒng)提供了字段管理功能,用戶可以為內(nèi)容類型添加字段,并管理這些字段的顯示。
Drupal安裝完畢后,默認會創(chuàng)建兩個文件類型:基本頁面和文章,這兩個類型只有標題和正文內(nèi)容兩個基本屬性。而在網(wǎng)站中,這兩個文件類型不能滿足我們的需要,譬如圖片新聞需要有圖片屬性,通知公告需要有附件,因此需要定義自己的內(nèi)容類型,并為這些自定義內(nèi)容類型添加不同的字段(屬性),如圖1所示。
表1 Drupal默認字段類型
圖1 字段屬性設(shè)定
除了以上字段類型,用戶也可以自行定義字段類型,譬如Date模塊提供的日期類型字段,Link模塊提供的鏈接類型字段,Audiofield模塊提供的音頻類型字段,Email field模塊提供的撰寫email地址的字段,Telephone模塊提供的書寫電話號碼的字段等。
字段是可以重用的,在某個類型下創(chuàng)建的字段,可以應(yīng)用于另外一個內(nèi)容類型。譬如圖片新聞里的圖片字段,可以用于普通新聞里添加圖片。
一個字段的值可以限制只有一個或者指定個數(shù),也可以無限個。譬如文章的標題數(shù)量只能有一個,而附件可以有無限個。
Drupal提供了默認的字段值的校驗功能,譬如必選填寫的字段,有紅色*號標注,若用戶沒有填寫,則會提示必須填寫的警告提示。
字段在內(nèi)容類型中的前后順序也可以根據(jù)實際需要做出調(diào)整,編輯節(jié)點和顯示節(jié)點時各字段的順序可以完全不同,系統(tǒng)提供了Manage Fields和Manage Display兩個界面來管理字段和管理顯示界面。通過這兩個界面來控制字段的類型、數(shù)量、顯示方式。Drupal允許用戶定義內(nèi)容類型的顯示模式,默認提供了全文(Full content)、摘要(Teaser)等顯示模式。在Manage Display界面中,用戶可以切換顯示模式進行定制。
分類(Taxonomy)
分類(Taxonomy)是一個非常強大的核心模塊,它使得用戶以類別、標簽和元數(shù)據(jù)的形式來組織關(guān)鍵字,允許用戶連接、關(guān)聯(lián)和聚類站點內(nèi)容。在Drupal中,分類是通過術(shù)語表來實現(xiàn),術(shù)語表中包含詞匯,這些詞匯可以呈樹狀層級分布。
在國內(nèi)傳統(tǒng)網(wǎng)站中,其內(nèi)容是通過欄目的形式來組織的,任何內(nèi)容都是先有欄目,再有欄目下的內(nèi)容,而在Drupal里,先有內(nèi)容,再把這些內(nèi)容按照某個關(guān)鍵字或者標簽來進行分類,而這些分類就可以對應(yīng)成傳統(tǒng)網(wǎng)站的欄目,但分類不能完全等同于傳統(tǒng)欄目。在Drupal中,通過菜單進行樹狀結(jié)構(gòu)的組織,因此菜單在某種意義上才是傳統(tǒng)欄目的對應(yīng),而分類主要的目標還是在于聚類相關(guān)內(nèi)容。
分類在Drupal中是作為字段的形式存在的,在字段類型中,有一個“術(shù)語來源”類型,就是用來引用各個術(shù)語表。術(shù)語表里的詞匯允許用戶在添加內(nèi)容時手工輸入一個新的詞匯,也可以在術(shù)語表管理中原先定義一組詞匯。
在建設(shè)網(wǎng)站中,分類、關(guān)鍵字、標簽等字段均通過術(shù)語來源類型實現(xiàn),從而形成類別、標簽云、訪問關(guān)鍵字等展現(xiàn)形式。
常見幾個字段
1.正文編輯
Drupal核心代碼默認提供普通的文本區(qū)域編輯器,只能編輯純文本內(nèi)容,為了提供完整的HTML可視化編輯器,著名的CKEditor編輯器提供了模塊與Drupal對接,允許用戶在Drupal中調(diào)用CKEditor進行所見即所得的內(nèi)容編輯界面。該模塊支持外部文件瀏覽器,如CKFinder、IMCE,允許用戶上傳瀏覽文件,并且允許用戶自定義編輯器的皮膚、工具欄、語言和默認狀態(tài)。
2.圖片
在一個網(wǎng)站中,圖片扮演了吸引用戶和直觀展示內(nèi)容的重要角色。每一個內(nèi)容管理系統(tǒng)都要處理圖片的存取。在傳統(tǒng)網(wǎng)站中,上傳到服務(wù)器上的圖片已經(jīng)處理后的尺寸已定的圖片,在下次改版時,圖片的尺寸與新版設(shè)計存在不匹配問題,也不能很好的適應(yīng)目前多種瀏覽終端的尺寸問題。在Drupal中,圖片上傳到服務(wù)器后,并不會對原始圖片進行修改,而是引入圖片樣式的概念,根據(jù)不同的需求生成新的圖片文件。
在Drupal中,除了調(diào)用傳統(tǒng)的GD來處理圖片,還可以調(diào)用ImageMagick和GrpahicsMagick等專業(yè)圖片處理工具來進行圖片渲染,生成高質(zhì)量的小文件圖片。通過imagecache_actions模塊,可以為圖片添加水印和邊框、調(diào)整亮度和透明度、調(diào)整圖片尺寸以及其他圖片處理相關(guān)功能。
在我們的網(wǎng)站中,盡量避免使用CKEditor的圖片上傳功能,而是使用圖片字段的多個值的功能,把圖片顯示在內(nèi)容后面。并且使用breakout模塊來匹配不同的瀏覽器終端。
3.附件
附件的功能就是文件上傳功能。Drupal提供了上傳進度條等友好界面,并提供了描述屬性,用來在顯示時不用直接顯示文件名。
4.視頻
Video模塊為我們提供了視頻上傳播放的功能,借助于ffmpeg開源工具,我們還可以實現(xiàn)視頻轉(zhuǎn)換的功能。JW Player、jPlayer、Video.js等模塊提供了頁面播放視頻功能,而實時轉(zhuǎn)換功能可以生成x264編碼的MP4文件,兼容了各種瀏覽器終端。Media Youku模塊,則可以提供與國內(nèi)較大的視頻網(wǎng)站優(yōu)酷進行對接。筆者所在的上海海事大學(xué)與優(yōu)酷合作,將學(xué)校的視頻上傳至優(yōu)酷,然后在學(xué)校官網(wǎng)通過Media Youku模塊對接,播放的媒體不在網(wǎng)站本地,而存儲于優(yōu)酷服務(wù)器。
視圖(Views)
視圖(Views)是Drupal的另一個功能非常強大的模塊,沒有該模塊,幾乎無法制作一個網(wǎng)站。視圖為用戶提供了一個查詢可視化設(shè)計界面,通過該界面,用戶可以選擇要查詢的字段、查詢條件、排序字段、展現(xiàn)形式、分頁功能以及上下文的條件。正因為這個查詢的可視化設(shè)計,用戶不需要接觸數(shù)據(jù)庫底層,也不需要了解PHP、MySQL就可以靈活地設(shè)計出各種查詢,并且輸出為頁面或者區(qū)塊,以及其他更多的服務(wù)接口。用戶也可以通過模板來定制視圖的展現(xiàn)形式。
在網(wǎng)站中,常見的列表,基本都是通過視圖來實現(xiàn)的。各類slideshow、圖片gallery也是通過視圖來實現(xiàn)的。
有了內(nèi)容,我們就需要考慮如何展示頁面,在Drupal里,由主題(Theme)來負責頁面內(nèi)容的展示。
與傳統(tǒng)CMS不同的是,Drupal把頁面分成不同的區(qū)域(Region),經(jīng)典的頁面分隔為頭部區(qū)域、高亮區(qū)域、側(cè)邊欄、正文區(qū)域、底部區(qū)域。在區(qū)域里嵌有區(qū)塊(Block)。每個區(qū)塊里的內(nèi)容可以是普通的文本,也可以是通過View模塊來組織的內(nèi)容,也可以是通過自定義模塊通過PHP代碼生成的。
Drupal主題是以文件夾的形式存在站點目錄sites/all/themes或者sites/default/ themes下面。其中的.info文件是必須的,類似于項目工程文件,描述了主題元數(shù)據(jù)(如名稱、描述、版本信息)、定義的區(qū)域、應(yīng)包含的樣式單文件、應(yīng)包含的JavaScript腳本文件。如:
name=shmtu2012
description=上海海事大學(xué)中文網(wǎng)站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
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、到區(qū)域、到區(qū)塊、到內(nèi)容類型、到字段都提供了默認的模板文件,用戶可以完全覆寫這些模板文件。模板文件的命名非常清晰,譬如整體的HTML模板命名為html.tpl.php,對于頁面的模板命名為page.tpl.php,對于區(qū)塊的命名為block.tpl.php。如果對于文件命名有疑問,可以啟用Theme developer模塊來提示。而對于視圖的模板,在視圖編輯界面里有詳細提示。主題下還有一個template.php文件,該文件內(nèi)部為純php代碼,用來對輸出進行邏輯控制和數(shù)據(jù)處理,也可以自定義過程,覆蓋主題輸出,如圖2所示。
圖2 主題內(nèi)容與區(qū)塊
Drupal提供了子主題的功能,子主題類似于主題,只是它繼承了父主題的資源。著名的主題zen、bootstrap、omega等都是父主題,允許用戶在此基礎(chǔ)上創(chuàng)建自己的子主題。
Zen是一個功能強大的簡單的、基于HTML5、采用響應(yīng)式設(shè)計、移動設(shè)備優(yōu)先的格狀設(shè)計主題。Zen的開發(fā)文檔很豐富,易于上手,方便了設(shè)計者,因此得到了廣泛的應(yīng)用。
Omega也是一個開發(fā)者比較喜歡的父主題,它允許開發(fā)者通過代碼完全控制主題的各方面細節(jié),所以比較適合對Drupal已經(jīng)熟悉的開發(fā)者,部分國外高校的主題基于Omega。
Bootstrap是排名第三的父主題,該主題對接了著名的Bootstrap框架,充分利用了Bootstrap的功能,因此對于響應(yīng)式設(shè)計有訴求的用戶可以使用該主題,Bootstrap自帶的樣式和腳本,也極大的方便了用戶快速開發(fā)自己的主題。
圖3 通過Solr來進行搜索
Drupal對多語言的支持也是非常全面且非常靈活的。其本身默認為英文,如果需要其他語言,則只需要啟用locale模塊和Localization update模塊,然后添加需要的語言即可。通過Localization update模塊,系統(tǒng)可以自動周期性下載啟用的語言,包括對核心代碼和周邊模塊的語言包。
Drupal可以根據(jù)URL、請求會話、用戶的語言參數(shù)、瀏覽器的語言設(shè)置和站點的默認語言來判斷當前該以哪種語言來顯示界面和內(nèi)容。在添加內(nèi)容時,用戶可以選擇語言;在瀏覽內(nèi)容時,用戶可以點擊“翻譯”按鈕,把當前內(nèi)容翻譯成其他語言版本,系統(tǒng)會自動記錄對應(yīng)內(nèi)容,便于用戶隨時切換語言顯示。對于頁面布局中的區(qū)塊,也可以直接翻譯。而菜單、代碼中的文本字符串都可以通過翻譯界面進行翻譯。
此外,網(wǎng)站版面設(shè)計中英文可以一樣,也可以根據(jù)語言有多種不同的設(shè)計。
在Drupal中,用戶也是一類實體(Entity),管理員可以添加用戶的字段,也可以管理用戶的顯示。對于用戶的添加,可以允許用戶自行注冊,也可以限制只有管理員可以添加。有了SMTP Authentication Support模塊的支持,用戶狀態(tài)改變時,可以發(fā)送郵件通知用戶。
SSO
Drupal對單點登錄系統(tǒng)CAS支持的非常完美,其中CAS模塊借助于phpCAS來實現(xiàn)了對CAS系統(tǒng)的支持。CAS Attributes模塊則相應(yīng)的提供了CAS返回信息與用戶字段的映射關(guān)系。用戶可以設(shè)定是否允許CAS系統(tǒng)自動創(chuàng)建用戶。筆者在開發(fā)本校網(wǎng)站時,都與本校統(tǒng)一身份認證系統(tǒng)進行對接,用戶在使用站點管理內(nèi)容時,完全不用另外開設(shè)用戶,也不需要多次登錄,密碼也無需額外設(shè)定,既增強了安全性,又便利了用戶登錄。
此外,Drupal也支持LDAP協(xié)議的對接,以及眾多模塊提供了對OpenID、OAuth、Shibboleth的支持。
授權(quán)
Drupal本身沒有組的概念,但是有角色(Role)概念,可以針對角色進行授權(quán)。系統(tǒng)默認創(chuàng)建三個角色:管理員、認證用戶和匿名用戶。借助于Content Access模塊,可以提高授權(quán)的顆粒度,允許具體某個用戶對某個對象擁有特別的權(quán)限。而對于更復(fù)雜的授權(quán),可以借助于Organic groups可以提供組協(xié)作方面的權(quán)限設(shè)定。對于分類(Taxonomy)也有Taxonomy Access Control模塊提供單獨的權(quán)限控制,因此在授權(quán)管理方面Drupal也是非常靈活的。
作為一個網(wǎng)站,必然要考慮搜索引擎優(yōu)化的問題,SEO Checklist模塊為用戶提供了一個檢查列表,對照列表,用戶可以檢查是否啟用或者完成響應(yīng)的設(shè)定,從而盡快提供經(jīng)過SEO的站點。
有了PathAuto模塊,用戶可以定義某一類型的內(nèi)容的URL模式。譬如第一篇文章,Drupal默認的URL為/q=node/1,啟用Clean URL后,URL變?yōu)?node/1,通過PathAuto,它的URL可以變?yōu)楦幸饬x的表示,如/about.htm。
除了URL的優(yōu)化,用戶還可以啟用metatag模塊在頁面中添加元數(shù)據(jù),譬如author、description、keywords等搜索引擎會檢索的元數(shù)據(jù)。
搜索是內(nèi)容管理系統(tǒng)必有的功能,Drupal核心內(nèi)建的搜索功能可以滿足一般需要,但要實現(xiàn)類似于Google、Bing等搜索引擎的功能,可以通過Apache Solr Search模塊與Apache Solr對接,把站點內(nèi)容交由Apache Solr去索引,用戶的搜索請求交由Apache Solr去處理,并在Drupal中返回搜索結(jié)果并呈現(xiàn),如圖3所示。
Drupal本身不是一個獨立的系統(tǒng),它可以導(dǎo)入其他站點或者數(shù)據(jù)服務(wù)者的數(shù)據(jù),可以為其他站點和系統(tǒng)提供數(shù)據(jù)服務(wù)。
輸入數(shù)據(jù)
最簡單的案例是從.csv文件導(dǎo)入數(shù)據(jù),對于這類操作,Drupal有一個強大的模塊Feeds。它可以導(dǎo)入或集成數(shù)據(jù)為節(jié)點、用戶、分類術(shù)語或者簡單的數(shù)據(jù)庫記錄。它支持手工操作的一次性導(dǎo)入和周期性導(dǎo)入,來源數(shù)據(jù)可以是RSS/Atom種子,也可以是CSV文件或者OPML文件。筆者所做的上海海事大學(xué)主網(wǎng)站中的今日亮點欄目的內(nèi)容,需要同步到招生網(wǎng)站中,為了實現(xiàn)該功能,在招生網(wǎng)站中安裝了Feeds模塊,并設(shè)置為1小時同步一次數(shù)據(jù)。
輸出數(shù)據(jù)
Services模塊為Drupal與第三方系統(tǒng)實現(xiàn)數(shù)據(jù)集成提供了REST、XMLRPC、JSON、JSON-RPC、SOAP、AMF等接口,這允許Drupal站點的數(shù)據(jù)不再是孤立的數(shù)據(jù),而是成為了一個數(shù)據(jù)服務(wù)商。通過Services模塊,第三方系統(tǒng)不僅可以檢索站點數(shù)據(jù),而且可以更新Drupal站點的數(shù)據(jù)。更為方便的時候,在提供REST、JSON、XMLPRC等接口時,無需額外的代碼,只需要更改URL的后綴名,如/ api/node/1.xml返回的是xml格式的節(jié)點1的數(shù)據(jù),而/api/node/1.json則提供的是json格式的節(jié)點1的數(shù)據(jù)。
上海海事大學(xué)的圖片新聞、校園動態(tài)和今日亮點三個欄目的內(nèi)容都是通過Services模塊提供API給學(xué)校的官方移動APP。
此外,Drupal對于RDF的支持已經(jīng)內(nèi)嵌入核心代碼,通過RDF可以實現(xiàn)語義網(wǎng)絡(luò)的提純。安裝SPARQL Views模塊,可以使站點引用Linked Open Data數(shù)據(jù)。
目前國內(nèi)高校站點少則數(shù)十個,多則幾百個,按照現(xiàn)有策略和公司產(chǎn)品,經(jīng)常引用站點群系統(tǒng)來構(gòu)建管理如此多的網(wǎng)站。Domain Access模塊也提供了類似功能,允許多個站點共用一套核心代碼和一個共享的數(shù)據(jù)庫,這個模塊允許共享用戶、內(nèi)容和配置。
Drupal同時提供了另外幾種類似于站點群的方案。一種是核心代碼共享而數(shù)據(jù)庫獨立,這種模式下,內(nèi)容、用戶都是相對獨立的,站點之間可以通過Feeds和Services提供數(shù)據(jù)同步,而用戶可以通過SSO模塊實現(xiàn)單點登錄。在這種模式下,站點群維護難度相對容易且工作量小。另一種模式是完全獨立,核心代碼和數(shù)據(jù)庫完全獨立,各個站點間內(nèi)容、用戶完全隔離,這種模式下,維護工作量相對較大但簡易。
在站點日常維護中,Drush充當了非常重要的角色。Drush是Drupal和Shell的合并,它是一個針對Drupal的命令行外殼和腳本工具,擁有Drupal瑞士軍刀的稱譽。它提供了一系列命令,譬如節(jié)點的操作、用戶的操作、站點更新操作、模塊的操作,絕大部分的Drupal操作都可以通過Drush來實現(xiàn)。
如下載并啟用模塊Views,可以通過一個命令行來實現(xiàn):drush-y en views。
更新語言包,drush l10n_update。
基本上Drupal站點都會安裝drush工具。
安全也是一個站點必須考慮的問題。Drupal站點從架構(gòu)到代碼編寫都充分考慮了像SQL注入、XSS跨站腳本等攻擊方式的安全問題,而且提供了Security Review模塊供用戶審計安全問題。
此外,Drupal是社區(qū)開源系統(tǒng),有著開源系統(tǒng)的大家共同監(jiān)督的優(yōu)勢。如果代碼有安全問題,系統(tǒng)將進行高優(yōu)先級別的警告,授權(quán)用戶在管理站點,無論是添加內(nèi)容還是進行簡單管理工作時,系統(tǒng)都會在顯著位置警告系統(tǒng)有安全問題,督促用戶盡快升級。
目前很少有Drupal系統(tǒng)的站點被入侵,當然,這也需要站點管理員定期監(jiān)控站點。
Drupal從拓撲架構(gòu)上支持簡易的輕量級服務(wù)器性能優(yōu)化,也支持龐大的集群架服務(wù)器性能優(yōu)化。
Drupal官網(wǎng)為大家提供了服務(wù)器性能優(yōu)化指南,在該指南中,提供了修改php.ini文件調(diào)優(yōu)php性能,優(yōu)化數(shù)據(jù)庫性能,啟用緩存機制,安裝Varnish頁面靜態(tài)緩存,安裝APC啟用代碼緩存以及使用Redis作為key-value存儲的性能優(yōu)化機制。對于數(shù)據(jù)庫性能的優(yōu)化,可以使用memcached來緩存查詢。
緩存機制是站點優(yōu)化的最直接的方式。鑒于Drupal的架構(gòu),需要做以下幾個方面的緩存:代碼緩存(APC、eAccelerator)、數(shù)據(jù)庫緩存(Memcache)、服務(wù)器反向代理緩存(Varnish)、頁面緩存(Boost)。針對高校的中小規(guī)模網(wǎng)站服務(wù)器,我們建議使用boost模塊的匿名用戶訪問的頁面靜態(tài)化來提供性能,它可以壓縮包括xml、ajax、css、javascript在內(nèi)的頁面文件從而減少帶寬,顯著提高用戶訪問速度。Boost模塊需要用戶修改.htaccess文件,不過Drupal會根據(jù)用戶的配置來自動生成修改代碼,方便用戶修改。對于授權(quán)用戶的緩存處理,有Authenticated User Page Caching(authcache)模塊,它可以提高授權(quán)用戶的訪問速度。
網(wǎng)站的備份很重要,使用Drupal制作的網(wǎng)站也不例外。Drupal系統(tǒng)的存儲內(nèi)容主要分為三部分:數(shù)據(jù)庫、核心代碼和用戶文件,因此備份Drupal主要就是備份這三部分的內(nèi)容。在Drupal提供的備份方案中,有多個模塊可以用來備份數(shù)據(jù)庫和文件,也可以由系統(tǒng)管理員針對這三部分內(nèi)容做出手工備份,如果是在站群或者多站點的情況下撰寫腳本來實現(xiàn)批量備份。
在備份模塊中,首選“Backup and Migrate”,該模塊主要用來備份和恢復(fù)數(shù)據(jù)庫、代碼和文件,也可以用于遷移站點,并且配合自動調(diào)度任務(wù)來自動備份。備份后的文件支持gzip、bzip和zip壓縮,而且可以存放在本地或者通過FTP/S3/Email等多種方式備份到異地,而且對于目前流行的Dropbox、Rackspace Cloudfiles、Proune、HPCloud也提供了多個模塊支持。為了系統(tǒng)安全,備份文件可以使用AES算法進行加密。
手工備份Drupal的方式也很簡單,可以使用drush archive-dump命令行來備份,使用drush archive-restore來還原網(wǎng)站;也可以使用tar等歸檔工具壓縮Drupal核心代碼和用戶文件,對于數(shù)據(jù)庫使用drush、mysqldump(或pg_dump)來備份數(shù)據(jù)庫。對于手工操作不熟悉的,可以使用phpMyAdmin等圖形界面來進行數(shù)據(jù)庫備份,如圖4所示。
圖4 備份管理界面
對于站群系統(tǒng)或者多站點,可以撰寫腳本來進行集中備份,也可以采用子站點單獨備份的策略。
備份周期,Drupal推薦數(shù)據(jù)庫和用戶文件天天備份,而對于核心代碼備份間隔為30天。
在本文中,沒有就Rules(規(guī)則)、Voting API和Flag等模塊進行介紹,實際上結(jié)合這幾個模塊,可以避免編寫代碼,而實現(xiàn)一些觸發(fā)器性質(zhì)的工作流,也可以實現(xiàn)一個投票網(wǎng)站或者特別標記的功能。
基于Drupal的網(wǎng)站,相對于其他CMS系統(tǒng)站點,最大的難點在于學(xué)習(xí)曲線比較陡峭,尤其是區(qū)塊的概念,不同于以往的CMS系統(tǒng),這是在學(xué)習(xí)Drupal過程中需要優(yōu)先掌握的概念。對Drupal有了基本的理解后,加上靈活運用豐富多彩的模塊,完全可以滿足各類站點的需求。
(作者單位為上海海事大學(xué))