Custom block et formulaire

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

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 :(

Forum : 
Version de Drupal : 
Tags : 

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;
}