2017-08-03 28 views
0

我對drupal 8非常陌生,我試圖改變自定義內容類型「Question」下的窗體。表單有一個id「節點問題表單」。如何在drupal 8中添加窗體alter hook

我已經設置了一個模塊並嘗試添加hook_FORM_ID_alter(),但它永遠不會被調用。即使最簡單的鉤子也不起作用。例如:

function constellator_form_alter(&$form, &$form_state, $form_id){ 
    echo "alter the form"; exit; 
} 

其中'constellator'是模塊名稱。

我一直堅持自從早上沒有任何工作對我來說,任何幫助將大大appriciated。正在創建一個形式,而

乾杯

+0

此模塊是否啓用? –

回答

1

hook_form_alter()和hook_FORM_ID_alter()被調用,在屏幕上顯示它。
這些函數被寫入.module文件中。
寫完之後總是清除緩存任何掛鉤函數。這讓Drupal明白這個函數已經被聲明瞭。
使用drush cr如果使用drush版本8否則點擊Manage-> Drupal 8 logo->刷新所有緩存清除緩存。 現在你可以檢查函數是否被調用。 檢查的最好方法是安裝Devel模塊,啓用它。與Devel一起,Kint被安裝。從管理界面啓用Kint。 這樣做後,您可以檢查是否鉤子被調用或不以下列方式:

function constellator_form_alter(&$form, &$form_state, $form_id){ 
    kint($form); 
} 

這將打印所有各種形式在頁面的表單變量。 如果您想在頁面中定位特定表單,例如。您構成,節點的問題形式,類型:

function node_question_form_form_alter(&$form, &$form_state, $form_id){ 
    kint($form); 
} 

使用回聲,你的方式,你可以確認功能是否被稱爲與否,沒有任何麻煩,通過查看源代碼的網頁然後使用瀏覽器的某個搜索選項搜索您已回顯的文本,例如Google Chrome瀏覽器中的Ctrl + f

+0

真棒viviv,這真的很有幫助。 –

相關問題