]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 13 Apr 2012 09:37:41 +0000 (09:37 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 13 Apr 2012 09:37:41 +0000 (09:37 +0000)
inc/commons/class.common.core.php
inc/ws/Controlleur/class.ws.flash.php
inc/ws/Controlleur/class.ws.url.php
inc/ws/DAO/class.ws.dao.book.php
inc/ws/Metier/class.ws.book.php
inc/ws/Util/packager/class.ws.packager.html.php
inc/ws/Util/packager/class.ws.packager.php
inc/ws/Util/packager/class.ws.packager.v1.php

index 2b5a76e5bcd714314aebb63cdb2aea8a65be9bfe..d5e2c5a5fb957ecd007b7df5138c12e462b1d087 100644 (file)
@@ -373,6 +373,8 @@ class commonCore extends cubeCore {
                $db->books->numerotation('text', 0, false);\r
                $db->books->changedate('integer', 0, false);\r
                $db->books->compiledate('integer', 0, false);\r
+               $db->books->compile1date('integer', 0, false);\r
+               $db->books->compilehtml5date('integer', 0, false);\r
                $db->books->version('integer', 0, false, 2);\r
                $db->books->composition_update('integer', 0, false);\r
                $db->books->dir_references('varchar', 256, false);\r
index 6e5b5f5fbd6a97f89507f8a2f70a7527eedb0c85..7931d5934aaa269c6f4ded10dc53c9d5d26371b1 100644 (file)
@@ -679,12 +679,10 @@ class wsFlash extends cubeFlashGateway {
                global $core;\r
                wsSecureSWF::checkProtectedSWF();\r
                $dao = new wsDAOBook($core->con);\r
-               if (!$dao->isUpToDate($this->args['book_id'])) {\r
-                       $log = $dao->compile($this->args['book_id'], 3);\r
-                       $log = str_replace('&amp;', '&', $log);\r
-                       $log = str_replace('&', '&amp;', $log);\r
-                       // $this->xml->addChild('log', $log);\r
-               }\r
+\r
+               $log = $dao->compile($this->args['book_id'], '2');\r
+\r
+\r
                $book = $dao->selectById($this->args['book_id']);\r
                $viewer = 'viewer';\r
                if (wsDroits::admin()) {\r
index 63de0c21ec15149b925f98313812fa6ef540cdeb..ab550bd2d1f5d1209ed3ebeb5fdec4b03af96657 100644 (file)
@@ -557,7 +557,7 @@ html{height:100%}' . "\n";
                global $core;\r
 \r
                cubePHP::neverStop();\r
-               \r
+\r
                $book_id = $args[1];\r
                $time = $args[2];\r
 \r
@@ -647,15 +647,7 @@ html{height:100%}' . "\n";
                        commonDroits::error();\r
                }\r
 \r
-               if (!$dao->isUpToDate($book_id)) {\r
-                       if (isset($version) && ($version == 'u' || $version == 't')) {\r
-                               $dao->compileHTML5($book_id);\r
-                       } else {\r
-                               $dao->compile($book_id);\r
-                               $dao->touchCompile($book_id);\r
-                       }\r
-               }\r
-\r
+               $dao->compile($book_id, 'html5');\r
                $time = self::getHTML5CacheTime($book_id);\r
 \r
                if (count($e) == 2 || $e[2] != $time) {\r
@@ -681,7 +673,9 @@ html{height:100%}' . "\n";
                commonDroits::min(5);\r
                $args = cubePage::getArgs($args);\r
 \r
+               \r
                $e = explode('_', $args[0]);\r
+               $dao->compile($e[0], 'html5');\r
                $time = self::getHTML5CacheTime($e[0]);\r
 \r
                if (count($e) == 2 || $e[2] != $time) {\r
@@ -700,6 +694,7 @@ html{height:100%}' . "\n";
                $args = cubePage::getArgs($args);\r
 \r
                $e = explode('_', $args[0]);\r
+               $dao->compile($e[0], 'html5');\r
                $time = self::getHTML5CacheTime($e[0]);\r
 \r
                if (count($e) == 2 || $e[2] != $time) {\r
@@ -724,15 +719,6 @@ html{height:100%}' . "\n";
                        commonDroits::error();\r
                }\r
 \r
-               if (!$dao->isUpToDate($book_id)) {\r
-                       if ($version == 'u' || $version == 't') {\r
-                               $dao->compileHTML5($book_id);\r
-                       } else {\r
-                               $dao->compile($book_id);\r
-                               $dao->touchCompile($book_id);\r
-                       }\r
-               }\r
-\r
                echo file_get_contents(WS_BOOKS . '/html5/' . $book_id . '/index' . $version . '.html');\r
                exit;\r
        }\r
@@ -824,10 +810,8 @@ html{height:100%}' . "\n";
                        commonDroits::error();\r
                }\r
 \r
-               if (!$dao->isUpToDate($book_id)) {\r
-                       $dao->compile($book_id);\r
-                       $dao->touchCompile($book_id);\r
-               }\r
+               fb($version);\r
+               $dao->compile($book_id, (string)$version);\r
 \r
                $daoTheme = new wsDAOTheme($core->con);\r
                $theme = $daoTheme->selectById($book->theme, 'themes');\r
index 2f8fc18ac9c53221a1e7f872bbcad5990689f9a7..f8591ca8bc3ee0f559fcad95d04fcab59ade3b0e 100644 (file)
@@ -32,6 +32,8 @@ class wsDAOBook extends commonDAO {
                $book->numerotation = $r->numerotation;\r
                $book->changedate = $r->changedate;\r
                $book->compiledate = $r->compiledate;\r
+               $book->compile1date = $r->compile1date;\r
+               $book->compilehtml5date = $r->compilehtml5date;\r
                $book->facturable = $r->facturable;\r
                $book->facturable_id = $r->facturable_id;\r
                $book->tache = $r->tache;\r
@@ -194,7 +196,7 @@ class wsDAOBook extends commonDAO {
                $c->theme = 1;\r
                $c->lang = $lang;\r
                $c->changedate = TIME;\r
-               $c->compiledate = TIME;\r
+               $c->compiledate = 0;\r
                $c->version = 2;\r
                $c->composition_update = TIME;\r
                $book_id = $c->book_id = $this->getNextId();\r
@@ -577,9 +579,19 @@ class wsDAOBook extends commonDAO {
                $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
        }\r
 \r
-       public function touchCompile($book_id) {\r
+       public function touchCompile($book_id, $version = 'all') {\r
                $c = $this->con->openCursor('books');\r
-               $c->compiledate = TIME;\r
+               if ($version == '2') {\r
+                       $c->compiledate = TIME;\r
+               } elseif ($version == '1') {\r
+                       $c->compile1date = TIME;\r
+               } elseif ($version == 'html5') {\r
+                       $c->compilehtml5date = TIME;\r
+               } else {\r
+                       $c->compiledate = TIME;\r
+                       $c->compile1date = TIME;\r
+                       $c->compilehtml5date = TIME;\r
+               }\r
                $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
        }\r
 \r
@@ -776,30 +788,59 @@ class wsDAOBook extends commonDAO {
                $pages = $this->getPagesOfBook($book_id);\r
        }\r
 \r
-       public function compile($book_id, $version = 3, $complete = false) {\r
+       public function compile($book_id, $version = 'all', $complete = false) {\r
                if (is_null($book_id) || !$book_id) {\r
                        return;\r
                }\r
 \r
-               fb(time(), 'Start compile 3');\r
-               $res = $this->compile3($book_id, $complete, $book);\r
-               fb(time(), 'Start compile 1');\r
-               if ($book->parametres->version == 1) {\r
-                       $this->compile1($book_id);\r
+               $v1 = $v2 = $html5 = false;\r
+\r
+               if ($version == 'all') {\r
+                       $v1 = $v2 = $html5 = true;\r
+               } else if ($version == '1') {\r
+                       $v1 = true;\r
+               } else if ($version == '2') {\r
+                       $v2 = true;\r
+               } elseif ($version == 'html5') {\r
+                       $html5 = true;\r
+               }\r
+\r
+\r
+               $book = $this->selectById($book_id);\r
+               $pages = $this->getPagesOfBook($book_id);\r
+\r
+               $v1 = $v1 && $book->compile1date < $book->changedate;\r
+               $v2 = $v2 && $book->compiledate < $book->changedate;\r
+               $html5 = $html5 && $book->compilehtml5date < $book->changedate;\r
+\r
+\r
+               if ($v1 || $v2) {\r
+                       $this->compilePDF($book, $pages);\r
+                       $this->compileWidget($book, $pages);\r
+               }\r
+               $res = '';\r
+               if ($v1) {\r
+                       $res.=$this->compile1($book_id, $book, $pages);\r
+                       $this->touchCompile($book_id, '1');\r
+               }\r
+               if ($v2) {\r
+                       $res .= $this->compile3($book_id, $complete, $book, $pages);\r
+                       $this->touchCompile($book_id, '2');\r
+               }\r
+               if ($html5) {\r
+                       $res.=$this->compileHTML5($book_id);\r
+                       $this->touchCompile($book_id, 'html5');\r
                }\r
-               $this->touchCompile($book_id);\r
-               fb(time(), 'End compile');\r
                return $res;\r
        }\r
 \r
-       public function compile1($book_id) {\r
-\r
+       public function compile1($book_id, $book, $pages) {\r
                $finalDir = WS_BOOKS . '/finalv1/' . $book_id . '/';\r
                $packager = new wsPackagerV1($book_id, $finalDir, false);\r
                $packager->makePackage(false);\r
        }\r
 \r
-       public function compile3($book_id, $complete, &$book) {\r
+       public function compile3($book_id, $complete, $book, $pages) {\r
                $res = '';\r
 \r
                $compilerDir = WS_BOOKS . '/datasCompiler/' . $book_id . '/';\r
@@ -812,19 +853,12 @@ class wsDAOBook extends commonDAO {
                $rm->execute();\r
                mkdir($finalDir, 0777, true);\r
 \r
-               $book = $this->selectById($book_id);\r
-               $pages = $this->getPagesOfBook($book_id);\r
-\r
-               fb(time(), 'prepare flex');\r
-\r
                $flex = new cubeFlexCompiler('FluidbookDatas', $compilerDir, 'flash.display.Sprite', explode(';', AS3_SOURCES), MXMLC_PATH, 10);\r
                $flexLight = new cubeFlexCompiler('FluidbookDatasLight', $compilerDir, 'flash.display.Sprite', explode(';', AS3_SOURCES), MXMLC_PATH, 10);\r
 \r
                $filesToCopy = array();\r
                $this->compileFlex($book_id, $complete, $compilerDir, $finalDir, $filesToCopy, $book, $pages, $flex, $flexLight);\r
 \r
-               fb(time(), 'compile flex');\r
-\r
                $res .= $flex->compile() . "\n\n-------------------\n\n";\r
                $flexLight->addVariable('datasSize', filesize($compilerDir . '/FluidbookDatas.swf'));\r
                $res .= $flexLight->compile();\r
@@ -832,16 +866,12 @@ class wsDAOBook extends commonDAO {
                $filesToCopy['data/fd.swf'] = $compilerDir . '/FluidbookDatas.swf';\r
                $filesToCopy['data/fdl.swf'] = $compilerDir . '/FluidbookDatasLight.swf';\r
 \r
-               fb(time(), 'flex compiled');\r
-\r
                // Copy of files\r
                // Check if dest dir exists\r
                if (!file_exists($finalDir . 'data')) {\r
                        mkdir($finalDir . 'data', 0777, true);\r
                }\r
 \r
-               fb(time(), 'copy files');\r
-\r
                foreach ($filesToCopy as $local => $source) {\r
                        $localPath = $finalDir . $local;\r
                        if (!file_exists($localPath) || filemtime($localPath) < filemtime($source) || filesize($localPath) != filesize($source) || filemtime($localPath) < $book->composition_update) {\r
@@ -851,18 +881,6 @@ class wsDAOBook extends commonDAO {
                                copy($source, $localPath);\r
                        }\r
                }\r
-\r
-               fb(time(), 'Compile PDF');\r
-\r
-               $this->compilePDF($book, $pages);\r
-               if ($book->parametres->mobileVersion != 'pdf') {\r
-                       fb(time(), 'Compile HTML5');\r
-                       $this->compileHTML5($book_id);\r
-               }\r
-               fb(time(), 'Compile widget');\r
-               $this->compileWidget($book, $pages);\r
-               $this->touchCompile($book_id);\r
-\r
                return $res;\r
        }\r
 \r
@@ -938,12 +956,8 @@ class wsDAOBook extends commonDAO {
                $hash .= round($size[0], 4);\r
                $hash = sha1($hash);\r
 \r
-               fb(time(), 'texts and indexes');\r
-\r
                $this->makeTextsIndexes($book, $pages, $index, $textes);\r
 \r
-               fb(time(), 'texts and links');\r
-\r
                $daoDoc->getLinksAndRulers($book_id, $links, $rulers);\r
 \r
                $imagesassets = array();\r
@@ -1204,13 +1218,8 @@ class wsDAOBook extends commonDAO {
                                $it->resize($book->parametres->widgetSize, 10000);\r
                                $it->output('jpeg', $tempimage[$i], 100);\r
                        } catch (Exception $e) {\r
-                               fb($e->getMessage());\r
                                $tempimage[$i] = $image;\r
                        }\r
-\r
-\r
-\r
-\r
                        $jpg2swf = new cubeCommandLine('jpeg2swf');\r
                        $jpg2swf->setEnv('PATH', '/bin:/usr/bin:/usr/local/bin');\r
                        $jpg2swf->setArg('q', $book->parametres->widgetQuality);\r
@@ -1218,8 +1227,6 @@ class wsDAOBook extends commonDAO {
                        $jpg2swf->setArg(null, $tempimage[$i]);\r
                        $jpg2swf->execute();\r
 \r
-                       fb($jpg2swf);\r
-\r
                        $swfcombine->setArg(null, $tempswf[$i]);\r
                }\r
                $swfcombine->execute();\r
@@ -1267,7 +1274,6 @@ class wsDAOBook extends commonDAO {
                        $pdfName = $book->parametres->pdfName;\r
                }\r
 \r
-\r
                $finalPDF = WS_BOOKS . '/final/' . $book->book_id . '/data/' . $pdfName;\r
 \r
                if (!$book->parametres->pdf && $book->parametres->mobileVersion != 'pdf') {\r
index bf14ca7c6eaf95e84376f2ed604bddca19f6b0cd..110eb45a156b2fcd00e9b56d22f704ebb3d5c3b2 100644 (file)
@@ -28,6 +28,8 @@ class wsBook extends cubeMetier {
        protected $specialRulers;\r
        protected $changedate;\r
        protected $compiledate;\r
+       protected $compile1date;\r
+       protected $compilehtml5date;\r
        protected $composition_update;\r
        protected $version;\r
        protected $dir_references;\r
index 17e1abac478ee0e1edbcf3fc77a666a4a4f25f9d..24760edb4539fd8c76daf63c04dbb7e7e0d6318d 100644 (file)
@@ -171,6 +171,9 @@ class wsPackagerHTML extends wsPackager {
                if (!$this->whole) {\r
                        return;\r
                }\r
+               \r
+               $this->daoBook->compile($this->book_id, 'html5');\r
+               \r
                $dest = $this->vdir . 'm';\r
                mkdir($dest, 0777, true);\r
 \r
index 21ade59813041f678aaa8958a1e1f5aea3786eac..96903bff12d29268b28880939a6c325a9450a92e 100644 (file)
@@ -63,9 +63,7 @@ class wsPackager {
        }\r
 \r
        protected function compile() {\r
-               if (!$this->daoBook->isUpToDate($this->book_id)) {\r
-                       $this->daoBook->compile($this->book_id);\r
-               }\r
+               $this->daoBook->compile($this->book_id, '2');\r
        }\r
 \r
        protected function preparePackage() {\r
index a0a98a95eb2276f116ddba6d426c0ff8c06f4b9f..c3788bf06f302a8cb09bbf61440c61ce4db73fbf 100644 (file)
@@ -24,7 +24,7 @@ class wsPackagerV1 extends wsPackagerHTML {
        }
 
        protected function compile() {
-               
+       
        }
 
        protected function copyFluidbookFiles() {