Изменение адреса страницы производителей

Изменение адреса страницы производителей
Добрый день, с переходом на 6ую версию ЦМС обнаружили такую проблему:
Ранее в раздел "Производители" мы в "Название раздела" записали "shop". Таким образом на запрос:
http://magazin.ru/shop/lg/
мы получали страницу производителя LG.
Переехали на 6ую версию и теперь при вызове подобной URL получаем 404 ошибку.
Причем если написать просто:
http://magazin.ru/shop/
то сработает редирект и мы попадем на страницу:
http://magazin.ru/internet_magazin/producers/

Каким образом можно настроить работу системы, как это было в 5ой версии, чтобы не срабатывал редирект на новые страницы сайта, а открывалась страница /shop/ и все вложенные в нее производители именно с таким урл, т.к. по ним ведется работа по продвижению.
Модератор
Re: Изменение адреса страницы производителей
Ответы даны в поддержке. нарушение п. 2.4. правил форума.
Re: Изменение адреса страницы производителей
извините, но к сожалению в поддержке ответы не даны.
Модератор
Re: Изменение адреса страницы производителей
ваши утверждения не соответствуют действительности.
Модератор
Re: Изменение адреса страницы производителей
Все верно, в контроллере путь анализа задан следующим образом:
$this->pattern = rawurldecode($this->getEntity()->Structure->getPath()) . 'producers/({path})(page-{page}/)';


Вам нужно в ТДС до parseUrl() передать свой, например,
->pattern(rawurldecode($oShop_Producer_Controller_Show->getEntity()->Structure->getPath()) . 'manufacturers/({path})(page-{page}/)');

Re: Изменение адреса страницы производителей
Итак, следуя вашим инструкциям внес изменения в ТДС, было:

<?php

$oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId'));

$Shop_Producer_Controller_Show = new Shop_Producer_Controller_Show($oShop);

$Shop_Producer_Controller_Show
->limit(Core_Array::get(Core_Page::instance()->libParams, 'itemsOnPage'))
->parseUrl();


Стало:

<?php

$oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId'));

$Shop_Producer_Controller_Show = new Shop_Producer_Controller_Show($oShop);

$Shop_Producer_Controller_Show->pattern(rawurldecode($oShop_Producer_Controller_Show->getEntity()->Structure->getPath()) . 'manufacturers/({path})(page-{page}/)');
$Shop_Producer_Controller_Show
->limit(Core_Array::get(Core_Page::instance()->libParams, 'itemsOnPage'))
->parseUrl();


При попытке зайти в раздел видим ошибку:
Замечание: Undefined variable: oShop_Producer_Controller_Show в файле /path/hostcmsfiles/lib/lib_41/lib_config_41.php (строка 7) Fatal error: Call to a member function getEntity() on a non-object in /path/hostcmsfiles/lib/lib_41/lib_config_41.php on line 7

Поправьте, пожалуйста, что я не правильно делаю?
Модератор
Re: Изменение адреса страницы производителей
$oShop_Producer_Controller_Show замените на $Shop_Producer_Controller_Show
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Re: Изменение адреса страницы производителей
поправил, теперь "Замечания" нет, но на работу сайта внесенные изменения никак не повлияли. Как и ранее при обращении к /shop/lg/ получаем 404 ошибку.
Модератор
Re: Изменение адреса страницы производителей
Вы шутите? Вы паттерн как manufacturers/ указали. Естественно, что /shop/ отображаться не будет. Укажите в паттерне shop/
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Re: Изменение адреса страницы производителей
Хорошо, теперь всё выглядит вот так:
<?php

$oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId'));

$Shop_Producer_Controller_Show = new Shop_Producer_Controller_Show($oShop);

$Shop_Producer_Controller_Show->pattern(rawurldecode($Shop_Producer_Controller_Show->getEntity()->Structure->getPath()) . 'shop/({path})(page-{page}/)');

$Shop_Producer_Controller_Show
   ->limit(Core_Array::get(Core_Page::instance()->libParams, 'itemsOnPage'))
   ->parseUrl();

По прежнему если попытаться зайти на shop/lg/ мы увидим 404 ошибку.
Причем если мы пойдем по старому пути /internet_magazin/producers/lg/ то теперь там не карточка производителя, а опять выводится список всех производителей.

Что я делаю не так?
Авторизация