Bonjour,
j'en suis à l'url rewriting de mon site. En cehrchant ici et ailleurs j'ai trouvé une règle de réécriture qui me convient presque (mise dans un fichier fonctions.php)
j'ai juste un souci :
Il s'agit de réécrire les pages d'un annuaire qui sont au départ de ce type
.../index.php?cat_id= XX qui devient alors ..../mapage-lenomdemacategorie-p1-XX.html
lenomdemacategorie est bien sur le nom de la catégorie dont l'id est XX
Le script que j'ai trouvé permet, à partir de ce nom, de supprimer les accents, remplacer les majuscules par des minuscules...
Cependant, je ne suis pas encore très familiarisé avec ce type de langage et j'aimerais modifier certains points. Ainsi, s'il y a un tiret dans mon nom de categorie, celui-ci est supprimé. Par exemple : Livres-Librairies devient livreslibrairies, ce qui m'ennuit pour le référencement car je perds ainsi 2 mots clés.
Ce que je voudrais, c'est que losqu'il y a un tiret dans mon nom de catégorie, celui-ci soit conservé (Livres-Librairies >> livres-librairies) et que quand il y a un espace, celui-ci soit supprimer alors qu'actuellemnt il est remplacé par un tiret
Voici le code, si qqn pouvez me dire ce que je dois modifier :
function id_to_url_info ()
{
// Le nom des fichiers se terminera par ça
$suffixe = '.html';
// Nombre maximum de caractères pour le nom de la rubrique
$caracteres = 50;
// Remplacer ces caractères ...
$car_speciaux = array( 'À','Á','Â','Ã','Ä','Å','Æ','à','á','â','ã','ä','å','æ','È','É','Ê','Ë','è','é','ê','ë','Ì','Í','Î','Ï','ì','í','î','ï','Ò','Ó','Ô','Õ','Ö','Ø','ò','ó','ô','õ','ö','ø','Ù','Ú','Û','Ü','ù','ú','û','ü','ß','Ç','ç','Ð','ð','Ñ','ñ','Þ','þ','Ý' );
// ... par ceux-ci
$car_normaux = array( 'A','A','A','A','A','A','A','a','a','a','a','a','a','a','E','E','E','E','e','e','e','e','I','I','I','I','i','i','i','i','O','O','O','O','O','O','o','o','o','o','o','o','U','U','U','U','u','u','u','u','B','C','c','D','d','N','n','P','p','Y' );
return array( $suffixe, $caracteres, $car_speciaux, $car_normaux );
};
function id_to_url ($id,$cat,$page,$type='')
{
global $T_infos, $PMA_infos;
// Déterminer s'il faut faire de l'URL Rewritting
if ( $PMA_infos['url_rewritting'] )
{
list( $suffixe, $caracteres, $car_speciaux, $car_normaux ) = id_to_url_info();
// Supprime les accents, supprime les caractères non-alphanumériques, convertit en minuscules, remplace les tirets multiples par un tiret unique, supprime le dernier caractère si c'est un tiret, et limite la chaine aux $caractères premiers caractères
$url = substr( eregi_replace( "\-$", '', eregi_replace( "\-+", '-', strtolower( eregi_replace( "[^A-Za-z0-9]", '-', str_replace($car_speciaux, $car_normaux, $cat) ) ) ) ), 0, $caracteres );
// Applique le suffixe à l'url
$url = $type=='keyw' ? "$url-k$page-$id$suffixe" : "$url-p$page-$id$suffixe";
return $url;
}
else
{
if ( $type=='keyw' ) {
return "search.php?action=seek&mots=id$id&nb_results2show=20&booleen=AND";
} else {
return $page==1 ? "index.php?cat_id=$id" : "index.php?cat_id=$id&page=$page";
};
};
}
Merci pour votre aide
j'en suis à l'url rewriting de mon site. En cehrchant ici et ailleurs j'ai trouvé une règle de réécriture qui me convient presque (mise dans un fichier fonctions.php)
j'ai juste un souci :
Il s'agit de réécrire les pages d'un annuaire qui sont au départ de ce type
.../index.php?cat_id= XX qui devient alors ..../mapage-lenomdemacategorie-p1-XX.html
lenomdemacategorie est bien sur le nom de la catégorie dont l'id est XX
Le script que j'ai trouvé permet, à partir de ce nom, de supprimer les accents, remplacer les majuscules par des minuscules...
Cependant, je ne suis pas encore très familiarisé avec ce type de langage et j'aimerais modifier certains points. Ainsi, s'il y a un tiret dans mon nom de categorie, celui-ci est supprimé. Par exemple : Livres-Librairies devient livreslibrairies, ce qui m'ennuit pour le référencement car je perds ainsi 2 mots clés.
Ce que je voudrais, c'est que losqu'il y a un tiret dans mon nom de catégorie, celui-ci soit conservé (Livres-Librairies >> livres-librairies) et que quand il y a un espace, celui-ci soit supprimer alors qu'actuellemnt il est remplacé par un tiret
Voici le code, si qqn pouvez me dire ce que je dois modifier :
function id_to_url_info ()
{
// Le nom des fichiers se terminera par ça
$suffixe = '.html';
// Nombre maximum de caractères pour le nom de la rubrique
$caracteres = 50;
// Remplacer ces caractères ...
$car_speciaux = array( 'À','Á','Â','Ã','Ä','Å','Æ','à','á','â','ã','ä','å','æ','È','É','Ê','Ë','è','é','ê','ë','Ì','Í','Î','Ï','ì','í','î','ï','Ò','Ó','Ô','Õ','Ö','Ø','ò','ó','ô','õ','ö','ø','Ù','Ú','Û','Ü','ù','ú','û','ü','ß','Ç','ç','Ð','ð','Ñ','ñ','Þ','þ','Ý' );
// ... par ceux-ci
$car_normaux = array( 'A','A','A','A','A','A','A','a','a','a','a','a','a','a','E','E','E','E','e','e','e','e','I','I','I','I','i','i','i','i','O','O','O','O','O','O','o','o','o','o','o','o','U','U','U','U','u','u','u','u','B','C','c','D','d','N','n','P','p','Y' );
return array( $suffixe, $caracteres, $car_speciaux, $car_normaux );
};
function id_to_url ($id,$cat,$page,$type='')
{
global $T_infos, $PMA_infos;
// Déterminer s'il faut faire de l'URL Rewritting
if ( $PMA_infos['url_rewritting'] )
{
list( $suffixe, $caracteres, $car_speciaux, $car_normaux ) = id_to_url_info();
// Supprime les accents, supprime les caractères non-alphanumériques, convertit en minuscules, remplace les tirets multiples par un tiret unique, supprime le dernier caractère si c'est un tiret, et limite la chaine aux $caractères premiers caractères
$url = substr( eregi_replace( "\-$", '', eregi_replace( "\-+", '-', strtolower( eregi_replace( "[^A-Za-z0-9]", '-', str_replace($car_speciaux, $car_normaux, $cat) ) ) ) ), 0, $caracteres );
// Applique le suffixe à l'url
$url = $type=='keyw' ? "$url-k$page-$id$suffixe" : "$url-p$page-$id$suffixe";
return $url;
}
else
{
if ( $type=='keyw' ) {
return "search.php?action=seek&mots=id$id&nb_results2show=20&booleen=AND";
} else {
return $page==1 ? "index.php?cat_id=$id" : "index.php?cat_id=$id&page=$page";
};
};
}
Merci pour votre aide