From: vincent@cubedesigners.com Date: Mon, 20 Apr 2015 12:34:19 +0000 (+0000) Subject: Add possibility to change export extension of html files X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=48521cc90663c003b82c160124d1eed7c7382b5b;p=cubeextranet.git Add possibility to change export extension of html files Add possibility to prepend a code in html files --- diff --git a/fluidbook/compile/_js/fluidbook.js b/fluidbook/compile/_js/fluidbook.js index e1c72a2f1..de4fa2298 100644 --- a/fluidbook/compile/_js/fluidbook.js +++ b/fluidbook/compile/_js/fluidbook.js @@ -4,102 +4,105 @@ org.owasp.esapi.ESAPI.initialize(); var _GET = parseGet(); var _openedWindows = {}; +if (INDEX_EXT === undefined || !INDEX_EXT) { + INDEX_EXT = 'html'; +} function getWmode() { - if (_GET['wmode'] != undefined) { - return _GET['wmode']; - } - - var ua = navigator.userAgent; - if (ua.search(/mac/i) > -1 && ua.search(/opera/i) > -1) { - return 'normal'; - } else { - return 'direct'; - } + if (_GET['wmode'] != undefined) { + return _GET['wmode']; + } + + var ua = navigator.userAgent; + if (ua.search(/mac/i) > -1 && ua.search(/opera/i) > -1) { + return 'normal'; + } else { + return 'direct'; + } } function getLocation() { - return window.location.toString(); + return window.location.toString(); } function getPath() { - var l = window.location; + var l = window.location; - var res = l.toString(); - var origin = l.protocol + '//' + l.host - return res.replace(origin, ''); + var res = l.toString(); + var origin = l.protocol + '//' + l.host + return res.replace(origin, ''); } function getFlashvars(junk, fv) { - var res = {}; - if (fv != undefined) { - res = fv; - } - - res = parseGet(res); - res['junk'] = $ESAPI.encoder().encodeForJavaScript(junk); - return res; + var res = {}; + if (fv != undefined) { + res = fv; + } + + res = parseGet(res); + res['junk'] = $ESAPI.encoder().encodeForJavaScript(junk); + return res; } function parseGet(res) { - if (res === undefined) { - res = {}; - } - - var s = window.location.search.substr(1); - if (s === "") { - return res; - } - - var couples = s.split('&'); - var couple = new Array(); - for (var i = 0; i < couples.length; i++) { - couple = couples[i].split('='); - //res[couple[0]] = trim($ESAPI.httpUtilities().getRequestParameter(couple[0]), "="); - //res[couple[0]] = $ESAPI.httpUtilities().getRequestParameter(couple[0]); - res[couple[0]] = unescape(couple[1]); - } - return res; + if (res === undefined) { + res = {}; + } + + var s = window.location.search.substr(1); + if (s === "") { + return res; + } + + var couples = s.split('&'); + var couple = new Array(); + for (var i = 0; i < couples.length; i++) { + couple = couples[i].split('='); + //res[couple[0]] = trim($ESAPI.httpUtilities().getRequestParameter(couple[0]), "="); + //res[couple[0]] = $ESAPI.httpUtilities().getRequestParameter(couple[0]); + res[couple[0]] = unescape(couple[1]); + } + return res; } function getLang() { - if (_GET.lang == undefined || _GET.lang == null || _GET.lang == '') { - return FB_DEFAULT_LANG; - } - return _GET.lang; + if (_GET.lang == undefined || _GET.lang == null || _GET.lang == '') { + return FB_DEFAULT_LANG; + } + return _GET.lang; } function mailto(adresse) { - window.location = 'mailto:' + adresse; + window.location = 'mailto:' + adresse; } function getBookmarks(id) { - return getCookie('fb_bookmarks_' + id); + return getCookie('fb_bookmarks_' + id); } function setBookmarks(data, id) { - setCookie('fb_bookmarks_' + id, data); + setCookie('fb_bookmarks_' + id, data); } function popupFS(page) { - if (page == undefined) { - page = 0; - } - var date = new Date().getTime(); - window.open('index.html#/' + page, 'fbpopupfs_' + date, 'width=' + screen.width + ',height=' + screen.height + ',resizable=yes'); + if (page == undefined) { + page = 0; + } + var date = new Date().getTime(); + window.open('index.html#/' + page, 'fbpopupfs_' + date, 'width=' + screen.width + ',height=' + screen.height + ',resizable=yes'); } function popupFocus(url, target) { - var openedw; - if (target.substr(0, 1) == '_') { - openedw = window.open(url, target, 'width=' + screen.width + ',height=' + screen.height + ',resizable=yes'); - } else { - if (_openedWindows[target] != undefined && _openedWindows[target] != null) { - openedw = _openedWindows[target]; - openedw.location = url; - } else { - openedw = window.open(url, target, 'width=' + screen.width + ',height=' + screen.height + ',resizable=yes'); - _openedWindows[target] = openedw; - } - } - openedw.focus(); + var openedw; + if (target.substr(0, 1) == '_') { + openedw = window.open(url, target, 'width=' + screen.width + ',height=' + screen.height + ',resizable=yes'); + } else { + if (_openedWindows[target] != undefined && _openedWindows[target] != null) { + openedw = _openedWindows[target]; + openedw.location = url; + } else { + openedw = window.open(url, target, 'width=' + screen.width + ',height=' + screen.height + ',resizable=yes'); + _openedWindows[target] = openedw; + } + } + openedw.focus(); } /*function getCookieVal(offset) @@ -110,154 +113,152 @@ function popupFocus(url, target) { } return unescape(document.cookie.substring(offset, endstr)); }*/ -function getCookie(nom) -{ - var res = $ESAPI.httpUtilities().getCookie(nom); - return res.getValue(); +function getCookie(nom) { + var res = $ESAPI.httpUtilities().getCookie(nom); + return res.getValue(); } -function setCookie(nom, valeur) -{ - var cookie = new org.owasp.esapi.net.Cookie(nom, valeur); - cookie.setMaxAge(10 * 365 * 24 * 3600); - cookie.setPath('/'); - cookie.setSecure(window.top.location.protocol === 'https:'); - return $ESAPI.httpUtilities().addCookie(cookie); +function setCookie(nom, valeur) { + var cookie = new org.owasp.esapi.net.Cookie(nom, valeur); + cookie.setMaxAge(10 * 365 * 24 * 3600); + cookie.setPath('/'); + cookie.setSecure(window.top.location.protocol === 'https:'); + return $ESAPI.httpUtilities().addCookie(cookie); } function addThis(x) { - addthis_offset_left = parseFloat(x); - addthis_open(document.getElementById('addThisBt'), '', '[URL]', '[TITLE]'); + addthis_offset_left = parseFloat(x); + addthis_open(document.getElementById('addThisBt'), '', '[URL]', '[TITLE]'); } function handleWheel(delta) { - try { - fb(delta); - document.getElementById('fluidbook').mouseWheel(delta); - } catch (e) { + try { + fb(delta); + document.getElementById('fluidbook').mouseWheel(delta); + } catch (e) { - } + } } function isMobile() { - var devices = ['iphone', 'ipad', 'ipod', 'droid', 'blackberry', 'mobile', 'htc', 'samsung', 'nokia', 'archos', 'galaxy', 'motorola', 'pad', 'slate', 'symbian', 'phone', 'nintendo', 'playstation', 'touch', 'webos', 'ericsson', 'metro']; - return _isMobile(devices); + var devices = ['iphone', 'ipad', 'ipod', 'droid', 'blackberry', 'mobile', 'htc', 'samsung', 'nokia', 'archos', 'galaxy', 'motorola', 'pad', 'slate', 'symbian', 'phone', 'nintendo', 'playstation', 'touch', 'webos', 'ericsson', 'metro']; + return _isMobile(devices); } function isBadMobile() { - var devices = ['kindle']; - return _isMobile(devices); + var devices = ['kindle']; + return _isMobile(devices); } function _isMobile(devices) { - var ua = navigator.userAgent; - var pattern; - - for (i = 0; i < devices.length; i++) { - pattern = new RegExp(devices[i], 'i'); - if (ua.search(pattern) > -1) { - return true; - } - } - return false; + var ua = navigator.userAgent; + var pattern; + + for (i = 0; i < devices.length; i++) { + pattern = new RegExp(devices[i], 'i'); + if (ua.search(pattern) > -1) { + return true; + } + } + return false; } function redirectPDF() { - window.location = 'data/document.pdf'; + window.location = 'data/document.pdf'; } function redirectMobile() { - var page = ''; - var get = parseGet(); - var html = 'index.html'; - if (get['widget'] !== undefined && get['widget'] == '1') { - html = 'widget.html'; - page = '?widget=1&'; - if (get['background'] != undefined) { - page += "background=" + get['background']; - } - } - var pageNr = 0; - if (get.page != undefined) { - pageNr = parseInt(get.page); - } - if (window.location.hash != '') { - var e = window.location.hash.split('/'); - var pnr = parseInt(e[1]); - if (!isNaN(pnr)) { - pageNr = pnr; - } - } - - if (page === '') { - page = '#/page/' + pageNr; - } - - setTimeout(function () { - window.location = 'm/' + html + page; - }, 10); + var page = ''; + var get = parseGet(); + var html = 'index.' + INDEX_EXT; + if (get['widget'] !== undefined && get['widget'] == '1') { + html = 'widget.' + INDEX_EXT; + page = '?widget=1&'; + if (get['background'] != undefined) { + page += "background=" + get['background']; + } + } + var pageNr = 0; + if (get.page != undefined) { + pageNr = parseInt(get.page); + } + if (window.location.hash != '') { + var e = window.location.hash.split('/'); + var pnr = parseInt(e[1]); + if (!isNaN(pnr)) { + pageNr = pnr; + } + } + + if (page === '') { + page = '#/page/' + pageNr; + } + + setTimeout(function () { + window.location = 'm/' + html + page; + }, 10); } function fb(e) { - try { - console.log(e); - } catch (err) { + try { + console.log(e); + } catch (err) { - } + } } function wheel(event) { - var delta = 0; - if (!event) /* For IE. */ - event = window.event; - if (event.wheelDelta) { /* IE/Opera. */ - delta = event.wheelDelta / 120; - /** In Opera 9, delta differs in sign as compared to IE. - */ - if (window.opera) - delta = -delta; - } else if (event.detail) { /** Mozilla case. */ - /** In Mozilla, sign of delta is different than in IE. - * Also, delta is multiple of 3. - */ - delta = -event.detail / 3; - } - /** If delta is nonzero, handle it. - * Basically, delta is now positive if wheel was scrolled up, - * and negative, if wheel was scrolled down. - */ - if (delta) { - handleWheel(delta); - } - /** Prevent default actions caused by mouse wheel. - * That might be ugly, but we handle scrolls somehow - * anyway, so don't bother here.. - */ - if (event.preventDefault) { - event.preventDefault(); - } - event.returnValue = false; + var delta = 0; + if (!event) /* For IE. */ + event = window.event; + if (event.wheelDelta) { /* IE/Opera. */ + delta = event.wheelDelta / 120; + /** In Opera 9, delta differs in sign as compared to IE. + */ + if (window.opera) + delta = -delta; + } else if (event.detail) { /** Mozilla case. */ + /** In Mozilla, sign of delta is different than in IE. + * Also, delta is multiple of 3. + */ + delta = -event.detail / 3; + } + /** If delta is nonzero, handle it. + * Basically, delta is now positive if wheel was scrolled up, + * and negative, if wheel was scrolled down. + */ + if (delta) { + handleWheel(delta); + } + /** Prevent default actions caused by mouse wheel. + * That might be ugly, but we handle scrolls somehow + * anyway, so don't bother here.. + */ + if (event.preventDefault) { + event.preventDefault(); + } + event.returnValue = false; } function ready() { - document.body.style.backgroundColor = '#' + getBackgroundColor(); - redirect(); + document.body.style.backgroundColor = '#' + getBackgroundColor(); + redirect(); } function getBackgroundColor() { - if (_GET['background'] != undefined) { - return _GET['background']; - } else { - return backgroundColor; - } + if (_GET['background'] != undefined) { + return _GET['background']; + } else { + return backgroundColor; + } } /** Initialization code. * If you use your own event management code, change it as required. */ if (window.addEventListener) { - /** DOMMouseScroll is for mozilla. */ - window.addEventListener('DOMMouseScroll', wheel, false); + /** DOMMouseScroll is for mozilla. */ + window.addEventListener('DOMMouseScroll', wheel, false); } /** IE/Opera. */ window.onmousewheel = document.onmousewheel = wheel; @@ -267,59 +268,59 @@ window.onkeypress = key; window.onkeydown = key; function key(e) { - if (e.ctrlKey && (e.keyCode == 80 || e.keyCode == 112)) { - return false; - } + if (e.ctrlKey && (e.keyCode == 80 || e.keyCode == 112)) { + return false; + } - return true; + return true; } function trim(str, charlist) { - // discuss at: http://phpjs.org/functions/trim/ - // original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) - // improved by: mdsjack (http://www.mdsjack.bo.it) - // improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev) - // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) - // improved by: Steven Levithan (http://blog.stevenlevithan.com) - // improved by: Jack - // input by: Erkekjetter - // input by: DxGx - // bugfixed by: Onno Marsman - // example 1: trim(' Kevin van Zonneveld '); - // returns 1: 'Kevin van Zonneveld' - // example 2: trim('Hello World', 'Hdle'); - // returns 2: 'o Wor' - // example 3: trim(16, 1); - // returns 3: 6 - - var whitespace, l = 0, - i = 0; - str += ''; - - if (!charlist) { - // default list - whitespace = - ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000'; - } else { - // preg_quote custom list - charlist += ''; - whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1'); - } - - l = str.length; - for (i = 0; i < l; i++) { - if (whitespace.indexOf(str.charAt(i)) === -1) { - str = str.substring(i); - break; - } - } - - l = str.length; - for (i = l - 1; i >= 0; i--) { - if (whitespace.indexOf(str.charAt(i)) === -1) { - str = str.substring(0, i + 1); - break; - } - } - - return whitespace.indexOf(str.charAt(0)) === -1 ? str : ''; + // discuss at: http://phpjs.org/functions/trim/ + // original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) + // improved by: mdsjack (http://www.mdsjack.bo.it) + // improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev) + // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) + // improved by: Steven Levithan (http://blog.stevenlevithan.com) + // improved by: Jack + // input by: Erkekjetter + // input by: DxGx + // bugfixed by: Onno Marsman + // example 1: trim(' Kevin van Zonneveld '); + // returns 1: 'Kevin van Zonneveld' + // example 2: trim('Hello World', 'Hdle'); + // returns 2: 'o Wor' + // example 3: trim(16, 1); + // returns 3: 6 + + var whitespace, l = 0, + i = 0; + str += ''; + + if (!charlist) { + // default list + whitespace = + ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000'; + } else { + // preg_quote custom list + charlist += ''; + whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1'); + } + + l = str.length; + for (i = 0; i < l; i++) { + if (whitespace.indexOf(str.charAt(i)) === -1) { + str = str.substring(i); + break; + } + } + + l = str.length; + for (i = l - 1; i >= 0; i--) { + if (whitespace.indexOf(str.charAt(i)) === -1) { + str = str.substring(0, i + 1); + break; + } + } + + return whitespace.indexOf(str.charAt(0)) === -1 ? str : ''; } diff --git a/fluidbook/compile/index.html b/fluidbook/compile/index.html index 47953161d..2e1fc9536 100644 --- a/fluidbook/compile/index.html +++ b/fluidbook/compile/index.html @@ -22,6 +22,7 @@ } '; + $redirectScript = ''; } $alt = ''; @@ -175,6 +179,7 @@ class wsPackagerHTML extends wsPackager { $data = str_replace('$pathToGetflash', $pathToGetflash, $data); $data = str_replace('$redirectScript', $redirectScript, $data); $data = str_replace('$sp', $sp, $data); + $data = str_replace('$index_ext', $this->_ext, $data); file_put_contents($this->vdir . $dest, $data); @@ -183,6 +188,7 @@ class wsPackagerHTML extends wsPackager { } } + fb(time(), 'end prepare seo'); } @@ -203,6 +209,7 @@ class wsPackagerHTML extends wsPackager { mkdir($dest, 0777, true); } + $cp = new cubeCommandLine('cp'); $cp->setPath(CONVERTER_PATH); $cp->setArg('r'); @@ -211,6 +218,7 @@ class wsPackagerHTML extends wsPackager { $cp->setArg(null, $dest); $cp->execute(); + $filesToAdd = array(); if ($this->book->parametres->mobileServerConfig) { $filesToAdd = array('.htaccess', 'web.config'); @@ -227,6 +235,16 @@ class wsPackagerHTML extends wsPackager { $filesToDelete[] = 'data/background/*/p*.jpg'; $filesToDelete[] = 'data/contents/p*.svg'; } + $htmlFiles = array('index', 'widget'); + + foreach ($htmlFiles as $name) { + $html = $this->book->parametres->htmlPrepend . file_get_contents($dest . '/' . $name . '.html'); + file_put_contents($dest . '/' . $name . '.' . $this->_ext, $html); + if ($this->_ext != 'html') { + $filesToDelete[] = $name . '.html'; + } + } + $rm = new cubeCommandLine('rm'); $rm->setPath(CONVERTER_PATH); foreach ($filesToDelete as $f) { @@ -250,15 +268,15 @@ class wsPackagerHTML extends wsPackager { $label = $this->_getLabelOfPage($page); if ($page == 1) { if ($root) { - $url = 'index.html'; + $url = 'index.' . $this->_ext; } else { - $url = '../index.html'; + $url = '../index.' . $this->_ext; } } else { if ($root) { - $url = 'pages/' . $page . '-' . mb_strtolower(cubeText::str2URL($label)) . '.html'; + $url = 'pages/' . $page . '-' . mb_strtolower(cubeText::str2URL($label)) . '.' . $this->_ext; } else { - $url = $page . '-' . mb_strtolower(cubeText::str2URL($label)) . '.html'; + $url = $page . '-' . mb_strtolower(cubeText::str2URL($label)) . '.' . $this->_ext; } } $res .= '' . $label . ''; diff --git a/inc/ws/Util/packager/class.ws.packager.html5.php b/inc/ws/Util/packager/class.ws.packager.html5.php index 12644be5a..0b7389f8b 100644 --- a/inc/ws/Util/packager/class.ws.packager.html5.php +++ b/inc/ws/Util/packager/class.ws.packager.html5.php @@ -18,6 +18,7 @@ class wsPackagerHTML5 extends wsPackager { protected $div = array(); protected static $resolutions = array(36, 72, 150); protected static $uaPrefixes = array('-moz-', '-webkit-', '-o-', '-ms-', ''); + protected $_ext = 'html'; public function __construct($book_id) { parent::__construct($book_id); @@ -574,5 +575,3 @@ class wsPackagerHTML5 extends wsPackager { } } - -?> \ No newline at end of file diff --git a/inc/ws/Util/packager/class.ws.packager.php b/inc/ws/Util/packager/class.ws.packager.php index 38df7af16..7788191ad 100644 --- a/inc/ws/Util/packager/class.ws.packager.php +++ b/inc/ws/Util/packager/class.ws.packager.php @@ -236,6 +236,4 @@ class wsPackager { touch($dest, filemtime($source)); } -} - -?> \ No newline at end of file +} \ No newline at end of file diff --git a/inc/ws/Util/packager/class.ws.packager.win.inst.php b/inc/ws/Util/packager/class.ws.packager.win.inst.php index 1a5d7976a..fe903376f 100644 --- a/inc/ws/Util/packager/class.ws.packager.win.inst.php +++ b/inc/ws/Util/packager/class.ws.packager.win.inst.php @@ -28,6 +28,10 @@ class wsPackagerWinINST extends wsPackagerWinEXE { $daoLang = new wsDAOLang($core->con); $lang = $daoLang->selectById($this->book->lang); + if ($lang->nsis == 'Arabic') { + $lang->nsis = 'English'; + } + $fname = str_replace('.exe', '', $this->exeName); $title = $this->book->parametres->offlineTitle == '' ? $this->book->parametres->title : $this->book->parametres->offlineTitle; @@ -68,7 +72,7 @@ class wsPackagerWinINST extends wsPackagerWinEXE { } public function __destruct() { - + } }