예제 #1
0
    $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();
                }
            }
        }
    }