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
$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
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
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
$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
}\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