Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 83 Ответов
  • 37361 Просмотров
*

lammer

  • Захожу иногда
  • 95
  • 13 / 0
Всем доброго времени суток!
Я переписал немного стандартный k2 router под Joomla 2.5. В остальном это тот же стандартный router.php, только с тем отличием, что он исключает /item/,/itemlist/category/ из ссылок, вид ссылок становится вида /alias категории на английском/, /alias материала на английском.html, а также для уникальных alias/псевдонимов исключает id (делая ссылки без id), кроме этого переводит на английский в ссылках имена тегов (транслитирацией) согласно правилам Joomla 2.5, что дает более широкую поддержку среди компонентов и модулей, не до конца поддерживающих utf-8, ну и бонусы от поисковиков при индексации. Плюс все старые ссылки уже проиндексированные остаются доступными. Роутер брался из версии k2 2.6.2 и Joomla 2.5. Но не должен создавать проблемы и для k2 2.5. Скачать и опробовать можно в конце статьи k2 router под Joomla 2.5, или из вложений здесь.

[вложение удалено Администратором]
« Последнее редактирование: 24.01.2013, 16:42:44 от lammer »
*

chilly_bang

  • Захожу иногда
  • 113
  • 1 / 1
скажи пожалуйста, а как твой рутер работает относительно проблемы с дублирующимися URL? тут на форума был хак для избавления от этой проблемы...ты как-нибудь вообще эту тематику при переработке рутера затрагивал?
*

lammer

  • Захожу иногда
  • 95
  • 13 / 0
Никак не затрагивал, так как надо сохранить и старый формат url. Почему? Потому что данный router для k2 можно использовать уже на проиндексированных проектах, где очень важно, чтобы ссылки сохраняли свою связь с содержимым. Перенаправляя же принудительно со старых ссылок на новые с 301 редиректом, если что то не так, мы рискуем вогнать посетителя в циклический редирект (или поисковой робот). Что не есть гуд. В карту же сайта будут уходить ссылки нового вида. Для того, чтобы избежать дублей максимально я в следующих версиях добавлю link rel="canonical" в шапку с новой ссылкой, даже если будет переход по старой. Буквально через пару дней. Просто еще тестирую этот следующий вариант.  
Но, скажу Вам честно, проблема у k2 с дублями url даже не в этом. Это так себе. Проблема с дублями идет со страниц с датами (календаря), страниц по авторам (из компонента и модулей), страниц с тегами. Их все нужно закрывать через rel="nofollow". Тогда процент дублей будет относительно не велик: процентов 10 - 15 всего (до 20 наберется). Уже проходили по нескольким сайтам на k2 эту проблему. И это не мой  router, это стандартный router k2 + изменение для более красивых тегов. А еще самые злостные дубли можно внаглую загнать в компонент редиректов в Joomla 2.5 (дубли категорий).
*

chilly_bang

  • Захожу иногда
  • 113
  • 1 / 1
будет ли это решение по убиранию дублей совместимо с вашим рутером?
Код: php
//full item:
//components/com_k2/templates/default/item.php (Где default - используемый шаблон материала)


<?php
if ($this->item->link!= JRequest::getURI()) JApplication::redirect($this->item->link,'','' ,true);
?>

//category
//components/com_k2/templates/default/category_item.php


<?php
$this->original_link = JRoute::_(K2HelperRoute::getCategoryRoute(JRequest::getVar('id'),
0));
if (JRequest::getInt('start') > 0) $this->original_link .= "?start=" . JRequest::getVar('start');
$this->real_link = JRequest::getURI();
if ($this->original_link != $this->real_link) JApplication::redirect($this->original_link,'','' ,true);
?>

*

lammer

  • Захожу иногда
  • 95
  • 13 / 0
будет ли это решение по убиранию дублей совместимо с вашим рутером?
Код: php
//full item:
//components/com_k2/templates/default/item.php (Где default - используемый шаблон материала)


<?php
if ($this->item->link!= JRequest::getURI()) JApplication::redirect($this->item->link,'','' ,true);
?>

//category
//components/com_k2/templates/default/category_item.php


<?php
$this->original_link = JRoute::_(K2HelperRoute::getCategoryRoute(JRequest::getVar('id'),
0));
if (JRequest::getInt('start') > 0) $this->original_link .= "?start=" . JRequest::getVar('start');
$this->real_link = JRequest::getURI();
if ($this->original_link != $this->real_link) JApplication::redirect($this->original_link,'','' ,true);
?>



Можно и плагином. Нет, там немного по другому будет сделан код. Так не получится, как здесь приведено. Почему? Потому что JRequest::getURI() вернет текущую ссылку, и даже если откинуть $_SERVER['QUERY_STRING'] из запроса, то все равно придется пересобрать ссылку заново через jRoute::_(), которому нужно "скормить" части ссылки. Я бы не делал жесткий редирект. Так как где-то может встретиться код с циклическим (бесконечным) перенаправлением. А как заработает стабильная версия с пересборкой ссылки (я сейчас ее тестирую, дней через пару выложу), то просто буду добавлять в шапку rel="canonical" с правильной ссылкой. Ждите решение скорее всего в тест завтра к утру. Я практически закончил. Думаю сижу, что мог упустить, и проверяю на тесте.
*

chilly_bang

  • Захожу иногда
  • 113
  • 1 / 1
а, если уж canonical в head запишется, можно при попытке доступа на неcanonical либо отдавать 404, либо переадресовывать на canonical?
*

lammer

  • Захожу иногда
  • 95
  • 13 / 0
а, если уж canonical в head запишется, можно при попытке доступа на неcanonical либо отдавать 404, либо переадресовывать на canonical?
А зачем? Я же ставлю себе какую цель: по уже проиндексированным ссылкам СОХРАНИТЬ содержимое. Обратную совместимость. 404 возвращать не нужно. О Redirect 301, 302 я ж говорю - лучше, не делать. Ибо могут возникать технические нюансы, когда перенаправление может стать циклическим. rel="canonical" самый подходящий выход из ситуации. Мы просто говорим: каноническая страница - здесь, все остальное - дубли.
Смотрите, приведу пример: посетитель оставил в закладках старую ссылку на Вашу статью, потом он переходит по ней, и тут ему 404 - он удивится? Да. Куда делась любимая статья? А если его еще и загоняют по редиректам, и в лучшем случае ему браузер напишет: неверное перенаправление на странице. Хорошо? Нет. А так для поисковых систем, которые все понимают rel="canonical" мы говорим - если встретите дубли, то каноническая страница переехала сюда, остальное можно не учитывать.
*

Очередной вебмастер

  • Давно я тут
  • 768
  • 55 / 0
  • лысый умный дядя
А зачем?  ... если встретите дубли, то каноническая страница переехала сюда, остальное можно не учитывать.
Абсолютно согласен и поддерживаю. Яндекс и Google оба хорошо учитывают rel=canonical
Кому нужны редиректы - сам сможет их настроить через htaccess...
Сайты на Joomla, разработка и поддержка
----------
Помог ответ - жми плюс!
*

Очередной вебмастер

  • Давно я тут
  • 768
  • 55 / 0
  • лысый умный дядя
Сайты на Joomla, разработка и поддержка
----------
Помог ответ - жми плюс!
*

jurassik

  • Давно я тут
  • 689
  • 52 / 1
а нельзя-ли это дело плагином выполнить?

Спойлер
[свернуть]

а если избавиться изначально от одноименных алиас категорий и материалов - это может уменьшить кол-во запросов к бд?
т.е. хакнуть файлы админки к2 чтобы при сохранении категории\матегиала была проверка на уникальность алиас, как это реализовано в менеджере меню Joomla (если алиас совпадает то выдает ошибку)

сам шучу - сам смеюсь
*

jurassik

  • Давно я тут
  • 689
  • 52 / 1
Опа, походу не одному вам заколебались эти длинные ссылки:
Тоже роутер от коллеги из-за бугра
3 часа назад запостил об этом
Совпадение?
часто одни и теже открытия) совершились одновременно в разных точках мира.


//там на 1 запрос меньше
сам шучу - сам смеюсь
*

Очередной вебмастер

  • Давно я тут
  • 768
  • 55 / 0
  • лысый умный дядя
часто одни и теже открытия) совершились одновременно в разных точках мира.


//там на 1 запрос меньше
Там и роутер работает по другому, не как у Вас, я четно говоря в замешательстве, чье формирование URL более правильное.
Сайты на Joomla, разработка и поддержка
----------
Помог ответ - жми плюс!
*

jurassik

  • Давно я тут
  • 689
  • 52 / 1
не как у Вас

не у меня), я не ТС и не автор
я четно говоря в замешательстве, чье формирование URL более правильное.

а какие критерии? если результат одинаковый

1. кол-во запросов
2. .... ?
сам шучу - сам смеюсь
*

Очередной вебмастер

  • Давно я тут
  • 768
  • 55 / 0
  • лысый умный дядя
Вот именно что не одинаковый.
У ТС помоему разумнее построение урла: алиас меню/материал (если пункт меню является категорией) - вопрос только, что если пункт меню - это несколько категорий.
У западного коллеги работает по принципу Joomla/id-category/id-item
Сайты на Joomla, разработка и поддержка
----------
Помог ответ - жми плюс!
*

Очередной вебмастер

  • Давно я тут
  • 768
  • 55 / 0
  • лысый умный дядя
Сайты на Joomla, разработка и поддержка
----------
Помог ответ - жми плюс!
*

jurassik

  • Давно я тут
  • 689
  • 52 / 1
Они все таки взяли вариант от Роберто - http://gist.github.com/phproberto/4687829
что-то у меня после замены на новый роутер 2.6.4 стало хуже:

категория:
category/content/2-category2.html

материл:
category2/acticle.html

а, было
category/category2.html

так и должно?
« Последнее редактирование: 08.02.2013, 15:01:41 от jurassik »
сам шучу - сам смеюсь
*

Rex_One

  • Захожу иногда
  • 453
  • 37 / 0
А у меня нормально работает.
В настройках может забыли включить работу роутера?
Кстати уже вышел новый К2 v. 2.6.5
Кривизна рук не компенсирует прямизну извилин.
*

jurassik

  • Давно я тут
  • 689
  • 52 / 1
В настройках может забыли включить работу роутера?
тогда бы ссылка на материал имела бы другой вид.

категорию вида:
category/content/2-category2.html
- это генерирует к2_tools - menu
сам шучу - сам смеюсь
*

dreamod

  • Захожу иногда
  • 82
  • 2 / 0
Роутер это замечательно, но подскажите как убрать вот это - "/component/k2/content/"??
Заранее спасибо!
*

jurassik

  • Давно я тут
  • 689
  • 52 / 1
Роутер это замечательно, но подскажите как убрать вот это - "/component/k2/content/"??
Заранее спасибо!
создать пункт меню категории
сам шучу - сам смеюсь
*

dreamod

  • Захожу иногда
  • 82
  • 2 / 0
создать пункт меню категории
Т.е. делать изврат со спрятанным меню и в него перебить все категории?
Думал есть более изящное решение =)
Спасибо.
*

chilly_bang

  • Захожу иногда
  • 113
  • 1 / 1
@dreamod: а этот изврат специфичен не только для К2. Всё, что не имеет собственного пункта меню, обладает урлами, выглядящими так или похоже.
*

dreamod

  • Захожу иногда
  • 82
  • 2 / 0
@dreamod: а этот изврат специфичен не только для К2. Всё, что не имеет собственного пункта меню, обладает урлами, выглядящими так или похоже.
да вот припомнил что для вм нечто подобное делал когда не юзад sh404SEF
*

koskanalya

  • Захожу иногда
  • 62
  • 0 / 0
Не понимаю я что никак нельзя убрать /component/k2/ эту хрень из URL если материал не привязан к категории. Хочу чтобы сразу был мой-cайт/материал? Есть какие нибудь идеи кроме использования компонента sh404SEF?
*

kozhenevsky

  • Захожу иногда
  • 209
  • 0 / 0
Здравствуйте. Скажите, а как убрать только ID? Мне нужно чтобы item присутствовал в ссылке.
*

delvig

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Подскажите пожалуйста, а как еще убрать до кучи component/k2 из URL тегов.
*

chilly_bang

  • Захожу иногда
  • 113
  • 1 / 1
не убирайте ни ID, ни component/k2 из URL. Наживёте проблем. Google всё и так схавает, если контент интересный. А нагрузка на базу и количество 404 возрастёт как пить дать. Ну и вопросов тут ещё зададите штук стопицот, как от нагрузки и от 404 избавиться... патамушо если нет ID в URL, то и неясно, какой сайт из двух с одинаковыми алиасами грузить... поэтому загрузится первый, а вместо второго 404... ну и тэдэ и тэпэ. имхо.
*

delvig

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Здравствуйте. Подскажите пожалуйста как вырезать параметр limitstart=0 из урл-ов первой страницы. К примеру, решил использовать плагин Pagebreak - MyJspace для разбиения большого материала k2 на страницы, т.к. стандартный в k2 не работает. В принципе все устраивает, кроме одной хрени. Когда переходишь на следующую страницу в пагинаторе на кнопках "В начало", "Prev" и "1" подсвечивается URL типа http://mysite.ru/category/title?limitstart=0
 Кроме того, в пагинаторе в категориях такая же хрень - на первую страницу идет ссылка с лимитстартом. Работа пагинатора организуется стандартным плагином k2, я так понимаю. Мне тут подсказали, что нужно либо роутер хакать, либо ставить SEF компонент (но делать этого не хочется). Поэтому думаю лучше в роутере пошаманить, подскажите пожалуйста, что и где надо добавить/убрать. Использую хакнутый роутер из первого поста.
*

delvig

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
« Последнее редактирование: 28.04.2013, 23:09:56 от delvig »
*

chilly_bang

  • Захожу иногда
  • 113
  • 1 / 1
@ delvig: так опиши, как решил, не жадничай;) тут же форум, кому-то обязательно понадобится.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка components\com_k2\views\itemlist\view.html.php on line 485

Автор NIKOLY

Ответов: 5
Просмотров: 706
Последний ответ 09.12.2020, 16:56:01
от NIKOLY
itemlist/category как убрать.

Автор makarovse

Ответов: 14
Просмотров: 12899
Последний ответ 23.01.2019, 20:01:53
от TYMON
Убрать решетку из тегов K2

Автор Olga

Ответов: 0
Просмотров: 728
Последний ответ 24.08.2018, 12:08:20
от Olga
Как избавиться от дублей страниц вида category?start=26?

Автор sergspb

Ответов: 0
Просмотров: 844
Последний ответ 02.02.2018, 13:22:36
от sergspb
Удалить из url component/k2/item!

Автор skb4com

Ответов: 6
Просмотров: 16421
Последний ответ 03.03.2017, 11:16:37
от Hollyfild