/**
  * Format the value returned from rec_query() into an array radix.
  *
  * @param Doctrine_Query $q
  * @return array $radix
  */
 protected function format_query_radix(Doctrine_Query $q)
 {
     $q2 = $q->copy()->select('org_id');
     $rs = $q2->fetchArray();
     // also select all parent orgs
     $ids = array();
     foreach ($rs as $org) {
         $parent_ids = Organization::get_org_parents($org['org_id']);
         $ids = array_merge($ids, $parent_ids);
         $ids[] = $org['org_id'];
     }
     $q->orWhereIn('o.org_id', $ids);
     $q->removeDqlQueryPart('limit');
     // now get the radix
     $this->_fields['org_parent_id'] = 1;
     $this->_fields['org_id'] = 1;
     $radix = parent::format_query_radix($q);
     // display organizations as a tree
     return $this->get_tree_data($radix);
 }
 protected function addForeignKeyQuery(Doctrine_Query $query, $field, $value)
 {
     $fieldName = $this->getFieldName($field);
     if (is_array($value)) {
         $query->orWhereIn(sprintf('%s.%s', $query->getRootAlias(), $fieldName), $value);
     } else {
         $query->addWhere(sprintf('%s.%s = ?', $query->getRootAlias(), $fieldName), $value);
     }
 }
 protected function addForeignKeyQuery(Doctrine_Query $query, $field, $value)
 {
     $fieldName = $this->getFieldName($field);
     if (is_array($value)) {
         $query->orWhereIn('r.' . $fieldName, $value);
     } else {
         $query->addWhere('r.' . $fieldName . ' = ?', $value);
     }
 }