if ($cross_context_class && $cross_context_id) {
        $where["ex_link.object_class"] = "= '{$cross_context_class}'";
        $where["ex_link.object_id"] = "= '{$cross_context_id}'";
        $where["ex_class.cross_context_class"] = "= '{$cross_context_class}'";
    } else {
        $where["ex_link.object_class"] = "= '{$reference_class}'";
        $where["ex_link.object_id"] = "= '{$reference_id}'";
    }
    if ($only_host) {
        $where["ex_link.level"] = " = 'object'";
    }
}
$order = "ex_class.name ASC, ex_link.ex_object_id DESC";
$ljoin["ex_class"] = "ex_class.ex_class_id = ex_link.ex_class_id";
$fields = array("ex_link.ex_class_id", "ex_link.ex_object_id");
$counts = $ex_link->countMultipleList($where, $order, "ex_class_id", $ljoin, $fields);
foreach ($counts as $_count) {
    $_total = $_count["total"];
    $_ex_class_id = $_count["ex_class_id"];
    $_ex_class = CExClass::$_list_cache[$_ex_class_id];
    // Counts
    $total = max($_total, $total);
    $ex_objects_counts[$_ex_class_id] = $_total;
    // Formula results
    $ex_objects_results[$_ex_class_id] = null;
    if ($_ex_class->_formula_field && !$search_mode) {
        $where_formula = $where;
        unset($where_formula["ex_class.cross_context_class"]);
        $ex_objects_results[$_ex_class_id] = $_ex_class->getFormulaResult($_ex_class->_formula_field, $where_formula);
    }
    if ($detail < 1) {
    $search = CExConcept::parseSearch($concept_search);
}
$ex_link = new CExLink();
$use_user_logs = $date_min < CExObject::DATE_LIMIT;
if ($use_user_logs) {
    $where["user_log.date"] = "BETWEEN '{$date_min} 00:00:00' AND '{$date_max} 23:59:59'";
    $where["user_log.type"] = "= 'create'";
    $where["user_log.object_class"] = "LIKE 'CExObject%'";
    $ljoin["user_log"] = "user_log.object_id = ex_link.ex_object_id AND user_log.object_class = CONCAT('CExObject_',ex_link.ex_class_id)";
} else {
    $where["ex_link.datetime_create"] = "BETWEEN '{$date_min} 00:00:00' AND '{$date_max} 23:59:59'";
}
$where["ex_link.level"] = "= 'object'";
$ljoin["ex_class"] = "ex_class.ex_class_id = ex_link.ex_class_id";
$fields = array("ex_link.ex_class_id");
$counts = $ex_link->countMultipleList($where, null, "ex_link.ex_class_id", $ljoin, $fields);
if (!empty($search)) {
    $ds = $ex_class->_spec->ds;
    $where["ex_class_field.concept_id"] = $ds->prepareIn(array_keys($search));
    $ljoin["ex_class_field_group"] = "ex_class_field_group.ex_class_id = ex_class.ex_class_id";
    $ljoin["ex_class_field"] = "ex_class_field.ex_group_id = ex_class_field_group.ex_class_field_group_id";
    unset($where["user_log.object_class"]);
}
$ex_objects_counts = array();
foreach ($counts as $_row) {
    $_ex_class_id = $_row["ex_class_id"];
    $_count = $_row["total"];
    $_ex_link = new CExLink();
    if (!empty($search)) {
        $_ex_class = new CExClass();
        $_ex_class->load($_ex_class_id);