diff options
author | Christian Schneider | 2011-04-13 15:35:19 +0000 |
---|---|---|
committer | Christian Schneider | 2011-04-13 15:35:19 +0000 |
commit | 8d4bd65f9d80902a8c82126648011e145f686cc1 (patch) | |
tree | 6cca9f4669e8a7a50ecf6290f259f1d922a78fdd | |
parent | 5ab78a46ebfab91a9a8fa0f7d6e4da5a7ff4d43e (diff) | |
download | itools-8d4bd65f9d80902a8c82126648011e145f686cc1.tar.gz itools-8d4bd65f9d80902a8c82126648011e145f686cc1.tar.bz2 itools-8d4bd65f9d80902a8c82126648011e145f686cc1.zip |
Fix iteration over localized fields, added test for it
-rw-r--r-- | it_dbi.class | 6 | ||||
-rwxr-xr-x | tests/it_dbi.t | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/it_dbi.class b/it_dbi.class index b02960d..a8503d3 100644 --- a/it_dbi.class +++ b/it_dbi.class @@ -590,10 +590,14 @@ function iterate() { if ($this->_data = mysql_fetch_assoc($this->_result)) { + if ($localizedfields = $this->_localizedfields) + foreach ($localizedfields as $field => $dummy) + unset($this->$field); + foreach ($this->_data as $field => $value) $this->$field = isset($value) && $this->_isint[$field] ? ($this->_data[$field] = intval($value)) : $value; - if ($localizedfields = $this->_localizedfields) + if ($localizedfields) { $lang = T_lang(); foreach ($localizedfields as $field => $dummy) diff --git a/tests/it_dbi.t b/tests/it_dbi.t index c885930..4a58188 100755 --- a/tests/it_dbi.t +++ b/tests/it_dbi.t @@ -227,14 +227,22 @@ $dbi->query('create temporary table it_dbi_testlocalized ( $record = new it_dbi($db + array('table' => "it_dbi_testlocalized")); $record->insert(array('foobar_de' => "deutsch", 'foobar_fr' => "franz")); +$record->insert(array('foobar_de' => "deutsch2", 'foobar_fr' => "franz2")); T_set_language('de'); -$record->read(1); +$record->select(array()); +$record->iterate(); is( array($record->_key, $record->foobar), array(1, "deutsch"), "localized field foobar_de" ); +$record->iterate(); +is( + array($record->_key, $record->foobar), + array(2, "deutsch2"), + "localized field foobar_de iterate" +); T_set_language('fr'); $record->read(1); |