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);