protected function setFields($fields = array(), $add_table = true) { if (isset($this->extend_options['text'])) { if ($fields) { foreach ($fields as $id => $field) { if ($id == 'text' || $field == 'text') { unset($fields[$id]); } } } else { $fields = array(); foreach ($this->fields as $field => $info) { if ($info['type'] != 'text') { $fields[] = $field; } } } switch ($this->extend_options['text']) { case 'full': $fields['text'] = "{$this->table}.text"; break; case 'preview': $fields['text'] = "SUBSTRING(IFNULL({$this->table}.text_before_cut, {$this->table}.text), 400)"; break; case 'cut': default: $fields['text'] = "IFNULL({$this->table}.text_before_cut, {$this->table}.text)"; $fields['cutted'] = "(CASE WHEN {$this->table}.text_before_cut IS NULL THEN 0 ELSE 1 END)"; break; } } return parent::setFields($fields, $add_table); }