<?php\r
+\r
class wsPackager {\r
+\r
protected $dir;\r
protected $vdir;\r
protected $book;\r
protected $version;\r
protected $book_id;\r
\r
- public static function package($book_id, $version)\r
- {\r
+ public static function package($book_id, $version) {\r
if ($version == 'html') {\r
$packager = new wsPackagerHTML($book_id);\r
} elseif ($version == 'win-exe') {\r
return $packager->makePackage();\r
}\r
\r
- public function __construct($book_id)\r
- {\r
+ public function __construct($book_id) {\r
global $core;\r
\r
$this->book_id = $book_id;\r
$this->theme = $daoTheme->getThemeOfBook($book_id, true);\r
}\r
\r
- protected function preparePackage()\r
- {\r
+ protected function preparePackage() {\r
$this->initTempDir();\r
}\r
\r
- public function makePackage()\r
- {\r
+ public function makePackage() {\r
$this->preparePackage();\r
}\r
\r
- protected function replaceContents($str, $toReplace)\r
- {\r
+ protected function replaceContents($str, $toReplace) {\r
$res = $str;\r
- foreach($toReplace as $k => $v) {\r
+ foreach ($toReplace as $k => $v) {\r
if (is_null($v)) {\r
return;\r
}\r
return $res;\r
}\r
\r
- protected function copyFluidbookFiles()\r
- {\r
+ protected function copyFluidbookFiles() {\r
// Copie du FB vers un répertoire temporaire\r
$cp = new cubeCommandLine('cp');\r
$cp->setArg('R');\r
$cp->execute();\r
}\r
\r
- protected function copyOtherFiles($files)\r
- {\r
- foreach($files as $source => $dest) {\r
+ protected function copyOtherFiles($files) {\r
+ foreach ($files as $source => $dest) {\r
if (is_int($source)) {\r
$source = $dest;\r
}\r
\r
- copy(WS_COMPILE_ASSETS . '/' . $source, $this->vdir . $dest);\r
+ $s = WS_COMPILE_ASSETS . '/' . $source;\r
+ if (is_file($s)) {\r
+ copy($s, $this->vdir . $dest);\r
+ } else if (is_dir($s)) {\r
+ $cp = new cubeCommandLine('cp');\r
+ $cp->setArg('R');\r
+ $cp->setArg(null, $s);\r
+ $cp->setArg(null, $this->vdir);\r
+ $cp->execute();\r
+\r
+ $mv = new cubeCommandLine('mv');\r
+ $mv->setArg($this->vdir . '/' . $source);\r
+ $mv->setArg($this->vdir . '/' . $dest);\r
+ $mv->execute();\r
+ }\r
}\r
}\r
\r
- protected function getBaseFile()\r
- {\r
+ protected function getBaseFile() {\r
return $this->version . '-' . date('Ymdhis', TIME) . '-' . cubeText::str2URL($this->book->parametres->title);\r
}\r
\r
- protected function getRelativeBase()\r
- {\r
+ protected function getRelativeBase() {\r
return '/packager/download/' . $this->getBaseFile();\r
}\r
\r
- protected function getURLBase($ext = '')\r
- {\r
- $res = '/fluidbook' . $this->getRelativeBase() ;\r
+ protected function getURLBase($ext = '') {\r
+ $res = '/fluidbook' . $this->getRelativeBase();\r
if ($ext != '') {\r
$res .= '.' . $ext;\r
}\r
return $res;\r
}\r
\r
- protected function getPathBase($ext = '')\r
- {\r
+ protected function getPathBase($ext = '') {\r
$res = WS_FILES . $this->getRelativeBase();\r
if ($ext != '') {\r
$res .= '.' . $ext;\r
return $res;\r
}\r
\r
- protected function zip($zipfile = null)\r
- {\r
+ protected function zip($zipfile = null) {\r
$url = $this->getURLBase('zip');\r
$final = $this->getPathBase('zip');\r
$rename = false;\r
return $url;\r
}\r
\r
- protected function initTempDir()\r
- {\r
+ protected function initTempDir() {\r
$this->vdir = $this->dir . $this->version . '/';\r
$this->cleanVdir();\r
mkdir($this->vdir . '/data', 0777, true);\r
}\r
\r
- protected function cleanVdir()\r
- {\r
+ protected function cleanVdir() {\r
if (file_exists($this->vdir)) {\r
// Suppression du répertoire si il existe\r
$rm = new cubeCommandLine('rm');\r
$rm->execute();\r
}\r
}\r
- \r
- protected function moveDatasSWF(){\r
- rename($this->vdir.'/FluidbookDatas.swf',$this->vdir.'/data/FluidbookDatas.swf');\r
- rename($this->vdir.'/FluidbookDatasLight.swf',$this->vdir.'/data/FluidbookDatasLight.swf');\r
+\r
+ protected function moveDatasSWF() {\r
+ rename($this->vdir . '/FluidbookDatas.swf', $this->vdir . '/data/FluidbookDatas.swf');\r
+ rename($this->vdir . '/FluidbookDatasLight.swf', $this->vdir . '/data/FluidbookDatasLight.swf');\r
}\r
\r
- public function __destruct()\r
- {\r
+ protected function postPackage() {\r
+ \r
+ }\r
+\r
+ public function __destruct() {\r
$this->cleanVdir();\r
}\r
+\r
}\r
\r
?>
\ No newline at end of file
<?php\r
-class wsPackagerWinCD extends wsPackagerWinEXE {\r
- public function __construct($book_id)\r
- {\r
+\r
+class wsPackagerWinCD extends wsPackagerMacEXE {\r
+\r
+ public function __construct($book_id) {\r
parent::__construct($book_id);\r
$this->version = 'win-cd';\r
}\r
\r
- protected function preparePackage()\r
- {\r
+ protected function preparePackage() {\r
parent::preparePackage();\r
\r
- $this->copyOtherFiles(array('fluidbook.ico'=>'data/fluidbook.ico', 'autorun.inf'));\r
+ $this->copyOtherFiles(array(\r
+ 'fluidbook.ico' => 'data/fluidbook.ico', '\r
+ autorun.inf',\r
+ 'Fluidbook.exe' => 'Windows-PC-' . $this->exeName . '.exe',\r
+ 'Fluidbook.app.zip'));\r
$this->replaceAutorun();\r
$this->moveDatasSWF();\r
}\r
\r
- public function replaceAutorun()\r
- {\r
+ public function replaceAutorun() {\r
$inf = file_get_contents($this->vdir . 'autorun.inf');\r
$toReplace = array('title' => $this->book->parametres->title, 'exe' => $this->exeName);\r
$inf = $this->replaceContents($inf, $toReplace);\r
file_put_contents($this->vdir . 'autorun.inf', $inf);\r
}\r
+\r
+ protected function postPackage() {\r
+ \r
+ }\r
+\r
}\r
\r
?>
\ No newline at end of file
<?php\r
+\r
class wsPackagerWinEXE extends wsPackager {\r
+\r
protected $exeName;\r
\r
- public function __construct($book_id)\r
- {\r
+ public function __construct($book_id) {\r
parent::__construct($book_id);\r
$this->version = 'win-exe';\r
\r
- $this->exeName = cubeText::str2URL(mb_substr($this->book->parametres->title, 0, 16)).'.exe';\r
+ $this->exeName = cubeText::str2URL(mb_substr($this->book->parametres->title, 0, 30)) . '.exe';\r
}\r
\r
- protected function preparePackage()\r
- {\r
+ protected function preparePackage() {\r
parent::preparePackage();\r
\r
$this->copyFluidbookFiles();\r
$this->moveDatasSWF();\r
}\r
\r
- public function makePackage()\r
- {\r
+ public function makePackage() {\r
parent::makePackage();\r
- return $this->zip();\r
+ $res = $this->zip();\r
+ $this->postPackage();\r
+ return $res;\r
}\r
+\r
}\r
\r
?>
\ No newline at end of file