]> _ Git - cubeextranet.git/commitdiff
wait #4697 @1
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 23 Sep 2021 17:52:31 +0000 (17:52 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Thu, 23 Sep 2021 17:52:31 +0000 (17:52 +0000)
inc/ws/Controlleur/class.ws.url.php
inc/ws/Util/html5/class.ws.html5.php
inc/ws/Util/html5/master/class.ws.html5.compiler.php
inc/ws/Util/packager/_common.php
inc/ws/Util/packager/class.ws.packager.php
inc/ws/Util/packager/class.ws.packager.precompiled.php [new file with mode: 0644]

index 985c55337d4b646b7c644385a75aec92ffacb30a..c9aafdeeb65dddc5d4ffc984069ae15a78ea33de 100644 (file)
@@ -564,6 +564,7 @@ class wsUrl
         $versions['win-html'] = array('title' => __('Version offline') . ' - ' . __('HTML') . ' (' . __('Non adaptée à l\'installation sur un serveur web') . ')', 'icon' => cubeMedia::silk('cd.png'));
         if ($droits->admin) {
             $versions['phonegap'] = array('title' => __('Version offline') . ' - ' . __('Application mobile'), 'icon' => cubeMedia::image(IMG . '/phonegap.png'));
+            $versions['precompiled'] = array('title' => __('Version precompilée') , 'icon' => cubeMedia::image(IMG . '/phonegap.png'));
         }
 
         if (!$select) {
index 56320f1922660301d2f471de8705949023de35bd..f9bd69c618a069b7b3e65684d7fcff80c9a5db37 100644 (file)
@@ -91,4 +91,18 @@ class wsHTML5
     {\r
         return CubeIT_Graphics_Color::colorToCSS($color, $forceAlpha);\r
     }\r
+\r
+    public static function getSourcesPath($version)\r
+    {\r
+        if ($version === 'stable') {\r
+            return WS_COMPILE_ASSETS . '/player/branches/master';\r
+        }\r
+        if ($version === 'dev') {\r
+            return WS_COMPILE_ASSETS . '/player/local/master';\r
+        }\r
+        list($branch, $location) = explode('|', $version);\r
+        return WS_COMPILE_ASSETS . '/player/' . ($location === 'git' ? 'branches' : $location) . '/' . $branch;\r
+    }\r
+\r
+\r
 }
\ No newline at end of file
index 04da738f02fedf11d53bf4203903389b8e4f204c..d5af646f757bc441c4493707b11e9edcd783f3b9 100644 (file)
@@ -242,16 +242,7 @@ class wsHTML5Compiler
         $this->multiApp = $this->home = $home;
         $this->version = $version;
 
-
-        if ($version == 'stable') {
-            $this->assets = WS_COMPILE_ASSETS . '/player/branches/master';
-        } else if ($version == 'dev') {
-            $this->assets = WS_COMPILE_ASSETS . '/player/local/master';
-        } else {
-            list($branch, $location) = explode('|', $version);
-            $this->assets = WS_COMPILE_ASSETS . '/player/' . ($location == 'git' ? 'branches' : $location) . '/' . $branch;
-        }
-
+        $this->assets = wsHTML5::getSourcesPath($this->version);
 
         $this->phonegap = $phonegap;
         $this->standalone = $standalone || $this->phonegap;
index bc27dea432c1b959a7efa769814fe02225720503..85c702090f64e836168bffc40f76fcd69785d272 100644 (file)
@@ -15,6 +15,7 @@ $__autoload['wsPackagerWinINSTHTML'] = dirname(__FILE__) . '/class.ws.packager.w
 $__autoload['wsPackagerWinINSTSilentHTML'] = dirname(__FILE__) . '/class.ws.packager.win.inst.silent.html.php';\r
 $__autoload['wsPackagerWinCDHTML'] = dirname(__FILE__) . '/class.ws.packager.win.cd.html.php';\r
 $__autoload['wsPackagerMacEXEHTML'] = dirname(__FILE__) . '/class.ws.packager.mac.exe.html.php';\r
+$__autoload['wsPackagerPrecompiled'] = dirname(__FILE__) . '/class.ws.packager.precompiled.php';\r
 \r
 \r
 $__autoload['wsPackagerWinHTML'] = dirname(__FILE__) . '/class.ws.packager.win.html.php';\r
index 7d1e946da92ca371ab9e02dee3fb4ec23c639e07..d95ef1cc81216956a0fc3c9cd66f76d7dee8880b 100644 (file)
@@ -16,7 +16,7 @@ class wsPackager
     protected $workingDir;
     protected $whole = true;
     protected $_clean = true;
-    protected $_compileOnConstruct=true;
+    protected $_compileOnConstruct = true;
     public $cleanOnDestruct = true;
 
     public static function package($book_id, $version, $zip = true, $cleanOnDestruct = true)
@@ -24,26 +24,28 @@ class wsPackager
         global $packager;
 
         cubePHP::neverStop();
-        if ($version == 'html') {
+        if ($version === 'html') {
             $packager = new wsPackagerHTML($book_id);
-        } else if ($version == 'scorm') {
+        } else if ($version === 'scorm') {
             $packager = new wsPackagerSCORM($book_id);
-        } else if($version=='sharepoint'){
-            $packager=new wsPackagerSharepoint($book_id);
-        }elseif ($version == 'win-html') {
+        } else if ($version === 'sharepoint') {
+            $packager = new wsPackagerSharepoint($book_id);
+        } elseif ($version === 'win-html') {
             $packager = new wsPackagerWinHTML($book_id);
-        } else if ($version == 'phonegap') {
+        } else if ($version === 'phonegap') {
             $packager = new wsPackagerPhonegap($book_id);
-        } else if ($version == 'win-exe-html') {
+        } else if ($version === 'win-exe-html') {
             $packager = new wsPackagerWinEXEHTML($book_id);
-        } else if ($version == 'mac-exe-html') {
+        } else if ($version === 'mac-exe-html') {
             $packager = new wsPackagerMacEXEHTML($book_id);
-        } else if ($version == 'win-ins-html') {
+        } else if ($version === 'win-ins-html') {
             $packager = new wsPackagerWinINSTHTML($book_id);
-        } else if ($version == 'win-inss-html') {
+        } else if ($version === 'win-inss-html') {
             $packager = new wsPackagerWinINSTSilentHTML($book_id);
-        } else if ($version == 'win-cd-html') {
+        } else if ($version === 'win-cd-html') {
             $packager = new wsPackagerWinCDHTML($book_id);
+        } else if ($version === 'precompiled') {
+            $packager = new wsPackagerPrecompiled($book_id);
         }
         $packager->cleanOnDestruct = $packager->cleanOnDestruct && $cleanOnDestruct;
 
@@ -76,7 +78,7 @@ class wsPackager
 
         $this->workingDir = $this->book->getAssetDir();
 
-        if($this->_compileOnConstruct) {
+        if ($this->_compileOnConstruct) {
             $this->compile();
         }
     }
diff --git a/inc/ws/Util/packager/class.ws.packager.precompiled.php b/inc/ws/Util/packager/class.ws.packager.precompiled.php
new file mode 100644 (file)
index 0000000..4f0c990
--- /dev/null
@@ -0,0 +1,45 @@
+<?php\r
+\r
+class wsPackagerPrecompiled extends wsPackagerHTML\r
+{\r
+    public function __construct($book_id, $vdir = null, $whole = true)\r
+    {\r
+        parent::__construct($book_id, $vdir, $whole);\r
+        $this->version = 'precompiled';\r
+    }\r
+\r
+\r
+    public function prepareHTML5()\r
+    {\r
+        $res = parent::prepareHTML5();\r
+        $dest = $this->vdir . 'm';\r
+\r
+        // Copy styles\r
+        $source = wsHTML5::getSourcesPath($this->book->parametres->mobileLVersion);\r
+        $styles = $source . '/style';\r
+        $destLess = $dest . '/_less';\r
+        $cmd = "cp -R $styles $destLess";\r
+        `$cmd`;\r
+\r
+        // Copy theme assets\r
+        $theme = WS_THEMES . '/' . $this->book->theme . '/';\r
+        $destTheme = $dest . '/_theme';\r
+        $cmd = "cp -R $theme $destTheme";\r
+        `$cmd`;\r
+\r
+        // Cleanup\r
+        $clean = ['data/thumbnails', 'data/background', 'data/contents', 'data/*.pdf', 'data/style', 'style'];\r
+        foreach ($clean as $item) {\r
+            $path = $dest . '/' . $item;\r
+            if (strstr($item, '.')) {\r
+                `rm -f $path`;\r
+            } else {\r
+                `rm -rf $path`;\r
+            }\r
+        }\r
+\r
+        return $res;\r
+    }\r
+\r
+\r
+}
\ No newline at end of file