// 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) { continue; } /** @var CExLink[] $links */ $where["ex_link.ex_class_id"] = "= '{$_ex_class_id}'"; $links = $ex_link->loadList($where, $order, $limit, "ex_link.ex_object_id", $ljoin); CExLink::massLoadExObjects($links); /** @var CExObject[] $_ex_objects */ $_ex_objects = array(); foreach ($links as $_link) { $_ex = $_link->loadRefExObject(); $_ex->_ex_class_id = $_link->ex_class_id; $_ex->load(); $_ex_objects[$_link->ex_object_id] = $_ex; } /** @var CExObject $_ex */ foreach ($_ex_objects as $_ex) { if (!$_ex->_id) { continue; } $_ex->updateCreationFields();
/** * Custom delete, will delete any link * * @see parent::delete() */ function delete() { $ex_object_id = $this->_id; $ex_class_id = $this->_ex_class_id; if ($msg = parent::delete()) { return $msg; } // Remove CExLinks $where = array("ex_class_id" => " = '{$ex_class_id}'", "ex_object_id" => " = '{$ex_object_id}'"); $ex_link = new CExLink(); $ex_links = $ex_link->loadList($where); foreach ($ex_links as $_ex_link) { $_ex_link->delete(); } return null; }