]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 17 Jul 2012 11:58:18 +0000 (11:58 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 17 Jul 2012 11:58:18 +0000 (11:58 +0000)
images/ws/phonegap.png [new file with mode: 0644]
inc/ws/Controlleur/class.ws.url.php
inc/ws/Util/html5/class.ws.html5.compiler.php
inc/ws/Util/html5/class.ws.html5.links.php
inc/ws/Util/packager/_common.php
inc/ws/Util/packager/class.ws.packager.phonegap.php [new file with mode: 0644]
inc/ws/Util/packager/class.ws.packager.php
inc/ws/Util/packager/class.ws.packager.win.exe.php

diff --git a/images/ws/phonegap.png b/images/ws/phonegap.png
new file mode 100644 (file)
index 0000000..a5447b2
Binary files /dev/null and b/images/ws/phonegap.png differ
index dd1bd3ea36c18d9aa1596272ded0d1b85a48050d..b199b1b91c37dee13b8a2cd7a81beadbb04cbe04 100644 (file)
@@ -186,6 +186,9 @@ class wsUrl {
                $versions['win-ins'] = array('title' => __('Version offline') . ' - ' . __('Installeur Auto-executable Windows'), 'icon' => cubeMedia::silk('application_view_tile.png'));\r
                $versions['mac-exe'] = array('title' => __('Version offline') . ' - ' . __('ExĂ©cutable Mac OS X'), 'icon' => cubeMedia::image(IMG . '/macos.png'));\r
                $versions['win-cd'] = array('title' => __('Version offline') . ' - ' . __('CD-ROM') . ' / ' . __('ClĂ© USB'), 'icon' => cubeMedia::silk('cd.png'));\r
+               if ($droits->admin) {\r
+                       $versions['phonegap'] = array('title' => __('Version offline') . ' - ' . __('Application mobile'), 'icon' => cubeMedia::image(IMG . '/phonegap.png'));\r
+               }\r
 \r
                $res = '<div class="contextMenu downbookContextMenu" id="' . $id . '">';\r
                $res .= '<ul>';\r
@@ -1024,7 +1027,7 @@ html{height:100%}' . "\n";
 \r
                header('Content-type: text/plain');\r
                ob_end_clean();\r
-               echo $dao->compile($args[1], 3, false,true);\r
+               echo $dao->compile($args[1], 3, false, true);\r
                exit;\r
        }\r
 \r
index 97f41fcbfa60ddf266cca39c2bf9a92d8ea2d8a9..389cfba8b2ed1dfd9f8aca058bf0f3348d402b17 100644 (file)
@@ -2,11 +2,18 @@
 
 class wsHTML5Compiler {
 
-       public static function factory($book_id, $version = 'stable') {
+       public static function factory($book_id, $version = 'stable', $phonegap = false, $dir = null) {
+               if (is_null($version)) {
+                       global $core;
+                       $dao = new wsDAOBook($core->con);
+                       $book = $dao->selectById($book_id);
+                       $version = $book->parametres->mobileLVersion;
+               }
+
                if ($version == 'stable') {
-                       return new wsHTML5Compiler($book_id, $version);
+                       return new wsHTML5Compiler($book_id, $version, $phonegap, $dir);
                } else {
-                       return new wsHTML5CompilerDev($book_id, $version);
+                       return new wsHTML5CompilerDev($book_id, $version, $phonegap, $dir);
                }
        }
 
@@ -37,6 +44,7 @@ class wsHTML5Compiler {
                'js/libs/fluidbook/fluidbook.help.js',
                'js/libs/fluidbook/fluidbook.resize.js',
                'js/libs/fluidbook/fluidbook.coquillette.js',
+               'js/libs/fluidbook/fluidbook.stats.js',
                'js/libs/fluidbook/fluidbook.js',
                'js/main.js');
        protected static $debugJsFiles = array(
@@ -106,8 +114,9 @@ class wsHTML5Compiler {
        protected $svg = true;
        protected $config = array();
        protected $assets = '';
+       protected $phonegap = false;
 
-       function __construct($book_id, $version = 'stable') {
+       function __construct($book_id, $version = 'stable', $phonegap = false, $dir = null) {
                global $core;
 
                if ($version == 'stable') {
@@ -116,6 +125,7 @@ class wsHTML5Compiler {
                } else {
                        $this->assets = WS_COMPILE_ASSETS . '/_html5';
                }
+               $this->phonegap = $phonegap;
 
                cubePHP::set_memory('4G');
 
@@ -124,7 +134,12 @@ class wsHTML5Compiler {
                }
                $this->book_id = $book_id;
 
-               $this->vdir = $this->dir = WS_BOOKS . '/html5/' . $book_id . '/';
+               if (is_null($dir)) {
+                       $this->dir = WS_BOOKS . '/html5/' . $book_id . '/';
+               } else {
+                       $this->dir = $dir;
+               }
+               $this->vdir = $this->dir;
 
                // Clean the folder
                `rm -rf $this->vdir`;
@@ -347,7 +362,11 @@ class wsHTML5Compiler {
 
                $pagesContents = '';
 
-               $script = '<script type="text/javascript" src="data/fluidbook.js"></script>' . "\n";
+               $script = '';
+               if ($this->phonegap) {
+                       $script .= '<script type="text/javascript" src="data/cordova.js"></script>' . "\n";
+               }
+               $script .= '<script type="text/javascript" src="data/fluidbook.js"></script>' . "\n";
                $script .= '<script type="text/javascript" src="data/search.js"></script>' . "\n";
 
                $description = '';
@@ -498,6 +517,9 @@ class wsHTML5Compiler {
                }
 
                file_put_contents($this->vdir . '/data/datas.js', $config);
+               if ($this->phonegap) {
+                       $this->copy($this->assets . '/js/libs/phonegap/cordova.js', $this->vdir . '/data/cordova.js');
+               }
        }
 
        public function writeTexts() {
index bcc8118073d2e0f2dae549d3ef7e50b92e474686..bef5f7780aba438d51f1a147c110b693a2d6e9c6 100644 (file)
@@ -137,7 +137,11 @@ class normalLink extends wsHTML5Link {
                if (count($class)) {
                        $c = ' class="' . implode(' ', $class) . '"';
                }
-               return '<a href="' . $this->getURL() . '" target="' . $this->getTarget() . '"' . $c . $this->getAdditionnalContent() . '></a>';
+               return '<a href="' . $this->getURL() . '" target="' . $this->getTarget() . '"' . $c . $this->getAdditionnalContent() . $this->getTrack() . '></a>';
+       }
+
+       public function getTrack() {
+               return '';
        }
 
        public function getURL() {
@@ -164,6 +168,10 @@ class webLink extends normalLink {
                return $this->target;
        }
 
+       public function getTrack() {
+               return ' data-track="' . $this->getURL() . '"';
+       }
+
        public function getCSS() {
                
        }
@@ -176,6 +184,10 @@ class mailLink extends normalLink {
                return 'mailto:' . $this->to;
        }
 
+       public function getTrack() {
+               return ' data-track="' . $this->to . '"';
+       }
+
        public function getTarget() {
                return '_self';
        }
index 94ebde2d9e086bc1f6bc6e589c74f24cedc12b78..bf7d8836bd96d4060887cc098ee3748d19c63c71 100644 (file)
@@ -8,4 +8,5 @@ $__autoload['wsPackagerWinCD'] = dirname(__FILE__) . '/class.ws.packager.win.cd.
 $__autoload['wsPackagerMacEXE'] = dirname(__FILE__) . '/class.ws.packager.mac.exe.php';\r
 $__autoload['wsPackagerAIR'] = dirname(__FILE__) . '/class.ws.packager.air.php';\r
 $__autoload['wsPackagerV1'] = dirname(__FILE__) . '/class.ws.packager.v1.php';\r
+$__autoload['wsPackagerPhonegap'] = dirname(__FILE__) . '/class.ws.packager.phonegap.php';\r
 ?>
\ No newline at end of file
diff --git a/inc/ws/Util/packager/class.ws.packager.phonegap.php b/inc/ws/Util/packager/class.ws.packager.phonegap.php
new file mode 100644 (file)
index 0000000..8b2a443
--- /dev/null
@@ -0,0 +1,26 @@
+<?php
+
+class wsPackagerPhonegap extends wsPackager {
+
+       public function __construct($book_id, $vdir = null, $whole = true) {
+               parent::__construct($book_id, $vdir, $whole);
+               $this->version = 'phonegap';
+       }
+
+       protected function preparePackage() {
+               parent::preparePackage();
+               
+               $compiler = wsHTML5Compiler::factory($this->book_id, null, true, $this->vdir);
+               $compiler->compile();
+       }
+
+       public function makePackage($zip) {
+               parent::makePackage($zip);
+               $res = $this->zip();
+               $this->postPackage();
+               return $res;
+       }
+
+}
+
+?>
index d166ac2d3fc636fcbf6749e8ae7791e960d99f53..c8c15a8a8fc75ec1d6867fb6944488a201bd994b 100644 (file)
@@ -31,6 +31,8 @@ class wsPackager {
                        $packager = new wsPackagerMacEXE($book_id);\r
                } elseif ($version == 'v1') {\r
                        $packager = new wsPackagerV1($book_id);\r
+               } else if ($version == 'phonegap') {\r
+                       $packager = new wsPackagerPhonegap($book_id);\r
                }\r
 \r
                return $packager->makePackage($zip);\r
index 76f836d66398a9c6ca20cd209ebea82f568a39f1..fb9bfbb6c9fd2142106c1a258fcebd91d4407e76 100644 (file)
@@ -19,7 +19,7 @@ class wsPackagerWinEXE extends wsPackager {
        }\r
 \r
        public function makePackage($zip) {\r
-               parent::makePackage();\r
+               parent::makePackage($zip);\r
                $res = $this->zip();\r
                $this->postPackage();\r
                return $res;\r