AlexMoiseyuk VIP
Total posts: 123
27 Янв 2016 07:56

вопрос в том насколько это большая фантастика сделать ссылки на отфильтрованные списки статей типа http://site.com/menu_item/filter/1-cobalt_section/4-tag_name как в вордпресе ссылки на теги?

например есть ли вообще возможность отследить index.php?option=com_cobalt&task=records.filter&section_id=1&filter_name[0]=filter_tag&filter_val[0]=9 например в mу_router.php и перекодировать?

Последние изменения: 08 Фев 2016

Метки Developer


Sergey
Total posts: 13,748
28 Янв 2016 13:55

Да конечно это можно. Нужно напсать свой роутер. Скопируйте текущий в папке com_cobalt/routers/ и добавте парсниг. Например сделайте урл типа.

 http://site.com/menu_item/filter_tag/1-cobalt_section/4-tag_name 

Теперь в свой роутер в метод CobaltParseRoute в switch добавте новый case

case 'filter_tag':
    $vars['view']           = 'records';
    $vars['section_id']     = $filter->clean($segments[1], 'INT');
    $vars['filter_name'][0] = 'filter_tag'
    $vars['filter_val'][0]  = $filter->clean($segments[$last_segment], 'INT');
    break;

Как то так. Нужно проверить все.


AlexMoiseyuk VIP
Total posts: 123
29 Янв 2016 18:39

наверное я вернусь к этому позже, когда будет время, потому что такой метод не сработал в разных варинатах. а что именно там не так мне очень сложно понять.

но как я понимаю, это не должно на ссылках в статье менять урл. Еще не понятно почему records а не например records.filter, как тут ?option=com_cobalt&task=records.filter&section_id=1

пока спасибо, буду разбираться с роутером


Sergey
Total posts: 13,748
03 Фев 2016 15:00

А ну да надо поенять $vars['task'] = 'records/filter';


AlexMoiseyuk VIP
Total posts: 123
05 Фев 2016 18:20

сработал следующий код:

        case JText::_('filter_tag'):
            $vars['task'] = 'records.filter';
            $vars['section_id']     = $filter->clean($segments[1], 'INT');
            $vars['filter_name'][0] = 'filter_tag';
            $vars['filter_val'][0]  = $filter->clean($segments[$last_segment], 'INT');
            break;

перешел на сайте по ссылке: site.com/news/filter_tag/1-section_news/10-tag_name и оно действительно применило фильтр! Спасибо! =)

но все таки в идеале хотелось бы чтобы ссылки меток в статьях так конвертировались и после применения фильтра не перебрасывало на страницу site.com/news/items/1-news.html, а оставляло указанный урл. Разве это не нужно для поисковой оптимизации?


Sergey
Total posts: 13,748
08 Фев 2016 02:18

В кобальте нет ссылок на поиск или фильраци. Все делается через состояния в сессиии.

Работает на Cobalt