From a3fad93ee7953ba3e3f4396f65efc355784ea886 Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Mon, 22 Feb 2010 12:23:16 +0000 Subject: [PATCH] --- .../class.ws.conversion.session.php | 30 ++++++-- inc/extranet/Controlleur/class.ws.flash.php | 11 ++- inc/extranet/DAO/class.ws.dao.document.php | 6 ++ inc/extranet/Metier/class.ws.document.php | 70 +++++++++++++----- swf/_src/as3Container.fla | Bin 0 -> 51200 bytes 5 files changed, 91 insertions(+), 26 deletions(-) create mode 100644 swf/_src/as3Container.fla diff --git a/inc/extranet/Controlleur/class.ws.conversion.session.php b/inc/extranet/Controlleur/class.ws.conversion.session.php index e90602574..89a990b18 100644 --- a/inc/extranet/Controlleur/class.ws.conversion.session.php +++ b/inc/extranet/Controlleur/class.ws.conversion.session.php @@ -1,9 +1,13 @@ documents = $documents; + $this->documentsId = $documents; } - public function process() + public function initDocuments() { - for($i = 1;$i <= 100;$i++) { - cubePHP::sleep(0.1); - $i++; + global $core; + + $dao = new wsDAODocument($core->con); + $this->documents = $dao->selectInList($this->documentsId); + $this->totalPages = 0; + + foreach($this->documents as $doc) { + $this->totalPages += $doc->getPagesNumber; } } + public function process() + { + $this->processing = true; + $this->initDocuments(); + + $this->complete = true; + $this->processing = false; + } + public function getProgress() { return $this->progress; @@ -56,7 +74,7 @@ class wsConversionSession { public static function getCachePath($guid) { - return CACHE . '/conversionSessions/' . $guid; + return CACHE . '/conversionSessions/' . $guid . '.obj'; } } diff --git a/inc/extranet/Controlleur/class.ws.flash.php b/inc/extranet/Controlleur/class.ws.flash.php index 7d1268077..05f60190d 100644 --- a/inc/extranet/Controlleur/class.ws.flash.php +++ b/inc/extranet/Controlleur/class.ws.flash.php @@ -71,11 +71,15 @@ class wsFlash extends cubeFlashGateway { $_SESSION['sessionConversionGUID'] = $sessionConversionGUID = uniqid('conversion_', true); $session = new wsConversionSession($sessionConversionGUID); $session->setDocuments($_SESSION['conversionSession']); - $conversion->serialize(); + $session->serialize(); $http = new cubeHTTP($_SERVER['HTTP_HOST']); - $http->setDataTimeout(3); - $http->post('/flash/processConversionSessionAsync', array('user_email' => $_SESSION['user_email'], 'user_password' => $_SESSION['user_password'], 'sessionConversionGUID' => $sessionConversionGUID)); + $http->setDataTimeout(1); + try { + $http->post('/flash/processConversionSessionAsync', array('user_email' => $_SESSION['user_email'], 'user_password' => $_SESSION['user_password'], 'sessionConversionGUID' => $sessionConversionGUID)); + } + catch(Exception $e) { + } } public function processConversionSessionAsync() @@ -87,6 +91,7 @@ class wsFlash extends cubeFlashGateway { public function getConversionSessionProgress() { + set_time_limit(1); $session = wsConversionSession::openFromGUID($_SESSION['sessionConversionGUID']); $this->xml->addChild('progress', $session->getProgress()); } diff --git a/inc/extranet/DAO/class.ws.dao.document.php b/inc/extranet/DAO/class.ws.dao.document.php index 22f47793a..b3276a494 100644 --- a/inc/extranet/DAO/class.ws.dao.document.php +++ b/inc/extranet/DAO/class.ws.dao.document.php @@ -27,6 +27,12 @@ class wsDAODocument extends extranetDAO { return $this->singleton($r); } + public function selectInList($documentsId) + { + $r = $this->con->select('SELECT * FROM documents WHERE document_id IN(' . implode(',', $documentsId) . ')'); + return $this->factory($r); + } + public function cree() { $document = new wsDocument(); diff --git a/inc/extranet/Metier/class.ws.document.php b/inc/extranet/Metier/class.ws.document.php index 5f7e19999..3b3196092 100644 --- a/inc/extranet/Metier/class.ws.document.php +++ b/inc/extranet/Metier/class.ws.document.php @@ -1,4 +1,13 @@ out = ROOT . '/docs/' . $this->document_id . '/'; @@ -35,23 +47,41 @@ class wsDocument extends cubeMetier { public function getInfos() { - $pdfinfo = new cubeCommandLine('pdfinfo', null, false); - $pdfinfo->setArg('-box'); - $pdfinfo->setArg('f', 1); - $pdfinfo->setArg('l', 10000); - $pdfinfo->setArg(null, $this->in); - $pdfinfo->execute(); - $this->addToLog($pdfinfo); - - $pdftk = new cubeCommandLine('pdftk', null, true); - $pdftk->setArg(null, $this->in); - $pdftk->setArg(null, 'dump_data'); - $pdftk->execute(); - $this->addToLog($pdftk); - - $this->parseInfos($pdfinfo->output . $pdftk->output); - - file_put_contents($this->infos, $pdfinfo->output . $pdftk->output); + $pdfinfo = $this->getBasicInfos(); + $pdftk = $this->getAdvancedInfos(); + + $this->parseInfos($pdfinfo . $pdftk); + + file_put_contents($this->infos, $pdfinfo . $pdftk); + } + + public function getBasicInfos() + { + if (is_null($this->_basicInfos)) { + $pdfinfo = new cubeCommandLine('pdfinfo', null, false); + $pdfinfo->setArg('-box'); + $pdfinfo->setArg('f', 1); + $pdfinfo->setArg('l', 10000); + $pdfinfo->setArg(null, $this->in); + $pdfinfo->execute(); + $this->addToLog($pdfinfo); + + $this->_basicInfos = $pdfinfo->output; + } + return $this->_basicInfos; + } + + public function getAdvancedInfos() + { + if (is_null($this->_advancedInfos)) { + $pdftk = new cubeCommandLine('pdftk', null, true); + $pdftk->setArg(null, $this->in); + $pdftk->setArg(null, 'dump_data'); + $pdftk->execute(); + $this->addToLog($pdftk); + $this->_advancedInfos = $pdftk->output; + } + return $this->_advancedInfos; } public function parseInfos($data) @@ -103,6 +133,12 @@ class wsDocument extends cubeMetier { return $res; } + public function getPagesNumber() + { + $this->parseInfos($this->getBasicInfos()); + return $this->generalInfos['pages']; + } + public function getTexts() { $pdftotext = new cubeCommandLine('pdftotext', null, true); diff --git a/swf/_src/as3Container.fla b/swf/_src/as3Container.fla new file mode 100644 index 0000000000000000000000000000000000000000..5ce85ebbc1dcce967103a17e671d1a7a889a1766 GIT binary patch literal 51200 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 VdE-{gwa=UH+CRVAnzYyc{|6?m15W?| literal 0 HcmV?d00001 -- 2.39.5