Supprimer l'ID d'article de l'URL Joomla 3

9

J'essaie de supprimer l'ID d'article d'une URL Joomla 3. J'ai cherché autour et la réponse est

components\com_content\router.php

changement 0à 1en$advanced = $params->get('sef_advanced_link', 1);

sur les lignes 38 et 290

et a également commenté

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

Je considère que cela fonctionne bien dans Joomla 2.5 car tous les commentaires le mentionnent.

Mais il ne fait pas le travail pour moi sur mon site Joomla 3.3.

Comment puis-je y parvenir sans créer d'éléments de menu pour chaque article?

gag
la source
Avez-vous une erreur?
Dmitry Rekun
Créez simplement un lien de menu pour votre article.
saibbyweb
Lodder - Oui, j'obtiens le lien que je veux, mais j'ai une page d'erreur 404 au lieu de mon article.
gag
Saibbyweb - J'ai plus de 100 articles et le nombre devrait augmenter jusqu'à 500, donc je ne pense pas que ce soit une bonne idée de créer un menu pour tout cela.
bâillon
Si l'extension K2 est une option pour vous, vous pouvez y parvenir très facilement. K2 propose des options de routage avancé, avec les options nécessaires. Vous pouvez importer vos articles existants dans K2. Consultez mon blog K2 et les liens readmore générés. Une autre solution consiste à utiliser quelque chose comme sh404sef ou youwait pour ce indiegogo.com/projects/advance-the-joomla-url-router/x/7216161
Agence Joomla

Réponses:

11

Étape 1

Modifiez «components / com_content / router.php», puis passez à l'étape 2.
(Vous devrez probablement refaire cette étape chaque fois que vous mettrez à jour Joomla.)

Étape 2

(Il y a deux endroits nécessaires pour effectuer ce changement, un près du haut, un au milieu) Remplacez ceci:

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

Avec ça:

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

Étape 3

Remplacer

->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($db->quote($segment)));

avec

->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($segment));

et tu as fini.

saibbyweb
la source
vous êtes les bienvenus @gag
saibbyweb
J'ai essayé la solution ci-dessus sur mon site 3.3.3 en vain. Le site complet deviendrait vierge.
5

Pour tous ceux qui ne veulent pas se salir avec l'édition de code Joomla, nous mentionnerons que les extensions SEF tierces offrent la possibilité de supprimer les identifiants des URL SEF.

Il existe de nombreuses extensions SEF que quelqu'un peut trouver dans JED :

Par exemple SH404SEF , est l'une des extensions Joomla les plus populaires et utilisées, avec une longue histoire et une prise en charge étendue par de nombreux composants tiers.

Quant à une solution plus simple, je suis récemment tombé sur un nouveau plugin qui fournit quelques fonctionnalités dont "Supprimer les identifiants des articles, des catégories et des balises des URL SEF". Solution simple et facile qui fonctionne.

* Remarque 1: les deux extensions mentionnées ci-dessus sont des téléchargements payants.

* Remarque 2: il existe une autre question similaire dans JSE .

FFrewin
la source
À ce sujet, je suis fan de Direct Alias ​​qui est un plugin qui supprime simplement les ID d'article / catégorie et rien d'autre. Belle solution si vous ne voulez pas un composant SEF entier. extensions.joomla.org/extensions/extension/site-management/sef/…
YellowWebMonkey