UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: sodavinegar от 14 Июля 2015, 17:39:49

Название: Вывод товаров из дочерних категорий в родительской
Отправлено: sodavinegar от 14 Июля 2015, 17:39:49
Приветствую.

Подскажите, как можно в родительской категории вывести товары дочерних, если в дочерних товары привязаны с помощью поля "ссылка на дерево"?
Название: Re: Вывод товаров из дочерних категорий в родительской
Отправлено: muldy от 17 Июля 2015, 17:07:39
Только selectorom, как пример:

    $pages = new selector('pages');

    $pages->types('hierarchy-type')->name('catalog', 'category');

   // $parent_id -- Ваша родительская категория

    $pages->where('hierarchy')->page($parent_id)->childs(2);

    foreach($pages as $page){
   
        // Получаем массив страниц из поля - Ссылка на дерево
       $arr = $page->getValue('ssylka_na_derevo');
       
      foreach($arr as $object){
     
        $object - Ваша страница со всеми данными

    }
  }
Название: Re: Вывод товаров из дочерних категорий в родительской
Отправлено: sodavinegar от 20 Июля 2015, 12:34:51
Получилось, спасибо.
Глупый вопрос - а как теперь эти товары на странице отобразить? Я так понимаю, нужно xml для них сгенерировать?
Название: Re: Вывод товаров из дочерних категорий в родительской
Отправлено: admin от 20 Июля 2015, 13:52:10
стандартный пример выборки и генерации ответа в виде xml
public function objItems() {
$pages->types('hierarchy-type')->name('catalog', 'object');
//...     какие-то еще условия       
$total = $pages->length;

    $lines_arr = array();
    foreach($pages as $page) {
           $line=array();

           $line['attribute:id']=$page->id;
           $line['node:text']=$page->name;

           $lines_arr[] = $line;             
    }
    $block_arr=array('nodes:item'=>$lines_arr);
    return array('items'=>$block_arr);
 }
Название: Re: Вывод товаров из дочерних категорий в родительской
Отправлено: sodavinegar от 20 Июля 2015, 16:32:39
стандартный пример выборки и генерации ответа в виде xml
А потом в xslt шаблоне что-то вроде
<xsl:apply-templates select="document(concat('udata://catalog/objItems/', @id))/udata/" />
и тогда в xml появится узел items с подузлами item?
Название: Re: Вывод товаров из дочерних категорий в родительской
Отправлено: admin от 20 Июля 2015, 22:02:00
для начала попробуйте udata://catalog/objItems/id_category в адресной строке вашего сайта, увидите какой xml выводится и соответственно как его обрабатывать
Название: Re: Вывод товаров из дочерних категорий в родительской
Отправлено: sodavinegar от 21 Июля 2015, 12:16:09
А, вот оно что. Я думал это и в http://адрес_сайта/категория/.xml должно появится.
Понял, получилось) Огромное спасибо!