]> _ Git - cubeextranet.git/commitdiff
wip #2227 @1:40
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 4 Oct 2018 14:27:25 +0000 (14:27 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 4 Oct 2018 14:27:25 +0000 (14:27 +0000)
inc/ws/Controlleur/class.ws.url.php
inc/ws/DAO/class.ws.dao.book.php
inc/ws/Util/packager/_common.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.scorm.php [new file with mode: 0644]

index a4c7d7cfe1454cdc140a57cfecc91e2e94ca9149..5da6f12d20286878f52bf1039794b5c597e48b36 100644 (file)
@@ -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;
index febb4e3492dbc71778bbc4b28803a9bcbf8acc03..ca38d7b31392621ba97d5d9eb4702b938b90278b 100644 (file)
@@ -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');
index 4884d04af9b0fc6cf7d578b0386bb21d634ebf5f..1028db200dcf3bf89676ec12a4ff691b7e878dc3 100644 (file)
@@ -2,6 +2,7 @@
 \r
 $__autoload['wsPackager'] = dirname(__FILE__) . '/class.ws.packager.php';\r
 $__autoload['wsPackagerHTML'] = dirname(__FILE__) . '/class.ws.packager.html.php';\r
+$__autoload['wsPackagerSCORM'] = dirname(__FILE__) . '/class.ws.packager.scorm.php';\r
 \r
 $__autoload['wsPackagerWinEXE'] = dirname(__FILE__) . '/class.ws.packager.win.exe.php';\r
 $__autoload['wsPackagerWinINST'] = dirname(__FILE__) . '/class.ws.packager.win.inst.php';\r
index 46dd4d262800a7ded863d38757aa3cb66fe049a2..45fbc4ba01b57db40a6c2f47783d81655f43e29a 100644 (file)
@@ -1,30 +1,40 @@
 <?php
 
-class wsPackagerHTML extends wsPackager {
+class wsPackagerHTML extends wsPackager
+{
 
        protected $origHTML;
        protected $_labels = array();
        protected $_allowNeworking = 'all';
        protected $_ext = 'html';
+       protected $_forceOnlyHtml = false;
+       protected $_disableScorm = true;
 
-       public function __construct($book_id, $vdir = null, $whole = true) {
+       public function __construct($book_id, $vdir = null, $whole = true)
+       {
                parent::__construct($book_id, $vdir, $whole);
                $this->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 = '<nav>';
                foreach ($this->pages as $page => $infos) {
                        $label = $this->_getLabelOfPage($page);
@@ -315,7 +326,8 @@ class wsPackagerHTML extends wsPackager {
                return $res;
        }
 
-       protected function _getLabelOfPage($page) {
+       protected function _getLabelOfPage($page)
+       {
                if (!isset($this->_chapters)) {
                        $this->_chapters = $this->book->chapters;
                }
@@ -353,7 +365,8 @@ class wsPackagerHTML extends wsPackager {
                return $this->_labels[$page];
        }
 
-       protected function _sortCandidates($a, $b) {
+       protected function _sortCandidates($a, $b)
+       {
                if ($a->level > $b->level) {
                        return 1;
                } else if ($a->level < $b->level) {
@@ -363,7 +376,8 @@ class wsPackagerHTML extends wsPackager {
                }
        }
 
-       protected function _getVirtualPage($page) {
+       protected function _getVirtualPage($page)
+       {
                $num = explode(',', $this->book->numerotation);
                if (isset($num[$page - 1])) {
                        return $num[$page - 1];
@@ -371,7 +385,8 @@ class wsPackagerHTML extends wsPackager {
                return 1;
        }
 
-       protected function escape($txt, $replaceNewLines = false) {
+       protected function escape($txt, $replaceNewLines = false)
+       {
                $res = htmlentities($txt, ENT_COMPAT, 'UTF-8');
                if ($replaceNewLines) {
                        $res = str_replace("\n", ' ', $res);
@@ -380,18 +395,21 @@ class wsPackagerHTML extends wsPackager {
                return $res;
        }
 
-       protected function makeHTMLFooter() {
+       protected function makeHTMLFooter()
+       {
                $res = '<footer>';
                $res .= '<h2><a href="https://www.fluidbook.com">Fluidbook : Solution de catalogues interactifs et brochures en ligne</a></h2>';
                $res .= '</footer>';
                return $res;
        }
 
-       protected function replaceHTML($toReplace) {
+       protected function replaceHTML($toReplace)
+       {
                return $this->replaceContents($this->origHTML, $toReplace);
        }
 
-       protected function mergeJavascript() {
+       protected function mergeJavascript()
+       {
                $dest = WS_COMPILE_ASSETS . '/fluidbook.js';
                $orig = WS_COMPILE_ASSETS . '/_js/';
                $files = array('log4js.js' => false, 'esapi.js' => false, 'resources/i18n/ESAPI_Standard_en_US.properties.js' => false, 'resources/Base.esapi.properties.js' => false, 'swfobject.js' => false, 'swfaddress.js' => true, 'fluidbook.js' => true);
index c2d0d74ea130dc965c9fb11f784f394a053a6e30..c514755a37965c630fcfc3c6070aec67e819569f 100644 (file)
@@ -25,6 +25,8 @@ class wsPackager
                cubePHP::neverStop();
                if ($version == 'html') {
                        $packager = new wsPackagerHTML($book_id);
+               } else if ($version == 'scorm') {
+                       $packager = new wsPackagerSCORM($book_id);
                } elseif ($version == 'win-exe') {
                        $packager = new wsPackagerWinEXE($book_id);
                } elseif ($version == 'win-cd') {
@@ -86,7 +88,7 @@ class wsPackager
 
        protected function compile()
        {
-               $this->daoBook->compile($this->book_id, '2', false, $this->book->parametres->forceCompileOnDownload);
+               $this->daoBook->compile($this->book_id, '2', false, $this->book->parametres->forceCompileOnDownload, false, $this->book);
        }
 
        protected function preparePackage()
diff --git a/inc/ws/Util/packager/class.ws.packager.scorm.php b/inc/ws/Util/packager/class.ws.packager.scorm.php
new file mode 100644 (file)
index 0000000..921eafc
--- /dev/null
@@ -0,0 +1,12 @@
+<?php\r
+\r
+class wsPackagerSCORM extends wsPackagerHTML\r
+{\r
+       public function __construct($book_id, $vdir = null, $whole = true)\r
+       {\r
+               parent::__construct($book_id, $vdir, $whole);\r
+               $this->version = 'scorm';\r
+               $this->_forceOnlyHtml = true;\r
+               $this->_disableScorm = false;\r
+       }\r
+}
\ No newline at end of file