/** * Получить модули и ИР дисциплины. * Возвращает массив модулей, в каждом из которых присутствует список его ИР. * Первый модуль в списке - не модуль а обёртка над списком ИР самой дисциплины, его отличает 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'); }