private function _get_key_data($key, $in_render_mode = false, $return_object = false) { if ($this->_callback) { if ($in_render_mode) { return $this->_callback->get_name_for_key($key); } $results = $this->_callback->get_key_data($key); if (!$results) { return false; } if ($this->_renderer_callback || $return_object) { return $results; } return $this->_object_to_jsdata($results); } midcom::get('auth')->request_sudo(); if (!class_exists($this->class)) { midcom::get('componentloader')->load_graceful($this->component); } $qb = @call_user_func(array($this->class, 'new_query_builder')); if (!$qb) { $qb = new midgard_query_builder($this->class); } $qb->add_constraint($this->id_field, '=', $key); foreach ($this->constraints as $constraint) { $qb->add_constraint($constraint['field'], $constraint['op'], $constraint['value']); } $results = $qb->execute(); midcom::get('auth')->drop_sudo(); if (count($results) == 0) { return false; } $object = $results[0]; if ($return_object) { return $object; } if ($in_render_mode) { return $this->_resolve_object_name($object); } if ($this->_renderer_callback) { return $object; } return $this->_object_to_jsdata($object); }