]> _ Git - cubeextranet.git/commitdiff
wip #1336 @1.5
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Mon, 10 Apr 2017 15:39:43 +0000 (15:39 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Mon, 10 Apr 2017 15:39:43 +0000 (15:39 +0000)
inc/ws/Controlleur/class.ws.maintenance.php
inc/ws/DAO/class.ws.dao.book.php
inc/ws/Util/_common.php
inc/ws/Util/class.ws.util.php [new file with mode: 0644]
inc/ws/Util/html5/class.ws.html5.compiler.php

index 90b94df42c0e03045e1f7ca2899a68641bd6525e..a16fa44cc9ead591f9ff4fb6a753a12544dc6e81 100644 (file)
@@ -1141,5 +1141,9 @@ class wsMaintenance {
                echo '<pre>' . print_r($runs, true) . '</pre>';
        }
 
+       public function excel2array() {
+
+               echo json_encode(wsUtil::excelToArray("/home/wesco/15296.xlsx"));
+       }
 
 }
index ea17d75fb358fc9b33d256aa0cbaaa9cbf4da79b..90b3dcf364ccf0c072b023f6d13509e481e44256 100644 (file)
@@ -1483,23 +1483,7 @@ class wsDAOBook extends commonDAO {
                                                $i++;
                                        }
                                } elseif ($ext == 'xlsx') {
-                                       include_once ROOT . '/inc/ZendFramework/PHPExcel/PHPExcel.php';
-                                       $objReader = PHPExcel_IOFactory::createReader('Excel2007');
-                                       $objPHPExcel = $objReader->load($referencesFile);
-
-
-                                       foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
-                                               if ($worksheet->getSheetState() != PHPExcel_Worksheet::SHEETSTATE_VISIBLE) {
-                                                       continue;
-                                               }
-                                               $title = $worksheet->getTitle();
-                                               if (strlen($title) == 2 && cubeCountry::getCountry($title)) {
-                                                       $title = cubeCountry::getCountry($title);
-                                               }
-
-                                               $worksheets[$title] = $worksheet->toArray(null, true, true);
-                                       }
-                                       $flex->addVariable('basketReferences', $worksheets, false, true, "OrderedObject");
+                                       $flex->addVariable('basketReferences', wsUtil::excelToArray($referencesFile), false, true, "OrderedObject");
                                }
                        }
                        if (isset($xml)) {
index 52079bc31b158b2b986333c8c4185cf9d5950fbb..2a4932716b709b1553d35018362b0f8b2ac4fac9 100644 (file)
@@ -19,4 +19,5 @@ $__autoload['wsSVN'] = dirname(__FILE__) . '/class.ws.svn.php';
 $__autoload['wsLinks'] = dirname(__FILE__) . '/class.ws.links.php';\r
 $__autoload['wsExporter'] = dirname(__FILE__) . '/class.ws.exporter.php';\r
 $__autoload['wsPDFConvert'] = dirname(__FILE__) . '/class.ws.pdf.convert.php';\r
+$__autoload['wsUtil'] = dirname(__FILE__) . '/class.ws.util.php';\r
 ?>
\ No newline at end of file
diff --git a/inc/ws/Util/class.ws.util.php b/inc/ws/Util/class.ws.util.php
new file mode 100644 (file)
index 0000000..d72c850
--- /dev/null
@@ -0,0 +1,36 @@
+<?php\r
+\r
+class wsUtil {\r
+       public static function excelToArray($excelFile) {\r
+               $worksheets = array();\r
+               if (!file_exists($excelFile)) {\r
+                       return array();\r
+               }\r
+\r
+               $cacheFile = WS_CACHE . '/xlsx2array/' . sha1($excelFile . '/' . filemtime($excelFile));\r
+\r
+               if (file_exists($cacheFile)) {\r
+                       $worksheets = json_decode(file_get_contents($cacheFile));\r
+               } else {\r
+                       set_time_limit(0);\r
+                       include_once ROOT . '/inc/ZendFramework/PHPExcel/PHPExcel.php';\r
+                       $objReader = PHPExcel_IOFactory::createReader('Excel2007');\r
+                       $objPHPExcel = $objReader->load($excelFile);\r
+\r
+                       foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {\r
+                               if ($worksheet->getSheetState() != PHPExcel_Worksheet::SHEETSTATE_VISIBLE) {\r
+                                       continue;\r
+                               }\r
+                               $title = $worksheet->getTitle();\r
+                               if (strlen($title) == 2 && cubeCountry::getCountry($title)) {\r
+                                       $title = cubeCountry::getCountry($title);\r
+                               }\r
+\r
+                               $worksheets[$title] = $worksheet->toArray(null, true, true);\r
+                       }\r
+                       file_put_contents($cacheFile, json_encode($worksheets));\r
+               }\r
+\r
+               return $worksheets;\r
+       }\r
+}
\ No newline at end of file
index 035abd857ca36b596e05c5bf75778375952fdd8b..67c9f41820ce892ac7c9b63b7c3a09be75abe042 100644 (file)
@@ -978,23 +978,7 @@ class wsHTML5Compiler {
                        if (file_exists($referencesFile)) {
                                $ext = CubeIT_Files::getExtension($referencesFile);
                                if ($ext == 'xlsx') {
-                                       include_once ROOT . '/inc/ZendFramework/PHPExcel/PHPExcel.php';
-                                       $objReader = PHPExcel_IOFactory::createReader('Excel2007');
-                                       $objPHPExcel = $objReader->load($referencesFile);
-
-
-                                       foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
-                                               if ($worksheet->getSheetState() != PHPExcel_Worksheet::SHEETSTATE_VISIBLE) {
-                                                       continue;
-                                               }
-                                               $title = $worksheet->getTitle();
-                                               if (strlen($title) == 2 && cubeCountry::getCountry($title)) {
-                                                       $title = cubeCountry::getCountry($title);
-                                               }
-
-                                               $worksheets[$title] = $worksheet->toArray(null, true, true);
-                                       }
-                                       $this->config->basketReferences = $worksheets;
+                                       $this->config->basketReferences = wsUtil::excelToArray($referencesFile);
                                }
                        }
                }