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)
}
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;
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 : '';
}
protected $origHTML;
protected $_labels = array();
protected $_allowNeworking = 'all';
+ protected $_ext = 'html';
public function __construct($book_id, $vdir = null, $whole = true) {
parent::__construct($book_id, $vdir, $whole);
protected function preparePackage() {
parent::preparePackage();
+ $this->_ext = $this->book->parametres->htmlExtension;
+
if ($this->book->parametres->offlineExport && $this->book->parametres->pdfComplex) {
$versions = array('win-ins' => 'exe', 'mac-exe' => 'zip');
foreach ($versions as $v => $ext) {
'allowNetworking' => $this->_allowNeworking);
- $this->origHTML = file_get_contents($this->vdir . '/index.html');
+ $this->origHTML = $this->book->parametres->htmlPrepend . file_get_contents($this->vdir . '/index.html');
+ unlink($this->vdir . '/index.html');
$this->origHTML = $this->replaceHTML($toReplace);
$nav1 = $this->makeHTMLNav(true);
$pathToGetflash = 'getflash.gif';
$redirectScript = '';
if ($page == 1) {
- $dest = 'index.html';
+ $dest = 'index.' . $this->_ext;
$title = $this->book->parametres->title;
$sp = '';
} else {
$label = $this->_getLabelOfPage($page);
$title = $label . ' - ' . $this->book->parametres->title;
- $dest = 'pages/' . $page . '-' . mb_strtolower(cubeText::str2URL($label)) . '.html';
+ $dest = 'pages/' . $page . '-' . mb_strtolower(cubeText::str2URL($label)) . '.' . $this->_ext;
$pathToIndex = '../index.swf';
$pathToGetflash = '../getflash.gif';
$sp = '../';
- $redirectScript = '<script type="text/javascript">window.location=\'../index.html#/' . $page . '\';</script>';
+ $redirectScript = '<script type="text/javascript">window.location=\'../index.' . $this->_ext . '#/' . $page . '\';</script>';
}
$alt = '';
$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);
}
}
+
fb(time(), 'end prepare seo');
}
mkdir($dest, 0777, true);
}
+
$cp = new cubeCommandLine('cp');
$cp->setPath(CONVERTER_PATH);
$cp->setArg('r');
$cp->setArg(null, $dest);
$cp->execute();
+
$filesToAdd = array();
if ($this->book->parametres->mobileServerConfig) {
$filesToAdd = array('.htaccess', 'web.config');
$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) {
$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 .= '<a href="' . $url . '">' . $label . '</a>';