У меня есть этот код, который реализует hook_form_alter для формы поиска durpal и добавляет пару новых элементов. Я также добавил тему переписать код в моей template.php для указанной формы. В дополнение к этому, я также передаю элементы формы там. Все работает отлично - добавляет новые элементы, тема используется, но вот в чем проблема. Когда я пытаюсь отобразить каждый элемент формы с помощью drupal_render, он ничего не отображает. Я проверил содержимое массива $ form и получил все необходимые данные формы. Это, кроме моего кода -drupal_render не отображает элемент формы
mymod.module
function mymod_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'search_theme_form':
$form['prop_type'] = array(
'#type' => 'select',
'#default_value' => 'Selection A',
'#options' => array("Selection A","Selection B"),
'#attributes' => array('class'=>'Bold'),
);
break;
}
}
template.php -
function mytheme_theme() {
return array(
'search_theme_form' => array(
'arguments' => array('form' => NULL),
'template' => 'search_myblock_form',
),
);
}
И есть еще одна странная проблема, которая, ДСМ Devel не смог даже показать, что внутри $ form. Мне пришлось использовать print_r, чтобы сначала получить строковое значение и передать его в dsm для отображения. Для чего стоит другое дело, внутри шаблона темы есть эта переменная ($ search_form) со всеми моими элементами формы. Поскольку я хочу, чтобы тема отдельного элемента по-разному, я не могу использовать его; Мне нравится делать отдельный элемент самостоятельно.
'dsm()' следует за разрешениями. Люди, не имеющие разрешения на доступ к информации о развитии, не будут видеть вывод dsm(). – berkes
Я вхожу в систему как администратор. Таким образом, право доступа не является проблемой. – Andrew