]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 19 Jan 2011 16:26:54 +0000 (16:26 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 19 Jan 2011 16:26:54 +0000 (16:26 +0000)
importWs.php
inc/commons/class.common.core.php
inc/ws/Controlleur/class.ws.droits.php
inc/ws/Controlleur/class.ws.flash.php
inc/ws/Controlleur/class.ws.url.php
inc/ws/DAO/class.ws.dao.book.php
inc/ws/DAO/class.ws.dao.document.php
inc/ws/Metier/class.ws.document.php

index 470965ba7b283058da0da049c97f634084166cc3..67a30662fc8748053847442c0bf4a99d5806ef75 100644 (file)
@@ -324,6 +324,7 @@ try {
                        $c->pages = $r->pages;\r
                        $c->trim = $r->trim;\r
                        $c->date = $r->date;\r
+                       $c->version=1;\r
                        $c->insert();\r
                        // TODO Copie des fichiers\r
                        $docs[$r->did] = true;\r
index 87655d801f8d021af66d33fbb1624220d38dbf76..43a8f6774f766b02dc1e73282b2da85a98f18514 100644 (file)
@@ -322,6 +322,7 @@ class commonCore extends cubeCore {
                $db->documents->conversionInfos('text', 0, false);\r
                $db->documents->numberSections('text', 0, false);\r
                $db->documents->localHash('varchar', 64, false);\r
+               $db->documents->version('integer', 0, false, '1');\r
                // Clés\r
                $db->documents->primary('pk_documents', 'document_id');\r
                $db->documents->index('index_documents_file', 'BTREE', 'file');\r
index b3743c7d2576caf697f2fb2fe11fe85a4f8c9ca4..062bc36de7128201f1715150924bb3b43b3260a2 100644 (file)
@@ -54,7 +54,7 @@ class wsDroits {
        protected static function gradeIn($list, $error = false)\r
        {\r
                global $core;\r
-               if (!in_array($core->user->grade, $list)) {\r
+               if (!in_array($core->user->ws_grade, $list)) {\r
                        if ($error) {\r
                                commonDroits::error();\r
                        }\r
index 342f462b991c3c5b4b1a2748f1e41531a292fd85..59c29fe38ff0853bf86c560712901e65c45b7f71 100644 (file)
@@ -51,6 +51,7 @@ class wsFlash extends cubeFlashGateway {
                        $data = array();\r
                        $data['proprietaire'] = $core->user->utilisateur_id;\r
                        $data['pages'] = 0;\r
+                       $data['version'] = 2;\r
                        $data['file'] = cubeFiles::tidyName($infos['name']);\r
                        $li = new wsDocumentLocalInfos($this);\r
                        $li->fileName = $this->args['fileName'];\r
index 6645a7be70ce7561adebda0e7ea9751c9f942248..e48adb7c23efd89fc606f5a600b5901d3796cd11 100644 (file)
@@ -8,11 +8,14 @@ class wsUrl {
 \r
                $shortcuts = array();\r
                if (wsDroits::creation()) {\r
+                       fb('creation');\r
                        $shortcuts[] = '<a href="#" class="popup" rel="newBookForm">' . $core->typo->Ajouter(__('Créer une nouvelle publication')) . '</a>';\r
                }\r
 \r
                $filtres = array();\r
-               $filtres[] = new commonFiltre(__('Status'), 'status_book', $settings['filtres']);\r
+               if (wsDroits::revendeur(false)) {\r
+                       $filtres[] = new commonFiltre(__('Status'), 'status_book', $settings['filtres']);\r
+               }\r
                $filtres[] = new commonFiltre(__('Année'), 'annee_book', $settings['filtres']);\r
                $res = commonPage::barre($filtres , 'filtreBooks', 'books', $shortcuts);\r
                $res .= commonPage::tMain(null, true);\r
@@ -208,13 +211,15 @@ class wsUrl {
 \r
        public static function editor($args)\r
        {\r
-               wsDroits::creation(true);\r
+               commonDroits::min(1);\r
 \r
                global $core;\r
 \r
                $args = cubePage::getArgs($args);\r
                $book_id = $args[0];\r
 \r
+               self::checkDocumentVersionOfBook($book_id);\r
+\r
                if ($book_id == 'new') {\r
                        $dao = new wsDAOBook($core->con);\r
                        $book = $dao->creeEmpty($core->user->utilisateur_id, $core->user->lang);\r
@@ -235,6 +240,14 @@ html{height:100%}' . "\n";
                echo $res;\r
        }\r
 \r
+       public static function editComposition($args)\r
+       {\r
+               $fv = array(session_name() => session_id(),\r
+                       'book_id' => $args[0]);\r
+               $res = cubeMedia::flash2(WEBROOT . '/swf/composer.swf?junk=' . TIME, '100%', '100%', $fv, 'composerSwf', 'swfPanel', 10, '#d2d3c7', '', 'false', 'noscale', 'normal', array(), false, true, true);\r
+               return $res;\r
+       }\r
+\r
        public static function stats($args)\r
        {\r
                $bid = (isset($args[1]))?$args[1]:null;\r
@@ -266,6 +279,9 @@ html{height:100%}' . "\n";
 \r
                $dao = new wsDAOBook($core->con);\r
                $book_id = $e[0];\r
+\r
+               self::checkDocumentVersionOfBook($book_id);\r
+\r
                $book = $dao->selectById($book_id);\r
                if ($book->hash != $e[1]) {\r
                        commonDroits::error();\r
@@ -325,15 +341,6 @@ html{height:100%}' . "\n";
                wsStats::exportXLS($bid);\r
        }\r
 \r
-       public static function editComposition($args)\r
-       {\r
-               wsDroits::creation(true);\r
-               $fv = array(session_name() => session_id(),\r
-                       'book_id' => $args[0]);\r
-               $res = cubeMedia::flash2(WEBROOT . '/swf/composer.swf?junk=' . TIME, '100%', '100%', $fv, 'composerSwf', 'swfPanel', 10, '#d2d3c7', '', 'false', 'noscale', 'normal', array(), false, true, true);\r
-               return $res;\r
-       }\r
-\r
        public static function chooseExistingBook()\r
        {\r
                wsDroits::creation(true);\r
@@ -364,6 +371,7 @@ html{height:100%}' . "\n";
                if (!isset($args[1])) {\r
                        $args[1] = 2964;\r
                }\r
+               self::checkDocumentVersionOfBook($args[1]);\r
                // cubePHP::neverStop();\r
                $dao = new wsDAOBook($core->con);\r
                header('Content-type: text/plain');\r
@@ -372,6 +380,44 @@ html{height:100%}' . "\n";
                exit;\r
        }\r
 \r
+       protected static function checkDocumentVersionOfBook($book_id)\r
+       {\r
+               global $core;\r
+               cubePHP::neverStop();\r
+               $dao = new wsDAOBook($core->con);\r
+               $pages = $dao->getPagesOfBook($book_id);\r
+               $toUpdate = array();\r
+               foreach($pages as $p => $infos) {\r
+                       if ($infos['version'] < 2) {\r
+                               $toUpdate[] = $infos['document_id'];\r
+                       }\r
+               }\r
+\r
+               $toUpdate = array_unique($toUpdate);\r
+               foreach($toUpdate as $document_id) {\r
+                       fb('updateDocument', $document_id);\r
+                       self::updateDocument($document_id);\r
+               }\r
+       }\r
+\r
+       protected static function updateDocument($document_id)\r
+       {\r
+               global $core;\r
+\r
+               $dao = new wsDAODocument($core->con);\r
+               $doc = $dao->selectById($document_id);\r
+\r
+               $doc->copyOriginalFromOlderVersion();\r
+               $doc->globalOperations();\r
+\r
+               for($i = 1;$i <= $doc->generalInfos['pages'];$i++) {\r
+                       $doc->processOnePage($i);\r
+               }\r
+\r
+               $doc->version = 2;\r
+               $dao->updateFromObject($doc);\r
+       }\r
+\r
        public static function getParamsHelp()\r
        {\r
                commonDroits::min(5);\r
index db543f498b314d4aa8cdc84c91c78caf77b593ed..0c62103fb3558f269b421eb418b38b287148520a 100644 (file)
@@ -165,7 +165,7 @@ class wsDAOBook extends commonDAO {
        public function getPagesOfBook($book_id)\r
        {\r
                $pages = array();\r
-               $r = $this->con->select('SELECT b.*,d.numberSections AS num,d.conversionInfos AS conversion,d.pages AS doc_pages FROM book_pages b LEFT JOIN documents d ON d.document_id=b.document_id WHERE b.book_id=\'' . $this->con->escape($book_id) . '\' ORDER BY book_page');\r
+               $r = $this->con->select('SELECT b.*,d.numberSections AS num,d.conversionInfos AS conversion,d.pages AS doc_pages,d.version AS version FROM book_pages b LEFT JOIN documents d ON d.document_id=b.document_id WHERE b.book_id=\'' . $this->con->escape($book_id) . '\' ORDER BY book_page');\r
                while ($r->fetch()) {\r
                        $n = explode(',', $r->num);\r
                        if ($r->conversion != '') {\r
@@ -179,12 +179,17 @@ class wsDAOBook extends commonDAO {
                        }\r
                        $pages[$r->book_page] = array('document_id' => $r->document_id,\r
                                'document_page' => $r->document_page,\r
+                               'version' => $r->version,\r
                                'defaultNum' => $num,\r
-                               'nb_pages' => $r->doc_pages,\r
-                               'resolution' => $c->resolution,\r
-                               'quality' => $c->quality,\r
-                               'method' => $c->method,\r
-                               'objects' => $c->objects);\r
+                               'nb_pages' => $r->doc_pages\r
+                               );\r
+\r
+                       $qp = array('resolution', 'method', 'quality', 'objects');\r
+                       foreach($qp as $p) {\r
+                               if (isset($c) && isset($c->$p)) {\r
+                                       $pages[$r->book_page][$p] = $c->$p;\r
+                               }\r
+                       }\r
                }\r
                return $pages;\r
        }\r
index 8d405e6abbdc529d7f6dc8823dbaea2066fff525..e6aafe0958973a5735e9adf8ea614d5e7d126f75 100644 (file)
@@ -1,6 +1,6 @@
 <?php\r
 class wsDAODocument extends commonDAO {\r
-       public static $normal = array('document_id', 'file', 'proprietaire', 'pages', 'date', 'numberSections');\r
+       public static $normal = array('document_id', 'file', 'proprietaire', 'pages', 'date', 'numberSections','version');\r
        public static $complex = array('localInfos', 'bookmarks', 'generalInfos', 'conversionInfos', 'trim');\r
 \r
        public function singleton($r)\r
index a0a00b846317c968f9386e52faa2a8c2b601a2d4..a5061372a809731b27d81cc1ac9cdd7263245088 100644 (file)
@@ -21,6 +21,7 @@ class wsDocument extends cubeMetier {
        protected $bookmarks;\r
        protected $numberSections;\r
        protected $localHash;\r
+       protected $version;\r
        // Crop & cut\r
        protected $autocrop;\r
        protected $manualcrop;\r
@@ -68,14 +69,26 @@ class wsDocument extends cubeMetier {
                $this->uncropped = $this->out . 'uncrop.pdf';\r
                $this->common_log_pointer = fopen($this->log . '/commons.log', 'a');\r
                $this->pages_log_pointers = array();\r
+\r
+               if(is_null($this->conversionInfos)){\r
+                       $this->conversionInfos=new wsDocumentConversionInfos();\r
+               }\r
        }\r
 \r
-       public function copyOriginal($tmp_file)\r
+       public function copyOriginalFromUpload($tmp_file)\r
        {\r
                move_uploaded_file($tmp_file, $this->in);\r
                $this->uncropDocument();\r
        }\r
 \r
+       public function copyOriginalFromOlderVersion()\r
+       {\r
+               if (!file_exists($this->in)) {\r
+                       copy('http://ws.fluidbook.com/docs/' . $this->document_id . '/original.pdf', $this->in);\r
+               }\r
+               $this->uncropDocument();\r
+       }\r
+\r
        public function getInfos($in = null, $force = false)\r
        {\r
                if (is_null($in)) {\r