Salut la team developpez

Comme le dit si bien le titre de ce post, je recherche à faire un plugin de sauvegarde dans un array enregistrer en session une liste des 10 dernieres uri parcouru par le visiteur....

voila le code du dit plugin:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
class saveVisitorPath extends Zend_Controller_Plugin_Abstract
{
    /**
    * object de session pour le nom d'espace system
    *
    * @access  private
    * @var     object Zend_Session_Namespace object
    */
    private static $session_system = null;
 
    /**
    * Sauvegarde de la requete après routage de la requete
    * en surchargent la methode routeShutdown
    *
    * @name    routeShutdown
    * @access  public
    * @param   object $request object request du front controlleur
    */
    public function routeShutdown(Zend_Controller_Request_Abstract $request)
    {
        /**
        * On recupere le nom d'espace de session "system" et on le deverouille si verouiller
        */
        self::$session_system = Zen_Session::getNamespace('system');
        if(self::$session_system->isLocked()) self::$session_system->unLock();
 
        /**
        * On verifie que la variable de session visitorPath existe sinon on l'initialise
        */
        if(!isset(self::$session_system->visitorPath)) self::$session_system->visitorPath = array();
 
        /**
        * On recupere l'uri de l'objet de request et on l'enregistre en session
        */
        if(count(self::$session_system->visitorPath)==10)
        {
            array_splice(self::$session_system->visitorPath, 0, 1);
        }
 
        array_push(self::$session_system->visitorPath, $request->getRequestUri());
        self::$session_system->lock();
 
 
// pour test ///////////////////////////////////////////////////
print_r($this->_request);
echo '<br />_____________________________<br />';
 
print_r(self::$session_system->visitorPath);
////////////////////////////////////////////////////////////////
 
 
    }
}
mon soucis est que dans le cas de l'utilisation de ce plugin, le print_r(self::$session_system->visitorPath); retourne ceci:

Array ( [0] => /index [1] => /page1 [2] => /index/page1 [3] => /page2 [4] => /page2 [5] => /page3 )
au lieu de ceci:
Array ( [0] => /index [1] => /page1 [2] => /index/page2 [3] => /page3)
j'ai de repetition de la page precedente, à l'enregistrement de la page demander (appeler)...

Si quelqu'un à une idée ?
cela ne vient pas de la façon de definir la var de session et de travailler mes tableau en tout cas car j'ai essayer divers chose mais rien ne fait, c'est toujours le même problème... PS ne faite pas attention non plus à Zen_Session qui pourrai ête confondu avec Zend_Session car c'est une class perso de gestion des session Zend_Session

Merci d'avance