From 83fd62917346d0a33bfc806868127a4cb6b10a9d Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Tue, 19 Apr 2011 13:09:57 +0000 Subject: [PATCH] --- inc/commons/class.common.core.php | 7 +++++ inc/ws/Controlleur/class.ws.maintenance.php | 34 ++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/inc/commons/class.common.core.php b/inc/commons/class.common.core.php index 89f5f416b..b129542cf 100644 --- a/inc/commons/class.common.core.php +++ b/inc/commons/class.common.core.php @@ -95,6 +95,11 @@ class commonCore extends cubeCore { } } + /** + * commonCore::dbSync() + * + * @return + */ public function dbSync() { $cache = ROOT . '/cache/DB_SYNC'; @@ -329,7 +334,9 @@ class commonCore extends cubeCore { $db->document_links->document_id('integer', 0, false); $db->document_links->document_page('integer', 0, false); $db->document_links->links('text', 0, false); + $db->document_links->nb_links('integer', 0, false); $db->document_links->rulers('text', 0, false); + $db->document_links->nb_rulers('integer', 0, false); $db->document_links->update('integer', 0, false); // Clés $db->document_links->primary('pk_document_links', 'document_id', 'document_page', 'update'); diff --git a/inc/ws/Controlleur/class.ws.maintenance.php b/inc/ws/Controlleur/class.ws.maintenance.php index 2838b8553..1da3727f3 100644 --- a/inc/ws/Controlleur/class.ws.maintenance.php +++ b/inc/ws/Controlleur/class.ws.maintenance.php @@ -15,11 +15,43 @@ class wsMaintenance { { global $core; $book_id = $args[0]; - fb($book_id); $dao = new wsDAODocument($core->con); $dao->setLinksFromOldFluidbook($book_id); } + public static function compactLinks() + { + global $core; + $r = $core->con->select('SELECT * FROM `document_links_versions` GROUP BY document_id,links,rulers'); + $keep = array(); + while ($r->fetch()) { + if (!isset($keep[$r->document_id])) { + $keep[$r->document_id] = array(); + } + $keep[$r->document_id][] = $r->update; + } + + foreach($keep as $document_id => $dates) { + $core->con->execute('DELETE FROM document_links_versions WHERE document_id=' . $document_id . ' AND `update` NOT IN(' . implode(',', $dates) . ')'); + } + } + + public static function checkSerializeLinks() + { + global $core; + $r = $core->con->select('SELECT * FROM document_links_versions'); + while ($r->fetch()) { + if (substr($r->links, 1, 1) == ':') { + $links = unserialize($r->links); + $rulers = unserialize($r->rulers); + $c = $core->con->openCursor('document_links_versions'); + $c->rulers = json_encode($rulers); + $c->links = json_encode($links); + $c->update('WHERE document_id=' . $r->document_id . ' AND `update`=' . $r->update); + } + } + } + public static function moveLinksToVersionDB() { global $core; -- 2.39.5