]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Mon, 15 Aug 2011 01:41:45 +0000 (01:41 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Mon, 15 Aug 2011 01:41:45 +0000 (01:41 +0000)
inc/ws/Util/packager/html5/class.ws.packager.html5.php

index 7a82629ec4ac064a379dc18f141ac59a4b70b63e..bd1c2b22ace0fb18a0bab8f42705f2c30d739dd5 100644 (file)
@@ -87,6 +87,19 @@ class wsPackagerHTML5 extends wsPackager {
                mkdir($this->vdir . '/data/style', 0777, true);\r
                mkdir($this->vdir . '/data/links/pages', 0777, true);\r
                mkdir($this->vdir . '/data/l10n/', 0777, true);\r
+               mkdir($this->vdir . '/swf', 0777, true);\r
+\r
+               // Copy style folder\r
+               $from = WS_COMPILE_ASSETS . '/_html5/style';\r
+               $to = $this->vdir;\r
+               `cp -r $from $to`;\r
+\r
+               // Copy images folder\r
+               $from = WS_COMPILE_ASSETS . '/_html5/images';\r
+               `cp -r $from $to`;\r
+\r
+               // Copy swf\r
+               copy(WS_COMPILE_ASSETS . '/_html5/swf/video.swf', $this->vdir . '/swf/video.swf');\r
 \r
                foreach ($this->div as $n => $page) {\r
                        file_put_contents($this->vdir . '/data/contents/p' . $n . '.html', $this->writePage($page));\r
@@ -94,10 +107,38 @@ class wsPackagerHTML5 extends wsPackager {
                $this->writeFonts();\r
                $this->writeImages();\r
                $linksCSS = $this->writeLinks();\r
-               $this->writeCSS($this->vdir . '/data/style/style_%d.css', $linksCSS);\r
+               $numCSS = $this->writeCSS($this->vdir . '/data/style/style_%d.css', $linksCSS);\r
                $this->writeLangs();\r
+               $this->writeJs();\r
+               $this->writeIndex($numCSS);\r
+       }\r
+\r
+       protected function writeIndex($numCSS) {\r
+               $html = file_get_contents(WS_COMPILE_ASSETS . '/_html5/_index.html');\r
 \r
-               file_put_contents($this->vdir . '/data/datas.js', $this->writeConfig());\r
+               $titre = $this->book->parametres->title;\r
+               $credits = '';\r
+               // Google analytics\r
+               $ga = '';\r
+               if ($this->book->parametres->googleAnalytics != '') {\r
+                       $ga = cubePage::googleAnalytics($this->book->parametres->googleAnalytics);\r
+               }\r
+               // Feuilles de style\r
+               $sheets = array('style/fluidbook.css');\r
+               for ($i = 0; $i < $numCSS; $i++) {\r
+                       $sheets[] = 'data/style/style_' . $i . '.css';\r
+               }\r
+               $style = array();\r
+               foreach ($sheets as $sheet) {\r
+                       $style[] = '<link type="text/css" rel="stylesheet" href="' . $sheet . '" />';\r
+               }\r
+               $style = implode("\n\t\t", $style);\r
+\r
+               $vars = array('titre', 'credits', 'ga', 'style');\r
+               foreach ($vars as $v) {\r
+                       $html = str_replace('<!-- $' . $v . ' -->', $$v, $html);\r
+               }\r
+               file_put_contents($this->vdir . '/index.html', $html);\r
        }\r
 \r
        protected function writeLangs() {\r
@@ -145,12 +186,68 @@ class wsPackagerHTML5 extends wsPackager {
                return $css;\r
        }\r
 \r
+       protected function writeJs() {\r
+               $files = array('js/libs/modernizr.js',\r
+                       'js/libs/sylvester.js',\r
+                       'js/libs/jquery/jquery.js',\r
+                       'js/libs/jquery/jquery.transform.js',\r
+                       'js/libs/jquery/jquery.mousewheel.js',\r
+                       'js/libs/swfaddress.js',\r
+                       'js/libs/fluidbook/fluidbook.utils.js',\r
+                       'js/libs/fluidbook/fluidbook.cache.js',\r
+                       'js/libs/fluidbook/fluidbook.support.js',\r
+                       'js/libs/fluidbook/fluidbook.viewport.js',\r
+                       'js/libs/fluidbook/fluidbook.desktop.js',\r
+                       'js/libs/fluidbook/fluidbook.service.js',\r
+                       'js/libs/fluidbook/fluidbook.loader.js',\r
+                       'js/libs/fluidbook/fluidbook.l10n.js',\r
+                       'js/libs/fluidbook/fluidbook.nav.js',\r
+                       'js/libs/fluidbook/fluidbook.js',\r
+                       'js/main.js');\r
+\r
+               $mintime = 0;\r
+               $minimized = WS_COMPILE_ASSETS . '/_html5/js/min.js';\r
+               if (file_exists($minimized)) {\r
+                       $mintime = filemtime($minimized);\r
+               }\r
+               $reminimize = false;\r
+               foreach ($files as $file) {\r
+                       if (filemtime(WS_COMPILE_ASSETS . '/_html5/' . $file) > $mintime) {\r
+                               $reminimize = true;\r
+                               break;\r
+                       }\r
+               }\r
+\r
+               if ($reminimize) {\r
+                       $js = '';\r
+                       foreach ($files as $file) {\r
+                               $js.=file_get_contents(WS_COMPILE_ASSETS . '/_html5/' . $file);\r
+                               $js.="\n\n";\r
+                       }\r
+                       $tmp = cubeFiles::tempnam();\r
+                       file_put_contents($tmp, $js);\r
+\r
+                       $compressor = new cubeCommandLine('yuicompressor');\r
+                       $compressor->setPath(CONVERTER_PATH);\r
+                       $compressor->setArg('charset', 'UTF-8');\r
+                       $compressor->setArg('type', 'js');\r
+                       $compressor->setArg('line-break', 1024);\r
+                       $compressor->setArg('o', $minimized);\r
+                       $compressor->setArg(null, $tmp);\r
+                       $compressor->execute();\r
+               }\r
+\r
+               $js = $this->writeConfig();\r
+               $js.=file_get_contents($minimized);\r
+               file_put_contents($this->vdir . '/data/fluidbook.js', $js);\r
+       }\r
+\r
        protected function writeConfig() {\r
                $config = cubeObject::merge($this->book->parametres->toStandardObject(), $this->theme->parametres->toStandardObject());\r
                $config->numerotation = explode(',', $this->book->numerotation);\r
                $config->id = $this->book->book_id;\r
                $config->cacheDate = TIME;\r
-               return 'DATAS=' . json_encode($config) . ';';\r
+               return 'var DATAS=' . json_encode($config) . ';' . "\n";\r
        }\r
 \r
        protected function writeFonts() {\r
@@ -474,6 +571,7 @@ class wsPackagerHTML5 extends wsPackager {
                foreach ($res as $k => $css) {\r
                        file_put_contents(sprintf($file, $k), implode("\n", $css));\r
                }\r
+               return count($res);\r
        }\r
 \r
        protected function writeCSSUA($property, $value) {\r
@@ -532,7 +630,7 @@ class wsPackagerHTML5 extends wsPackager {
                                        $res[] = array(\r
                                                'color' => $this->getCSSColor($group['color']),\r
                                                'size' => $this->getCSSSize($group['size']),\r
-                                               'font' => $this->getCSSFont((string)$group['font'], $document_id),\r
+                                               'font' => $this->getCSSFont((string) $group['font'], $document_id),\r
                                                'letterspacing' => $this->getCSSLetterSpacing($ls),\r
                                                'wordspacing' => $this->getCSSLetterSpacing($ws),\r
                                                'y' => 0,\r
@@ -630,7 +728,7 @@ class wsPackagerHTML5 extends wsPackager {
        }\r
 \r
        protected function getCSSFont($font, $document_id) {\r
-               $font=(string) $font;\r
+               $font = (string) $font;\r
                if (!isset($this->fontDocs[$font])) {\r
                        $this->fontDocs[$font] = array();\r
                }\r