Fonction pagination

Bonjour

Je cherche uniquement à récupérer les urls servant à la pagination, afin de pouvoir affecter la pagination à des images et non des liens textes.

Voici le code responsable :
function pagination() {

		# On verifie que la variable bypage n'est pas nulle
		if($this->plxMotor->bypage) {
			# Calcul des pages
			$prev_page = $this->plxMotor->page - 1;
			$next_page = $this->plxMotor->page + 1;
			$last_page = ceil($this->plxMotor->plxGlob_arts->count/$this->plxMotor->bypage);
			if($this->plxMotor->mode == 'home') { # En mode home
				# Generation des URLs
				$p_url = './?page'.$prev_page; # Page precedente
				$n_url = './?page'.$next_page; # Page suivante
				$l_url = './?page'.$last_page; # Derniere page
				$f_url = './'; # Premiere page
			} elseif($this->plxMotor->mode == 'categorie') { # En mode categorie
				# Generation des URLs
				$get = explode('/',$this->plxMotor->get);
				$p_url = './?'.$get[0].'/'.$get[1].'/page'.$prev_page; # Page precedente
				$n_url = './?'.$get[0].'/'.$get[1].'/page'.$next_page; # Page suivante
				$l_url = './?'.$get[0].'/'.$get[1].'/page'.$last_page; # Derniere page
				$f_url = './?'.$get[0].'/'.$get[1]; # Premiere page
			}
			# On effectue l'affichage
			if($this->plxMotor->page > 2) # Si la page active > 2 on affiche un lien 1ere page
				echo '<a href="'.$f_url.'" title="Aller à la première page"><<</a> | ';
			if($this->plxMotor->page > 1) # Si la page active > 1 on affiche un lien page precedente
				echo '<a href="'.$p_url.'" title="Page précédente">< précédente</a> | ';
			# Affichage de la page courante
			echo 'page '.$this->plxMotor->page.' sur '.$last_page;
			if($this->plxMotor->page < $last_page) # Si la page active < derniere page on affiche un lien page suivante
				echo ' | <a href="'.$n_url.'" title="Page suivante">suivante ></a>';
			if(($this->plxMotor->page + 1) < $last_page) # Si la page active++ < derniere page on affiche un lien derniere page
				echo ' | <a href="'.$l_url.'" title="Aller à la dernière page">>></a>';
		}
	}
COmment faire appel à l'adresse "page suivante" et "page précédente" dans le template, sans toucher aux lignes de code ci-dessus ?

Merci d'avance. ;)

TCho, Hamtaro.

Réponses

  • Je me suis un peu débrouillé mais il faudrait que je mette un if pour que le lien sur articles suivants ne s'affiche pas en page d'accueil...

    Voici le code :
    <div class="alignleft">
    					<a href="<?php echo $plxShow->plxMotor->racine; ?>?page<?php echo $plxShow->plxMotor->page + 1; ?>"><img src="<?php $plxShow->template(); ?>/images/blue_arrow_l.jpg" alt="" /> Articles précédents</a>
    					</div>
    					<div class="alignright">
    					<a href="<?php echo $plxShow->plxMotor->racine; ?>?page<?php echo $plxShow->plxMotor->page - 1; ?>">Articles suivants <img src="<?php $plxShow->template(); ?>/images/blue_arrow_r.jpg" alt="" /></a>
    					</div>
    
    Quelqu'un m'aide à ne pas mettre le lien article suivant en page d'accueil ? :)

    TCho, Hamtrao.
  • HamtaroHamtaro Member
    janvier 2009 modifié
    Trop content ^^

    J'ai réussi à force de bidouilles par trouver une solution. J'ai écrit cela :
    <div class="alignleft">
    					<a href="<?php echo $plxShow->plxMotor->racine; ?>?page<?php echo $plxShow->plxMotor->page + 1; ?>"><img src="<?php $plxShow->template(); ?>/images/blue_arrow_l.jpg" alt="" /> Articles précédents</a>
    					</div>
    					<?php if($plxShow->plxMotor->page > 1): ?>
    					<div class="alignright">
    					<a href="<?php echo $plxShow->plxMotor->racine; ?>?page<?php echo $plxShow->plxMotor->page - 1; ?>">Articles suivants <img src="<?php $plxShow->template(); ?>/images/blue_arrow_r.jpg" alt="" /></a>
    					</div>
    					<?php endif; ?>
    
    Si j'ai fait une quelconque erreur qui induirait une faille de sécurité, merci de me le faire savoir.
    En attendant, vous pouvez vous servir de cela pour vos thèmes. ;)

    Je précise que cela marche pour le tri par articles. Si on demande l'affichage par catégories, ce n'est pas valable. Je suis en train de chercher mais c'est un plus tendu...

    TCho, Hamtaro.
  • HamtaroHamtaro Member
    janvier 2009 modifié
    Un pb se pose certainement à nouveau lorsqu'on se trouve sur la dernière page...
    Je cherche une solution :)
  • Un ami a réussi à m'aider pour décomposer la pagination. Pratique pour attribuer ce que l'on veut aux liens (images ou texte personnalisé)

    Dans le template home.php
    <div class="main-navigation">
    					<?php $last_page = ceil($plxShow->plxMotor->plxGlob_arts->count/$plxShow->plxMotor->bypage);
    						if($plxShow->plxMotor->page < $last_page): ?>
    					<div class="alignleft">
    					<a href="<?php echo $plxShow->plxMotor->racine; ?>?page<?php echo $plxShow->plxMotor->page + 1; ?>"><img src="<?php $plxShow->template(); ?>/images/blue_arrow_l.jpg" alt="" /> Articles précédents</a>
    					</div>
    					<?php endif; ?>
    					<?php if($plxShow->plxMotor->page > 1): ?>
    					<div class="alignright">
    					<a href="<?php echo $plxShow->plxMotor->racine; ?>?page<?php echo $plxShow->plxMotor->page - 1; ?>">Articles suivants <img src="<?php $plxShow->template(); ?>/images/blue_arrow_r.jpg" alt="" /></a>
    					</div>
    					<?php endif; ?>
    				</div>
    
    Dans le template categorie.php
    <div class="main-navigation">
      <?php 
    			# Calcul des pages
    			$prev_page = $plxShow->plxMotor->page - 1;
    			$next_page = $plxShow->plxMotor->page + 1;
    			$last_page = ceil($plxShow->plxMotor->plxGlob_arts->count/$plxShow->plxMotor->bypage);
          # Generation des URLs
          $get = explode('/',$plxShow->plxMotor->get);
          $p_url = './?'.$get[0].'/'.$get[1].'/page'.$prev_page; # Page precedente
          $n_url = './?'.$get[0].'/'.$get[1].'/page'.$next_page; # Page suivante
          $l_url = './?'.$get[0].'/'.$get[1].'/page'.$last_page; # Derniere page
          $f_url = './?'.$get[0].'/'.$get[1]; # Premiere page
      ?>
      
      <?php if($plxShow->plxMotor->page < $last_page): ?>
      <div class="alignleft">
      <a href="<?php echo $n_url; ?>"><img src="<?php $plxShow->template(); ?>/images/blue_arrow_l.jpg" alt="" /> Articles précédents</a>
      </div>
      <?php endif; ?>
      <?php if($plxShow->plxMotor->page > 1): ?>
      <div class="alignright">
      <a href="<?php echo $p_url; ?>">Articles suivants <img src="<?php $plxShow->template(); ?>/images/blue_arrow_r.jpg" alt="" /></a>
      </div>
      <?php endif; ?>
    </div>
    
    Ca fait un peu barbare mais c'est efficace. Libre a vous de changer tout le code html autour. Il suffit juste de vous en inspirer. ;)

    TCho, Hamtaro.
Connectez-vous ou Inscrivez-vous pour répondre.