Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

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

*

sodavinegar

  • *
  • 6
  • +0/-0
    • Просмотр профиля
Приветствую.

Подскажите, как можно в родительской категории вывести товары дочерних, если в дочерних товары привязаны с помощью поля "ссылка на дерево"?

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Только 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 - Ваша страница со всеми данными

    }
  }

*

sodavinegar

  • *
  • 6
  • +0/-0
    • Просмотр профиля
Получилось, спасибо.
Глупый вопрос - а как теперь эти товары на странице отобразить? Я так понимаю, нужно xml для них сгенерировать?

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
стандартный пример выборки и генерации ответа в виде 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);
 }

*

sodavinegar

  • *
  • 6
  • +0/-0
    • Просмотр профиля
стандартный пример выборки и генерации ответа в виде xml
А потом в xslt шаблоне что-то вроде
<xsl:apply-templates select="document(concat('udata://catalog/objItems/', @id))/udata/" />
и тогда в xml появится узел items с подузлами item?

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
для начала попробуйте udata://catalog/objItems/id_category в адресной строке вашего сайта, увидите какой xml выводится и соответственно как его обрабатывать

*

sodavinegar

  • *
  • 6
  • +0/-0
    • Просмотр профиля
А, вот оно что. Я думал это и в http://адрес_сайта/категория/.xml должно появится.
Понял, получилось) Огромное спасибо!