$reference = null; } CExClassField::$_load_lite = true; CExObject::$_multiple_load = true; CExObject::$_load_lite = $detail < 2; $group_id = $group_id ? $group_id : CGroups::loadCurrent()->_id; $where = array("group_id = '{$group_id}' OR group_id IS NULL"); if ($ex_class_id) { $where['ex_class_id'] = "= '{$ex_class_id}'"; } if (empty(CExClass::$_list_cache)) { $ex_class = new CExClass(); /** @var CExClass[] $ex_classes */ $ex_classes = $ex_class->loadList($where, "name"); $categories = CStoredObject::massLoadFwdRef($ex_classes, "category_id"); $categories = CStoredObject::naturalSort($categories, array("title")); $categories = array(new CExClassCategory()) + $categories; foreach ($ex_classes as $_ex_class) { $_category_id = $_ex_class->category_id ?: 0; $categories[$_category_id]->_ref_ex_classes[$_ex_class->_id] = $_ex_class; } if (!CExObject::$_locales_cache_enabled && $detail > 1) { foreach ($ex_classes as $_ex_class) { foreach ($_ex_class->loadRefsGroups() as $_group) { $_group->loadRefsFields(); foreach ($_group->_ref_fields as $_field) { $_field->updateTranslation(); } } } }