Submitted by Altes on
Bonjour,
j'ai une petite question, j'ai créé un block dans un module perso.
Il apparait dans la liste des blocks de drupal, et je l'attribue à ça region, jusque la tout va bien.
Ce block en question est un formulaire de recherche.
Maintenant je créer un formulaire avec une url fait par programmation.
Ce formulaire s'affiche sur ma page, et j'ajoute au sein de ce formulaire une colonne droite dans lequel j'appelle mon block comme ceci :
$block = block_load('moduleTest', 'test');
$block_droite = drupal_render(_block_get_renderable_array(_block_render_blocks(array($block))));
print $block_droite;
Le block s'affiche pas de souci, mais lorsque j'utilise le bouton submit de ce block, il n'execute pas la fonction hook_submit() du module, il se contente juste de rafraichir la page sur laquelle on est.
Du coup je teste le block sur un vrai page créé par drupal avec un vrai adresse URL, genre l'accueil, et la le module s'execute correctement.
J'ai remarqué que pour toutes les pages créé par programmation, lorsqu'on ajoute le block via programmation il ne s'execute pas sur le bouton submit (c'est un block perso qui fait une petite recherche d'article)
Quelqu'un aurait une idée ?
Je ne peux pas le faire via page.tpl.php car si je crée le template pour ma page créé par programmatoon :
$item[articlePerso]
{
}
articlePerso.tpl.php avec ça colonne à droite c'est parfait
Mais pour le detail de l'article qui elle est en page pleine, comment lui attribuer un template sachant qu'elle est declaré comme ceci
$item[articlePerso/%/%]
{
}
qu'elle va etre son template ? j'ai testé, il prends le meme que articlePerso.tpl.php :(
Bonjour,
Permalien Soumis par Damien LAGUERRE le 18 Avril, 2014 - 10:14
Bonjour,
Il faut bien éclater les éléments en différentes fonctions.
function MONMODULE_block_view($delta){
if($delta === 'mon_block'){
$form = drupal_get_form('mon_form');
$block['subject'] = 'titre du block';
$block['content'] = render($form);
return $block;
}
}
function mon_form($form,&$form_state){
$form['submit'] = array('#type' => 'submit','#value'=>t('Submit'));
return $form;
}