CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 20-05-2015 13:37:11

pierrot10
Forêt noire
Date d'inscription: 20-11-2013
Messages: 115

Problème pour configurer Paginator

Bonjour,

J'ai toujours un petit problème avec mon Paginator

Si vous regarder les site

http://www.meet-run.ch/courses/index/page:4

Vous tomber sr la page 4.

Si en suite vous passer la souris sur les liens du paginator en redescendant, page3, page 2, pag 1,

VOus pouvez voir ces liens

Code: php

  1. http://www.meet-run.ch/courses/index/page:4
  2. http://www.meet-run.ch/courses/index/page:3
  3. http://www.meet-run.ch/courses/index/page:2
  4. http://www.meet-run.ch/courses

J'ai absolument besoin que le lien de la page 1 s'affiche ainsi

Code: php

  1. http://www.meet-run.ch/courses/index/page:1

C'est important car dans quelques jours ou semaine ou il y aura plus de 17 courses archivée et je souhaite que la page 3, qui contient la 18eme course s'affiche à la page de la page 1.

Je choissi ma page par défaut ainsi:

   

Code: php

  1.  
  2. [..code qui va définir la page ...]
  3. $page = 3
  4. $this->paginate = array('Course'=>array('limit'=>$paginationLimit,'order'=>'date ASC, name ASC','page'=>$page,'recursive'=>false));

Le problème, c'est qu'actuellement, si je suis sur la page 3 ou 4, et que je clique sur le numéro 1 du paginator, il me redirige sur la page 3 ou 4, SAUF si le lien est ainsi

Code: php

  1. http://www.meet-run.ch/courses/index/page:1

Donc comment je peux faire pour mon lin 1 du paginator affiche aussi les paramètres??

Milles merci

Hors ligne

 

#2 20-05-2015 14:34:14

cyberbobjr
Baker
Date d'inscription: 13-07-2010
Messages: 625

Re: Problème pour configurer Paginator

Bonjour,
quelle version de CakePHP ? (je rappelle à tous les posters que le titre de votre discussion doit indiquer le numéro de version de CakePHP svp)


Développeur freelance et disponible, contactez-moi en privé.
Mon blog CakePHP : http://caketuts.key-conseil.fr

Hors ligne

 

#3 20-05-2015 14:37:28

pierrot10
Forêt noire
Date d'inscription: 20-11-2013
Messages: 115

Re: Problème pour configurer Paginator

Bonjour, oui excuse moi, j'ai la version 2.5. J'ai pas migré

Hors ligne

 

#4 20-05-2015 14:39:03

cyberbobjr
Baker
Date d'inscription: 13-07-2010
Messages: 625

Re: Problème pour configurer Paginator

ok il y'a un truc que je ne comprends pas dans ta phrase :

C'est important car dans quelques jours ou semaine ou il y aura plus de 17 courses archivée et je souhaite que la page 3, qui contient la 18eme course s'affiche à la page de la page 1.

Est-ce à dire que dans quelques jours la page 3 s'affichera par défaut ? ou que les courses actuellement présentes dans la page 3 s'afficheront dans la page 1 ?


Développeur freelance et disponible, contactez-moi en privé.
Mon blog CakePHP : http://caketuts.key-conseil.fr

Hors ligne

 

#5 20-05-2015 14:57:51

pierrot10
Forêt noire
Date d'inscription: 20-11-2013
Messages: 115

Re: Problème pour configurer Paginator

Alors excuse, je m'explique.
Je viens de mettre en ligne et la premiere course, c'est dire, la plus ancien est la course du 14 mars 2015. Elle est grisée. Aujoird'hui il y a 6 courses passé. Donc on est toujours sur la page 1.

Il y a 8 courses par page

Le 21 mai, il faudra que lorsque l'on tape /courses/, il afficge la page 2, soit l'équivalent de

Code: php

  1. http://www.meet-run.ch/courses/index/page:2

et ainsi de suite. Donc dans 3 ou 4 semaines, peut etre que ca sera la page 4 ou 5 qui sera affiché par defaut car sur l'une des deux page il y aura la prochaine course.

J'aimerais que les visiteurs puissent revenir en arrière pour voir les courses passé.

Je le fais comme indiqué ci-dessus.

Tout fonctionne, sauf que, si la page par defaut est 4, par exemple , je ne peux pas revenir sur la premiere page car il me renvoyera sur la page 4, car Paginate génère le premier lien ainsi

Code: php

  1. http://www.meet-run.ch/courses/

alors que pour toutes les autres page, il ajoute index/page:2

Il faurdait donc que je trouve comment faire pour que mon premier lien affiche toujours comme ceci

Code: php

  1. http://www.meet-run.ch/courses/index/page:1

et la ca marchera.

Ou alors faire en sorte que quand je clique sur mon premier lien, pour acceder à ma premiere page, que je ne sois pas redirigé vers la page 4, parce qu'il y a 24 courses archivée (3x8)

Tu vois?

Hors ligne

 

#6 20-05-2015 15:28:44

cyberbobjr
Baker
Date d'inscription: 13-07-2010
Messages: 625

Re: Problème pour configurer Paginator

dans ton action index de ton controller courses, tu vérifie si le paramètre nommé page est spécifié :

Code: php

  1. if (!isset($this->request->named['page']))

Si le paramètre page n'est pas spécifié, alors tu fait une redirection en indiquant vers l'index en indiquant le paramètre nommé page (après l'avoir calculé bien entendu) :

Code: php

  1. $this->redirect(['action'=>'index','page'=>1]);

au complet cela te donnerait :

Code: php

  1. if (!isset($this->request->named['page'])) {
  2.             /** calcule du paramètre $page */
  3. ...
  4.             $this->redirect(['action'=>'index','page'=>$page]);
  5.         }

Petite mise en garde : les paramètres nommés sont deprecated dans CakePHP v3.
Tiens moi au courant
a++


Développeur freelance et disponible, contactez-moi en privé.
Mon blog CakePHP : http://caketuts.key-conseil.fr

Hors ligne

 

#7 20-05-2015 15:29:47

pierrot10
Forêt noire
Date d'inscription: 20-11-2013
Messages: 115

Re: Problème pour configurer Paginator

t'es genial, j'essaye aussi tot que j'aurai fini ce que je fais maintenant

Hors ligne

 

#8 20-05-2015 15:53:17

pierrot10
Forêt noire
Date d'inscription: 20-11-2013
Messages: 115

Re: Problème pour configurer Paginator

C'est nikel, ca marche, je l'ai juste avant le $pigante

Code: php

  1.   function index(){
  2.  
  3.     $paginationLimit = 8;
  4.  
  5.     // Count the number of archived courses
  6.     $nbArchive = $this->Course->find('count',array('conditions'=>array(
  7.       'active'=> 1,
  8.       'online'=>1,
  9.       'date < DATE_FORMAT(NOW(),\'%Y-%m-%d\')'
  10.     )));
  11.  
  12.  
  13.  
  14.     $nbArchive= 25; // Juste to simulate 25 archived race
  15.  
  16.     $page = ceil($nbArchive/$paginationLimit);
  17.  
  18.     $this->Course->contain('Tag','Media'); // Ceci a été ajouté pour la jointure des tag (ArticlessTags)
  19.     //$this->Article->contain('Tag');
  20.  
  21.     if (!isset($this->request->named['page'])) {
  22.  
  23.           $this->redirect(['action'=>'index','page'=>$page]);
  24.          }
  25.    
  26.     $this->paginate = array('Course'=>array('limit'=>$paginationLimit,'order'=>'date ASC, name ASC','page'=>$page));
  27.  
  28. //    $d['courses'] = $this->Paginate('Course',array('online'=>1,'active'=>1,'date >= DATE_FORMAT(NOW(),\'%Y-%m-%d\')'));
  29.     $d['courses'] = $this->Paginate('Course',array('online'=>1,'active'=>1));
  30.  
  31.     $this->Session->write('Page.description',__("Calendrier des courses pédestres en Suisse romande. Retrouver plusieurs disciplines comme le trail, le cross, le nordic walking et vtt tout comme le cycle"));
  32.     $this->Session->write('Page.keywords',__("trail,cross,nordic walking"));
  33.  
  34.     $this->loadModel('Canton');
  35.     // Le list recupere la valeur des IDs et cherche un champs qui a la valeur "name"
  36.     $d['cantons'] = $this->Canton->find('list',array('order'=>'name ASC'));
  37.  
  38.     if (!isset($this->request->named['page'])) {
  39.  
  40.           $this->redirect(['action'=>'index','page'=>$page]);
  41.          }
  42.  
  43.     $this->set($d);
  44.   }

Hors ligne

 

#9 20-05-2015 15:56:27

pierrot10
Forêt noire
Date d'inscription: 20-11-2013
Messages: 115

Re: Problème pour configurer Paginator

Théoriquement, demian, ild oit m'afficher la page 2, par defaut, et je dois pouvoir retourner sur la page 1 pour voir les courses passées. Merci

Hors ligne

 

#10 20-05-2015 17:22:01

cyberbobjr
Baker
Date d'inscription: 13-07-2010
Messages: 625

Re: Problème pour configurer Paginator

Pas besoin d'attendre, dans ton environnement de dev tu forces ta date à demain smile


Développeur freelance et disponible, contactez-moi en privé.
Mon blog CakePHP : http://caketuts.key-conseil.fr

Hors ligne

 

#11 21-05-2015 01:24:43

pierrot10
Forêt noire
Date d'inscription: 20-11-2013
Messages: 115

Re: Problème pour configurer Paginator

Ca ne marche pouas!!!

Ca marche,mais le menu "calendrier" ne doit pas transformer. /courses en /courses/index/page:1

J'ai résolu mon problème avec jQuery

Code: php

  1. $('.pagination ul li a[href="/courses"]').attr('href', '/courses/index/page:1');

Bon si on peut le faire avec Paginate, c'est mieux yikes)

Hors ligne

 

#12 09-09-2016 10:14:55

Fath_Emma
Chouquette
Date d'inscription: 21-07-2016
Messages: 4

Re: Problème pour configurer Paginator

Bonjour,


Je ne sais pas comment poster une question, du coup j en profite pour la mettre en réponse! je bloque sur paginator en cakephp3, je suis débutante et je rencontre beaucoup de difficultés. quelqu'un pourrait m aider SVP??

Merci

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr