function boucle_exec($type_boucle, $args, $texte, $nom_boucle = "") { global $page; $variables = ""; $res = ""; $exec_boucle = 1; //$param = array(&$type_boucle, &$args, &$texte, &$nom_boucle, &$exec_boucle); //ActionsModules::instance()->appel_module( "avantboucle", $param); if ($exec_boucle) { switch ($type_boucle) { case 'RUBRIQUE': $res .= boucleRubrique($texte, $args); break; case 'DOSSIER': $res .= boucleDossier($texte, $args); break; case 'CONTENU': $res .= boucleContenu($texte, $args); break; case 'CONTENUASSOC': $res .= boucleContenuassoc($texte, $args); break; case 'PRODUIT': $res .= boucleProduit($texte, $args); break; case 'PAGE': $res .= bouclePage($texte, $args); break; case 'PANIER': $res .= bouclePanier($texte, $args); break; case 'QUANTITE': $res .= boucleQuantite($texte, $args); break; case 'CHEMIN': $res .= boucleChemin($texte, $args); break; case 'CHEMINDOS': $res .= boucleChemindos($texte, $args); break; case 'PAIEMENT': $res .= bouclePaiement($texte, $args); break; case 'ADRESSE': $res .= boucleAdresse($texte, $args); break; case 'VENTEADR': $res .= boucleVenteadr($texte, $args); break; case 'COMMANDE': $res .= boucleCommande($texte, $args); break; case 'VENTEPROD': $res .= boucleVenteprod($texte, $args); break; case 'IMAGE': $res .= boucleImage($texte, $args); break; case 'DOCUMENT': $res .= boucleDocument($texte, $args); break; case 'ACCESSOIRE': $res .= boucleAccessoire($texte, $args); break; case 'TRANSPORT': $res .= boucleTransport($texte, $args); break; case 'PAYS': $res .= bouclePays($texte, $args); break; case 'CARACTERISTIQUE': $res .= boucleCaracteristique($texte, $args); break; case 'CARACDISP': $res .= boucleCaracdisp($texte, $args); break; case 'CARACVAL': $res .= boucleCaracval($texte, $args); break; case 'DEVISE': $res .= boucleDevise($texte, $args); break; case 'CLIENT': $res .= boucleClient($texte, $args); break; case 'DECLINAISON': $res .= boucleDeclinaison($texte, $args); break; case 'DECLIDISP': $res .= boucleDeclidisp($texte, $args); break; case 'DECVAL': $res .= boucleDecval($texte, $args); break; case 'RSS': $res .= boucleRSS($texte, $args); break; case 'STOCK': $res .= boucleStock($texte, $args); break; case 'PAGERUBRIQUE': $res .= bouclePagerubrique($texte, $args); break; case 'RAISON': $res .= boucleRaison($texte, $args); break; case 'TVA': $res .= boucleTva($texte, $args); break; case 'LANGUE': $res .= boucleLangue($texte, $args); break; case 'REPRISEPAIEMENT': $res .= boucleReprisePaiement($texte, $args); break; default: $res .= $this->moduleBoucle($type_boucle, $texte, $args); break; } } else { $res = $texte; } //$param = array(&$type_boucle, &$args, &$res, &$nom_boucle); //ActionsModules::instance()->appel_module( "apresboucle", $param); return $res; }
function bouclePage($texte, $args) { global $page, $id_rubrique, $id_dossier; // récupération des arguments $num = lireTag($args, "num", "int"); $courante = lireTag($args, "courante", "int"); $pagecourante = lireTag($args, "pagecourante", "int"); $typeaff = lireTag($args, "typeaff", "int"); $max = lireTag($args, "max", "int"); $affmin = lireTag($args, "affmin", "int"); $avance = lireTag($args, "avance", "string"); $type_page = lireTag($args, "type_page", "int"); /** PARAMÈTRES DÉPRÉCIÉS, A NE PLUS UTILISER */ $deb = lireTag($args, "deb", "int"); $totbloc = lireTag($args, "totbloc", "int"); /** FIN PARAMÈTRES DÉPRÉCIÉS */ $i = ""; if ($page <= 0) { $page = 1; } $bpage = $page; $res = ""; $cnx = new Cnx(); if (!$type_page) { $query = boucleProduit($texte, str_replace("num", "null", $args), 1); } else { $query = boucleContenu($texte, str_replace("num", "null", $args), 1); } if ($query != "") { $pos = strpos($query, "limit"); if ($pos > 0) { $query = substr($query, 0, $pos); } $resul = $cnx->query($query); $nbres = $cnx->num_rows($resul); } else { $nbres = 0; } $page = $bpage; $nbpage = $num ? ceil($nbres / $num) : 0; if ($page + 1 > $nbpage) { $pagesuiv = $page; } else { $pagesuiv = $page + 1; } if ($page - 1 <= 0) { $pageprec = 1; } else { $pageprec = $page - 1; } if ($nbpage < $affmin) { return; } if ($nbpage == 1) { return; } if ($typeaff == 1) { if (!$max) { $max = $nbpage + 1; } if ($page && $max && $page > $max) { $i = ceil($page / $max) * $max - $max + 1; } if ($i == 0) { $i = 1; } $fin = $i + $max; for (; $i < $nbpage + 1 && $i < $fin; $i++) { $temp = str_replace("#PAGE_NUM", "{$i}", $texte); $temp = str_replace("#PAGE_SUIV", "{$pagesuiv}", $temp); $temp = str_replace("#PAGE_PREC", "{$pageprec}", $temp); $temp = str_replace("#RUBRIQUE", "{$id_rubrique}", $temp); $temp = str_replace("#DOSSIER", "{$id_dossier}", $temp); if ($pagecourante && $pagecourante == $i) { if ($courante == "1" && $page == $i) { $res .= $temp; } else { if ($courante == "0" && $page != $i) { $res .= $temp; } else { if ($courante == "") { $res .= $temp; } } } } else { if (!$pagecourante) { $res .= $temp; } } } } else { if ($typeaff == "0" && ($avance == "precedente" && $pageprec != $page)) { $temp = str_replace("#PAGE_NUM", "{$page}", $texte); $temp = str_replace("#PAGE_PREC", "{$pageprec}", $temp); $temp = str_replace("#RUBRIQUE", "{$id_rubrique}", $temp); $temp = str_replace("#DOSSIER", "{$id_dossier}", $temp); $res .= $temp; } else { if ($typeaff == "0" && ($avance == "suivante" && $pagesuiv != $page)) { $temp = str_replace("#PAGE_NUM", "{$page}", $texte); $temp = str_replace("#PAGE_SUIV", "{$pagesuiv}", $temp); $temp = str_replace("#RUBRIQUE", "{$id_rubrique}", $temp); $temp = str_replace("#DOSSIER", "{$id_dossier}", $temp); $res .= $temp; } else { if ($typeaff == "0" && $avance == "") { $temp = str_replace("#PAGE_NUM", "{$page}", $texte); $temp = str_replace("#PAGE_SUIV", "{$pagesuiv}", $temp); $temp = str_replace("#PAGE_PREC", "{$pageprec}", $temp); $temp = str_replace("#RUBRIQUE", "{$id_rubrique}", $temp); $temp = str_replace("#DOSSIER", "{$id_dossier}", $temp); $res .= $temp; } else { if ($typeaff == "2") { /** DEPREACTED le typeaff 2 n'est plus utilisé, concervé pour rétrocompatibilité */ if (!$deb) { $deb = 0; } if ($page) { $_SESSION['navig']->page = $page; } if (!$page || $page == 1) { $page = 0; } if (!$totbloc) { $totbloc = 1; } if ($page) { $deb = ($page - 1) * $totbloc * $num + $deb; } $fin = $deb + $num; $query = str_replace("*", "count(*) as max", $query); $resul = $cnx->query($query); $max = $cnx->get_result($resul, 0, "max"); if ($fin > $max) { $fin = $max; } $temp = str_replace("#DEBUT", $deb, $texte); $temp = str_replace("#FIN", $fin, $temp); $temp = str_replace("#MAX", $max, $temp); $res .= $temp; /** END DEPRECATED */ } } } } } return $res; }