From 02635696d7b86d4b8986d8cba90fa947b02f2f50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Lorenzo=20Rodr=C3=ADguez?= Date: Tue, 26 Oct 2010 17:51:29 -0430 Subject: [PATCH] Removing function from created virtual fields in translate behavior as it was not needed --- cake/libs/model/behaviors/translate.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/cake/libs/model/behaviors/translate.php b/cake/libs/model/behaviors/translate.php index 8d8be9f8f..90a0c5fd6 100644 --- a/cake/libs/model/behaviors/translate.php +++ b/cake/libs/model/behaviors/translate.php @@ -142,7 +142,10 @@ class TranslateBehavior extends ModelBehavior { if (is_array($locale)) { foreach ($locale as $_locale) { - $model->virtualFields['_i18n_'.$field.'_'.$_locale] = 'COALESCE('. 'I18n__'.$field.'__'.$_locale.'.content, NULL)'; + $model->virtualFields['i18n_'.$field.'_'.$_locale] = 'I18n__'.$field.'__'.$_locale.'.content'; + if (!empty($query['fields'])) { + $query['fields'][] = 'i18n_'.$field.'_'.$_locale; + } $query['joins'][] = array( 'type' => 'LEFT', 'alias' => 'I18n__'.$field.'__'.$_locale, @@ -156,7 +159,10 @@ class TranslateBehavior extends ModelBehavior { ); } } else { - $model->virtualFields['_i18n_'.$field] = 'COALESCE('. 'I18n__'.$field.'.content, NULL)'; + $model->virtualFields['i18n_'.$field] = 'I18n__'.$field.'.content'; + if (!empty($query['fields'])) { + $query['fields'][] = 'i18n_'.$field; + } $query['joins'][] = array( 'type' => 'LEFT', 'alias' => 'I18n__'.$field, @@ -189,7 +195,8 @@ class TranslateBehavior extends ModelBehavior { * @return array Modified results */ public function afterFind(&$model, $results, $primary) { - $this->runtime[$model->alias]['fields'] = array(); + $model->virtualFields = $this->runtime[$model->alias]['virtualFields']; + $this->runtime[$model->alias]['virtualFields'] = $this->runtime[$model->alias]['fields'] = array(); $locale = $this->_getLocale($model); if (empty($locale) || empty($results) || empty($this->runtime[$model->alias]['beforeFind'])) {