Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai un petit souci avec ma route, Zend_View_Helper_Url et ma pagination.
J'ai en place la route suivante :
$route = new Zend_Controller_Router_Route_Regex( '(?:(\d+))?', array('controller' => 'index', 'action' => 'index'), array(1 => 'page'), '%d' ); $router->addRoute('index', $route);
Cette route fonctionne, cependant le paramètre reset semble inefficace lors de l'assemblage de l'url pour ma pagination.
J'aimerais que lorsque la page == 1, le paramètre page ne soit pas spécifié pour qu'il ne soit pas présent dans l'url et éviter d'avoir 2 pages identiques (http://www.domain.com et http://www.domain.com/1).
Voici la mis en place les liens de pagination suivants :
$params = $i == 1 ? array() : array('page' => $i); echo $this->url($params, null, true);
Or, lorsque la page == 1, il garde le paramètre actuel de la page (exemple: si je suis sur la page 3, il va mettre http://www.domain.com/3)
Avez-vous une idée du problème?
Je vous remercie
Hors ligne
Je crois que j'ai une piste :
http://framework.zend.com/issues/browse/ZF-6065
A+
Hors ligne
Je souhaiterais savoir ou chercher dans ce genre de situation
Par exemple ou trouver que le 3eme parametre d' url() quand on est dans une vue est le fameux "reset"
je l'ai appris apres moulte recherche sur google, sur la doc officielle j'ai cherché dans zend_view... mais il m'indiquait que l'utilisation normal d'url a savoir un array avec controller et action, aucune mention de ce fameux reset
Hors ligne
Oui, j'avoue qu'on est un peu obligé de se pencher sur le code.
Concernant mon problème, j'ai appliqué le patch mais ça ne change rien. Il est impossible de spécifier un paramètre optionnel dans une route?
Hors ligne
J'ai plus ou moins trouvé une solution, la voici :
$route = new Zend_Controller_Router_Route_Regex( '(?:(\d+))?', array('controller' => 'index', 'action' => 'index', 'page' => null), array(1 => 'page'), '%s' ); $router->addRoute('index', $route);
Dans la pagination :
echo $this->url(array('page' => ($i) == 1 ? null : $i));
A+
Dernière modification par dug (22-07-2009 17:58:09)
Hors ligne