From c195b8cc7023894568e655b643bee9a9e0ca499f Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Tue, 17 Jul 2012 11:58:18 +0000 Subject: [PATCH] --- images/ws/phonegap.png | Bin 0 -> 1592 bytes inc/ws/Controlleur/class.ws.url.php | 5 ++- inc/ws/Util/html5/class.ws.html5.compiler.php | 34 ++++++++++++++---- inc/ws/Util/html5/class.ws.html5.links.php | 14 +++++++- inc/ws/Util/packager/_common.php | 1 + .../packager/class.ws.packager.phonegap.php | 26 ++++++++++++++ inc/ws/Util/packager/class.ws.packager.php | 2 ++ .../packager/class.ws.packager.win.exe.php | 2 +- 8 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 images/ws/phonegap.png create mode 100644 inc/ws/Util/packager/class.ws.packager.phonegap.php diff --git a/images/ws/phonegap.png b/images/ws/phonegap.png new file mode 100644 index 0000000000000000000000000000000000000000..a5447b2282fb7dcf1cc5d7d98485e101af5ff594 GIT binary patch literal 1592 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!WZB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L7LAM`LGaH#cKLLsvr!b3;=nOA7->S4TG| z7h^-1UYGpj(%jU%5}4i;gkBe%dO-;xw*Y9fOKMSOS!#+~QGTuh*uz$txZUE2(>$o& z6x?oc!l_pu=oo!av?4__ObD2EKuma|1#;lYJ~a=R){B6NTK$;96b1&Sb)GJcAr-em zf_?p^0!3_%YZiB~GP?4r>N*|C=;0R2(Ycf>{%`3&zU_CfP1Uls`$c(_V-$KF1AwDt9mA2$+bsRgZ^ z;<>QeMvnWxzPjsWKYshx?>~Rutgfr;+q~J>WVY{zYNMGgsgdXA&XrBq5j*_okrurM^B!(MEtF@cM1-^ zuq(FaZ=B2beTpr+ckkw4YmS@xh41Eq=H_Pc5W59iZ-2OO?=o*rZtla={qZk;Hx*2@ z|5Klu%DOe`Z0i1f`^w^DV>vf3%iOVduc+j-g^zEaH(HayG%N3sbB@&eNBJM6Wk04> zS4#syTW?AIvVcb)ExtFTeEjjFJ;Wo-l_qk$`f3&K_0XuRviYEcN>6`(a&9i~(jZQ@ z(1n*TFJ&)@J$~uZBop!Z={H@L-Q+!d;Otr67`^F#9{dvPcGbE)H>54OtW0dC58LF) zlZ)EK>ldeLrX*$O=bu0R_1UwBaSw7Vj$XYQni^xZ^t!yu7C7 zy$NY<>H5!}KUZbmXA>2pt0tj4ueJIX^BdRMS@$zc942?{+-b>}bS==@I6^@{VCQ0< zDc2wStUay#W|`KCH@w?7ZCQQy+$T1ZOI9ZhbP0 Hl+XkKnxI{_ literal 0 HcmV?d00001 diff --git a/inc/ws/Controlleur/class.ws.url.php b/inc/ws/Controlleur/class.ws.url.php index dd1bd3ea3..b199b1b91 100644 --- a/inc/ws/Controlleur/class.ws.url.php +++ b/inc/ws/Controlleur/class.ws.url.php @@ -186,6 +186,9 @@ class wsUrl { $versions['win-ins'] = array('title' => __('Version offline') . ' - ' . __('Installeur Auto-executable Windows'), 'icon' => cubeMedia::silk('application_view_tile.png')); $versions['mac-exe'] = array('title' => __('Version offline') . ' - ' . __('Exécutable Mac OS X'), 'icon' => cubeMedia::image(IMG . '/macos.png')); $versions['win-cd'] = array('title' => __('Version offline') . ' - ' . __('CD-ROM') . ' / ' . __('Clé USB'), 'icon' => cubeMedia::silk('cd.png')); + if ($droits->admin) { + $versions['phonegap'] = array('title' => __('Version offline') . ' - ' . __('Application mobile'), 'icon' => cubeMedia::image(IMG . '/phonegap.png')); + } $res = '
'; $res .= '
    '; @@ -1024,7 +1027,7 @@ html{height:100%}' . "\n"; header('Content-type: text/plain'); ob_end_clean(); - echo $dao->compile($args[1], 3, false,true); + echo $dao->compile($args[1], 3, false, true); exit; } diff --git a/inc/ws/Util/html5/class.ws.html5.compiler.php b/inc/ws/Util/html5/class.ws.html5.compiler.php index 97f41fcbf..389cfba8b 100644 --- a/inc/ws/Util/html5/class.ws.html5.compiler.php +++ b/inc/ws/Util/html5/class.ws.html5.compiler.php @@ -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 = '' . "\n"; + $script = ''; + if ($this->phonegap) { + $script .= '' . "\n"; + } + $script .= '' . "\n"; $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() { diff --git a/inc/ws/Util/html5/class.ws.html5.links.php b/inc/ws/Util/html5/class.ws.html5.links.php index bcc811807..bef5f7780 100644 --- a/inc/ws/Util/html5/class.ws.html5.links.php +++ b/inc/ws/Util/html5/class.ws.html5.links.php @@ -137,7 +137,11 @@ class normalLink extends wsHTML5Link { if (count($class)) { $c = ' class="' . implode(' ', $class) . '"'; } - return 'getAdditionnalContent() . '>'; + return 'getAdditionnalContent() . $this->getTrack() . '>'; + } + + 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'; } diff --git a/inc/ws/Util/packager/_common.php b/inc/ws/Util/packager/_common.php index 94ebde2d9..bf7d8836b 100644 --- a/inc/ws/Util/packager/_common.php +++ b/inc/ws/Util/packager/_common.php @@ -8,4 +8,5 @@ $__autoload['wsPackagerWinCD'] = dirname(__FILE__) . '/class.ws.packager.win.cd. $__autoload['wsPackagerMacEXE'] = dirname(__FILE__) . '/class.ws.packager.mac.exe.php'; $__autoload['wsPackagerAIR'] = dirname(__FILE__) . '/class.ws.packager.air.php'; $__autoload['wsPackagerV1'] = dirname(__FILE__) . '/class.ws.packager.v1.php'; +$__autoload['wsPackagerPhonegap'] = dirname(__FILE__) . '/class.ws.packager.phonegap.php'; ?> \ 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 index 000000000..8b2a443fb --- /dev/null +++ b/inc/ws/Util/packager/class.ws.packager.phonegap.php @@ -0,0 +1,26 @@ +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; + } + +} + +?> diff --git a/inc/ws/Util/packager/class.ws.packager.php b/inc/ws/Util/packager/class.ws.packager.php index d166ac2d3..c8c15a8a8 100644 --- a/inc/ws/Util/packager/class.ws.packager.php +++ b/inc/ws/Util/packager/class.ws.packager.php @@ -31,6 +31,8 @@ class wsPackager { $packager = new wsPackagerMacEXE($book_id); } elseif ($version == 'v1') { $packager = new wsPackagerV1($book_id); + } else if ($version == 'phonegap') { + $packager = new wsPackagerPhonegap($book_id); } return $packager->makePackage($zip); diff --git a/inc/ws/Util/packager/class.ws.packager.win.exe.php b/inc/ws/Util/packager/class.ws.packager.win.exe.php index 76f836d66..fb9bfbb6c 100644 --- a/inc/ws/Util/packager/class.ws.packager.win.exe.php +++ b/inc/ws/Util/packager/class.ws.packager.win.exe.php @@ -19,7 +19,7 @@ class wsPackagerWinEXE extends wsPackager { } public function makePackage($zip) { - parent::makePackage(); + parent::makePackage($zip); $res = $this->zip(); $this->postPackage(); return $res; -- 2.39.5