The branch, QA_3_4 has been updated via cd294e5b97c723fa85e29d2b2c43eaa48e60c60a (commit) from d3207af8af2641fc7e6f6ad7371f8a93f18454a2 (commit)
- Log ----------------------------------------------------------------- commit cd294e5b97c723fa85e29d2b2c43eaa48e60c60a Author: Madhura Jayaratne madhura.cj@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