J'ai ce code qui implémente hook_form_alter pour le formulaire de recherche durpal et y ajoute quelques nouveaux éléments. J'ai également ajouté le code de remplacement de thème dans mon template.php pour ledit formulaire. En plus de cela, je passe également des éléments de formulaire là-bas. Tout fonctionne bien - ajoute de nouveaux éléments, le thème est utilisé, mais, voici le problème. Lorsque j'essaie de rendre chaque élément de formulaire avec drupal_render, cela ne montre rien. J'ai vérifié le contenu du tableau $ form et il a toutes les données de formulaire nécessaires. Ceci est l'exception de mon code -drupal_render ne restitue pas l'élément de formulaire
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',
),
);
}
Et il y a aussi un problème bizarre, qui est, le dsm de devel ne pouvait même pas montre ce qui est à l'intérieur de $ form. J'ai dû utiliser print_r pour obtenir la valeur de la chaîne en premier et l'alimenter en dsm pour l'affichage. Pour ce qui vaut la peine, une autre chose est, à l'intérieur de mon modèle de thème, il y a cette variable ($ search_form) avec tous mes éléments de formulaire rendus. Comme je veux traiter l'élément individuel de manière différente, je ne peux pas l'utiliser; J'aime rendre l'élément individuel par moi-même.
'dsm()' suit les permissions. Les personnes n'ayant pas la permission d'accéder aux informations de Devel ne verront pas la sortie de dsm(). – berkes
Je me connecte en tant qu'administrateur. Donc, l'accès n'est pas un problème. – Andrew