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;
}