как убираеть 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)
Новые темыОбъявленияСвободное общение
20:13 Dao.AD: Монетизация и покупка Push/Pops/Inpage и Video трафика! 
15:04 Adtrafico - Правильная партнёрская сеть под бурж трафик 
19:21 LOSPOLLOS.COM - Конвертим по рецепту Хайзенберга. Dating, Mainstream, Binary Options 
17:32 Новая жизнь, старого форума 
17:41 DreamCash.tl - заработок на онлайн-видео. До 95% отчислений, отличный конверт! 
17:46 Проверить сайт на уязвимость 
17:44 Adsense личный опыт 
23:48 GoogleWalker - устранение конкурентов в Google Ads | Автоматизированная система склика | АНТИБАН 
23:24 Volna.money 
16:51 Google Voice - OLD аккаунты "SMS и звонки" 
15:30 Продам аккаунты HH.RU 
04:10 Просто $0.04/IP 9PROXY.COM Резидентные прокси Неограниченная пропускная способность Уникальная политика замены Без чёрного списка 
22:00 BestX24 - быстрый и безопасный обменник криптовалют и электронных денежных средств 
16:58 Продам обменник криптовалюты, а также новый обменник под ключ с обучением. Скидки на скрипты обменника 
21:06 Точные прогнозы на футбол 
12:43 Куплю проигрышные букмекерские аккаунты 
04:33 Половина скидок на распродажах — фейк 
07:53 НейроБабушка наказывает мошенников 
19:59 Осталось 3-5 месяцев до блокировки YouTube в России, — заявил Клименко 
19:57 Пятница 13-ое: VK принял радикальное решение и закрыл доступ к порно контенту 
14:57 Конгресс США заявил о лабораторном происхождении коронавируса