]> _ Git - cubeextranet.git/commitdiff
wip #1694 @4
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 22 Sep 2017 17:12:52 +0000 (17:12 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 22 Sep 2017 17:12:52 +0000 (17:12 +0000)
inc/ws/DAO/class.ws.dao.book.php
inc/ws/Util/class.ws.util.php
inc/ws/Util/html5/master/class.ws.html5.compiler.php

index 4c1c0cf9899fa5ce2b384e4c4bd760dcb2deaabb..734d3191e8416bcb55bcaa1d9abf02687cdb0695 100644 (file)
@@ -952,7 +952,7 @@ class wsDAOBook extends commonDAO {
                                foreach ($words as $w) {
                                        $word = $w->word;
                                        $word = trim($word, "\0");
-                                       if($word==''){
+                                       if ($word == '') {
                                                continue;
                                        }
                                        unset($w->word);
@@ -1149,7 +1149,7 @@ class wsDAOBook extends commonDAO {
                $flexLight = new cubeFlexCompiler('FluidbookDatasLight', $compilerDir, 'flash.display.Sprite', explode(';', AS3_SOURCES), MXMLC_PATH, 10, 30, 800, 600, $debug);
 
                $filesToCopy = array();
-               $this->compileFlex($book_id, $complete, $compilerDir, $finalDir, $filesToCopy, $book, $pages, $flex, $flexLight);
+               $this->compileFlex($book_id, $complete, $compilerDir, $finalDir, $filesToCopy, $book, $pages, $flex, $flexLight, $finalDir);
 
                $res .= $flex->compile() . "\n\n-------------------\n\n";
                $flexLight->addVariable('datasSize', filesize($compilerDir . '/FluidbookDatas.swf'));
@@ -1236,7 +1236,7 @@ class wsDAOBook extends commonDAO {
                return $res;
        }
 
-       public function compileFlex($book_id, $complete, $compilerDir, $finalDir, &$filesToCopy, $book, $pages, $flex, $flexLight) {
+       public function compileFlex($book_id, $complete, $compilerDir, $finalDir, &$filesToCopy, $book, $pages, $flex, $flexLight, $finalDir) {
                cubePHP::neverStop();
                /* @var $flex cubeFlexCompiler */
 
@@ -1545,7 +1545,11 @@ class wsDAOBook extends commonDAO {
                                                $i++;
                                        }
                                } elseif ($ext == 'xlsx') {
-                                       $flex->addVariable('basketReferences', wsUtil::excelToArray($referencesFile), false, true, "OrderedObject");
+                                       $references = wsUtil::excelToArray($referencesFile);
+                                       if ($book->parametres->customLinkClass == 'AtlanticDownloadLink') {
+                                               $references = wsUtil::atlanticReferences($this->config->basketReferences, $finalDir . '/local/');
+                                       }
+                                       $flex->addVariable('basketReferences', $references, false, true, "OrderedObject");
                                }
                        }
                        if (isset($xml)) {
index 0e5198063cffbcab030e71923df4e3f0719f3a00..1d36bd51232b7a11ce5cc72f2a52a1e5e972fe44 100644 (file)
@@ -23,7 +23,7 @@ class wsUtil {
                $cacheFile = WS_CACHE . '/xlsx2array/' . sha1($excelFile . '/' . filemtime($excelFile));\r
 \r
                if (file_exists($cacheFile)) {\r
-                       $worksheets = json_decode(file_get_contents($cacheFile));\r
+                       $worksheets = json_decode(file_get_contents($cacheFile), true);\r
                } else {\r
                        set_time_limit(0);\r
                        include_once ROOT . '/inc/ZendFramework/PHPExcel/PHPExcel.php';\r
@@ -46,4 +46,32 @@ class wsUtil {
 \r
                return $worksheets;\r
        }\r
+\r
+       public static function atlanticReferences($references, $dir) {\r
+               if (!file_exists($dir)) {\r
+                       mkdir($dir, 0777, true);\r
+               }\r
+               foreach ($references as $i => $sheet) {\r
+                       foreach ($sheet as $j => $line) {\r
+                               foreach ($line as $k => $v) {\r
+                                       if (preg_match('|^http:\/\/atlantic-international-book-com\.com\/files\/(.*)$|', $v, $matches)) {\r
+                                               $local = $dir . '/' . $matches[1];\r
+                                               $ldir = dirname($local);\r
+                                               if (!file_exists($ldir)) {\r
+                                                       mkdir($ldir, 0777, true);\r
+                                               }\r
+                                               $url = str_replace(' ', '%20', $v);\r
+                                               $cache = WS_CACHE . '/atlantic/' . md5($url);\r
+                                               if (!file_exists($cache)) {\r
+                                                       copy($url, $cache);\r
+                                               }\r
+                                               copy($cache, $dir . '/' . $matches[1]);\r
+                                               $references[$i][$j][$k] = 'local/' . $matches[1];\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+\r
+               return $references;\r
+       }\r
 }
\ No newline at end of file
index 862e68e25497cbf0e7f5e8e2dbb5dd263eb24d2f..c74a8baebb98b15f66147bd2a8894159519ead0c 100644 (file)
@@ -1050,6 +1050,9 @@ class wsHTML5Compiler {
                                $ext = CubeIT_Files::getExtension($referencesFile);
                                if ($ext == 'xlsx') {
                                        $this->config->basketReferences = wsUtil::excelToArray($referencesFile);
+                                       if ($this->book->parametres->customLinkClass == 'AtlanticDownloadLink') {
+                                               $this->config->basketReferences = wsUtil::atlanticReferences($this->config->basketReferences,$this->vdir.'/local/');
+                                       }
                                }
                        }
                }