2012-06-16 47 views

回答

2

這是解決了所有的代碼,感謝您的幫助:

function yourmodule_form_alter(&$form, &$form_state, $form_id) { 
    if (($form_id == 'block_admin_configure') && ($form['module']['#value'] == 'search')) { 
    $form['settings']['theplaceholder'] = array(
     '#type' => 'textfield', 
     '#title' => t('Add placeholder text'), 
     '#default_value' => variable_get('theplaceholder'), 
     '#maxlength' => 64, 
     '#description' => 'Override the default placeholder', 
     '#weight' => 2, 
     '#access' => TRUE, 
    ); 
    $form['#submit'][] = 'yourmodule_submit_function'; 
    } 

if ($form_id == 'search_block_form') { 
    $form['search_block_form']['#attributes']['placeholder'] = variable_get('theplaceholder'); 
    } 
} 
function yourmodule_submit_function($delta = '', $edit = array()){ 
    variable_set('theplaceholder', $edit['values']['theplaceholder']); 
} 
+0

我很高興它解決了。它看起來像你確實使用了form_alter鉤子,提交函數和variable_get和variable_set畢竟... –

+0

是的,一切都完美安裝,謝謝你的幫助! – itsututa

1

您可以使用下面的鉤子來修改任何形式:

function MODULE_NAME_form_FORM_ID_alter(&$form, &$form_state, $form_id) { 

} 

插入自己的模塊名稱而你試圖改變發票的發票號。在你的情況下,它只是塊的搜索形式或搜索塊形式。通過查看頁面的html源代碼並從元素中獲取id,找出您嘗試更改的表單的id。

在任何情況下,一旦你想通了正確的ID插入,開始添加元素的形式:

function MODULE_NAME_form_FORM_ID_alter(&$form, &$form_state, $form_id) { 
    $form['my_new_field'] = array(
    '#type' => 'item', 
    '#markup' => t('Just testing'), 
    '#weight' => 10, 
); 
} 

負載的形式向上,以確保您的新標籤,字段或無論是顯示向上。

爲你做這項工作?

此功能

更多的文檔是在這裏:http://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_form_FORM_ID_alter/7

+0

感謝您的回覆;該代碼在前端添加了字段,我想要的是搜索塊的配置設置上的文本框,以便我可以輸入佔位符文本,然後使其在前端輸出... – itsututa

+0

哦,這是同一校長。如果已經有一個搜索框配置表單,您可以查看源代碼以獲取該表單的ID並將ITS id放入函數名稱中。只需在html源代碼中查找

元素並獲取該ID即可。你嘗試過嗎?你可以使用這個相同的鉤子來改變任何形式。讓我知道如果你設法找到正確的形式ID ... –

+0

好吧,我試過了,不渲染塊管理表上的文本框: – itsututa

相關問題