03 83 56 65 20 06 87 42 95 30

Pour des raisons pratiques et de référencement, un webmaster a souvent envie de supprimer les ID qui apparaissent dans les URL's de Joomla.

Voici une méthode qui fonctionne.

Méthode pour Supprimer le ID des Urls dans Joomla.

Ouvrez components\com_content\router.php dans un éditeur et faites quelques petits changements:

dans la fonction ContentBuildRoute(&$query) remplacez la ligne 27

$advanced    = $params->get('sef_advanced_link', 0);

par

$advanced    = $params->get('sef_advanced_link', 1);

dans la fonction ContentParseRoute($segments) remplacez la ligne 208

$advanced    = $params->get('sef_advanced_link', 0);

par

$advanced    = $params->get('sef_advanced_link', 1);

Commentez les lignes 228-232

if (strpos($segments[0], ':') === false) {
    $vars['view'] = 'article';
    $vars['id'] = (int)$segments[0];
    return $vars;
}

Qui deviendront ainsi :

/*
if (strpos($segments[0], ':') === false) {
    $vars['view'] = 'article';
    $vars['id'] = (int)$segments[0];
    return $vars;
}
*/

C'est tout !

J'ai testé sur mon site en Joomla 2.5.7 et ça a l'air de fonctionner, mais je ne peux dire et garantir si cela fonctionne dans tous les cas.

( à partir du tutoriel : http://developernote.com/2012/05/how-to-remove-id-from-url-in-joomla-2-5/)

Quelques explications

Si vous avez essayé la méthode décrite ci-dessus et que cela fonctionne pour vous, vous pouvez laisser tout tel quel et fermer cette page, mais si vous intéressé par une explication veuillez lire ci-dessous.

Comme on le voit à partir des lignes 27 et 208 le Composant Contenu de Joomla (com_content) utilise le paramètre ‘sef_advanced_link’, ainsi régler ce paramètre à '1' élimine la nécessité de changer ces lignes. Cela pourrait être fait en ajoutant le code XML suivant à la section « fieldset » de administrator\components\com_content\config.xml:

<field
name="sef_advanced_link"
type="radio"
default="0"
label="Mode Sef Avancé "
description="Supprimer ItemID de contenu URL ?">
<option
value="0">JNO</option>
<option
value="1">JYES</option>
</field>

 

et le réglage ‘Mode Sef Avancé’ sur oui dans la fenêtre ‘Paramètres de gestion et d'affichage des articles’ :

sef avance

Veuillez noter que le réglage par défaut=”1″ dans le fichier XML ne prend pas toujours effet pour certaines raisons.

En ce qui concerne des lignes 228-232, si je les laisse décommentées l'ID disparaît des URL et les articles simples s'ouvrent très bien mais quand je tente d'ouvrir une catégorie non lié à un élément de menu j'ai le message d'erreur classique “404 – Article not found”. Je ne peux pas dire avec certitude, mais je pense que les développeurs de Joomla ont ajouté le paramètre ‘sef_advanced_link’ mais ne l'ont pas assez testé, donc, probablement, ils corrigeront ce code dans les versions futures.

Contact
Parlons social
Recevoir des nouvelles du site
Sauvegarder
Choix utilisateur pour les Cookies
Nous utilisons des cookies afin de vous proposer les meilleurs services possibles. Si vous déclinez l'utilisation de ces cookies, le site web pourrait ne pas fonctionner correctement.
Tout accepter
Tout décliner
Fonctionnels