Beispiel #1
0
 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);
 }