本人從2010年開始使用Drupal,比此前使用的MediaWiki更符合通用的建站要求,Drupal對多語言、多站點的支持也是我選擇它的重要因素。從最開始的6.x到7.x再到8.x,我一直都在使用,在這過程中需要修改模闆、自建模塊,也學會了PHP以及其它一些技術。在本博客中我也記錄了很多日常使用Drupal中遇到的問題、解決的辦法,希望對其他使用Drupal的朋友有所幫助。

這是 Drupal 分類的頁面,點擊下面标題查看詳細文章内容:
本人從2010年開始使用Drupal,比此前使用的MediaWiki更符合通用的建站要求,Drupal對多語言、多站點的支持也是我選擇它的重要因素。從最開始的6.x到7.x再到8.x,我一直都在使用,在這過程中需要修改模闆、自建模塊,也學會了PHP以及其它一些技術。在本博客中我也記錄了很多日常使用Drupal中遇到的問題、解決的辦法,希望對其他使用Drupal的朋友有所幫助。


用Drupal搭建網站的時候,有時需要通過修改CSS來改變網站上的格式,以前我多是使用元素内嵌CSS屬性或者在頁面中直接寫CSS代碼的辦法來實現,這樣效果直接了當,但不是很規範和靈活,現在采用正規的辦法,添加外部CSS文件來解決,記錄如下:
以前就知道Drupal中有個Tagadelic模塊比較流行,可以用于生成标簽雲,用不同的字體、字号來顯示熱門關鍵詞,但一直沒有實際安裝使用。
今天同事再次提到這個事情,我就先用我這個個人網站來做實驗,Tagadelic這個模塊很容易安裝,也基本上不用怎麼設置,隻要把包含标簽雲的Block放在希望的位置就可以。
我的博客中用了自由标簽,自由标簽中的熱門關鍵詞的block現在放置在首頁的下方,更多鍊接到http://jamesqi.com/tagadelic/chunk/1。
從這個标簽雲看過去可以麻煩發現自己的關注點在哪些方面
前段時間安裝Drupal 7的時候就遇到自動在MySQL中使用InnoDB的情況,而且好像是即使MySQL默認引擎為MyISAM也依舊使用InnoDB。雖然InnoDB有自己的特點,Drupal 7選用這個也正常,但對于我們來說,有多個子網站的時候,以前是将數據庫分散到多塊硬盤上的,就需要用MyISAM來讓每個子網站有獨立的目錄比較方便,所以還是需要能使用MyISAM。
按照網上找到的一篇文章,修改includes/database/mysql/shema.inc這個文件可以解決,雖然修改drupal core文件不是一個很好的辦法,先這樣用。
Drupal的Views是個好東西,能做出各種查詢列表,基本上是我們網站的必備模塊。
在一些系列網站中,因為要在各個子網站都設置相同的Views,我們就用到Views的導出、導入功能,這樣隻需要在一個示範網站中設置好,然後export成代碼的形式,再import到其它網站就可以,還是比較方便的。
雖然一次性設置的時候導出、導入不麻煩,但如果要修改Views就比較麻煩了,我們以前是逐個網站修改,或者隻修改示範網站,再在其它網站中删除舊Views、導入成新Views,如果需要反複修改,也算是比較麻煩了。
Drupal 6中的Vi
以前做Drupal首頁一般就是新建一個普通頁面,讓在Site information中設置為首頁就可以。不過考慮到我們現在有些系列網站包含幾十個子網站,首頁的模式基本相同,如果有些地方需要修改,就需要修改幾十個首頁,有些麻煩。
這次在新建網站的時候,就考慮使用模闆的辦法來統一,Drupal 7中沒有node--front.tpl.php,就用page--front.tpl.php來做。
修改的辦法很簡單,複制drupal_root/themes/bartik中的page.tpl.php到drupal_root/sites/all/themes/
去年初開始用Drupal的時候就找到contemplate模塊,用于定制化輸出頁面,覺得這個模塊很好用,既可以放在數據庫中也可以放在磁盤上,可以實現對每個字段的精确控制,這個模塊成了我們做各種導入數據庫的Drupal網站的必配模塊。
今年在使用Drupal 7的時候,我也準備繼續用這個模塊,但看到提示說這個模塊可能會廢棄,原因是Drupal 7有了一些與Drupal 6不同的機制。不過現在依然提供了可以在Drupal 7上運行的版本,我也試用了一下,有一些地方不是很方便,讀取字段老是報錯,breadcrumb也不能控制了。
這段時間摸索Drup
Drupal用了一年多的時間,但我們以前基本上都是簡單應用,以菜單中的設置為主,添加了少數帶有php代碼的模闆Template、區塊Block、視圖Views,還算不上進行開發。
随着網站的增多、功能需求的複雜,以後還需要進行一些開發的工作。這幾天為了讓很多個子網站共用相同的block,例如50個網站的block修改不用逐個網站打開進行菜單選擇、複制暫貼代碼,就需要編寫一個簡單的module,在這裡面加入block,以後隻需要修改這個module的代碼,就可以實現block内容的統一修改。
具體過程暫時沒空寫,以後再補。
在Drupal 6網站搭建中,我一直用Node import來導入已有數據,感覺還不錯。但近期在搭建Drupal 7網站的時候,發現Node import這個模塊已經停止開發for Drupal 7的版本了,看到推薦的替代工具是Feeds,于是這幾天摸索了一番,現在基本上可以正常使用了。有幾個地方需要注意的記錄下來:
去年在使用Drupal 6的時候,就發現用Pathauto自動生成的URL網站中,部分特殊字符會導緻頁面找不到,當時找到了解決辦法,記錄在這篇博文中《Drupal的Pathauto模塊生成帶有單引号、雙引号、反斜杠URL問題及解決》。
最近在使用Drupal 7的時候又遇到類似問題,這次不是單引号、雙引号或者反斜杠,而是+(加号)和&(and符号)出了問題,自動的編碼變成了%2B和%26,在浏覽器中無法找到。如果手工修改為%252B和%2526則可以訪問。
我在網上搜索了很多資料,找到Drupal 6的includes/common.i
上周開始嘗試Drupal網站的升級,先拿小數據量的網站做了實驗,本個人網站也算是升級成功。然後想把一個大數據量的網站也升級看看,拿了“傳真名錄”這個站來做實驗。
将其各個第三方模塊升級到Drupal 6配套的最新版本都很順利,我也就沒有把Drupal 6.20先升級到6.24,而是直接升級的,這在以前其它小數據量網站試過,沒有問題。
在Drupal 6.20中設置為“離線模式”,然後卸載所有第三方模塊,再将文件夾都換為Drupal 7.12的内容,并複制一些配置文件,在Drupal 7下就可以運行updata.php了,但看到update taxono
2002-2023 v11.7 a-j-e-0