Видаліть ідентифікатор статті з URL-адреси Joomla 3


9

Я намагаюся видалити ідентифікатор статті з URL-адреси Joomla 3. Я обшукував, і відповідь є

components\com_content\router.php

зміни 0в 1на$advanced = $params->get('sef_advanced_link', 1);

на лініях 38 та 290

а також прокоментував

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

Я вважаю, що це добре працює в Joomla 2.5, оскільки всі коментарі згадують про це.

Але це не працює для мене на моєму веб-сайті Joomla 3.3.

Як я можу досягти цього, не створюючи пунктів меню для кожної статті?


Чи є у вас помилка?
Дмитро Рекун

Просто створіть посилання на меню для вашої статті.
saibbyweb

Лодер - Так, я отримую потрібне посилання, але маю 404 сторінку помилок замість моєї статті.
кляп

Saibbyweb - у мене більше 100 статей, і кількість досягає 500, тому я не думаю, що створити меню для всіх цих цілей не годиться.
гаг

Якщо розширення K2 - варіант для вас, то ви можете досягти цього дуже просто. У K2 є варіанти вдосконаленої маршрутизації, з необхідними параметрами. Ви можете імпортувати цікаві вироби до K2. Перевірте мій блог K2 та створені посилання для читання. Іншим рішенням є використання чогось подібного sh404sef або ви чекаєте для цього indiegogo.com/projects/advance-the-joomla-url-router/x/7216161
агенція Joomla

Відповіді:


11

Крок 1

Відредагуйте "компоненти / com_content / router.php", після чого продовжте крок 2.
(Вам, ймовірно, доведеться повторювати цей крок щоразу, коли ви оновлюєте Joomla.)

Крок 2

(Для цього потрібно змінити два місця: одне біля верху, одне посередині) Замініть це:

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

З цим:

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

Крок 3

Замініть

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

з

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

і ви закінчили.


ласкаво просимо @gag
saibbyweb

Я спробував вищевказане рішення на своєму 3.3.3 сайті безрезультатно. Повний сайт буде порожнім.

5

Для тих, хто не хоче забруднитись редагуванням коду Joomla, зазначимо, що розширення SEF сторонніх розробників надають можливість видаляти ідентифікатори з URL-адрес SEF.

Є багато розширень SEF, які хтось може знайти в JED :

Наприклад, SH404SEF - це одне з найпопулярніших і використовуваних розширень Joomla, що має довгу історію та розширену підтримку багатьох сторонніх компонентів.

Що стосується більш простого рішення, то нещодавно я натрапив на новий плагін, який пропонує кілька функцій, зокрема "Видалити ідентифікатори зі статті, категорії та теги SEF-адреси". Просте і легке рішення, яке працює.

* Примітка1: Обидва розширення, зазначені вище, є платними завантаженнями.

* Примітка2: є ще одне подібне питання у JSE .


Виправляючи це, я прихильник прямого псевдоніма - плагін, який просто видаляє ідентифікатори статті / категорії та нічого іншого. Чудове рішення, якщо ви не хочете цілого компонента SEF. extensions.joomla.org/extensions/extension/site-management/sef/…
YellowWebMonkey

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.