Exemple #1
0
 public function doList()
 {
     $this->onItemsReady(function ($e) {
         $ctr = $e['controller'];
         $items = $e['items'];
         $extra_ib_ids = (array) $ctr->getParam('extra_infoblocks', array());
         $extra_ibs = fx::data('infoblock')->where('id', $extra_ib_ids, 'in')->all();
         foreach ($extra_ibs as $extra_ib) {
             $extra_q = $extra_ib->initController()->getFinder()->where('infoblock_id', $extra_ib['id']);
             $extra_items = $extra_q->all();
             $items->concat($extra_items);
         }
         if (!$ctr->getParam('is_fake')) {
             $items->unique();
         }
         $e['items'] = fx::tree($items, 'submenu', $ctr->getParam('extra_root_ids', array()));
     });
     return parent::doList();
 }