Skip to content

Commit

Permalink
Fixing parsing of translated data after switching to virtualFields
Browse files Browse the repository at this point in the history
  • Loading branch information
lorenzo committed Oct 26, 2010
1 parent 0263569 commit 9f27fa7
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions cake/libs/model/behaviors/translate.php
Expand Up @@ -206,27 +206,28 @@ public function afterFind(&$model, $results, $primary) {

foreach ($results as $key => &$row) {
$results[$key][$model->alias]['locale'] = (is_array($locale)) ? current($locale) : $locale;

foreach ($beforeFind as $_f => $field) {
$aliasField = is_numeric($_f) ? $field : $_f;

if (is_array($locale)) {
foreach ($locale as $_locale) {
if (!isset($results[$key][$model->alias][$field]) && !empty($results[$key]['I18n__'.$field.'__'.$_locale]['content'])) {
$results[$key][$model->alias][$field] = $results[$key]['I18n__'.$field.'__'.$_locale]['content'];
if (!isset($row[$model->alias][$aliasField]) && !empty($row[$model->alias]['i18n_'.$field.'_'.$_locale])) {
$row[$model->alias][$aliasField] = $row[$model->alias]['i18n_'.$field.'_'.$_locale];
$row[$model->alias]['locale'] = $_locale;
}
unset($results[$key]['I18n__'.$field.'__'.$_locale]);
unset($row[$model->alias]['i18n_'.$field.'_'.$_locale]);
}

if (!isset($results[$key][$model->alias][$field])) {
$results[$key][$model->alias][$field] = '';
if (!isset($row[$model->alias][$aliasField])) {
$row[$model->alias][$aliasField] = '';
}
} else {
$value = '';
if (!empty($row[$model->alias]['_i18n_' . $field])) {
$value = $row[$model->alias]['_i18n_' . $field];
if (!empty($row[$model->alias]['i18n_' . $field])) {
$value = $row[$model->alias]['i18n_' . $field];
}
$aliasField = is_numeric($_f) ? $field : $_f;
$row[$model->alias][$aliasField] = $value;
unset($row[$model->alias]['_i18n_' . $field]);
unset($row[$model->alias]['i18n_' . $field]);
}
}
}
Expand Down

0 comments on commit 9f27fa7

Please sign in to comment.