From e7b3380191f87f4f54b062b6024dc836e40fd4ba Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Thu, 4 Oct 2018 14:27:25 +0000 Subject: [PATCH] wip #2227 @1:40 --- inc/ws/Controlleur/class.ws.url.php | 8 +- inc/ws/DAO/class.ws.dao.book.php | 11 ++- inc/ws/Util/packager/_common.php | 1 + .../Util/packager/class.ws.packager.html.php | 96 +++++++++++-------- inc/ws/Util/packager/class.ws.packager.php | 4 +- .../Util/packager/class.ws.packager.scorm.php | 12 +++ 6 files changed, 88 insertions(+), 44 deletions(-) create mode 100644 inc/ws/Util/packager/class.ws.packager.scorm.php diff --git a/inc/ws/Controlleur/class.ws.url.php b/inc/ws/Controlleur/class.ws.url.php index a4c7d7cfe..5da6f12d2 100644 --- a/inc/ws/Controlleur/class.ws.url.php +++ b/inc/ws/Controlleur/class.ws.url.php @@ -517,6 +517,7 @@ class wsUrl $versions = array(); $versions['online'] = array('title' => __('Version online') . $default, 'icon' => cubeMedia::silk('page_world.png')); + $versions['scorm'] = array('title' => __('Version SCORM') . $default, 'icon' => cubeMedia::silk('page_world.png')); if ($chooseVersion) { $versions['v1'] = array('title' => __('Version online') . ' - V1', 'icon' => cubeMedia::silk('page_white_world.png')); $versions['v2'] = array('title' => __('Version online') . ' - V2', 'icon' => cubeMedia::silk('page_white_world.png')); @@ -573,9 +574,12 @@ class wsUrl foreach ($versions as $k => $v) { $disabled = ''; if (null !== $book) { + if ($k == 'scorm' && !$book->parametres->scorm_enable) { + continue; + } $tk = 'download_' . $k; - if (!$book->parametres->{$tk}) { - if ($core->user->rs == 'Kadreo') { + if (!$book->parametres->{$tk} && $k!=='scorm') { + if ($core->user->rs == 'Kadreo' || $core->user->rs == 'STUDIOFRANCE') { $disabled = ' class="disabled"'; } else { continue; diff --git a/inc/ws/DAO/class.ws.dao.book.php b/inc/ws/DAO/class.ws.dao.book.php index febb4e349..ca38d7b31 100644 --- a/inc/ws/DAO/class.ws.dao.book.php +++ b/inc/ws/DAO/class.ws.dao.book.php @@ -1152,6 +1152,15 @@ class wsDAOBook extends commonDAO return; } + if(null===$book){ + try{ + throw new Exception('!-!'); + }catch (Exception $e){ + print_r($e); + exit; + } + } + $v1 = $v2 = $html5 = false; if ($version == 'all') { @@ -1170,7 +1179,6 @@ class wsDAOBook extends commonDAO $pages = $this->getPagesOfBook($book_id); if (!$force) { - $v1 = $v1 && !$this->isUpToDate($book, 1); $v2 = $v2 && !$this->isUpToDate($book, 2); $html5 = $html5 && !$this->isUpToDate($book, 'html5'); @@ -1180,7 +1188,6 @@ class wsDAOBook extends commonDAO $v2 = true; } - $res = ''; if ($v1) { fb(time(), 'Compile V1'); diff --git a/inc/ws/Util/packager/_common.php b/inc/ws/Util/packager/_common.php index 4884d04af..1028db200 100644 --- a/inc/ws/Util/packager/_common.php +++ b/inc/ws/Util/packager/_common.php @@ -2,6 +2,7 @@ $__autoload['wsPackager'] = dirname(__FILE__) . '/class.ws.packager.php'; $__autoload['wsPackagerHTML'] = dirname(__FILE__) . '/class.ws.packager.html.php'; +$__autoload['wsPackagerSCORM'] = dirname(__FILE__) . '/class.ws.packager.scorm.php'; $__autoload['wsPackagerWinEXE'] = dirname(__FILE__) . '/class.ws.packager.win.exe.php'; $__autoload['wsPackagerWinINST'] = dirname(__FILE__) . '/class.ws.packager.win.inst.php'; diff --git a/inc/ws/Util/packager/class.ws.packager.html.php b/inc/ws/Util/packager/class.ws.packager.html.php index 46dd4d262..45fbc4ba0 100644 --- a/inc/ws/Util/packager/class.ws.packager.html.php +++ b/inc/ws/Util/packager/class.ws.packager.html.php @@ -1,30 +1,40 @@ version = 'html'; } - protected function getMinFlashVersion() { + protected function getMinFlashVersion() + { return '10.0.22'; } - protected function getSWFFiles() { + protected function getSWFFiles() + { return array('index.swf', 'player.swf'); } - protected function preparePackage() { + protected function preparePackage() + { parent::preparePackage(); - if($this->book->parametres->scorm_enable){ - $this->book->parametres->alwaysHTML5=true; + if ($this->_forceOnlyHtml) { + $this->book->parametres->alwaysHTML5 = true; + } + if ($this->_disableScorm) { + $this->book->parametres->scorm_enable = false; } $this->_ext = $this->book->parametres->htmlExtension; @@ -126,23 +136,23 @@ class wsPackagerHTML extends wsPackager { // Stuffs to replace in html $toReplace = array('lang' => strtolower($this->book->lang), - 'ga' => $ga, - 'statsfooter' => $statsfooter, - 'facebook' => $facebook, - 'bgcolor' => $this->theme->parametres->loadingBackColor, - 'redirectMobile' => $redirectMobile, - 'redirectPDF' => $redirectPDF, - 'junk' => TIME, - 'robots' => $robots, - 'favicon' => $favicon, - 'flashversion' => $this->getMinFlashVersion(), - 'fv' => json_encode($this->getFlashvars()), - 'alwaysHTML5' => $alwaysHTML5, - 'keywords' => $keywords, - 'allowNetworking' => $this->_allowNeworking, - 'redirectIfFlashNotInstalled' => in_array($html5priority, array('true', 'notinstalled')) ? 'true' : 'false', - 'redirectIfFlashBlocked' => $html5priority == 'true' ? 'true' : 'false', - 'flash_blocked_wait' => $this->book->parametres->flashBlockedWait, + 'ga' => $ga, + 'statsfooter' => $statsfooter, + 'facebook' => $facebook, + 'bgcolor' => $this->theme->parametres->loadingBackColor, + 'redirectMobile' => $redirectMobile, + 'redirectPDF' => $redirectPDF, + 'junk' => TIME, + 'robots' => $robots, + 'favicon' => $favicon, + 'flashversion' => $this->getMinFlashVersion(), + 'fv' => json_encode($this->getFlashvars()), + 'alwaysHTML5' => $alwaysHTML5, + 'keywords' => $keywords, + 'allowNetworking' => $this->_allowNeworking, + 'redirectIfFlashNotInstalled' => in_array($html5priority, array('true', 'notinstalled')) ? 'true' : 'false', + 'redirectIfFlashBlocked' => $html5priority == 'true' ? 'true' : 'false', + 'flash_blocked_wait' => $this->book->parametres->flashBlockedWait, ); $this->origHTML = $this->book->parametres->htmlPrepend . file_get_contents($this->vdir . '/index.html'); @@ -222,24 +232,24 @@ class wsPackagerHTML extends wsPackager { fb(time(), 'end prepare seo'); } - protected function getFlashvars() { + protected function getFlashvars() + { return array(); } - public function prepareHTML5() { + public function prepareHTML5() + { fb(time(), 'start prepare html5'); if (!$this->whole) { return; } - - $this->daoBook->compile($this->book_id, 'html5', false, $this->book->parametres->forceCompileOnDownload); + $this->daoBook->compile($this->book_id, 'html5', false, $this->book->parametres->forceCompileOnDownload, false, $this->book); $dest = $this->vdir . 'm'; if (!file_exists($dest)) { mkdir($dest, 0777, true); } - $cp = new cubeCommandLine('cp'); $cp->setPath(CONVERTER_PATH); $cp->setArg('r'); @@ -248,7 +258,6 @@ class wsPackagerHTML extends wsPackager { $cp->setArg(null, $dest); $cp->execute(); - $filesToAdd = array(); if ($this->book->parametres->mobileServerConfig) { $filesToAdd = array('.htaccess', 'web.config'); @@ -284,7 +293,8 @@ class wsPackagerHTML extends wsPackager { fb(time(), 'end prepare html5'); } - public function makePackage($zip) { + public function makePackage($zip) + { parent::makePackage($zip); if ($zip) { return $this->zip(); @@ -292,7 +302,8 @@ class wsPackagerHTML extends wsPackager { return $this->getFinalPackageDir(); } - protected function makeHTMLNav($root) { + protected function makeHTMLNav($root) + { $res = '