Drupal

[Drupal]解決表單#ajax失效及出現 Undefined index: #ajax 錯誤的問題

碰到這個問題,主要是在利用#ajax實作 dependt field時,原本一切正常,然後突然莫名其妙功能失效,因為過程中多做了一堆js程式,還以為是後來寫的造成衝突,結果浪費了半天生命,突然心血來潮查syslog才發現,原來問題不在js,而是在php啊...T_T

Google了好久,終於找到問題出在image_button,因為我照著Form API 利用image_button取代了原本的submit,

而因為#ajax 還是利用submit來觸發取回form item的作業,所以改回原本的submit就恢復正常了。

但總覺得如果這樣的話,image_button也太雞肋了,繼續Google,試了老半天,最後在這裡看到一個-2分的答案,把image_button的 #value 移除,因為沒招了死馬當活馬醫,結果竟然成功了!!

雖然解決問題了,但實在莫名其妙啊!!

Drupal 模組開發 - 嵌入views(with exposed filter)

要在頁面或區塊中嵌入一個views的view,有兩個作法。

簡單的應用,可以直接利用 views_embed_view() 來達成,語法範例如下:
 

//views_embed_view('views_machine_name','display_id'[, $contextual_args]);
print views_embed_view('blog_posts','block_1', $node->nid);

但如果需要嵌入包含exposed_filter的views,又不希望頁面中出現exposed filter的表單時,可能就必須用views_get_vew(),方法如下:

Drupal 模組開發 - 建立自訂的區塊(block)

雖然drupal 7本身提供的block模組已經可以建立自訂的block,不過當需要與整個自訂模組整合的時候,總不能讓使用者端在安裝玩模組之後,還自己去新增block才能使用吧,這樣「模組」都不「模組」了。

所以本篇主要要談的是如何在模組中建立自訂的block,範例程式可參考這篇

主要的掛勾函數(hook_block_xxx)如下: