[Phpmyadmin-git] [SCM] phpMyAdmin branch, QA_3_4, updated. RELEASE_3_4_9-14-gcd294e5

Madhura Jayaratne madhuracj at users.sourceforge.net
Sat Dec 24 17:05:26 CET 2011


The branch, QA_3_4 has been updated
       via  cd294e5b97c723fa85e29d2b2c43eaa48e60c60a (commit)
      from  d3207af8af2641fc7e6f6ad7371f8a93f18454a2 (commit)


- Log -----------------------------------------------------------------
commit cd294e5b97c723fa85e29d2b2c43eaa48e60c60a
Author: Madhura Jayaratne <madhura.cj at gmail.com>
Date:   Sat Dec 24 21:31:08 2011 +0530

    bug #3049209 [import] Import from ODS ignores cell that is the same as cell before

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                |    1 +
 libraries/import/ods.php |   38 ++++++++++++++++++++++----------------
 2 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 2c39a56..8cbd325 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@ phpMyAdmin - ChangeLog
 3.4.10.0 (not yet released)
 - bug #3460090 [interface] TextareaAutoSelect feature broken
 - patch #3375984 [export] PHP Array export might generate invalid php code
+- bug #3049209 [import] Import from ODS ignores cell that is the same as cell before
 
 3.4.9.0 (2011-12-21)
 - bug #3442028 [edit] Inline editing enum fields with null shows no dropdown
diff --git a/libraries/import/ods.php b/libraries/import/ods.php
index cd48f68..03736e2 100644
--- a/libraries/import/ods.php
+++ b/libraries/import/ods.php
@@ -118,25 +118,31 @@ foreach ($sheets as $sheet) {
                 $cell_attrs = $cell->attributes('office', true);
 
                 if (count($text) != 0) {
-                    if (! $col_names_in_first_row) {
-                        if ($_REQUEST['ods_recognize_percentages'] && !strcmp('percentage', $cell_attrs['value-type'])) {
-                            $tempRow[] = (double)$cell_attrs['value'];
-                        } elseif ($_REQUEST['ods_recognize_currency'] && !strcmp('currency', $cell_attrs['value-type'])) {
-                            $tempRow[] = (double)$cell_attrs['value'];
-                        } else {
-                            $tempRow[] = (string)$text;
-                        }
-                    } else {
-                        if ($_REQUEST['ods_recognize_percentages'] && !strcmp('percentage', $cell_attrs['value-type'])) {
-                            $col_names[] = (double)$cell_attrs['value'];
-                        } else if ($_REQUEST['ods_recognize_currency'] && !strcmp('currency', $cell_attrs['value-type'])) {
-                            $col_names[] = (double)$cell_attrs['value'];
+                    $attr = $cell->attributes('table', true);
+                    $num_repeat = (int) $attr['number-columns-repeated'];
+                    $num_iterations = $num_repeat ? $num_repeat : 1;
+
+                    for ($k = 0; $k < $num_iterations; $k++) {
+                        if (! $col_names_in_first_row) {
+                            if ($_REQUEST['ods_recognize_percentages'] && !strcmp('percentage', $cell_attrs['value-type'])) {
+                                $tempRow[] = (double)$cell_attrs['value'];
+                            } elseif ($_REQUEST['ods_recognize_currency'] && !strcmp('currency', $cell_attrs['value-type'])) {
+                                $tempRow[] = (double)$cell_attrs['value'];
+                            } else {
+                                $tempRow[] = (string)$text;
+                            }
                         } else {
-                            $col_names[] = (string)$text;
+                            if ($_REQUEST['ods_recognize_percentages'] && !strcmp('percentage', $cell_attrs['value-type'])) {
+                                $col_names[] = (double)$cell_attrs['value'];
+                            } else if ($_REQUEST['ods_recognize_currency'] && !strcmp('currency', $cell_attrs['value-type'])) {
+                                $col_names[] = (double)$cell_attrs['value'];
+                            } else {
+                                $col_names[] = (string)$text;
+                            }
                         }
-                    }
 
-                    ++$col_count;
+                        ++$col_count;
+                    }
                 } else {
                     /* Number of blank columns repeated */
                     if ($col_count < count($row->children('table', true)) - 1) {


hooks/post-receive
-- 
phpMyAdmin




More information about the Git mailing list