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

voron121

  • Захожу иногда
  • 216
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
Роутинг Joomla плодит дубли
« : 12.04.2017, 15:44:15 »
Доброго времени суток. Просьба помочь с проблемой. Для самописного компонента реализовал  поддержку роутов согластно стандартам Joomla (на сколько я их понял есесн.). По итогу URL формируется нужный. Однако если из URL убрать часть  - то страница все равно останется. Пример : есть URL mysite.com/item/mfo_15.html (15 - это ид материала). Этот URL правильный. Но если написать вот так :  mysite.com/item/o_15.html или даже так:  mysite.com/item/fo_15.html  - то страница все равно выведется. Подскажите что не так плз. Вот код route.php который я писал :

 
Код: php
<?php
defined('_JEXEC') or exit;

    function ZaimBuildRoute(&$query) {
        $segments = array();
        if(isset($query['view'])){
            $segments[] = $query['view'];
            unset($query['view']);
        }

        if(isset($query['id'])){
            $segments[] = "mfo_".$query['id'];
            unset($query['id']);
        };
        return $segments;
    }


    function ZaimParseRoute( $segments ) {
        $vars = array();
        $count = count( $segments );
        if ( $count ) {
            $count--;
            $segment = array_shift( $segments );
            $vars['view'] = $segment;
        }
        if ( $count ) {
            $count--;
            $segment = array_shift( $segments );
            $vars['id'] = "mfo_".$segment;
        }
        return $vars;

    }


?>


*

ChaosHead

  • Живу я здесь
  • 4774
  • 421 / 13
Re: Роутинг Joomla плодит дубли
« Ответ #1 : 12.04.2017, 15:59:45 »
Это беда Joomla, над её исправлением работают, но не так быстро, как хотелось бы.
Можно при выводе страницы определять правильный url и прописывать каноническую ссылку.
*

voland

  • Легенда
  • 9711
  • 539 / 106
  • Эта строка съедает место на вашем мониторе
*

robert

  • Живу я здесь
  • 4254
  • 406 / 15
Re: Роутинг Joomla плодит дубли
« Ответ #3 : 12.04.2017, 17:50:45 »
IMHO, так не должен был работать routing. Ведь у вас ID - не число, еще и с префиксом "mfo_":
Код: php
    function ZaimParseRoute( $segments ) {
...
            $segment = array_shift( $segments );
            $vars['id'] = "mfo_".$segment;
...
    }

P.S. Хм, а как модель ищет материал? Не может быть, чтобы в базе были такие ID: mfo_o_15, mfo_mf_15...
P.P.S. Вспомнил, там ID, скорее всего, приводится к integer.
Это беда Joomla, над её исправлением работают, но не так быстро, как хотелось бы.
Можно при выводе страницы определять правильный url и прописывать каноническую ссылку.
У ТС же свой компонент. IMHO, в рамках своего компонента вполне можно избежать эту ошибку.
« Последнее редактирование: 12.04.2017, 19:22:04 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 4 alfa

Автор web3.0

Ответов: 174
Просмотров: 2001
Последний ответ Сегодня в 00:12:24
от zomby6888
Видео не влазят в мобильнй экран Joomla 3

Автор bb777

Ответов: 0
Просмотров: 16
Последний ответ 10.12.2017, 19:25:22
от bb777
Необходимо убрать '?layout=category' из ссылок в хлебных крошках - Joomla! 3.6.2б, JoomShoping

Автор mankutila

Ответов: 3
Просмотров: 197
Последний ответ 07.12.2017, 23:12:13
от Aleks.Denezh
Вывод дополнительных полей Joomla 3.7 в шаблоне статьи

Автор mrN

Ответов: 9
Просмотров: 891
Последний ответ 06.12.2017, 10:28:56
от Mitriy
Материалы в Joomla x3

Автор Edward_m

Ответов: 6
Просмотров: 127
Последний ответ 06.12.2017, 08:32:37
от Edward_m