Esempio n. 1
0
 /**
  * Получить модули и ИР дисциплины.
  * Возвращает массив модулей, в каждом из которых присутствует список его ИР.
  * Первый модуль в списке - не модуль а обёртка над списком ИР самой дисциплины, его отличает type=='dis'
  * @param int $id
  * @return array [ [type,sort <module.*>, irs=>[ir.*] ] ]
  */
 public static function getDisIr($id)
 {
     $pack0 = array('type' => 'dis', 'sort' => 0, 'id' => $id);
     $pack0['irs'] = RPIrro::getIr($id, 'dis');
     $modules = RPIrro::modules($id);
     $mids = RPU::reshape($modules, false, 'id');
     $mirs = RPIrro::getIr($mids, 'mod');
     foreach ($modules as $k => $mod) {
         $modules[$k]['type'] = 'module';
         $modules[$k]['irs'] = RPU::filterBy($mirs, array('p' => $mod['id']));
     }
     $modules[] = $pack0;
     return RPU::matrixSort($modules, 'sort');
 }