2013-07-24 4 views
0

J'ai une vue (phase4) avec un contenu de type de contenu personnalisé, sur lequel les utilisateurs peuvent commenter.Redirection vers la dernière page lorsque le formulaire de commentaire en superposition est utilisé

Lorsque les utilisateurs veulent commenter, le formulaire de commentaire doit apparaître sous une forme modale. J'ai résolu ceci en utilisant la superposition d'admin. Ajout fonction suivante à mon module personnalisé:

function phase2_admin_paths_alter(&$paths) { 
     $paths['comment/reply/*'] = TRUE; 
    } 

et utilisant le lien suivant:

<a href="<?php print base_path(); ?>comment/reply/<?php print $fields['nid']->content; ?>">Comment</a> 

pour ouvrir le formulaire de commentaires de manière modale. Jusqu'ici tout va bien ... mais ....

Comment rediriger l'utilisateur vers la page, d'où venait l'utilisateur. Je sais que je dois remplacer le #action de la forme dans le template_form_FORMID_alter, comme

$form['#action'] = $lasturl; 

mais comment puis-je obtenir la dernière URL, de sorte qu'il est réutilisable (donc hardcoding l'URL est pas une option)?

Ma première idée était que transférer la dernière url en l'ajoutant à l'url comme $ _GET paramètres, mais il ressemble à ceci:

www.example.com/phase4#overlay=comment/reply/161%3Furl%3Dphase4 

J'ai aussi essayé avec drupal_get_destination(), mais soit sans succès, à cause de la transformation du "?" et le "=" dans l'URL.

Existe-t-il d'autres moyens de savoir d'où vient l'utilisateur?

Remarque: phase4 n'est pas l'alias du noeud 161. La phase 4 est une vue dans laquelle le noeud 161 est un élément de.

Vive Tom

Répondre

0

Vous devez utiliser la fonction drupal_get_destination() avec l() fonction pour créer de tels liens.

$destination = drupal_get_destination(); // Store current path 

<a href="<?php print base_path(); ?>comment/reply/<?php print $fields['nid']->content . "?destination=".$destination; ?>">Comment</a> 
+0

@Tom Cette réponse at-elle résolu le problème? Si oui, s'il vous plaît donner quelques commentaires (upvote, sélectionnez comme acceptable). – TheodorosPloumis

Questions connexes