Bonjour ?? tous,
Je viens de me lancer dans la r?|?|criture d'URL pour augmenter l'indexation de mes pages sur les moteurs de recherche.
J'utilise le mod_rewrite d'apache.
Tout fonctionne correctement mais je rencontre un probl??me dans cette situation :
J'ai une page de news, qui r?|cup??re les donn?|es contenues dans ma BDD. J'ai 100 news au total.
L'URL initiale est ../news.php?sujet=12
En mod_rewrite, cela donne ../news-12.html
Jusqu'ici tout fonctionne.
Sur ma page news, je ne veux pas afficher les 100 news mais seulement 10 et afficher un lien vers la page suivante.
Cela donne ../news.php?sujet=12&debut=10 pour la page 2, ..&debut=20 pour la page 3 etc...
La fonction d'affichage page par page est une fonction toute faite trouv?|e sur internet, que j'utilise pour toutes mes requ?ºtes.
Les liens vers les pages pr?|c?|dentes et suivantes sont g?|n?|r?|s automatiquement ?? partir de l'url de la page courante, et sont de la forme $query = $_SERVER['PHP_SELF'].&debut=
Je voudrai transformer cette URL pour obtenir ../news-12-20.html (id news=12 et debut affichage=20) mais je n'arrive pas ?? transformer la fonction.
Voici la fonction d'affichage compl??te.
Merci de votre aide
function
barre_navigation($nb_total,$nb_affichage_par_page,$debut,$nb_liens_dans_la_barre){
$barre='';
if($_SERVER['QUERY_STRING']==""){
$query=$_SERVER['PHP_SELF'].'?debut=';
}
else{
$tableau=explode("debut=",$_SERVER['QUERY_STRING']);
$nb_element=count($tableau);
if($nb_element==1){
$query=$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&debut=';
}
else{
if($tableau[0]==""){
$query=$_SERVER['PHP_SELF'].'?debut=';
}
else{
$query=$_SERVER['PHP_SELF'].'?'.$tableau[0].'debut=';
}
}
}
$page_active=floor(($debut/$nb_affichage_par_page)+1);
$nb_pages_total=ceil($nb_total/$nb_affichage_par_page);
if($nb_liens_dans_la_barre%2==0){
$cpt_deb1=$page_active-($nb_liens_dans_la_barre/2)+1;
$cpt_fin1=$page_active+($nb_liens_dans_la_barre/2);
}
else{
$cpt_deb1=$page_active-floor(($nb_liens_dans_la_barre/2));
$cpt_fin1=$page_active+floor(($nb_liens_dans_la_barre/2));
}
if($cpt_deb1<=1){
$cpt_deb=1;
$cpt_fin=$nb_liens_dans_la_barre;
}
elseif($cpt_deb1>1&&$cpt_fin1<$nb_pages_total){
$cpt_deb=$cpt_deb1;
$cpt_fin=$cpt_fin1;
}
else{
$cpt_deb=($nb_pages_total-$nb_liens_dans_la_barre)+1;
$cpt_fin=$nb_pages_total;
}
if($nb_pages_total<=$nb_liens_dans_la_barre){
$cpt_deb=1;
$cpt_fin=$nb_pages_total;
}
echo'<div style="float:left; width:240px; text-align:left; height:20px;">';
echo'Page '.$page_active;
echo'</div>';
if($cpt_deb!=1){
$cible=$query.(0);
$lien='<A HREF="'.$cible.'"><img src="../images/prec_white.gif" border="0" width="5" height="10" alt="Premi§Úre page"><img src="../images/prec_white.gif" border="0" width="5" height="10" alt="Premi§Úre page"></A> ';
}
else{
$lien='';
}
$barre.=$lien;
for($cpt=$cpt_deb;$cpt<=$cpt_fin;$cpt++){
if($cpt==$page_active){
if($cpt==$nb_pages_total){
$barre.="".$cpt."";
}
else{
$barre.="".$cpt." ";
}
}
else{
if($cpt==$cpt_fin){
$barre.="<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre.="'>".$cpt."</A>";
}
else{
$barre.="<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre.="'>".$cpt."</A> ";
}
}
}
$fin=($nb_total-($nb_total%$nb_affichage_par_page));
if(($nb_total%$nb_affichage_par_page)==0){
$fin=$fin-$nb_affichage_par_page;
}
if($cpt_fin!=$nb_pages_total){
$cible=$query.$fin;
$lien=' <A HREF="'.$cible.'"><img src="../images/suiv_white.gif" border="0" width="5" height="10" alt="Derni§Úre page"><img src="../images/suiv_white.gif" border="0" width="5" height="10" alt="Derni§Úre page"></A>';
}
else{
$lien='';
}
$barre.=$lien;
echo'<div style="float:right; width:130px; text-align:right; height:20px;">';
echo$nb_total.' r§Ûsultats - '.$nb_pages_total.' pages';
echo'</div>';
return$barre;
}