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

Автор BabajkaРаздел Шаблоны XSLT

Ответов: 22
Просмотров: 6935
Последний ответ 22 Май 2013, 15:14:32
от admin
Добавить свой атрибут к item?

Автор muldyРаздел Custom макросы

Ответов: 7
Просмотров: 1933
Последний ответ 28 Август 2013, 12:52:48
от admin
Выбрать занчения item?

Автор muldyРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 1116
Последний ответ 16 Январь 2014, 15:02:58
от admin

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

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Группировка item в выборке?
« : 15 Январь 2014, 16:13:02 »
Здравствуйте!

Не могу разобраться сижу над задачей втрой день!

Есть выборка с помощью selector, в результате которой получаю следующее(часть выборки):

<item title="Рукоделие и Хэнд - Мэйд">Рисование и живопись, акварель, акрил</item>
<item>Шкатулки и коробочки</item>
<item>Скрапбукинг</item>
<item>Наборы и модели для поделок</item>

Соотвественно item должны группироваться по наличию в них атрибута title, те если есть title у item то группируются все элементы до следующего title.

В результате должно получиться нечто подобное:

<group name="Рукоделие и Хэнд - Мэйд">

  <item>Рисование и живопись, акварель, акрил</item>
  <item>Шкатулки и коробочки</item>
  <item>Скрапбукинг</item>
  <item>Наборы и модели для поделок</item>

</group>

И так далее, как можно реализовать данную задачу?

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re:Группировка item в выборке?
« Ответ #1 : 15 Январь 2014, 22:55:26 »
Выложите код, который возвращает такой xml
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Группировка item в выборке?
« Ответ #2 : 16 Январь 2014, 00:42:42 »
  $sel_3 = new selector('pages');
                $sel_3->types('hierarchy-type')->name('catalog', 'category');
                $sel_3->where('podmenyu_tip_tovarov')->equals('18955');
                $sel_3->order('podmenyu_tip_tovarov')->asc();


                foreach ($sel_3 as $item_3) {
                    
                        $get_tip = $item_3->getValue('zagolovok_pod_menyu');

                        $get_id = $item_3->getValue('podmenyu_tip_tovarov');

                        $arr_2['node:value'] = $item_3->getName();
                          
                         $arr_2['attribute:title'] = $get_tip;
            
                        $lines_2['nodes:items'][0]['nodes:item'][] = $arr_2;  
                    

                }


             return def_module::parseTemplate('',$lines_2);

        }

Категориях прописан непосредственно сам title, создано доп поле и туда вводиться  Заголовок.
Заранее спасибо

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re:Группировка item в выборке?
« Ответ #3 : 16 Январь 2014, 11:10:58 »
Категориях прописан непосредственно сам title, создано доп поле и туда вводиться  Заголовок.
Заранее спасибо

На скорую руку набросал:

$sel_3 = new selector('pages');
$sel_3->types('hierarchy-type')->name('catalog', 'category');
$sel_3->where('podmenyu_tip_tovarov')->equals('18955');
$sel_3->order('podmenyu_tip_tovarov')->asc();

$tips = array();
$groups = array();


foreach ($sel_3 as $item_3) {

    $get_tip = $item_3->getValue('zagolovok_pod_menyu');

    $get_id = $item_3->getValue('podmenyu_tip_tovarov');

    $arr_2['node:value'] = $item_3->getName();

    $arr_2['attribute:title'] = $get_tip;

    $lines_2['nodes:items'][0]['nodes:item'][] = $arr_2;

    if(!isset($tips[$get_tip])) {
        $tips[$get_tip] = count($groups);
        $groups[] = array("attribute:name" => $get_tip, "items" => array('nodes:item' => array()));
    }

    $groups[$tips[$get_tip]]['items']['nodes:item'][] = $arr_2;
}


return def_module::parseTemplate('',array('groups' => array('nodes:group' => $groups)));
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Группировка item в выборке?
« Ответ #4 : 16 Январь 2014, 11:42:46 »
Спасибо за помощь, но не совсем корректно работает, получается вывод следующий, тк заголовок задан только в одном элементе!


<group name="Рукоделие и Хэнд - Мэйд">
<items>
<item title="Рукоделие и Хэнд - Мэйд">Рисование и живопись, акварель, акрил</item>
</items>
</group>

<group>
<items>
<item>Шкатулки и коробочки</item>
<item>Хэнд мэйд</item>
<item>Скрапбукинг</item>
<item>Вышивка, шитьё и вязание</item>
<item>Плетение, лепка, декупаж</item>
<item>Наборы и модели для поделок</item>
</items>
</group>
</groups>

Те берется заголовок и группируется, а потом выводится не в этой группе, те не объединяется в нее!
« Последнее редактирование: 16 Январь 2014, 11:55:45 от muldy »