Gestion de la page précédente dans eZ Publish

Lorsque vous créez vos propres modules, il est parfois intéressant de rediriger le visiteur vers une vue antérieur. Pour récuperer l'URI de la dernière vue utilisée, eZ Publish met à notre disposition une variable de session, "LastAccessesURI", qui peut être appelée dans une des vues de vos modules de cette façon :

$http = eZHTTPTool::instance();
$http->sessionVariable( "LastAccessesURI" );

Vous obtiendrez alors la dernière page visitée par l'utilisateur avant l'appel de votre vue.

Là où il peut y avoir problème, c'est lorsque cette dernière page visitée n'est pas vraiment pertinente. Par exemple lorsqu'il s'agit d'une page d'édition de contenu, ou de l'appel d'une méthode AJAX : il peut être déroutant pour l'utilisateur de se retrouver sur l'édition d'une version d'objet qui n'existe plus ou sur le retour d'une portion d'HTML qui est générée par une de vos vues orientée AJAX...

La solution se trouve dans la déclaration de vos vues au niveau de votre module.php, dont voici un fragment d'exemple :

$ViewList["ajax_action"] = array( 'script' => 'ajax_action.php',
                                  'functions' => 'action',
                                  'ui_context' => 'edit',
                                  'params' => array( 'objectID' ) );

Pour faire en sorte que la vue ne soit pas retenue comme 'dernière URI utilisée', il suffit de mettre dans l'index 'ui_context' une des valeurs suivantes : 'edit', 'administration', 'browse' ou 'authentication'.

Une page chargée après l'appel de la vue "ajax_action" n'aura donc pas cette dernière comme "LastAccessURI", mais bien la dernière page "utile" visitée par l'utilisateur.

Pour en savoir plus, voir dans le code : /index.php aux environs de la ligne 880 (eZ Publish 4.1.3).

Commentaires

Authentifiez vous pour commenter.