/DEV/LIB/paginationhelper.class.php
PHP | 846 lines | 493 code | 250 blank | 103 comment | 191 complexity | 4031c051778a30767d6fbe30935fa2d3 MD5 | raw file
- <?php
- /**
- * Classe de pagination de LI.com
- */
- class PaginationHelper {
-
- // instance de la classe
- private static $_objInstance = null;
-
- // chaine de caractères correspondant au paginateur
- private static $_strPagin = null;
-
- // type de paginateur demandé ("dernieres_annonces_hautbas" ou "resultats_villesdepts_haut" ou "resultats_villesdepts_bas"...)
- private $_typPagin;
-
- // liste des URLs sur lesquelles il faut paginer
- private $_lnkPages;
-
- // numéro de la page sélectionnée
- private $_selPage, $_selPagePad;
-
- // numéro de la page maximum
- private $_maxPage;
-
- // nom de la classe CSS pour pages non sélectionnées, page sélectionnée, flêche précédent/suivant
- private $_nrmClass, $_selClass, $_arrClass;
-
- // chaine de caractères faisant séparateur entre pages
- private $_sepString;
-
- // plage, en nombre de pages, autour de $_selPage (utile pour le paginateur "bien_villes_piece_bas" par exemple)
- private $_plgPages = 2;
-
- // plage, en nombre de pages, autour de $_selPage, pour les pages du début ou de fin de paginateur
- private $_plgPages2 = 5;
-
-
- /**
- * Retourne une instance de la classe PaginationHelper
- */
- public static function getInstance($typPagin, $selPage, $maxPage, $lnkPages, $nrmClass="", $selClass="", $arrClass="", $sepString="") {
- if (is_null(self::$_objInstance) || (!is_null(self::$_objInstance) && (self::$_objInstance->_typPagin != "dernieres_annonces_hautbas"))) {
- self::$_objInstance = new PaginationHelper($typPagin, $selPage, $maxPage, $lnkPages, $nrmClass, $selClass, $arrClass, $sepString);
- }
-
- return self::$_objInstance;
-
- }
-
- /**
- * Construteur
- */
- private function __construct($typPagin, $selPage, $maxPage, $lnkPages, $nrmClass, $selClass, $arrClass, $sepString) {
-
- $this->_typPagin = $typPagin;
-
- $this->_selPage = $selPage;
- $this->_maxPage = $maxPage;
- $this->_lnkPages = $lnkPages;
-
- $this->_nrmClass = $nrmClass;
- $this->_selClass = $selClass;
- $this->_arrClass = $arrClass;
-
- $this->_sepString = $sepString;
-
- }
-
- /**
- * Retourne une chaine constituée de tous les éléments de pagination
- */
- public function getPagination($pos = '') {
-
- // test si chaine du paginateur déjà calculée ou non (si oui, on la retourne => gain de perfs)
- if (!is_null(self::$_strPagin) && $pos == '') {
- return self::$_strPagin;
- }
-
- $str = "";
- if($pos != '') {
- $this->_typPagin = $pos;
- }
- // paginateur où toute page est accessible en 3 clics max, brouillage JS sur pages déjà "vues"...
- if ($this->_typPagin == "dernieres_annonces_hautbas") {
-
- //echo "<br>[ selPage=".$this->_selPage." / "."maxPage=".$this->_maxPage." ]<br>";
- //echo "<br><pre>[ linksPages = ".print_r($this->_lnkPages, true)." ]</pre><br>";
-
- if ((($this->_selPage+1) < 1) || (($this->_selPage+1) > $this->_maxPage)) {
- return "";
- }
-
- // page 1
- $i = 1;
- $doNotFollow = true; // lien tjs brouillé
- $str .= $this->itemPagination($i, $doNotFollow);
-
- // pages jusqu'à ($this->_selPage+1)
- $maxLocal = 0;
- for ($n=strlen($this->_selPage+1); $n>0; $n--) {
-
- $p = intval(substr(($this->_selPage+1), strlen($this->_selPage+1)-$n, 1));
- $w = pow(10, $n-1);
- $debPage = $maxLocal + $w;
- $debPage = ($debPage == 1 ? 2 : $debPage);
- $endPage = $maxLocal + $p*$w;
- $stpPage = $w;
- for ($i=$debPage; $i<=$endPage; $i+=$stpPage) {
- if ($i >= $this->_maxPage) break;
- $doNotFollow = true; // lien brouillé car avant page en cours (donc déjà vu)
- $str .= $this->itemPagination($i, $doNotFollow);
- }
- $maxLocal = $endPage;
-
- }
-
- // pages après ($this->_selPage+1)
- for ($n=strlen($this->_maxPage); $n>0; $n--) {
-
- $this->_selPagePad = str_pad(($this->_selPage+1), strlen($this->_maxPage), "0", STR_PAD_LEFT);
- $p = intval(substr($this->_selPagePad, 0, $n));
- $q = intval(substr($this->_selPagePad, 0, $n-1));
- $w = pow(10, strlen($this->_selPagePad)-$n);
- $debPage = $p*$w + $w;
- $endPage = ($q*$w + $w)*10;
- $stpPage = $w;
- for ($i=$debPage; $i<$endPage; $i+=$stpPage) {
- if ($i >= $this->_maxPage) break;
- $doFollow = false;
- $doFollow |= (($this->_selPage+1) == 1); // liens non brouillés pour tous les liens après page 1 si on est en page 1
- for ($r=strlen($i); $r>=1; $r--) {
- if (strlen($i) > $r) {
- $z = pow(10, $r);
- $j = intval(substr($i, -$r));
- $doFollow |= ((($this->_selPage+1) % $z) == 0) && ($j >= 1) && ($j <= ($z - 1)); // liens non brouillés sur les pages ...1 à ...9 pour les pages sélectionnées en ...0
- }
- }
- $doNotFollow = !$doFollow;
- $str .= $this->itemPagination($i, $doNotFollow);
- }
-
- }
-
- // page $this->_maxPage
- if ($this->_maxPage > 1) {
- $i = $this->_maxPage;
- $doNotFollow = (($this->_selPage+1) > 1); // lien brouillé si on est après la page 1
- $str .= $this->itemPagination($i, $doNotFollow);
- }
-
- } else if ($this->_typPagin == "bien_villes_piece_bas") {
-
- //echo "<br>[ selPage=".$this->_selPage." / "."maxPage=".$this->_maxPage." / "."plgPages=".$this->_plgPages." ]<br>";
- //echo "<br><pre>[ linksPages = ".print_r($this->_lnkPages, true)." ]</pre><br>";
-
- if ((($this->_selPage+1) < 1) || (($this->_selPage+1) > $this->_maxPage)) {
- return "";
- }
-
- // lien précédent, si nécessaire
- if ($this->_selPage+1 > 1) {
-
- $doNotFollow = true; // lien non suivi
- $doBtnPrevious = true; // lien précédent
- $str .= $this->arrowPagination($this->_selPage, $doNotFollow, $doBtnPrevious);
-
- }
-
- // lien page 1
- $i = 1;
- $doNotFollow = false; // lien tjs suivi
- $str .= $this->itemPagination($i, $doNotFollow);
-
- // liens pages autour de $this->_selPage
- if ($this->_selPage < ($this->_plgPages2 - 1)) { // pages de début du paginateur
-
- $debPage = 2;
- $endPage = (($this->_maxPage - ($this->_plgPages2 - 0)) > 0 ? ($this->_plgPages2 + 1) : $this->_maxPage);
-
- } else if ($this->_selPage > ($this->_maxPage - ($this->_plgPages2))) { // pages de fin du paginateur
-
- $debPage = (($this->_maxPage - $this->_plgPages2) > 0 ? $this->_maxPage - ($this->_plgPages2 - 1) : $this->_maxPage - ($this->_plgPages2 - 2));
- $endPage = $this->_maxPage;
-
- } else { // pages au milieu du paginateur
-
- $debPage = (($this->_selPage - $this->_plgPages + 1) > 1 ? ($this->_selPage - $this->_plgPages + 1) : 2);
- $endPage = (($this->_selPage + $this->_plgPages + 2) < $this->_maxPage ? ($this->_selPage + $this->_plgPages + 2) : $this->_maxPage);
-
- }
-
- //echo "<br>[ debPage=".$debPage." / "."endPage=".$endPage." / "."plgPages=".$this->_plgPages2." ]<br>";
-
- // texte ... si nécessaire
- if ($debPage > 2) {
-
- $str .= "... ";
-
- }
-
- for ($i=$debPage; $i<$endPage; $i++) {
-
- $doNotFollow = false; // lien tjs suivi
- $str .= $this->itemPagination($i, $doNotFollow);
-
- }
-
- // texte ... si nécessaire
- if ($endPage < $this->_maxPage) {
-
- $str .= "... ";
-
- }
-
- // lien page $this->_maxPage
- if ($this->_maxPage > 1) {
- $i = $this->_maxPage;
- $doNotFollow = false; // lien tjs suivi
- $str .= $this->itemPagination($i, $doNotFollow);
- }
-
- // lien suivant, si nécessaire
- if ($this->_selPage+1 < $this->_maxPage) {
-
- $doNotFollow = true; // lien non suivi
- $doBtnPrevious = false; // lien suivant
- $str .= $this->arrowPagination(($this->_selPage + 2), $doNotFollow, $doBtnPrevious);
-
- }
-
- } elseif ($this->_typPagin == "minformer") {
-
- if ((($this->_selPage+1) < 1) || (($this->_selPage+1) > $this->_maxPage)) {
- return "";
- }
-
- // lien précédent, si nécessaire
- $strArrowLeft = " ";
- if ($this->_selPage+1 > 1) {
- // $doNotFollow = true; // lien non suivi
- $doBtnPrevious = true; // lien précédent
- $strArrowLeft = $this->arrowPaginationMinformer($this->_selPage, $doNotFollow, $doBtnPrevious);
-
- }
-
- // lien page 1
- $i = 1;
- $doNotFollow = false; // lien tjs suivi
- $strItemsNums = $this->itemPagination($i, $doNotFollow);
-
- // liens pages autour de $this->_selPage
- if ($this->_selPage < ($this->_plgPages2 - 1)) { // pages de début du paginateur
-
- $debPage = 2;
- $endPage = (($this->_maxPage - ($this->_plgPages2 - 0)) > 0 ? ($this->_plgPages2 + 1) : $this->_maxPage);
-
- } else if ($this->_selPage > ($this->_maxPage - ($this->_plgPages2))) { // pages de fin du paginateur
-
- $debPage = (($this->_maxPage - $this->_plgPages2) > 0 ? $this->_maxPage - ($this->_plgPages2 - 1) : $this->_maxPage - ($this->_plgPages2 - 2));
- $endPage = $this->_maxPage;
-
- } else { // pages au milieu du paginateur
-
- $debPage = (($this->_selPage - $this->_plgPages + 1) > 1 ? ($this->_selPage - $this->_plgPages + 1) : 2);
- $endPage = (($this->_selPage + $this->_plgPages + 2) < $this->_maxPage ? ($this->_selPage + $this->_plgPages + 2) : $this->_maxPage);
-
- }
-
- //echo "<br>[ debPage=".$debPage." / "."endPage=".$endPage." / "."plgPages=".$this->_plgPages2." ]<br>";
-
- // texte ... si nécessaire
- if ($debPage > 2) {
-
- $strItemsNums .= " ... ";
-
- }
-
- for ($i=$debPage; $i<$endPage; $i++) {
-
- $doNotFollow = false; // lien tjs suivi
- $strItemsNums .= $this->itemPagination($i, $doNotFollow);
-
- }
-
- // texte ... si nécessaire
- if ($endPage < $this->_maxPage) {
-
- $strItemsNums .= " ... - ";
-
- }
-
- // lien page $this->_maxPage
- if ($this->_maxPage > 1) {
- $i = $this->_maxPage;
- $doNotFollow = false; // lien tjs suivi
- $strItemsNums .= $this->itemPagination($i, $doNotFollow);
- }
-
- // lien suivant, si nécessaire
- $strArrowRight = " ";
- if ($this->_selPage+1 < $this->_maxPage) {
-
- $doNotFollow = true; // lien non suivi
- $doBtnPrevious = false; // lien suivant
- $strArrowRight = $this->arrowPaginationMinformer(($this->_selPage + 2), $doNotFollow, $doBtnPrevious);
-
- }
-
- // str est ici un tableau en fait
- $str = array(
- 'arrowLeft' => $strArrowLeft,
- 'itemsNums' => $strItemsNums,
- 'arrowRight' => $strArrowRight
- );
-
- } else if ($this->_typPagin == "resultats_top_v7") {
-
- //echo "<br>[ selPage=".$this->_selPage." / "."maxPage=".$this->_maxPage." / "."plgPages=".$this->_plgPages." ]<br>";
- //echo "<br><pre>[ linksPages = ".print_r($this->_lnkPages, true)." ]</pre><br>";
-
- if ((($this->_selPage+1) < 1) || (($this->_selPage+1) > $this->_maxPage)) {
- return "";
- }
-
- // lien précédent, si nécessaire
- if ($this->_selPage+1 > 1) {
- $doNotFollow = true; // lien non suivi
- $doBtnPrevious = true; // lien précédent
- $str .= $this->getPaginationBtnV7($this->_selPage, $doNotFollow, $doBtnPrevious);
- }
-
- $str .= "<span ".($doBtnPrevious ? '' : 'style="padding-left: 20px;"')."class=\"pagination_status\">Page ".(n_f($this->_selPage+1))." / ".n_f($this->_maxPage)."</span>";
- // lien suivant, si nécessaire
- if ($this->_selPage+1 < $this->_maxPage) {
- $doNotFollow = true; // lien non suivi
- $doBtnPrevious = false; // lien suivant
- $str .= $this->getPaginationBtnV7(($this->_selPage + 2), $doNotFollow, $doBtnPrevious);
- }
-
- } else if ($this->_typPagin == "resultats_top_v7.2" || $this->_typPagin == "resultats_bottom_v7.2") {
- global $_global;
- if ((($this->_selPage+1) < 1) || (($this->_selPage+1) > $this->_maxPage)) {
- return "";
- }
- // lien précédent, si nécessaire
- if ($this->_selPage+1 > 1) {
- $doNotFollow = true; // lien non suivi
- $doBtnPrevious = true; // lien précédent
- $str .= $this->getPaginationBtnV7($this->_selPage, $doNotFollow, $doBtnPrevious);
- }
-
- // lien page 1
- $i = 1;
- $doNotFollow = false; // lien tjs suivi
- // patch fix pour pagination coloc
- if($_global['univers'] == 8) $fix_width = 525;
- else $fix_width = 340;
- $str .= '<span class="pagination_numbers" '.($doBtnPrevious ? '' : 'style="width: '.$fix_width.'px;"').'>';
- // liens pages autour de $this->_selPage
- if ($this->_selPage < ($this->_plgPages2 - 1)) { // pages de début du paginateur
-
- $debPage = 2;
- $endPage = (($this->_maxPage - ($this->_plgPages2 - 0)) > 0 ? ($this->_plgPages2 + 1) : $this->_maxPage);
-
- } else if ($this->_selPage > ($this->_maxPage - ($this->_plgPages2))) { // pages de fin du paginateur
-
- $debPage = (($this->_maxPage - $this->_plgPages2) > 0 ? $this->_maxPage - ($this->_plgPages2 - 1) : $this->_maxPage - ($this->_plgPages2 - 2));
- $endPage = $this->_maxPage;
-
- } else { // pages au milieu du paginateur
-
- $debPage = (($this->_selPage - $this->_plgPages + 1) > 1 ? $this->_selPage : 1);
- $endPage = (($this->_selPage + $this->_plgPages + 1) < $this->_maxPage ? ($this->_selPage + $this->_plgPages + 1) : $this->_maxPage);
-
- }
- if($endPage > 1) {
- // $str .= "<span class=\"pagination_status\">Page ".n_f($this->_selPage+1)." / ".n_f($this->_maxPage)."</span>";
- $str .= $this->itemPagination($i, $doNotFollow);
- //echo "<br>[ debPage=".$debPage." / "."endPage=".$endPage." / "."plgPages=".$this->_plgPages2." ]<br>";
-
- // texte ... si nécessaire
- if ($debPage > 2) {
-
- $str .= "<span class='pgn_dtd'>...</span>";
-
- } else {
- $str .= " ";
- }
- if($endPage > 999) {
- if($this->_selPage == ($this->_maxPage - 4))
- $endPage = $endPage-1;
- else if($endPage == $this->_maxPage)
- $debPage = $debPage+1;
- }
- for ($i=$debPage; $i<$endPage; $i++) {
-
- if($debPage < 2 || $i > $debPage) {
- $str .= " ";
- }
- $doNotFollow = false; // lien tjs suivi
- $str .= $this->itemPagination($i, $doNotFollow);
- }
-
- // texte ... si nécessaire
- if ($endPage < $this->_maxPage) {
-
- $str .= "<span class='pgn_dtd'>...</span>";
-
- } else if($endPage > 2){
- $str .= " ";
- }
- // lien page $this->_maxPage
- if ($this->_maxPage > 1) {
- $i = $this->_maxPage;
- $doNotFollow = false; // lien tjs suivi
- $str .= $this->itemPagination($i, $doNotFollow);
- }
- }
- $str .= "</span>";
-
- // lien suivant, si nécessaire
- if ($this->_selPage+1 < $this->_maxPage) {
- $doNotFollow = true; // lien non suivi
- $doBtnPrevious = false; // lien suivant
- $str .= $this->getPaginationBtnV7(($this->_selPage + 2), $doNotFollow, $doBtnPrevious);
- }
- } else if ($this->_typPagin == "resultats_bottom_v7") {
-
- //echo "<br>[ selPage=".$this->_selPage." / "."maxPage=".$this->_maxPage." / "."plgPages=".$this->_plgPages." ]<br>";
- //echo "<br><pre>[ linksPages = ".print_r($this->_lnkPages, true)." ]</pre><br>";
-
- if ((($this->_selPage+1) < 1) || (($this->_selPage+1) > $this->_maxPage)) {
- return "";
- }
-
- // lien précédent, si nécessaire
- if ($this->_selPage+1 > 1) {
- $doNotFollow = true; // lien non suivi
- $doBtnPrevious = true; // lien précédent
- $str .= $this->getPaginationBtnV7($this->_selPage, $doNotFollow, $doBtnPrevious);
- }
-
- // lien page 1
- $i = 1;
- $doNotFollow = false; // lien tjs suivi
- $str .= '<span class="pagination_numbers" '.($doBtnPrevious ? '' : 'style="padding-left: 45px;"').'>';
- // liens pages autour de $this->_selPage
- if ($this->_selPage < ($this->_plgPages2 - 1)) { // pages de début du paginateur
-
- $debPage = 2;
- $endPage = (($this->_maxPage - ($this->_plgPages2 - 0)) > 0 ? ($this->_plgPages2 + 1) : $this->_maxPage);
-
- } else if ($this->_selPage > ($this->_maxPage - ($this->_plgPages2))) { // pages de fin du paginateur
-
- $debPage = (($this->_maxPage - $this->_plgPages2) > 0 ? $this->_maxPage - ($this->_plgPages2 - 1) : $this->_maxPage - ($this->_plgPages2 - 2));
- $endPage = $this->_maxPage;
-
- } else { // pages au milieu du paginateur
-
- $debPage = (($this->_selPage - $this->_plgPages + 1) > 1 ? ($this->_selPage - $this->_plgPages + 1) : 2);
- $endPage = (($this->_selPage + $this->_plgPages + 2) < $this->_maxPage ? ($this->_selPage + $this->_plgPages + 2) : $this->_maxPage);
-
- }
- if($endPage > 1) {
- $str .= $this->itemPagination($i, $doNotFollow);
- //echo "<br>[ debPage=".$debPage." / "."endPage=".$endPage." / "."plgPages=".$this->_plgPages2." ]<br>";
-
- // texte ... si nécessaire
- if ($debPage > 2) {
-
- $str .= "... ";
-
- } else {
- $str .= " - ";
- }
-
- for ($i=$debPage; $i<$endPage; $i++) {
-
- if($debPage < 2 || $i > $debPage) {
- $str .= " - ";
- }
- $doNotFollow = false; // lien tjs suivi
- $str .= $this->itemPagination($i, $doNotFollow);
- }
-
- // texte ... si nécessaire
- if ($endPage < $this->_maxPage) {
-
- $str .= "... ";
-
- } else if($endPage > 2){
- $str .= " - ";
- }
- // lien page $this->_maxPage
- if ($this->_maxPage > 1) {
- $i = $this->_maxPage;
- $doNotFollow = false; // lien tjs suivi
- $str .= $this->itemPagination($i, $doNotFollow);
- }
- }
- $str .= "</span>";
-
- $str .= "<span class=\"pagination_status\">Page ".n_f($this->_selPage+1)." / ".n_f($this->_maxPage)."</span>";
- // lien suivant, si nécessaire
- if ($this->_selPage+1 < $this->_maxPage) {
- $doNotFollow = true; // lien non suivi
- $doBtnPrevious = false; // lien suivant
- $str .= $this->getPaginationBtnV7(($this->_selPage + 2), $doNotFollow, $doBtnPrevious);
- }
-
- }else if ($this->_typPagin == "resultats_agences") {
- global $_global;
- if ((($this->_selPage+1) < 1) || (($this->_selPage+1) > $this->_maxPage)) {
- return "";
- }
- // lien précédent, si nécessaire
- if ($this->_selPage+1 > 1) {
- $doNotFollow = true; // lien non suivi
- $doBtnPrevious = true; // lien précédent
- $str .= $this->getPaginationBtnV7($this->_selPage, $doNotFollow, $doBtnPrevious);
- }
-
- // lien page 1
- $i = 1;
- $doNotFollow = false; // lien tjs suivi
- // patch fix pour agination coloc
- $fix_width = 346;//largeur tri colonnes
-
-
- $str .= '<span class="pagination_numbers" '.($doBtnPrevious ? '' : 'style="width: '.$fix_width.'px;"').'>';
- // liens pages autour de $this->_selPage
- if ($this->_selPage < ($this->_plgPages2 - 1)) { // pages de début du paginateur
-
- $debPage = 2;
- $endPage = (($this->_maxPage - ($this->_plgPages2 - 0)) > 0 ? ($this->_plgPages2 + 1) : $this->_maxPage);
-
- } else if ($this->_selPage > ($this->_maxPage - ($this->_plgPages2))) { // pages de fin du paginateur
-
- $debPage = (($this->_maxPage - $this->_plgPages2) > 0 ? $this->_maxPage - ($this->_plgPages2 - 1) : $this->_maxPage - ($this->_plgPages2 - 2));
- $endPage = $this->_maxPage;
-
- } else { // pages au milieu du paginateur
-
- $debPage = (($this->_selPage - $this->_plgPages + 1) > 1 ? $this->_selPage : 1);
- $endPage = (($this->_selPage + $this->_plgPages + 1) < $this->_maxPage ? ($this->_selPage + $this->_plgPages + 1) : $this->_maxPage);
-
- }
- if($endPage > 1) {
- // $str .= "<span class=\"pagination_status\">Page ".n_f($this->_selPage+1)." / ".n_f($this->_maxPage)."</span>";
- $str .= $this->itemPagination($i, $doNotFollow);
- //echo "<br>[ debPage=".$debPage." / "."endPage=".$endPage." / "."plgPages=".$this->_plgPages2." ]<br>";
-
- // texte ... si nécessaire
- if ($debPage > 2) {
-
- $str .= "<span class='pgn_dtd'>...</span>";
-
- } else {
- $str .= " ";
- }
- if($endPage > 999) {
- if($this->_selPage == ($this->_maxPage - 4))
- $endPage = $endPage-1;
- else if($endPage == $this->_maxPage)
- $debPage = $debPage+1;
- }
- for ($i=$debPage; $i<$endPage; $i++) {
-
- if($debPage < 2 || $i > $debPage) {
- $str .= " ";
- }
- $doNotFollow = false; // lien tjs suivi
- $str .= $this->itemPagination($i, $doNotFollow);
- }
-
- // texte ... si nécessaire
- if ($endPage < $this->_maxPage) {
-
- $str .= "<span class='pgn_dtd'>...</span>";
-
- } else if($endPage > 2){
- $str .= " ";
- }
- // lien page $this->_maxPage
- if ($this->_maxPage > 1) {
- $i = $this->_maxPage;
- $doNotFollow = false; // lien tjs suivi
- $str .= $this->itemPagination($i, $doNotFollow);
- }
- }
- $str .= "</span>";
-
- // lien suivant, si nécessaire
- if ($this->_selPage+1 < $this->_maxPage) {
- $doNotFollow = true; // lien non suivi
- $doBtnPrevious = false; // lien suivant
- $str .= $this->getPaginationBtnV7(($this->_selPage + 2), $doNotFollow, $doBtnPrevious);
- }
- }
-
-
- // stockage de la chaine du paginateur
- self::$_strPagin = $str;
-
- return self::$_strPagin;
-
- }
-
-
- /**
- * Retourne un élement de pagination
- */
- private function itemPagination($i, $doNotFollow=false) {
-
- // on brouille les liens de spages supérieures à 5
- if($i > 5){
- $doNotFollow = true;
- }
-
- $pgnCssClass = ($i == ($this->_selPage+1) ? $this->_selClass : "" );
- if ($this->_typPagin == "resultats_top_v7.2" || $this->_typPagin == "resultats_bottom_v7.2" || $this->_typPagin == "resultats_agences") {
- $str = "<span id=\"pgn".($this->_typPagin == "resultats_bottom_v7.2"?"b":"")."_left$i\" class=\"pgn_left".($pgnCssClass!= '' ? "_$pgnCssClass" : "")."\"> </span>";
- $pgnMouseOver = " onmouseover=\"pgn_hover($i)\"";
- $pgnMouseOut = " onmouseout=\"pgn_out($i)\"";
- }else {
- $pgnMouseOver = "";
- $pgnMouseOut = "";
- $str = "";
- }
- $addSepString = (!empty($this->_sepString) && (($this->_selPage) < $this->_maxPage) ? $this->_sepString : ""); // séparateur entre pages
-
- $addTagLink = ($i != $this->_selPage+1); // vrai si ajout de lien (brouillé ou non), faux sinon (ie pas d'auto-lien pour la page courante)
-
- if ($addTagLink) { // ajout de lien
- if ($doNotFollow) { // brouillage du lien en JS
- // var_dump($pgnMouseOver, $pgnMouseOut); die;
- $addUrlClass = (!empty($this->_lnkPages[$i-1]) ? MythomanieHelper::encode($this->_lnkPages[$i-1]) : "");
- $addCssClass = ($i == ($this->_selPage+1) ? ($this->_selClass!="" ? " ".$this->_selClass : "") : ($this->_nrmClass!="" ? " ".$this->_nrmClass : ""));
-
- $str .= "<span rel=\"".$i."\" class=\"".$addUrlClass.$addCssClass."\">".n_f($i)."</span>".$addSepString;
- //$str .= "<span class=\"".$addUrlClass.$addCssClass."\">"."<font color=\"red\">".$i."</font>"."</span>".$addSepString;
- //$str .= "["."<font color=\"red\">".($i == ($this->_selPage+1) ? "<b>".$i."</</b>" : $i)."</font>"."]".$addSepString;
-
- } else { // lien normal en HTML
-
- $addUrlHref = (!empty($this->_lnkPages[$i-1]) ? " href=\"".$this->_lnkPages[$i-1]."\"" : "");
- $addCssClass = ($i == ($this->_selPage+1) ? ($this->_selClass!="" ? " class=\"".$this->_selClass."\"" : "") : ($this->_nrmClass!="" ? " class=\"".$this->_nrmClass."\"" : ""));
-
- $str .= "<a rel=\"".$i."\" ".$addUrlHref.$addCssClass.">".n_f($i)."</a>".($i<$this->_maxPage ? $addSepString : "");
- //$str .= "[".($i == ($this->_selPage+1) ? "<b>".$i."</b>" : $i)."]".$addSepString;
-
- }
-
- } else { // pas de lien
-
- $addCssClass = ($i == ($this->_selPage+1) ? ($this->_selClass!="" ? "".$this->_selClass : "") : ($this->_nrmClass!="" ? "".$this->_nrmClass : ""));
-
- $str .= "<span rel=\"".$i."\" class=\"".$addCssClass."\">".n_f($i)."</span>".($i<$this->_maxPage ? $addSepString : "");
- //$str .= "[".($i == ($this->_selPage+1) ? "<b>".$i."</b>" : $i)."]".$addSepString;
-
- }
- if ($this->_typPagin == "resultats_top_v7.2" || $this->_typPagin == "resultats_bottom_v7.2" || $this->_typPagin == 'resultats_agences')
- $str .= "<span rel=\"".$i."\" id=\"pgn".($this->_typPagin == "resultats_bottom_v7.2"?"b":"")."_right$i\" class=\"pgn_right".($pgnCssClass!= '' ? "_$pgnCssClass" : "")."\"> </span>";
-
-
- return $str;
-
- }
-
-
- /**
- * Retourne une flêche de pagination
- */
- private function arrowPagination($i, $doNotFollow=false, $doBtnPrevious=false) {
-
- $doNotFollow = true;
-
- $str = "";
-
- $addSepString = (!empty($this->_sepString) && (($this->_selPage+1) < $this->_maxPage) ? $this->_sepString : "");
-
- if ($doBtnPrevious) { // Précédent
-
- $lblArrow = "PRÉCÉDENT";
- $imgArrow = get_urlmmf("/pictos/opt_precedent_blue.png");
-
- } else { // Suivant
-
- $lblArrow = "SUIVANT";
- $imgArrow = get_urlmmf("/pictos/opt_suivant_blue.png");
-
- }
-
- if ($doNotFollow) { // brouillage du lien en JS
-
- $addUrlClass = (!empty($this->_lnkPages[$i-1]) ? MythomanieHelper::encode($this->_lnkPages[$i-1]) : "");
- $addCssClass = ($this->_arrClass!="" ? " ".$this->_arrClass : "");
-
- if ($doBtnPrevious) { // Précédent
- $str .= "<span class=\"".$addUrlClass.$addCssClass."\"><img src=\"".$imgArrow."\" border=\"0\"> ".$lblArrow." </span>|";
- } else {
- $str .= "|<span class=\"".$addUrlClass.$addCssClass."\"> ".$lblArrow." <img src=\"".$imgArrow."\" border=\"0\"></span>";
- }
-
- } else { // lien normal en HTML
-
- $addUrlHref = (!empty($this->_lnkPages[$i-1]) ? " href=\"".$this->_lnkPages[$i-1]."\"" : "");
- $addCssClass = ($this->_arrClass!="" ? " class=\"".$this->_arrClass."\"" : "");
-
- if ($doBtnPrevious) { // Précédent
- $str .= "<a".$addUrlHref.$addCssClass."><img src=\"".$imgArrow."\" border=\"0\"> ".$lblArrow." </a>|";
- } else { // Suivant
- $str .= "|<a".$addUrlHref.$addCssClass."> ".$lblArrow." <img src=\"".$imgArrow."\" border=\"0\"></a>";
- }
-
- }
-
- return $str;
-
- }
- /**
- * Retourne une flêche de pagination
- */
- private function getPaginationBtnV7($i, $doNotFollow=false, $doBtnPrevious=false) {
-
- $doNotFollow = true;
-
- $str = "";
-
- $addSepString = (!empty($this->_sepString) && (($this->_selPage+1) < $this->_maxPage) ? $this->_sepString : "");
-
- if ($doBtnPrevious) { // Précédent
- $addCssClass = " pagination_arrow_left";
- } else { // Suivant
- $addCssClass = " pagination_arrow_right";
- }
-
- if ($doNotFollow) { // brouillage du lien en JS
-
- $addUrlClass = (!empty($this->_lnkPages[$i-1]) ? MythomanieHelper::encode($this->_lnkPages[$i-1]) : "");
-
- if ($doBtnPrevious) { // Précédent
- $str .= "<span alt='Précédent' class=\"".$addUrlClass.$addCssClass."\"></span>";
- } else {
- $str .= "<span alt='Suivant' class=\"".$addUrlClass.$addCssClass."\"></span>";
- }
-
- } else { // lien normal en HTML
-
- $addUrlHref = (!empty($this->_lnkPages[$i-1]) ? " href=\"".$this->_lnkPages[$i-1]."\"" : "");
-
- if ($doBtnPrevious) { // Précédent
- $str .= "<a alt='Précédent' ".$addUrlHref.$addCssClass.">Précédent</a>";
- } else { // Suivant
- $str .= "<a alt='Suivant' ".$addUrlHref.$addCssClass.">Suivant</a>";
- }
-
- }
-
- return $str;
-
- }
-
-
- /**
- * Retourne une flêche de pagination
- */
- private function arrowPaginationMinformer($i, $doNotFollow=false, $doBtnPrevious=false) {
-
- $str = "";
-
- $addSepString = (!empty($this->_sepString) && (($this->_selPage+1) < $this->_maxPage) ? $this->_sepString : "");
-
- if ($doBtnPrevious) { // Précédent
-
- $lblArrow = "";
- $imgArrow = get_urlmmf("/pictos/opt_precedent_blue.png");
-
- } else { // Suivant
-
- $lblArrow = "";
- $imgArrow = get_urlmmf("/pictos/opt_suivant_blue.png");
-
- }
-
- if ($doNotFollow) { // brouillage du lien en JS
-
- $addUrlClass = (!empty($this->_lnkPages[$i-1]) ? MythomanieHelper::encode($this->_lnkPages[$i-1]) : "");
- $addCssClass = ($this->_arrClass!="" ? " ".$this->_arrClass : "");
-
- if ($doBtnPrevious) { // Précédent
- $str .= "<span class=\"".$addUrlClass.$addCssClass."\" id=\"btn_pagin_prev\"><img src=\"".$imgArrow."\" alt=\"Page précédente\" border=\"0\"> Page précédente</span>";
- } else {
- $str .= "<span class=\"".$addUrlClass.$addCssClass."\" id=\"btn_pagin_next\">Page suivante <img src=\"".$imgArrow."\" alt=\"Page suivante\" border=\"0\"></span>";
- }
-
- } else { // lien normal en HTML
-
- $addUrlHref = (!empty($this->_lnkPages[$i-1]) ? " href=\"".$this->_lnkPages[$i-1]."\"" : "");
- $addCssClass = ($this->_arrClass!="" ? " class=\"".$this->_arrClass."\"" : "");
-
- if ($doBtnPrevious) { // Précédent
- $str .= "<a".$addUrlHref.$addCssClass."><img src=\"".$imgArrow."\" id=\"btn_pagin_prev\" alt=\"Page précédente\" border=\"0\"> Page précédente</a>";
- } else { // Suivant
- $str .= "<a".$addUrlHref.$addCssClass.">Page suivante <img src=\"".$imgArrow."\" id=\"btn_pagin_next\" alt=\"Page suivante\" border=\"0\"></a>";
- }
-
- }
-
- return $str;
-
- }
-
- }
- ?>