ЧПУ фильтр по доп. свойствам в ИМ на посадочной странице

#
ЧПУ фильтр по доп. свойствам в ИМ на посадочной странице
Доброго времени суток. Есть необходимость на посадочной странице с ТДС организовать подбор товаров по доп. свойству Список.
Сделать это так что бы УРЛ-ы получились как ЧПУ
Например адрес посадочно страницы http://site.ru/series/ - это посадочная страница ИМ с ТДС то есть в этой странице будут отображаться фильтром определенные товары с конкретной серией производства.
Например если http://site.ru/series/series2008e/ здесь  series2008e это наименование серии в  доп. свойстве Список.
Определенно в доп. свойстве Список есть поле Описание элемента списка где можно прописать слово series2008e см.скриншот  http://prntscr.com/dhhlxs
Вопрос:
Каким образом можно парсить URL в ТДС так чтобы организовать алгоритм вышесказанного фильтра?
Смотрел следующие темы в форуме но не до конца разобрался, правда примеры были для старой версии а хочется для новой версии.
http://www.hostcms.ru/forums/22/3195/
https://www.hostcms.ru/forums/17/3754/
Буду рад любой подсказке, спасибо.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: ЧПУ фильтр по доп. свойствам в ИМ на посадочной странице
Seri, http://www.hostcms.ru/forums/3/11091/
Артем вроде утверждал где-то на форуме, что эта штука совместима и с моими расширенными фильтрами
Заказов не беру. Консультирую редко.
#
Re: ЧПУ фильтр по доп. свойствам в ИМ на посадочной странице
Kotoff писал(а):
эта штука

К сожалению платно, и пока глобально нет необходимости приобрести и применять. Хотелось бы решить проблему своими силами. Спасибо за подсказку буду думать как решить вопрос.
Если у кого был такой опыт поделитесь буду рад.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
Модератор
#
Re: ЧПУ фильтр по доп. свойствам в ИМ на посадочной странице
1. Наследуете parseUrl()
2. Добавляете логику в parseUrl(), если не нашелся товар, значит идут уточнения для текущего товара.
                  // Товар был уже определен, по пути ищем модификацию
                  if ($this->item)
                  {
                     // ...
                  }
                  else
                  {
                     // Добавляете вместо этих строк:
                     //$this->group = FALSE;
                     //return $this->error404();
                  }

Для каждого оставшегося элемента в пути ищите соответствующие значение в списках доп. свойств.
Если найден, добавляете в некое свойства контроллера ID св-ва и ID значения.
Если не найден, то 404.
3. Если 404 не было, то там же в parseUrl() добавляете выбранные ограничения к отбору $this->_Shop_Items
#
Re: ЧПУ фильтр по доп. свойствам в ИМ на посадочной странице
Все так просто написано что, даже элементарно создал ТДС привязал к структуре и получаю 404 ошибку. Не получается унаследовать.
Закладка: Настройки страницы
$oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId'));

$Shop_Controller_Show = new Shop_Controller_Show($oShop);

$on_page = intval(Core_Array::getRequest('on_page'));
if ($on_page > 0 && $on_page < 250)
{
    $Shop_Controller_Show->limit = $on_page;
    $Shop_Controller_Show->addEntity(
        Core::factory('Core_Xml_Entity')
            ->name('on_page')->value($on_page)
    );
    $Shop_Controller_Show
        ->limit($on_page)
        ->parseUrl();
}
else
{
    $Shop_Controller_Show
        ->limit($oShop->items_on_page)
        ->parseUrl();
}

Core_Page::instance()->object = $Shop_Controller_Show;

Закладка: Код страницы
$Shop_Controller_Show = Core_Page::instance()->object;
$Shop_Controller_Show
    ->xsl(
        Core_Entity::factory('Xsl')->getByName('МагазинКаталогТоваров')
    );

$Shop_Controller_Show->addEntity(
    Core::factory('Core_Xml_Entity')
        ->name('header')->value('Акции')
);

$Shop_Controller_Show
    ->shopItems()
    ->queryBuilder()
    ->join('shop_item_discounts', 'shop_item_discounts.shop_item_id', '=', 'shop_items.id')
    ->join('shop_discounts', 'shop_discounts.id', '=', 'shop_item_discounts.shop_discount_id')
    ->where('shop_discounts.active', '=', 1)
    ->where('shop_discounts.start_datetime', '<', Core_Date::timestamp2sql(time()))
    ->where('shop_discounts.end_datetime', '>', Core_Date::timestamp2sql(time()))
    ->where('shop_discounts.deleted', '=', 0)
    ->where('shop_items.modification_id', '=', 0)
    ->clearOrderBy()
    ->orderBy('RAND()');

$Shop_Controller_Show->show();

Что я не так делаю?
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
Авторизация