1.問題:系統的js效果失效,如views,admin,module filter。
原因:第一種可能是jquery版本問題,第二種可能是有js錯誤,用firebug檢查下。
2.問題:panels裏給page定義的動態path路徑,訪問是提示page not found
原因:設置了動態的路徑參數後,還需要在參數設置那裏給每個參數指定一個上下文環境的值。
3.如果在調用系統表單或者其它系統的內容時,沒調出來或者調的不全,
原因可能是,調用的相關函數在相應模塊的inc文件內,需要先module_load_include('inc', 'taxonomy', 'taxonomy.admin');進來。
4.views裏的字段看不到,管理員能看到,是權限問題,如果查看已經設置了權限,是否啓用了OG的group permission?
5.如果發現提交節點時,報錯說body沒填內容,但是body其實沒有設置必填,那麼檢查下是否啓用了field validation模塊(以及rules模塊)?
因爲fieldvalidation 提供了一個默認的body min words的rules,這個對中文限制有錯誤,應該被禁止掉。
6.啓用或卸載一個模塊時報錯,模塊功能不能正常使用,甚至可能出現白屏,可能是數據表未安裝或卸載成功。
確認模塊已卸載,然後直接找到該模塊安裝的數據表(.install文件查看數據表信息),刪掉即可。
7.admin menu突然沒了?具體原因不明,但是清下緩存就好了
8.解決ckeditor不能上傳圖片的錯誤
$cookie_domain = 'example.com';
9.加入你的節點顯示時,顯示出了html代碼,即代碼沒有被過濾掉,那麼應當檢查下是否這個節點保存時,沒有保存對應的輸入格式。
比如你的節點保存表單是自定義的,保存時,沒有指定輸入格式,那麼在節點顯示時,它就沒有輸入格式去處理。
10.form_set_error 只在表單驗證函數裏有實際效果,不要寫到submit函數裏。
11.Strict warning: Only variables should be passed by reference
我報錯的代碼場景:
$output .= drupal_render(drupal_get_form('import_apply_form'));
正確的寫法:
$import_apply_form = drupal_get_form('import_apply_form');
$output .= drupal_render($import_apply_form);
就是說drupal_render函數的參數是引用型的,我們不能直接傳函數進去當參數。
12.使用taxonomy_select_nodes函數,如果不限制數量,除了參數$limit = FALSE,還需要設置$pager = FALSE,否則就只顯示默認分頁的第一頁的10個
taxonomy_select_nodes($term->tid, $pager = FALSE, $limit = FALSE, $order = array('t.sticky' => 'DESC', 't.created' => 'DESC'));
13.admin 7.x-2.0-beta3 和jquery update 7.x-2.3模塊同時啓用,admin模塊的效果沒了,兩者衝突會報錯。
admin模塊的dev版修正了這個錯誤。
14.jquery update 7.x-2.3,啓用後設置jquery版本爲1.7以上,views中的字段的style setting裏的效果不正常。
它的dev版本修正了這個錯誤,並且還提供了前臺和後臺主題分別加載不同版本的jquery的設置。
15.在服務器上使用 fopen() 函數打開非物理路徑的文件地址,打不開。
是因爲服務器上php參數配置 allow_url_open 沒有設置啓用,而如果服務器上無法修改設置,那麼可以使用 drupal_realpath() 獲取文件的物理路徑作爲參數傳給fopen()。
16.List (integer)類型字段,取得的value值類型其實是字符串,而不是整數。
$node->field...['und'][0]['value']
$the_user_wrapper = entity_metadata_wrapper('user', $the_user);
$the_user_invite_comment_setting_value = $the_user_wrapper->field_invite_comment_notify->value();
17.使用video模塊做的視頻文件字段,flowplayer播放器,在view節點時,有時播放器不顯示,貌似丟失了文件,但是編輯保存後,又好了。
看起來是緩存的問題,實際上這時發現緩存(哪個緩存表存儲的文件緩存?調查下)中相應的視頻文件存儲的有時缺失url,只存儲了fid,而播放器顯示的代碼中,是直接獲取了緩存中的文件url,所以會造成“丟失”現象,應改成從fid獲取整個文件的信息。
18.現象:某個模塊的hook_init,沒有被初始化緩存到cache_bootstrap表中的module_implements記錄中,根本原因不明,經過調查,
$query = db_select('cache_bootstrap', 'cb');
$query->fields('cb', array('data'));
$query->condition('cb.cid', 'module_implements', '=');
$result = $query->execute();
$row = $result->fetchField();
$module_implements = unserialize($row);
print_r($module_implements['init']);
打印出的數組裏,init項裏沒有該模塊的名字。那麼覆蓋性的解決方案是直接去該記錄初始化的地方去判斷下,如果沒有該模塊,就強制加上該模塊。
但是後來,由於修改了settings.php中的host地址,原來是db,現在改成了localhost,這個現象又沒了!根本原因還未查明...
19.重定向循環錯誤,一般是與已有的判斷跳轉代碼衝突,形成了死循環。
比如要實現需求:非登錄用戶訪問網站,跳到登錄頁面
在hook_init裏執行drupal_goto之前,除了要判斷當前是否有用戶登錄外,還要過濾掉user/login頁面,否則就會造成重定向循環錯誤。
20.自定義的一個多行文本框,填寫規則是一行一個,提交後後臺獲取表單值,要分隔成數組。
$member_usernames = $form_state['values']['member_usernames'];
$temp = explode('\n', $member_usernames);
應該用雙引號!
21.如果發現$node->title或者其它字段信息顯示不正確,那麼檢查下在當前頁面裏,是否在別的地方有輸出這個字段信息,而且是這樣的方式:
$node->title = '***'; print $node->title;
這樣的話,被強制賦值的$node就會被緩存起來,下次你用node_load時,它就讀取你修改過的緩存了。
還可以在調用時,設置不讀取緩存來避免這種情況:
node_load(arg(1), $vid = NULL, $reset = TRUE)
22.從服務器上的站點下載到本地來搭建環境,文件已同步,數據庫也導入成功了,但是本地打開一看,好像沒有樣式和圖片加載...
去文件系統配置的頁面看了下,Temporary directory裏寫的是"/tmp",配置成"sites/default/files/tmp"。
23.配置phpmailer的發件箱地址時,要確保和站點郵箱地址一樣,否則發不了郵件。
24.如果客戶瀏覽器看不到任何js效果,對於其它網站也是如此,那麼可能是客戶的瀏覽器設置了禁止活動腳本。
25.ueditor上傳圖片時,報錯:網絡鏈接錯誤,請檢查配置後重試!
檢查settings.php中是否啓用了$cookie_domain,應該註釋掉。