Modifier le formulaire de commentaires dans page.tpl.php

Catégories:

Bonjour,

J’ai crée un petit système de login intranet pour les user anonymes, rien à voir avec les user de drupal, et lorsque nous sommes connectés une variable de session est crée. Il faudrait que j’arrive à désactiver le comment-form lorsque nous ne sommes pas connectés, et ensuite le modifier lorsque nous sommes connectés.

Pour le moment, j’ai vu que la seule possibilité était de modifier le fichier template.php, en faisant un «montheme_comment-form($form){..» cependant lorsque j’éxécute mon code, les modifications sont faites directement.
Il faudrait que je puisse faire un test de ma variable de session dans la fonction montheme_comment-form($form) mais je pense que les variables de session sont exécutés après l’exécution du fichier template.php

Ma question est de savoir si dans page.tpl.php, il est possible d’appeler la fonction montheme_comment-form($form) car ici je peux faire mon test de ma variable de session ? Pour savoir ensuite si je dois faire un unset($form) ou modifier mon $form.

Merci de votre aide

#

Tu devrai pas utiliser les sessions.Utilise la methode drupal variable_set($name, $value) pour stocke ta variable, ensuite pour la recupere tu utilise variable_get($name).

Du coup tu pourra en recupere le resultat dans template.php

MOMO Drupal en force

#

«je pense que les variables de session sont exécutés après l’exécution du fichier template.php»

Ca me parait bizarre ça. A quel moment crée tu tes sessions ? Le probleme vient peut être plutôt de là, tu ne les instancie peut être pas au bon endroit.

Sinon je pense que je ferais plutôt ça dans un preprocess, si tu n’as pas de module tu peux le faire dans template.php également :

<?php
phptemplate_preprocess_node
(&$vars) { //ou tontheme_preprocess_node
  // ici tu teste ta session
 
if($je_suis_un_anonyme) {
   
// ceci devrait empecher le node d'afficher le formulaire de commentaire sous tes nodes.
   
$vars['node']->comment = COMMENT_NODE_DISABLED;
  }

}
?>

«variable_set($name, $value) «

variable_set ne fonctionne pas du tout comme des sessions php, je ne pense pas que ça l’aide à résoudre son probleme.

#

oui tu a raison, si il veut utiliser les session et tout leur avantage(genere temp de vie),le variable_set ne sera pas bon.Mais si il veut se contenter de recupere et modifier une varaible dans template.php, ca peut convenir.Mais ta solution est la meilleure.

MOMO Drupal en force

#

Désolée de ma réponse si tardive, je suis partie en formation donc impossible de continuer mon développement. Merci pour ces réponses, je vais tester aujourd’hui vos solutions.

Je crée ma variable de session dans un script php qui est appelé dans une fonction php dans template.php mais je vais tester la fonction de preprocess.

Je vous tiens au courant, merci

Syndiquer le contenu