/** * Method returns part of where in style table_alias.id IN (...) because we can't join of relation * * @param array $layout_def definition of a field * @param bool $rename_columns unused * @return string SQL where part */ public function queryFilterStarts_With($layout_def, $rename_columns = true) { $ids = array(); $relation = new Relationship(); $relation->retrieve_by_name($layout_def['link']); global $beanList; $beanClass = $beanList[$relation->lhs_module]; $seed = new $beanClass(); $seed->retrieve($layout_def['input_name0']); $link = new Link2($layout_def['link'], $seed); $sql = $link->getQuery(); $result = $this->reporter->db->query($sql); while ($row = $this->reporter->db->fetchByAssoc($result)) { $ids[] = $row['id']; } $layout_def['name'] = 'id'; return $this->_get_column_select($layout_def) . " IN ('" . implode("', '", $ids) . "')"; }
/** * Method returns part of where in style table_alias.id IN (...) because we can't join of relation * * @param array $layout_def definition of a field * @param bool $rename_columns unused * @return string SQL where part */ public function queryFilterone_of($layout_def, $rename_columns = true) { $ids = array(); $relation = BeanFactory::getBean('Relationships'); $relation->retrieve_by_name($layout_def['link']); $seed = BeanFactory::getBean($relation->lhs_module); foreach ($layout_def['input_name0'] as $beanId) { $seed->retrieve($beanId); $link = new Link2($layout_def['link'], $seed); $sql = $link->getQuery(); $result = $this->reporter->db->query($sql); while ($row = $this->reporter->db->fetchByAssoc($result)) { $ids[] = $row['id']; } } $ids = array_unique($ids); $layout_def['name'] = 'id'; return $this->_get_column_select($layout_def) . " IN ('" . implode("', '", $ids) . "')"; }