как убираеть ID Joomla
Страницы: 1
как убираеть ID Joomla, ID Joomla
ID у Джумлы  в адресной строке появляется в случае если созданная страница не привязана к меню.
Случаев когда страница не привязывается к меню достаточно много.
Для разных версии придумано много решений. Мне они не помогли.

Вот решения что я нашел в интернете они касаются в основном если все страницы привязаны к меню

У меня финальная версия 2.5.28.  Если делать по 1 варианту то в настройках материала ничего не добавляется (т.е. кнопка удаления ID)
во 2 варианте не генерируется ссылка.
Попробуйте после выполнения 2 варианта вставить решение вопроса в 1 варианте который указан.
В моей версии Джумла не катит нету этой строчки, но есть вот это - похожее, выкладываю код что нужно изменить в генегации ссылок не знаю


Код
if ($found == 0) {
            if ($advanced) {
                $db = JFactory::getDBO();
                $query = 'SELECT id FROM #__content WHERE catid = '.$vars['catid'].' AND alias = '.$db->Quote($segment);
                $db->setQuery($query);
                $cid = $db->loadResult();
            } else {
                $cid = $segment;
            }


 Вот что я нашел в интернете

Отключение ID материала в Joomla 2.5 и Joomla 3 - Вариант 1
Для всего этого нам нужно будет лишь сделать некоторые модификации файлов движка, которые помогут нам добиться нужного результата. В самой Joomla (начиная с версии 1.6) уже предусмотрена функция отключения ID материала из адреса ссылок, но для открытия этой возможности нам нужно добавить в файле: корень_сайта/administrator/components/com_content/config.xml строки:


Код
<field name="sef_advanced_link"
type="radio"
default="1"
label="SEF: Удалить ID материала в ссылке?"
description="Удалить ID материала в ссылке?">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>


В принципе, эти строки можно добавить в любое место в данном файле, даже в самое начало (только не забудьте сохранить файл в кодировке UTF-8 без BOM, иначе вместо русских символов Вы увидите иероглифы). После добавления этих строк кода, Вы получили возможность включать и отключать ID из ссылок прямо из административной панели своего сайта. Для этого Вам нужно перейти в менеджер материалов и нажать "Настройки". И в настройках теперь у Вас будет находиться строка: "Удалить ID материала в ссылке?":
[IMG]
Нажимаете "Да". После этого очистите кэш сайта. Теперь ссылки в Joomla 2.5 будут отображаться без ID.
Если на некоторых ссылках выскакивает 404 ошибка, то следует в файле _ваш-сайт/components/com_content/router.php найти строку:


Код
// then we assume it is a category. If they don't we assume it is an article
if ($count === 1) {


И заменить её на:


Код
// then we assume it is a category. If they don't we assume it is an article
if ($count === 1 && !$advanced) {


Внимание: Обратите внимание, что данный параметр может отличаться в разных версиях Joomla. Например, в Joomla 3 у меня было так:

Код
if ($count === 1 {


Код
[/CODE][CODE]А в Joomla 2.5 может быть вот так:


Код
if ($count == 1 {

Поэтому старайтесь быть очень внимательными, чтобы не пришлось потом долго искать ошибку.
Важно: все категории должны быть привязаны к пунктам меню - если этого не будет, то могут возникнуть ошибки при генерации ссылок. Так же обратите внимание, что не будут работать ссылки, если название материала состоит из одного слова. Для решения этого косяка нужно опять открыть файл _ваш-сайт/components/com_content/router.php и найти строку:

В Джумле 2.5.28 подругому:mad: - этой строчки нету Выше указан код который надо изменить как не знаю.
Код
->where($db->quoteName('alias'). ' = ' . $db->quote($db->quote($segment)));
И заменить её на:
Код
->where($db->quoteName('alias'). ' = ' . $db->quote($segment) );



Только не забудьте, что при обновлении Joomla этот файл будет заменен! Поэтому настоятельно рекомендую сохранить его в отдельном месте, чтобы потом заново не вносить изменения.

Отключение ID материала в Joomla 2.5 и Joomla 3 - Вариант 2
Второй метод так же работает на Joomla 2.5 и Joomla 3. Но его минус в том, что при каждом обновлении движка нужно будет заново вносить эти изменения или просто перезаписывать файл роутера поверх нового. Итак, в этом способе мы будем работать только с файлом _ваш-сайт/components/com_content/router.php.
Для начала найдите строку (примерно 27 строка):


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


И замените её на:


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


Затем найдите вот эту строку (в Joomla 2.5 - 228 строка, в Joomla 3 - 250):


Код
$advanced = $params->get('sef_advanced_link', 0);
И замените её на:


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


Теперь опускайтесь чуть ниже (в Joomla 2.5 - строка 228, в Joomla 3 - строка 272) и находите вот этот кусок кода:


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


И закомментируйте его (при комментировании, код перестает обрабатываться), чтобы получилось вот так:


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


Ну или полностью удалите, тут уже решать Вам. Но лучше закомментировать его, чтобы с случае чего можно было вернуть все на место.
Теперь ссылки на Вашем сайте в Joomla 2.5 и Joomla 3 будут отображаться без ID материалов. Но в Joomla 3 могут появиться ошибки 404 при использовании данного способа - чтобы избежать этого, читайте примечание ниже.
Важное примечание для Joomla 3: если при переходе по ссылкам без ID у Вас возникает 404 ошибка, то найдите в файле _ваш-сайт/components/com_content/router.php строку 376 (в разных версиях Joomla эта строка может отличаться):


Код
->where($db->quoteName('alias') . ' = ' . $db->quote($db->quote($segment)));


И замените её на:


Код
->where($db->quoteName('alias') . ' = ' . $db->quote($segment));


Теперь все ссылки должны заработать и отображаться правильно и без ошибок. Я проверил ссылки, состоящие из одного слова, цифр и нескольких слов - все открывается и работает отлично без глюков и ошибок!
Если данная статья оказалась для Вас полезна, то подписывайтесь на получение материалов
Изменено: Александр Черкасов - 24 Февраля 2015 12:36
Повторяю код который надо изменить . Я думаю что тут надо что то настроить , в этом месте


Код
if ($found == 0) {
            if ($advanced) {
                $db = JFactory::getDBO();
                $query = 'SELECT id FROM #__content WHERE catid = '.$vars['catid'].' AND alias = '.$db->Quote($segment);
                $db->setQuery($query);
                $cid = $db->loadResult();
            } else {
                $cid = $segment;
            }
Страницы: 1
Похожие темы:
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
11:07 01.02. Апдейт 31.01 // Chrome готовит "чёрную метку" для ИИ? 
06:34 Гугл пухнет от кеша, а нам - крошки. Разбор $114 млрд: Адсенс в минусе, Ютуб на подписках 
01:09 Yahoo Scout: Нейро-привет из склепа. Реальный шанс на траф или мимо? 
17:33 AntiBot Cloud - бесплатный скрипт и сервис защиты сайтов 
15:14 Апдейт Яндекса 7 февраля. Пока серп трясет, некоторые по ботам плачут 
15:10 Google Discover Core Update: Дискавер отделяют от поиска? 
11:30 ЕС душит ТикТок: прощай бесконечная лента и RPM? Что с монетизацией? 
08:58 Мониторинг обменников Сrypto-scout.io 
04:09 Просто $0.04/IP 9PROXY.COM Резидентные прокси Неограниченная пропускная способность Уникальная политика замены Без чёрного списка 
02:31 Профессиональный и грамотный дизайн от DesignCash 
18:27 Nexulume.com Обменник без AML и KYC 
15:45 Mixmasters - Exchange without AML and KYC 
10:22 Swapwatch.org — Мониторинг криптовалютных обменников 
10:19 SwapPix.io - быстрый и безопасный обменник криптовалют. 
08:50 Гильотина для классиков: Клод доедает физические книги 
08:40 Кулеры и БП станут золотыми? Медь по 13 штук, олово в космосе 
05:10 Точные прогнозы на футбол 
18:34 Ставки на супер тренды в спорте 
11:10 Moltbook: Соцсеть для ботов, где людям закрыли рот. Началось? 
22:31 [AI] Бот за $600к советовал есть сыр с крысами. Нью-Йорк его (наконец-то) снес 
13:38 Осталось 3-5 месяцев до блокировки YouTube в России, — заявил Клименко