From e558937c69382ee472dfdfe3f2f81cb2cd97e215 Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Mon, 4 Apr 2011 14:17:44 +0000 Subject: [PATCH] --- fluidbook/tools/fwstk.jar | Bin 3678961 -> 3679161 bytes .../class.ws.conversion.session.php | 3 +- inc/ws/Controlleur/class.ws.url.php | 14 ++++- inc/ws/DAO/class.ws.dao.book.php | 33 ++++++------ inc/ws/DAO/class.ws.dao.document.php | 49 ++++++++---------- inc/ws/Metier/class.ws.document.php | 2 +- 6 files changed, 52 insertions(+), 49 deletions(-) diff --git a/fluidbook/tools/fwstk.jar b/fluidbook/tools/fwstk.jar index 8e038c66c548f609e2c58ea248e1e89166e777b3..84245969a09709a7db067e6dd465810004019d79 100644 GIT binary patch delta 13485 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 delta 13326 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 a0ajE30fzqnm~hkMDFIY4VJLw2@c#jYwH?_2 diff --git a/inc/ws/Controlleur/class.ws.conversion.session.php b/inc/ws/Controlleur/class.ws.conversion.session.php index 6719eb66a..8662d1b51 100644 --- a/inc/ws/Controlleur/class.ws.conversion.session.php +++ b/inc/ws/Controlleur/class.ws.conversion.session.php @@ -89,7 +89,8 @@ class wsConversionSession { $this->serialize(); if (!$this->reload) { $this->currentDoc->globalOperations(); - $dao->putLinksFromCSV($this->currentDoc->document_id); + $log=$dao->putLinksFromCSV($this->currentDoc->document_id); + $this->currentDoc->addToLog($log); } else if ($this->documentsPages[$doc->document_id] == 'all') { $this->currentDoc->globalOperations(); } diff --git a/inc/ws/Controlleur/class.ws.url.php b/inc/ws/Controlleur/class.ws.url.php index 3f436505f..ca43df93a 100644 --- a/inc/ws/Controlleur/class.ws.url.php +++ b/inc/ws/Controlleur/class.ws.url.php @@ -460,7 +460,7 @@ html{height:100%}' . "\n"; $res .= ''; $res .= ''; - $res .= cubeMedia::flash2('index.swf', '100%', '100%', $fv, 'fluidbook','', 10, '#' . $theme->parametres->loadingBackColor, $alt, 'true', 'noscale', 'gpu', array('allowScriptAccess' => 'always')); + $res .= cubeMedia::flash2('index.swf', '100%', '100%', $fv, 'fluidbook', '', 10, '#' . $theme->parametres->loadingBackColor, $alt, 'true', 'noscale', 'gpu', array('allowScriptAccess' => 'always')); $js = array($webcompile . 'fluidbook.js'); $jsvar = array(); @@ -578,11 +578,21 @@ html{height:100%}' . "\n"; // cubePHP::neverStop(); $dao = new wsDAOBook($core->con); header('Content-type: text/plain'); - ob_clean(); echo $dao->compile($args[1], 3, isset($args[2])); exit; } + public static function testLinksCSV($args) + { + global $core; + commonDroits::min(5); + + $dao=new wsDAODocument($core->con); + header('Content-type: text/plain'); + ob_clean(); + echo $dao->putLinksFromCSV($args[1]); + } + protected static function checkDocumentVersionOfBook($book_id) { global $core; diff --git a/inc/ws/DAO/class.ws.dao.book.php b/inc/ws/DAO/class.ws.dao.book.php index 3fb6b3da2..ef22f10fd 100644 --- a/inc/ws/DAO/class.ws.dao.book.php +++ b/inc/ws/DAO/class.ws.dao.book.php @@ -635,23 +635,34 @@ class wsDAOBook extends commonDAO { $flex->addVariable('numerotation', $book->numerotation, false, true, 'String'); $flexLight->addVariable('theme', $theme->parametres->toStandardObject(), false, true, 'JSONObject'); $flexLight->addVariable('pages', $book->parametres->pages); - $flexLight->addVariable('fwidth', round($size[0],4), false, true, 'Number'); - $flexLight->addVariable('fheight', round($size[1],4), false, true, 'Number'); + $flexLight->addVariable('fwidth', round($size[0], 4), false, true, 'Number'); + $flexLight->addVariable('fheight', round($size[1], 4), false, true, 'Number'); $flexLight->addVariable('pagesInDatas', $complete, false, true, 'Boolean'); $flex->addVariable('index', $index, false, true, 'JSONObject'); $flex->addVariable('textes', $textes, false, true, 'JSONObject'); + + fb($pages); + foreach($pages as $i => $infos) { - $swffile = WS_DOCS . '/' . $infos['document_id'] . '/p' . $infos['document_page'] . '.swf'; + $base = WS_DOCS . '/' . $infos['document_id'] . '/p' . $infos['document_page']; + $swffile = $base . '.swf'; if (file_exists($swffile)) { $fsize = filesize($swffile); } else { $fsize = 0; } + + if ($complete) { + $flex->addSWF($swffile, 'page' . $i); + } else { + $filesToCopy['data/p' . $i. '.swf'] = $swffile; + } + if ($i == 1) { - $flexLight->addBitmap(WS_DOCS . '/' . $infos['document_id'] . '/p' . $infos['document_page'] . '.jpg', 'thumb1'); + $flexLight->addBitmap($base . '.jpg', 'thumb1'); $flexLight->addVariable('size_p_' . $i, $fsize, false, true, 'Number'); } else { - $flex->addBitmap(WS_DOCS . '/' . $infos['document_id'] . '/p' . $infos['document_page'] . '.jpg', 'thumb' . $i); + $flex->addBitmap($base . '.jpg', 'thumb' . $i); $flexLight->addVariable('size_p_' . $i, $fsize, false, true, 'Number'); } } @@ -663,18 +674,6 @@ class wsDAOBook extends commonDAO { $flex->addSound(WS_SOUNDS . '/' . $book->parametres->soundTheme . '/page-flip-2.mp3', 'soundPage1'); $flex->addSound(WS_SOUNDS . '/' . $book->parametres->soundTheme . '/cover-flip.mp3', 'soundCover0'); } - - if ($complete) { - foreach($pages as $i => $infos) { - $swffile = WS_DOCS . '/' . $infos['document_id'] . '/p' . $infos['document_page'] . '.swf'; - $flex->addSWF($swffile, 'page' . $i); - } - } else { - foreach($pages as $i => $infos) { - $swffile = WS_DOCS . '/' . $infos['document_id'] . '/p' . $infos['document_page'] . '.swf'; - $filesToCopy['data/p' . $infos['document_page'] . '.swf'] = $swffile; - } - } // Theme assets $themeRoot = WS_THEMES . '/' . $theme->theme_id . '/'; diff --git a/inc/ws/DAO/class.ws.dao.document.php b/inc/ws/DAO/class.ws.dao.document.php index 9b2bf4c4f..60c95ec4f 100644 --- a/inc/ws/DAO/class.ws.dao.document.php +++ b/inc/ws/DAO/class.ws.dao.document.php @@ -20,6 +20,7 @@ class wsDAODocument extends commonDAO { public function putLinksFromCSV($document_id) { + $log = array('Copie des liens du PDF vers la base de données'); $document = $this->selectById($document_id); $booleans = array('video_loop', 'video_auto_start', 'video_controls', 'video_sound_on'); @@ -32,9 +33,14 @@ class wsDAODocument extends commonDAO { for($page = 1;$page <= $document->generalInfos['pages'];$page++) { $csv = WS_DOCS . '/' . $document->document_id . '/p' . $page . '.csv'; if (!file_exists($csv)) { + $log[] = 'Links file of page ' . $page . ' not found'; continue; } - $c->update = filemtime($csv); + + $log[] = 'Links file of page ' . $page . ' found'; + + $c->update = TIME; + $c->document_page = $page; $fp = fopen($csv, 'rb'); $links = array(); while (true) { @@ -55,7 +61,7 @@ class wsDAODocument extends commonDAO { if (in_array($k, $booleans)) { $link[$col] = ($line[$k] == '1'); } else { - $link[$col] = $line[$k]; + $link[$col] = utf8_encode($line[$k]); } } else { $link[$col] = $default; @@ -65,9 +71,19 @@ class wsDAODocument extends commonDAO { $link['page'] = $page; $links[] = $link; } - $c->links = json_encode($links); - $c->insert(); + $json = json_encode($links); + $c->links = $json; + try { + $c->insert(); + } + catch(Exception $e) { + fb($e); + } + + $log[] = 'Added ' . count($links) . ' links'; } + + return implode("\n", $log); } public function setLinksAndRulers($book_id, $links, $rulers) @@ -125,29 +141,6 @@ class wsDAODocument extends commonDAO { $xml = simplexml_load_file('http://ws.fluidbook.com/books/' . $book_id . '/data/links.xml'); $links = $xml->xpath('//oneLink'); - /*res.type = type; - res.page = page; - if (page == 0 && rect.x=pageWidth && page!=totalPages){ - res.left = rect.x-pageWidth; - res.page++; - }else { - res.left = rect.x; - } - res.top = rect.y; - res.width = rect.width; - res.height = rect.height; - res.to = to; - res.target = target; - res.video_loop = video_loop; - res.video_auto_start = video_auto_start; - res.video_controls = video_controls; - res.video_sound_on = video_sound_on; - res.infobulle = infobulle; - res.numerotation = numerotation;*/ - $res = array(); $lpages = array(); foreach($links as $l) { @@ -238,7 +231,7 @@ class wsDAODocument extends commonDAO { $rulers = array(); $sql = 'SELECT *,CONCAT(document_id,\',\',document_page) AS doc_page FROM document_links WHERE (document_id,document_page) IN(' . implode(',', $couples) . ') ORDER BY `update` DESC, FIELD(doc_page,' . implode(',', $couples_order) . ') LIMIT ' . count($pages); - fb($sql); + $r = $this->con->select($sql); $i = 1; while ($r->fetch()) { diff --git a/inc/ws/Metier/class.ws.document.php b/inc/ws/Metier/class.ws.document.php index 1b1082a8a..b9cfc2df8 100644 --- a/inc/ws/Metier/class.ws.document.php +++ b/inc/ws/Metier/class.ws.document.php @@ -132,7 +132,7 @@ class wsDocument extends cubeMetier { $ttf2eot->setPath(CONVERTER_PATH); $ttf2eot->setManualArg('< ' . $this->out . '/fonts/web/' . $fname . '.ttf'); $ttf2eot->execute(); - $this->addToLog($ttf2eot); + $this->addToLog($ttf2eot,false); } else { $fontforge = new cubeCommandLine('convert.pe'); $fontforge->setPath(CONVERTER_PATH); -- 2.39.5