Странное поведение Доски объявления!

#
Странное поведение Доски объявления!
Добрый день! Появилась проблема, которую никак не могу решить. В ТДС доски объявлений если ставлю group(FALSE), то не могу попасть в категорию. Все время кидает на страницу категории, но на этой странице все объявления вместо тех которые относятся к данной категории. Если убираю group(FALSE), то все работает нормально, но при создании узла структуры все объявления создании для этого узла отдельного шаблона и выводе в нем таким образом:

<?php
                        if (Core::moduleIsActive('shop'))
                      {
                         $Shop_Controller_Show = new Shop_Controller_Show(
                            Core_Entity::factory('Shop', 4)
                         );
                         $Shop_Controller_Show
                            ->xsl(
                               Core_Entity::factory('Xsl')->getByName('СписокОбъявленийСайт2ВыводОбъявленийГлавнаяБиржаНовые')
                            )
                            ->groupsMode('none')
                            //->itemsForbiddenTags(array('text'))
                            ->itemsProperties(TRUE)
                            ->group(FALSE)
                            ->limit(9999);
                                       
                         $Shop_Controller_Show->show();
                      }
                   ?>

на странице появляются объявления, но при попытке перейти на следующую страницу по пагинации пишет ошибку 404. Думал сделать 2 ТДС, но не пойму как к ним обращать из кода выше. Поддержка подсказала такой вариант, но у меня Халява поэтому детали мне не рассказали. Может кто подскажет на форуме?
informer
Модератор
#
Re: Странное поведение Доски объявления!
forzaur,
если вы ставите group(FALSE), то отменяете ID группы, который был рассчитан в parseUrl(), естественно у вас выводятся все объявления внутри любой группы.
#
Re: Странное поведение Доски объявления!
hostcms писал(а):
если вы ставите group(FALSE), то отменяете ID группы, который был рассчитан в parseUrl(), естественно у вас выводятся все объявления внутри любой группы.

Не подскажите как мне исправить ошибку "при попытке перейти на следующую страницу по пагинации пишет ошибку 404"? Через 2 ТДС не знаю как это сделать.
informer
#
Re: Странное поведение Доски объявления!
Что вы имеете ввиду под "2 ТДС" ? На разных разделах структуры создать доску или что? Можете подробно описать свою задачу ? В каких случаях должен быть список, а в каких показ по группам?
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Странное поведение Доски объявления!
llirik писал(а):
Что вы имеете ввиду под "2 ТДС" ? На разных разделах структуры создать доску или что? Можете подробно описать свою задачу ? В каких случаях должен быть список, а в каких показ по группам?


Задача такая. Есть доска объявлений. Стандартно можно перейти на страницу с доской и там сначала появляются категории после в каждой категории свои объявления.
Мне нужно чтобы еще отдельно на странице можно было отображать все объявления из всех категорий. Как сейчас сделано http://0695.ru/job-list/
Но проблема что при появлении пагинации нельзя перейти на страницу 2, 3 т.к. появляется ошибка 404. Страницу "Все объявления" вывожу на отдельном шаблоне кодом вывода, который указан в первом сообщении.
informer
#
Re: Странное поведение Доски объявления!
При использовании контроллера в макете пагинация не будет работать.  Вы снова не объясняете где вам нужен список без групп.. На отдельной странице,в корне доски объявлений или при нажатии на определенную кнопку.  Если в корне то в коде ТДС можете разместить код:

if ($Shop_Controller_Show->group == 0)
{
   $Shop_Controller_Show->group(FALSE);
}
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Странное поведение Доски объявления!
llirik писал(а):
Вы снова не объясняете где вам нужен список без групп.. На отдельной странице,в корне доски объявлений или при нажатии на определенную кнопку.

Уважаемый модератор мне нужно выводить список на отдельной странице со своим отдельным макетом. В данный момент у меня выведен список в самом макете, который я для этого создал.
informer
#
Re: Странное поведение Доски объявления!
Если поставить указанный код, то отображаются категории и ниже список. А мне надо только список на отдельной странице. И чтобы пагинация работала. Сейчас у меня корень выводит на странице доски объявления категории и мне так и нужно. Но я хочу на отдельной странице выводить только список из всех групп без отображения категорий.
informer
#
Re: Странное поведение Доски объявления!
Если вы зайдете на эту страницу, то увидите что пагинация не работает http://0695.ru/job-list/
Я создал в структуре сайта узел job-list сделал отдельный макет для этого узла и в макете вывел список объявлений вот этим кодом:
<?php
                        if (Core::moduleIsActive('shop'))
                      {
                         $Shop_Controller_Show = new Shop_Controller_Show(
                            Core_Entity::factory('Shop', 4)
                         );
                         $Shop_Controller_Show
                            ->xsl(
                               Core_Entity::factory('Xsl')->getByName('СписокОбъявленийСайт2ВыводОбъявленийГлавнаяБиржаНовые')
                            )
                            ->groupsMode('none')
                            //->itemsForbiddenTags(array('text'))
                            ->itemsProperties(TRUE)
                            ->group(FALSE)
                            ->limit(12);
                                       
                         $Shop_Controller_Show->show();
                      }
                   ?>
informer
#
Re: Странное поведение Доски объявления!
Тогда вам нужно создать узел структуры сайта с типом "динамическая страница" . В поле "Динамическая страница" укажите :

<?php

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


$Shop_Controller_Show
   ->xsl(
   Core_Entity::factory('Xsl')->getByName('СписокОбъявлений')
   )
   ->groupsMode('none')
   //->itemsForbiddenTags(array('text'))
   ->itemsProperties(TRUE)
  ->group(FALSE)
   ->limit(12);
                                      
$Shop_Controller_Show->show();
                      
?>


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

<?php

$oShop = Core_Entity::factory('Shop', 2);

$Shop_Controller_Show = new Shop_Controller_Show($oShop);

$Shop_Controller_Show
   ->pattern('/' . Core_Page::instance()->structure->path . '({path}/)(user-{user}/)(page-{page}/)(tag/{tag}/)(producer-{producer}/)')
   ->limit($oShop->items_on_page)
   ->parseUrl();

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



в коде измените id магазина и xsl на ваши. Вероятно нужны будут еще правки в самом xsl шаблоне.
«Не выходи из комнаты, не совершай ошибку…»
Авторизация