]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 25 Jun 2013 16:29:27 +0000 (16:29 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Tue, 25 Jun 2013 16:29:27 +0000 (16:29 +0000)
inc/commons/class.common.core.php
inc/ws/Controlleur/class.ws.ajax.php
inc/ws/Controlleur/class.ws.services.php
inc/ws/DAO/class.ws.dao.book.php
inc/ws/DAO/class.ws.dao.document.php
inc/ws/Util/class.ws.links.php
js/ws.js

index 61489320ffa9daffb0d2a5042f68948de59dc4b1..d773398110014ad0f27af533b0fb3c0ab507b2e0 100644 (file)
@@ -354,6 +354,15 @@ class commonCore extends cubeCore {
                // .\r
                $db->document_links_versions->primary('pk_document_links_version', 'document_id', 'update');\r
                $db->document_links_versions->index('idx_document_links_version_update', 'BTREE', 'update');\r
+\r
+               $db->special_links_versions->book_id('integer', 0, false);\r
+               $db->special_links_versions->links('text', 0, false);\r
+               $db->special_links_versions->rulers('text', 0, false);\r
+               $db->special_links_versions->update('integer', 0, false);\r
+\r
+               $db->special_links_versions->primary('pk_special_links_versionsn', 'book_id', 'update');\r
+               $db->special_links_versions->index('idx_special_links_versions_update', 'BTREE', 'update');\r
+\r
                // Table Books\r
                $db->books->book_id('integer', 0, false);\r
                $db->books->cid('varchar', 8, false);\r
index f8b19ef687c0d26fa59f713fecf529d1aec5f36e..e45e840b9afbb89615087bcdcbb952a6033656fb 100644 (file)
@@ -798,67 +798,13 @@ class wsAjax extends cubeAjax {
                $dao->getLinksAndRulers($book_id, $links, $rulers, $time);\r
                $xls = $dao->getLinksAsExcel($links, $rulers);\r
 \r
-               self::getLinksFromExcel($xls, $nlinks, $nrulers);\r
+               wsLinks::getLinksFromExcel($xls, $nlinks, $nrulers);\r
 \r
                $dao = new wsDAODocument($core->con);\r
                $dao->setLinksAndRulers($book_id, json_encode($nlinks), json_encode($nrulers), 'Restore links from ' . date('Y-m-d H:i:s', $time), $core->user->utilisateur_id);\r
        }\r
 \r
-       public static function getLinksFromExcel($xls, &$links, &$rulers) {\r
-               $s = $xls->setActiveSheetIndexByName('Links');\r
-               $i = 0;\r
-               $links = array();\r
-               foreach ($s->getRowIterator() as $row) {\r
-                       $cellIterator = $row->getCellIterator();\r
-                       $cellIterator->setIterateOnlyExistingCells(false);\r
-                       if ($i == 0) {\r
-                               $cols = array();\r
-                               foreach ($cellIterator as $cell) {\r
-                                       $cols[] = $cell->getValue();\r
-                               }\r
-                       } else {\r
-                               $link = array();\r
-                               $j = 0;\r
-                               foreach ($cellIterator as $cell) {\r
-                                       $link[$cols[$j]] = $cell->getValue();\r
-                                       $j++;\r
-                               }\r
-                               if ($link['display_area'] == '') {\r
-                                       $link['display_area'] = '1';\r
-                               }\r
-                               if (trim($link['infobulle']) == '') {\r
-                                       $link['infobulle'] = '';\r
-                               }\r
-                               $links[] = $link;\r
-                       }\r
-\r
-                       $i++;\r
-               }\r
 \r
-               $i = 0;\r
-               $rulers = array();\r
-               $s = $xls->setActiveSheetIndexByName('Rulers');\r
-               foreach ($s->getRowIterator() as $row) {\r
-                       $cellIterator = $row->getCellIterator();\r
-                       $cellIterator->setIterateOnlyExistingCells(false);\r
-                       if ($i == 0) {\r
-                               $cols = array();\r
-                               foreach ($cellIterator as $cell) {\r
-                                       $cols[] = $cell->getValue();\r
-                               }\r
-                       } else {\r
-                               $link = array();\r
-                               $j = 0;\r
-                               foreach ($cellIterator as $cell) {\r
-                                       $ruler[$cols[$j]] = $cell->getValue();\r
-                                       $j++;\r
-                               }\r
-\r
-                               $rulers[] = $ruler;\r
-                       }\r
-                       $i++;\r
-               }\r
-       }\r
 \r
        public static function importLinksAsExcel($args) {\r
                global $core;\r
@@ -868,7 +814,7 @@ class wsAjax extends cubeAjax {
                $reader = new PHPExcel_Reader_Excel2007();\r
                $xls = $reader->load($_FILES['file']['tmp_name']);\r
 \r
-               self::getLinksFromExcel($xls, $links, $rulers);\r
+               wsLinks::getLinksFromExcel($xls, $links, $rulers);\r
 \r
                $dao = new wsDAODocument($core->con);\r
                $dao->setLinksAndRulers($book_id, json_encode($links), json_encode($rulers), 'Import from excel', $core->user->utilisateur_id);\r
index d91e7757d48eb4c0488ab701e14924994883dc54..4547dfed59fbcdcf009da2f754da45557d530cb2 100644 (file)
@@ -360,7 +360,6 @@ class wsServices extends cubeFlashGateway {
                                <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>\r
                                <script type="text/javascript" src="/js/pdfprint.js"></script>\r
                                <link rel="stylesheet" type="text/css" href="/style/ws/printpdf.css" />\r
-                               \r
                                </head>\r
                                <body>\r
                                <iframe id="pdf" name="pdff" src="' . $dest['url'] . '" width="100%" height="100%"></iframe>\r
index b18a74af770801fda17e691eb8a6d27fd8e0f6aa..b1c86855ce39325142d86e6f504f4fd8fc1c505f 100644 (file)
@@ -186,7 +186,7 @@ class wsDAOBook extends commonDAO {
 \r
                if ($data['book_id'] == 'new' || $data['book_id'] == '') {\r
                        $c->date = TIME;\r
-                       $c->hash = md5(rand(0, 1234567893));\r
+                       $c->hash = md5(rand(0, 123456789365469));\r
                        $c->compteur_visites = 20;\r
                        $c->parametres = serialize(new wsParametres());\r
                        $c->changedate = TIME;\r
@@ -511,11 +511,35 @@ class wsDAOBook extends commonDAO {
        }\r
 \r
        public function setSpecialLinksAndRulers($book_id, $links, $rulers) {\r
+               $c1 = $this->con->openCursor('special_links_versions');\r
                $c = $this->con->openCursor('books');\r
-               $c->specialLinks = json_encode(json_decode($links, false));\r
-               $c->specialRulers = json_encode(json_decode($rulers, false));\r
-               $c->changedate = TIME;\r
+\r
+               if (is_string($links)) {\r
+                       $links = json_encode(json_decode($links, false));\r
+               }\r
+               if (is_string($rulers)) {\r
+                       $rulers = json_encode(json_decode($rulers, false));\r
+               }\r
+\r
+               if (is_array($links)) {\r
+                       $links = json_encode($links);\r
+               }\r
+               if (is_array($rulers)) {\r
+                       $rulers = json_encode($rulers);\r
+               }\r
+\r
+\r
+\r
+               $c1->links = $c->specialLinks = $links;\r
+               $c1->rulers = $c->specialRulers = $rulers;\r
+               $c1->update = $c->changedate = TIME;\r
+               $c1->book_id = $book_id;\r
                $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
+               try {\r
+                       $c1->insert();\r
+               } catch (Exception $e) {\r
+                       $c1->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\' AND `update`=' . TIME);\r
+               }\r
        }\r
 \r
        public function setTheme($book_id, $theme) {\r
@@ -631,7 +655,7 @@ class wsDAOBook extends commonDAO {
                }\r
 \r
                $file = '/home/stats/www/exclude/' . $book_id;\r
-               \r
+\r
                if (count($ip)) {\r
                        file_put_contents($file, implode(',', $ip));\r
                        chmod($file, 0777);\r
@@ -1323,7 +1347,7 @@ class wsDAOBook extends commonDAO {
                        $flex->addFont(FONT_PATH . '/vagrounded/VAGRoundedStd-Light.otf', 'GeneralFont', $lang->charset);\r
                        $flex->addFont(FONT_PATH . '/FluidbookCredits.ttf', 'CreditsFont', 'ASCII');\r
                        $flexLight->addFont(FONT_PATH . '/vagrounded/VAGRoundedStd-Bold.otf', 'LoaderFont', 'Numerals');\r
-               }else if($theme->parametres->fontKit=='gill'){\r
+               } else if ($theme->parametres->fontKit == 'gill') {\r
                        $flex->addFont(FONT_PATH . '/gill/gill.ttf', 'BoldFont', $lang->charset);\r
                        $flex->addFont(FONT_PATH . '/gill/gill.ttf', 'GeneralFont', $lang->charset);\r
                        $flex->addFont(FONT_PATH . '/FluidbookCredits.ttf', 'CreditsFont', 'ASCII');\r
index 1de7b546c25c726f7811f364c3507cf37f87e3ca..9119db4483c2e885c99c2a971ec90b38c2e6feff 100644 (file)
@@ -48,6 +48,14 @@ class wsDAODocument extends commonDAO {
                while ($r->fetch()) {\r
                        wsLinks::setDocumentLinks($r->document_id, $r->links, $r->rulers, $user, 'Links restored from ' . date('Y-m-d H:i:s', $update) . ' version', TIME);\r
                }\r
+\r
+               $r = $this->con->select('SELECT * FROM special_links_versions WHERE `update`=' . $update . ' AND book_id=\'' . $this->con->escape($book_id) . '\'');\r
+               if ($r->count()) {\r
+                       $c = $this->con->openCursor('books');\r
+                       $c->specialLinks = $r->links;\r
+                       $c->specialRulers = $r->rulers;\r
+                       $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
+               }\r
        }\r
 \r
        public function putLinksFromCSV($document_id) {\r
@@ -158,8 +166,17 @@ class wsDAODocument extends commonDAO {
                        }\r
                }\r
 \r
+               $specialLinks = array();\r
+               $specialRulers = array();\r
+\r
                foreach ($t as $page => $tt) {\r
                        if (!is_int($page)) {\r
+                               if (isset($tt['links'])) {\r
+                                       $specialLinks = array_merge($specialLinks, $tt['links']);\r
+                               }\r
+                               if (isset($tt['rulers'])) {\r
+                                       $specialRulers = array_merge($specialRulers, $tt['rulers']);\r
+                               }\r
                                continue;\r
                        }\r
                        $infos = $pages[$page];\r
@@ -187,6 +204,8 @@ class wsDAODocument extends commonDAO {
                foreach ($links as $document_id => $dummy) {\r
                        wsLinks::setDocumentLinks($document_id, json_encode($links[$document_id]), json_encode($rulers[$document_id]), $user, $comments, TIME);\r
                }\r
+               \r
+               $daoBook->setSpecialLinksAndRulers($book_id, $specialLinks, $specialRulers);\r
 \r
                $c = $this->con->openCursor('books');\r
                $c->changedate = TIME;\r
@@ -294,6 +313,15 @@ class wsDAODocument extends commonDAO {
        }\r
 \r
        public function getLinksVersions($book_id) {\r
+               $r = $this->con->select('SELECT * FROM special_links_versions WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
+               $specials = array();\r
+               while ($r->fetch()) {\r
+                       $ll = json_decode($r->links);\r
+                       $lr = json_decode($r->rulers);\r
+                       $specials[$r->update] = array('links' => count($ll), 'rulers' => count($lr));\r
+               }\r
+\r
+\r
                // Get composition versions\r
                $r = $this->con->select('SELECT * FROM book_pages_versions WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
                $docs = array();\r
@@ -308,8 +336,14 @@ class wsDAODocument extends commonDAO {
                $r = $this->con->select('SELECT l.*,u.prenom,u.nom FROM document_links_versions l LEFT JOIN utilisateurs u ON l.user=u.utilisateur_id WHERE document_id IN(' . implode(',', $docs) . ')');\r
                while ($r->fetch()) {\r
                        if (!isset($res[$r->update])) {\r
-                               $res[$r->update] = array('links' => 0, 'rulers' => 0);\r
+                               if (isset($specials[$r->update])) {\r
+                                       $res[$r->update] = $specials[$r->update];\r
+                               } else {\r
+                                       $res[$r->update] = array('links' => 0, 'rulers' => 0);\r
+                               }\r
                        }\r
+\r
+\r
                        $ll = json_decode($r->links);\r
                        foreach ($ll as $lll) {\r
                                $res[$r->update]['links'] += count($lll);\r
index fa82a27108f3496f9044930786b683a663cd0415..10da61d61abc4514db48bc049c457bc36e6df502 100644 (file)
@@ -128,7 +128,7 @@ class wsLinks {
                $c->user = $user;
                $c->update = $time;
                $c->insert();
-               
+
                $core->con->execute('DELETE FROM document_links WHERE document_id=' . $document_id);
                $c1->insert();
        }
@@ -226,6 +226,62 @@ class wsLinks {
                $links = array_merge($links, $book->specialLinks);
        }
 
+       public static function getLinksFromExcel($xls, &$links, &$rulers) {
+               $s = $xls->setActiveSheetIndexByName('Links');
+               $i = 0;
+               $links = array();
+               foreach ($s->getRowIterator() as $row) {
+                       $cellIterator = $row->getCellIterator();
+                       $cellIterator->setIterateOnlyExistingCells(false);
+                       if ($i == 0) {
+                               $cols = array();
+                               foreach ($cellIterator as $cell) {
+                                       $cols[] = $cell->getValue();
+                               }
+                       } else {
+                               $link = array();
+                               $j = 0;
+                               foreach ($cellIterator as $cell) {
+                                       $link[$cols[$j]] = $cell->getValue();
+                                       $j++;
+                               }
+                               if ($link['display_area'] == '') {
+                                       $link['display_area'] = '1';
+                               }
+                               if (trim($link['infobulle']) == '') {
+                                       $link['infobulle'] = '';
+                               }
+                               $links[] = $link;
+                       }
+
+                       $i++;
+               }
+
+               $i = 0;
+               $rulers = array();
+               $s = $xls->setActiveSheetIndexByName('Rulers');
+               foreach ($s->getRowIterator() as $row) {
+                       $cellIterator = $row->getCellIterator();
+                       $cellIterator->setIterateOnlyExistingCells(false);
+                       if ($i == 0) {
+                               $cols = array();
+                               foreach ($cellIterator as $cell) {
+                                       $cols[] = $cell->getValue();
+                               }
+                       } else {
+                               $link = array();
+                               $j = 0;
+                               foreach ($cellIterator as $cell) {
+                                       $ruler[$cols[$j]] = $cell->getValue();
+                                       $j++;
+                               }
+
+                               $rulers[] = $ruler;
+                       }
+                       $i++;
+               }
+       }
+
 }
 
 ?>
index c2237326ced275a0641673d0f837824c6866b812..2d16d9439d955d3f4709ae1ffc7baad2567e1dac 100644 (file)
--- a/js/ws.js
+++ b/js/ws.js
@@ -124,10 +124,6 @@ function load_ws() {
                return false;\r
        });\r
 \r
-\r
-\r
-\r
-\r
        $(".restoreLink").click(restoreLink);\r
 \r
        $(".hide_new_value").change(function() {\r