Controller_Data_SQL::getDsqlForSelect PHP Method

getDsqlForSelect() protected method

protected getDsqlForSelect ( $model, $dsql = null )
    protected function getDsqlForSelect($model, $dsql = null)
    {
        if (is_null($dsql)) {
            $dsql = $this->dsql($model);
        }
        $actualFields = $model->getActualFields();
        foreach ($model->elements as $el) {
            if (!$el instanceof Field_Base) {
                continue;
            }
            if ($el->system() && !in_array($el->short_name, $actualFields)) {
                $actualFields[] = $el->short_name;
                $this->updateQuery($model, $el, $dsql);
            } elseif (in_array($el->short_name, $actualFields)) {
                $this->updateQuery($model, $el, $dsql);
            }
        }
        if ($model->limit && $model->limit[0]) {
            $dsql->limit($model->limit[0], $model->limit[1]);
        }
        if ($model->order) {
            foreach ($model->order as $o) {
                $dsql->order($o[0], $o[1]);
            }
        }
        $this->updateConditions($model, $dsql);
        return $dsql;
    }