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’ :
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.