PB URL REWRITING dans une fonction
8 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- cyberzoide14
- Nouveau WRInaute

- Messages: 7
- Inscription: 27 Sep 2007
PB URL REWRITING dans une fonction
Bonjour à tous,
Je n'arrive pas à modifier une fonction php qui me sert à afficher une barre de liens << 1 2 3 4 5 >> pour afficher mes articles par page !
Pour que l'url rewrting marche, il faut que ma fonction génère des liens en html de la forme article_nomdelarticle-numeropage. Dans ma fonction les transmissions de variables par l'adresse sont utilisés avec ?page= !
Je n'ai pas assez de savoir pour modifier ma fonction de manière à ce qu'elle génère des liens en html
Mon .htaccess :
Ma fonction :
Merci par avance,
Cordialement,
Arthur.
Je n'arrive pas à modifier une fonction php qui me sert à afficher une barre de liens << 1 2 3 4 5 >> pour afficher mes articles par page !
Pour que l'url rewrting marche, il faut que ma fonction génère des liens en html de la forme article_nomdelarticle-numeropage. Dans ma fonction les transmissions de variables par l'adresse sont utilisés avec ?page= !
Je n'ai pas assez de savoir pour modifier ma fonction de manière à ce qu'elle génère des liens en html
Mon .htaccess :
Options +FollowSymlinks
RewriteEngine on
RewriteBase /cms/
#--------------------------------------------------
# Article avec nom et numéro de page
#--------------------------------------------------
RewriteRule ^article_([a-z]*)-([0-9]+).html$ article.php?nom=$1&page=$2 [L]
#--------------------------------------------------
# Article avec nom sans numéro de page
#--------------------------------------------------
RewriteRule ^article_([a-z]*).html$ article.php?nom=$1&page=0 [L]
Ma fonction :
<?php
// AFFICHE PAGE PAR PAGE LE RESULTAT D'UNE REQUETE
function barre_navigation ($nb_total, $nb_affichage_par_page, $page, $nb_liens_dans_la_barre)
{
$barre = '';
// Recherche de l'url courante
if ($_SERVER['QUERY_STRING'] == "")
{
$query = $_SERVER['PHP_SELF'].'?page=';
}
else
{
$tableau = explode ("page=", $_SERVER['QUERY_STRING']);
$nb_element = count ($tableau);
if ($nb_element == 1)
{
$query = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&page=';
}
else
{
if ($tableau[0] == "")
{
$query = $_SERVER['PHP_SELF'].'?page=';
}
else
{
$query = $_SERVER['PHP_SELF'].'?'.$tableau[0].'page=';
}
}
}
// Calcul du numéro de la page active
$page_active = floor(($page/$nb_affichage_par_page)+1);
//Calcul du nombre de pages totales
$nb_pages_total = ceil($nb_total/$nb_affichage_par_page);
//$cpt_deb est le numéro de page qui s'affiche en premier et $cpt_fin est le numéro de page qui s'affiche en dernier
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;
}
// Si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la première page
if ($cpt_deb != 1)
{
$cible = $query.(0);
$lien = '<a href="' . $cible . '"><img src="images/debut.png" title="Première page" alt="Aller à la première page" /></a>';
}
else
{
$lien='';
}
$barre .= $lien;
// On affiche tous les liens de notre barre, tout en vérifiant de ne pas mettre de lien pour la page active
for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++)
{
if ($cpt == $page_active)
{
if ($cpt == $nb_pages_total)
{
$barre .= "<span class=\"bar_list_pages_select\">" . $cpt . "</span>";
}
else
{
$barre .= "<span class=\"bar_list_pages_select\">" . $cpt . "</span>" . " ";
}
}
else
{
if ($cpt == $cpt_fin)
{
$barre .= "<span class=\"bar_list_pages\"><A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A></span>";
}
else
{
$barre .= "<span class=\"bar_list_pages\"><A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A></span> ";
}
}
}
$fin = ($nb_total - ($nb_total % $nb_affichage_par_page));
if (($nb_total % $nb_affichage_par_page) == 0) {
$fin = $fin - $nb_affichage_par_page;
}
// Affichage du lien vers la dernière page au cas où l'utilisateur ne se trouve pas sur la dernière page
// si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation
if ($cpt_fin != $nb_pages_total) {
$cible = $query.$fin;
$lien = '<a href="' . $cible . '"><img src="images/fin.png" title="Dernière page" alt="Aller à la dernière page" /></a>';
}
else {
$lien='';
}
$barre .= $lien;
return $barre;
}
?>
Merci par avance,
Cordialement,
Arthur.
- cyberzoide14
- Nouveau WRInaute

- Messages: 7
- Inscription: 27 Sep 2007
Est-ce possible ??
Les modifications sont peu nombreuses à mon avis, elles sont plutôt où c'est en rouge :
J'espère que vous allez pouvoir me débloquer ...
Les modifications sont peu nombreuses à mon avis, elles sont plutôt où c'est en rouge :
<?php
// AFFICHE PAGE PAR PAGE LE RESULTAT D'UNE REQUETE
function barre_navigation ($nb_total, $nb_affichage_par_page, $page, $nb_liens_dans_la_barre)
{
$barre = '';
// Recherche de l'url courante
if ($_SERVER['QUERY_STRING'] == "")
{
$query = $_SERVER['PHP_SELF'].'?page=';
}
else
{
$tableau = explode ("page=", $_SERVER['QUERY_STRING']);
$nb_element = count ($tableau);
if ($nb_element == 1)
{
$query = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&page=';
}
else
{
if ($tableau[0] == "")
{
$query = $_SERVER['PHP_SELF'].'?page=';
}
else
{
$query = $_SERVER['PHP_SELF'].'?'.$tableau[0].'page=';
}
}
}
// Calcul du numéro de la page active
$page_active = floor(($page/$nb_affichage_par_page)+1);
//Calcul du nombre de pages totales
$nb_pages_total = ceil($nb_total/$nb_affichage_par_page);
//$cpt_deb est le numéro de page qui s'affiche en premier et $cpt_fin est le numéro de page qui s'affiche en dernier
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;
}
// Si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la première page
if ($cpt_deb != 1)
{
$cible = $query.(0);
$lien = '<a href="' . $cible . '"><img src="images/debut.png" title="Première page" alt="Aller à la première page" /></a>';
}
else
{
$lien='';
}
$barre .= $lien;
// On affiche tous les liens de notre barre, tout en vérifiant de ne pas mettre de lien pour la page active
for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++)
{
if ($cpt == $page_active)
{
if ($cpt == $nb_pages_total)
{
$barre .= "<span class=\"bar_list_pages_select\">" . $cpt . "</span>";
}
else
{
$barre .= "<span class=\"bar_list_pages_select\">" . $cpt . "</span>" . " ";
}
}
else
{
if ($cpt == $cpt_fin)
{
$barre .= "<span class=\"bar_list_pages\"><A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A></span>";
}
else
{
$barre .= "<span class=\"bar_list_pages\"><A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A></span> ";
}
}
}
$fin = ($nb_total - ($nb_total % $nb_affichage_par_page));
if (($nb_total % $nb_affichage_par_page) == 0) {
$fin = $fin - $nb_affichage_par_page;
}
// Affichage du lien vers la dernière page au cas où l'utilisateur ne se trouve pas sur la dernière page
// si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation
if ($cpt_fin != $nb_pages_total) {
$cible = $query.$fin;
$lien = '<a href="' . $cible . '"><img src="images/fin.png" title="Dernière page" alt="Aller à la dernière page" /></a>';
}
else {
$lien='';
}
$barre .= $lien;
return $barre;
}
?>
J'espère que vous allez pouvoir me débloquer ...
- cyberzoide14
- Nouveau WRInaute

- Messages: 7
- Inscription: 27 Sep 2007
tableau[0] représente nom=nomdelarticle
voilà j'espère t'avoir éclairé ..
voilà j'espère t'avoir éclairé ..
-

KOogar - WRInaute accro

- Messages: 3885
- Inscription: 16 Nov 2004
cyberzoide14 a écrit:tableau[0] représente nom=nomdelarticle
voilà j'espère t'avoir éclairé ..
oui et non... il vient d'ou ? ou l'initialise tu ? pourquoi il n'est pas passer en parametre dans la fonction ??
il faudrait pour ton rewrite qu'il ne contienne plus que le nom de l'article.
pour remplacer :
- Code: Tout sélectionner
$query = $_SERVER['PHP_SELF'].'?'.$tableau[0].'page=';
par
- Code: Tout sélectionner
$query = 'article_'.$tableau[0].'-';
- cyberzoide14
- Nouveau WRInaute

- Messages: 7
- Inscription: 27 Sep 2007
il vient d'ici : $tableau = explode ("page=", $_SERVER['QUERY_STRING']);
oué pour ne garder que le nom de l'article faudrait cuter la partie nom= qui est toujours la même !!!
ce n'est pas forcément toujours le préfix article_, ça pourra être commentaire_ aussi donc faut choper le prefix dans l'adresse en fait grâce au variables HTTP !
oué pour ne garder que le nom de l'article faudrait cuter la partie nom= qui est toujours la même !!!
ce n'est pas forcément toujours le préfix article_, ça pourra être commentaire_ aussi donc faut choper le prefix dans l'adresse en fait grâce au variables HTTP !
8 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- cannot redeclare same fonction avec url rewriting....
- [URL Rewriting] Réécriture en fonction de la langue
- Url Rewriting en fonction des dossiers
- [URL Rewriting] utiliser une fonction PHP...mais où ?
- Problème fonction URL compatible.
- Rewriting et fonction php pour modifier les liens internes
- Pertinence des adsenses en fonction url
- fonction Rewriting des liens avec titre - exces de reqs sql
- Fonction date pour redirection url
- URL Rewriting : règle de rewriting qui change selon la cat ?
Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl
- Liste des backlinks
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées. - Transformer des textes non cliquables en liens
Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
