Joomla 2.5 / Делаем ЧПУ по своему / УБрать Цифры из урл, или убрать альяс из урл
В инете есть статейка как убрать цифры из альяса
-------------------------------------------------------------------------------------------------------------------
Редактируем файл Router.php находящийся в ваш_сайт/components/com_content/
Нажимаем CTRL+F (запускаем поиск) и ищем
$params->get('sef_advanced_link',
должно найти 2 результата, первая примерно на 27й строке в функции function ContentBuildRoute(&$query) и вторая на 208й строке в функции function ContentParseRoute($segments). Если не находит, поищите по функциям или по номеру строк. И в найденных строках
$advanced = $params->get('sef_advanced_link', 0);
меняем 0 на 1 в обоих строках.
Чуть ниже где то на 228й строке находим if (strpos($segments[0], ':') === false) { (можете через поиск)
if (strpos($segments[0], ':') === false) {
$vars['view'] = 'article';
$vars['id'] = (int)$segments[0];
return $vars;
}
и комментируем все пять строк подряд начиная с /* и заканчивая */
На вопрос как удалить числовой идентификатор из адреса сайта мы ответили с вами.
-------------------------------------------------------------------------------------------------------------------
Но бывает нужно сделать другую задачу, например для порталов, где новости желательно выводить и ID
И так
решение просто
строка 139
list($tmp, $id) = explode(':', $query['id'], 2);
меняем на
list( $id,$tmp) = explode(':', $query['id'], 2);
Далее в настроках отображения материалов включить Адвансед моде.
или тупо поменять
$advanced = $params->get('sef_advanced_link', 0);
на
$advanced = $params->get('sef_advanced_link', 1);
И вуаля. получаем ссылки типа
site.ru/news/123
-------------------------------------------------------------------------------------------------------------------
Редактируем файл Router.php находящийся в ваш_сайт/components/com_content/
Нажимаем CTRL+F (запускаем поиск) и ищем
$params->get('sef_advanced_link',
должно найти 2 результата, первая примерно на 27й строке в функции function ContentBuildRoute(&$query) и вторая на 208й строке в функции function ContentParseRoute($segments). Если не находит, поищите по функциям или по номеру строк. И в найденных строках
$advanced = $params->get('sef_advanced_link', 0);
меняем 0 на 1 в обоих строках.
if (strpos($segments[0], ':') === false) {
$vars['view'] = 'article';
$vars['id'] = (int)$segments[0];
return $vars;
}
и комментируем все пять строк подряд начиная с /* и заканчивая */
У меня работает и без комментирования. Все сделано и ваш сайт будет без ID в адресной строке, вот только недостаток в этом методе, что при обновлении версий, может потереться эти изменения. Но это тоже решаемо, про это расскажу в следующих статьях, а пока можете при обновлении смотреть, изменился ли данный параметр или нет и при необходимости повторить все заново. Также если вы меняете адреса, не забывайте прописывать переадресацию, чтобы ваши страницы не вылетели из индекса.
На вопрос как удалить числовой идентификатор из адреса сайта мы ответили с вами.
-------------------------------------------------------------------------------------------------------------------
Но бывает нужно сделать другую задачу, например для порталов, где новости желательно выводить и ID
И так
решение просто
строка 139
list($tmp, $id) = explode(':', $query['id'], 2);
меняем на
list( $id,$tmp) = explode(':', $query['id'], 2);
Далее в настроках отображения материалов включить Адвансед моде.
или тупо поменять
$advanced = $params->get('sef_advanced_link', 0);
на
$advanced = $params->get('sef_advanced_link', 1);
И вуаля. получаем ссылки типа
site.ru/news/123
Комментарии
Отправить комментарий