本人從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網站的時候,都是用Drush腳本,其中運行PHP程序調用field_create_instance來創建新的字段。
現在需要将已經創建好的字段進行一些設置修改,例如在teaser模式顯示一部分字段内容,以後需要手工在網站菜單中操作,系列網站多的時候很麻煩,今天在網上查了一下資料,可以實現程序批量處理,具體PHP程序代碼如下:
# change content type fields' teaser display drush ev '$instance=field_info_insta
在升級Drupal網站時需要特别注意曾經對哪些模塊進行過更改,我們這裡主要修改過的記錄一下:
Google Analytics我們已經用了很多年,甚至在Google推出Analytics之前還是測試版的時候就申請試用。後來Analytics陸續推出的一些新功能,例如與AdSense的結合功能、新異步代碼等我們都跟着使用了,感覺還是很不錯的。
不過以前主要都是跟蹤網站訪問情況、流量來源、訪問明細等,重視SEO效果、AdSense收入這些,對于Analytics中的“轉化”這一塊雖然看到了但一直沒有關注。最近在投放AdWords廣告來促進銷售,這就需要更精細的追蹤,1月份這段時間研究了Drupal上使用Analytics進行統計和訂單銷
最近總看到Drupal系統有安全升級的提示,忙于别的事情拖了一陣子,現在準備來進行,上次大規模升級還是在2013年3月,再之前就是2012年2月嘗試升級,以及2011年初開始使用Drupal。
首先把我的個人網站升級,這個網站所在的服務器重裝過,目前PHP用的5.2.x版本,不支持Drush,所以先隻好用手工升級,步驟如下:
最近同事在為以前Drupal 6做的網站擴展多語言時發現一個問題,Drupal Core的内容找不到翻譯,例如‹ previous next ›以及菜單項都沒有翻譯,經查是翻譯更新列表(admin/build/translate/update)中本來應該是Drupal 6.28的版本不知道為什麼錯誤識别為6.29了,因此找不到翻譯信息。
這個識别錯了版本的原因還沒有找到(我估計是l10n模塊把提示需要進行完全更新到的6.29的版本錯誤當成當前版本了),但可以手工在Drupal數
同事反映在用Drupal Ubercart搭建的網站中添加産品時速度非常慢的問題,産品頁面可以編輯,但在添加關聯下載文件的時候就需要長時間等待甚至超時報錯,先以為是服務器性能或者MySQL的問題,折騰了兩天都沒有多大效果,今天把排錯神器devel安裝上,很快就發現是該頁面需要運行8000多次數據庫查詢,而我們現在大約有4000個産品關聯文件,也就是該頁面需要循環4000次、每次2個數據庫查詢。
網上搜索了很久(用ubercart feather file slow等關鍵詞都找不到準确的,後來用devel發現的重複MySQL查詢名稱查到的),終于找到與我們的情況基本
以前在設置MediaWiki網站的時候,是把一些共用的修改放在CommonSettings.php中,然後LocalSettings.php中最後加入一行:
require_once( "/usr/local/apache2/htdocs/common/CommonSettings.php" );
就可以讓一系列的網站都共用CommonSettings.php這個文件中的設置,比較簡單、方便,我們一直在采用。
在Drupal的網站中,因為需要在settings.php中做的修改不算多,所以以前就沒
最近在處理一些小問題的時候積累了一些小程序來解決,現在記錄下來以備後用。
Drupal多語言網站是通過.po的翻譯文件來導入翻譯數據的,有一批國家/地區名稱需要導入,而以前的.po文件中包括了一部分,隻需要找出并添加新的詞,這個過程人工來核對比較麻煩,就用了下面這段程序:
<?php // check what countries should be added to translation file // james qi 2013-8-14 祁勁松 $array_country=array(//總的需要導入翻譯的詞列表 &
我們用Drupal做過桌面版網站、手機版網站,中文版網站、英文版網站、更多語言版本網站,這些站之間除了頁面看得見的互相鍊接以外,還可以而且應該在源代碼中進行鍊接,以便讓搜索引擎更了解頁面之間的關系。
請看Google的推薦:
手機版鍊接我們以前添加過,現在也來添加多語言版本,Drupal 7中可以修改html.tpl.php來實現,Drupal 6可以通過修改page.tpl.php來實現。
多語言Drupal網站的站點地圖有一個名為xmlsitemap_i18n (XML sitemap internationalization)的插件,安裝後就可以用為網站添加、生成各種語言相應的xmlsitemap,這個功能很強,特别是對于各種語言版本有不同的網址、不同的内容、不同的頁面數量的複雜情況,都可以适用。
但我們在實際使用中,因為網站的數據量大(頁面數達到幾十萬甚至上百萬)、語言多(50種語言)、子網站多(一個系列可能有幾十甚至幾百個子網站),生成站點地圖需要很長時間,而我們網站的多語言沒有頁面數量不同的情況,每個頁面的每種語言都有一一對應的頁面,生成的
2002-2023 v11.7 a-j-e-0