IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres composants PHP Discussion :

Zend Paginator, sans MVC [ZF 1.8]


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 47
    Par défaut Zend Paginator, sans MVC
    Bonsoir,

    Je m'essaye à Zend_Paginator sans l'architecture MVC (mais avec le moteur de template Smarty). En lisant la documentation c'est apparemment possible, sauf que dans les faits, il n'y a pas d'informations à ce sujet.

    Voici ce que j'ai fais:

    Traitement

    (...)

    $tableau = array( "Armando Padilla",
    "Thomas",
    "Elisa",
    "Francisca",
    "Guillaume",
    "Sarah");

    $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($tableau));
    $paginator->setItemCountPerPage(2);
    $paginator->setCurrentPageNumber(1);
    Zend_Paginator::setDefaultScrollingStyle('Sliding');

    (...)

    $smarty = new Smarty;

    $smarty->template_dir = cTemplate;
    $smarty->compile_dir = cTemplate_c;

    $smarty->assign('paginator', $paginator);

    (...)
    Vue

    {foreach key=key item=items from=$paginator}
    $items
    {/foreach}
    Cela m'affiche bien les 2 entrées de mon tableau, comme précisé en paramètre avec setItemCountPerPage(2).

    Sauf que je ne vois pas comment créer le menu de pagination, avec les boutons précédent et suivant. Pouvez-vous m'aider ?

    Voici le code pour le bouton précédent dans une architecture MVC (sans smarty) que j'aimerai traduire en smarty :

    <?php if (isset($this->previous)): ?>
    <a href="<?php echo $this->url(array('page' => $this->previous)); ?>">&lt; <?php echo "précédent"; ?></a> |
    <?php else: ?>
    <span class="disabled">&lt; <?php echo "précédent"; ?></span> |
    <?php endif; ?>
    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 178
    Par défaut
    Hello,

    De ce que je vois dans le code de Zend_Paginator, ce qui est renvoyé par getPages() est effectivement un stdClass et non pas un array, tu peux voir ça dans Zend_Paginator::_createPages().

    Donc, je sais pas comment tu dois écrire l'accès à une propriété d'un objet à smarty mais ce n'est en tous cas pas via une notation tableau que ça marchera.

    Perso, j'essaierai avec {$pages->pageCount}


  3. #3
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 47
    Par défaut
    Edit: A priori mon problème est réglé, je cherchais les informations dans $paginator au lieu de $paginator->getPages

    Merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Par défaut Zend Paginator
    Bonjour,
    Je suis dans la même problématique.
    Je débute avec zend et smarty. Je serai interessé par le bout de code permettant de faire la pagination en smarty.

    Peux tu le mettre à disposition stp?

    Merci d'avance.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Par défaut Zend Paginator avec Smarty
    Après avoir galérer sur le sujet, je fais partager ma recherche.

    Partie Controleur
    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
     
    public function listeclientafficherAction()
    {
    $this->listerclientAfficher($tableauUtilisateur);
    } 	
     
     
    private function listerclientAfficher($tableau)
    {
      $idPage = $this->_getParam('page');
      if($idPage =='')
     	$idPage = 1;
    $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($tableau));
    $paginator->setItemCountPerPage(5);
    $paginator->setCurrentPageNumber($idPage);
    Zend_Paginator::setDefaultScrollingStyle('Sliding');
     
    $this->view->paginator= $paginator;
    $this->view->pages = $paginator->getPages();
     }
    Partie Vue

    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
     
        <TABLE> 
                <tr class="enteteTableau">
                    <td ><b>Id </b></td>                
                    <td ><b>Nom</b></td>
                    <td ><b>Prénom</b></td>
                </tr>
     
                {foreach from=$paginator item=utilisateur name=iterationUtilisateur }
                {if $smarty.foreach.iterationUtilisateur.iteration % 2 == 0}
                  <tr class="even">
                {else}
                  <tr class="odd">
                {/if}
                  <TD>{$utilisateur->getId()}</TD>
                  <TD>{$utilisateur->getNom()}</TD>
                  <TD>{$utilisateur->getPrenom()}</TD>
                </TR>
              {/foreach}
          </TABLE>
          <br>
          <div id="divPaginationControl"> 
              {if ($pages->pageCount)}
                <!-- Lien vers la page précédente --> 
                {if ($pages->previous)}
                    <a href="{$baseUrl}/utilisateur/listeclientafficher?page={$pages->previous}">&lt; Précédent</a> | 
                {else}
                  <span class="disabled">&lt; Précédent</span> | 
                {/if}
                <!-- listes des liens des Numéros de pages -->
                {foreach item=page from=$pages->pagesInRange } 
                   {if ($page != $pages->current)}
                      <a href="{$baseUrl}/utilisateur/listeclientafficher?page={$page}">{$page}</a> | 
                   {else}
                      <span class="current">{$page}</span> | 
                   {/if}
                {/foreach}
                <!-- Lien vers la page suivante --> 
                {if ($pages->next)}         
                  <a href="{$baseUrl}/utilisateur/listeclientafficher?page={$pages->next}">Suivant &gt;</a>
                {else}
                  <span class="disabled">Suivant &gt;</span>
                {/if}         
              {/if}
          </div>  
        </div>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ZF 1.7] zend form sans mvc snif galere
    Par speed034 dans le forum Zend_Form
    Réponses: 3
    Dernier message: 06/05/2009, 13h02
  2. Réponses: 6
    Dernier message: 04/01/2009, 20h37
  3. Atelier Utiliser Zend Paginator dans un environnement MVC simple
    Par Invité dans le forum Autres composants
    Réponses: 1
    Dernier message: 09/12/2008, 19h44
  4. Réponses: 1
    Dernier message: 09/12/2008, 19h44
  5. [MySQL] Une sorte de pagination sans BDD
    Par Eroik dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/07/2007, 18h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo