]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 10 Dec 2010 14:30:41 +0000 (14:30 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Fri, 10 Dec 2010 14:30:41 +0000 (14:30 +0000)
inc/ws/DAO/class.ws.dao.book.php

index 92d7364c7d11d39f16bd05101e48d0a8066212f0..49b6f5a94f600def919bb412ed2c06d00632f17b 100644 (file)
@@ -457,19 +457,30 @@ class wsDAOBook extends extranetDAO {
 \r
        protected function fillIndexWithWords(&$index, $page, $ipage)\r
        {\r
-               $words = explode('\n', trim($ipage));\r
+               $twords = explode("\n", trim($ipage));\r
 \r
-               foreach($words as $worddatas) {\r
-                       list($word, $count) = explode(',', $worddatas);\r
+               foreach($twords as $woadata) {\r
+                       list($woa, $worddata) = explode(',', trim($woadata));\r
+                       list($total, $wordslist) = explode("\t", $worddata, 2);\r
 \r
-                       if (!isset($index[$word])) {\r
-                               $index[$word] = array('total' => 0, 'pages' => array());\r
+                       if (!isset($index[$woa])) {\r
+                               $index[$woa] = array('total' => 0, 'words' => array());\r
                        }\r
-                       if (!isset($index[$word]['pages'][$page])) {\r
-                               $index[$word]['pages'][$page] = 0;\r
+                       $index[$woa]['total'] += $total;\r
+\r
+                       $words = explode("\t", $wordslist);\r
+\r
+                       foreach($words as $word) {\r
+                               list($wordwa, $count) = explode('$', $word, 2);\r
+                               if (!isset($index[$woa]['words'][$wordwa])) {\r
+                                       $index[$woa]['words'][$wordwa] = array('total' => 0, 'pages' => array());\r
+                               }\r
+                               if (!isset($index[$woa]['words'][$wordwa]['pages'][$page])) {\r
+                                       $index[$woa]['words'][$wordwa]['pages'][$page] = 0;\r
+                               }\r
+                               $index[$woa]['words'][$wordwa]['total'] += $count;\r
+                               $index[$woa]['words'][$wordwa]['pages'][$page] += $count;\r
                        }\r
-                       $index[$word]['total'] += $count;\r
-                       $index[$word]['pages'][$page] += $count;\r
                }\r
        }\r
 \r
@@ -478,6 +489,45 @@ class wsDAOBook extends extranetDAO {
                $pages = $this->getPagesOfBook($book_id);\r
        }\r
 \r
+       public function compilePDF($book_id)\r
+       {\r
+               // Assemblage du pdf final\r
+               $document = $root . '/data/document.pdf';\r
+\r
+               $documents = array_unique($documents);\r
+               if (count($documents) == 1 && !$optimizepdf) {\r
+                       copy($droot . '/' . $documents[0] . '/original.pdf', $document);\r
+               } else {\r
+                       $liste = array();\r
+                       foreach($documents as $doc) {\r
+                               $liste[] = $droot . '/' . $doc . '/original.pdf';\r
+                       }\r
+                       $l = implode(' ', $liste);\r
+                       $gs = new cubeCommandLine('gs', null, true);\r
+                       $gs->setEnv('PATH', self::$path);\r
+                       $gs->setEnv('GS_FONTPATH', '/home/typo/fonts');\r
+                       $gs->setArg('-dBATCH');\r
+                       $gs->setArg('-dNOPAUSE');\r
+                       $gs->setArg('-dNOPROMPT');\r
+                       $gs->setArg('-sOutputFile=' . $document);\r
+                       $gs->setArg('-sDEVICE=pdfwrite');\r
+                       if ($optimizepdf) {\r
+                               $gs->setArg('-dPDFSETTINGS=/ebook');\r
+                               $gs->setArg('-dColorConversionStrategy=/LeaveColorUnchanged');\r
+                               $gs->setArg('-dAutoRotatePages=/None');\r
+                       } else {\r
+                               $gs->setArg('-dPDFSETTINGS=/default');\r
+                       }\r
+                       $gs->setArg('f');\r
+                       $gs->setManualArg($l);\r
+                       $gs->execute();\r
+                       // Si l'opération a échoué, on se contente de copier le premier fichier\r
+                       if (!file_exists($document) || filesize($document) < 100 * 1024) {\r
+                               copy($droot . '/' . $documents[0] . '/doc.pdf', $document);\r
+                       }\r
+               }\r
+       }\r
+\r
        public function compile($book_id, $version = 3, $complete = false)\r
        {\r
                if ($version == 3) {\r
@@ -609,6 +659,13 @@ class wsDAOBook extends extranetDAO {
                        }\r
                }\r
 \r
+               if ($book->parametres->pdf) {\r
+                       // Si l'export PDF est activé, on compile le PDF\r
+                       $this->compilePDF($book_id);\r
+               }else{\r
+                       // Sinon, on l'efface si il est présent\r
+               }\r
+\r
                $this->touchCompile($book_id);\r
 \r
                return $res;\r