Как использовать функцию Devel dsm () для печати массива $ form моей формы?

8

Я хочу использовать dsm()функцию модуля Devel для печати $formмассива формы, где form_idнаходится search_theme_form. Как это сделать?

Sokratis
источник

Ответы:

12

Запустите пользовательский модуль, вставьте этот код:

/**
* Implements hook_form_alter().
*/
function foo_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'search_theme_form') {
    dpm($form);
  }
}

Кроме того, вы можете использовать dpm () вместо dsm (), поскольку последняя является устаревшей функцией.

Барт
источник
1
@sokratis Вы также можете скачать мой простой модуль для разработки форм - он добавляет dpm($form_state)даже после отправки
mojzis
это все еще точно?
Джефф
3
function THEME_form_search_theme_form_alter (&$form, &$form_state){

krumo ($form); // you can use DSM as well here

}

Замените THEME на имя вашей темы и поместите его в файл template.php. Если вы хотите сделать это из модуля, замените THEME на имя вашего модуля и поместите эту функцию в свой файл .module.

silkAdmin
источник
2

Используйте drupal_retrieve_form, чтобы получить массив структурированной формы:

$form_state = array();
dsm(drupal_retrieve_form('search_theme_form', &$form_state));
Освальд
источник