diff --git a/lib/classes/patch/303.class.php b/lib/classes/patch/303.class.php index 314e257ea0..22a0696d8e 100644 --- a/lib/classes/patch/303.class.php +++ b/lib/classes/patch/303.class.php @@ -18,131 +18,131 @@ class patch_303 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.0.3'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var string + */ + private $release = '3.0.3'; + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$appbox) - { - $this->update_users_log_datas($appbox); - $this->update_users_search_datas($appbox); - - return true; - } - - /** - * - * @return patch_303 - */ - function update_users_log_datas(appbox &$appbox) - { - $col = array('fonction', 'societe', 'activite', 'pays'); - - $f_req = implode(', ', $col); - - $sql = "SELECT usr_id, " . $f_req . " FROM usr"; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - foreach ($rs as $row) + /** + * + * @return string + */ + function get_release() { - $tab_usr[$row['usr_id']] = array( - 'fonction' => $row['fonction'], - 'societe' => $row['societe'], - 'activite' => $row['activite'], - 'pays' => $row['pays'] - ); + return $this->release; } - foreach ($appbox->get_databoxes() as $databox) + public function require_all_upgrades() { - foreach ($tab_usr as $id => $columns) - { - $f_req = array(); - $params = array(':usr_id' => $id, ':site' => $appbox->get_registry()->get('GV_sit')); - foreach ($columns as $column => $value) - { - $column = trim($column); - $f_req[] = $column . " = :" . $column; - $params[':' . $column] = $value; - } - $f_req = implode(', ', $f_req); - $sql = "UPDATE log SET " . $f_req . " - WHERE usrid = :usr_id AND site = :site"; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute($params); + return false; + } + + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } + + function apply(base &$appbox) + { + $this->update_users_log_datas($appbox); + $this->update_users_search_datas($appbox); + + return true; + } + + /** + * + * @return patch_303 + */ + function update_users_log_datas(appbox &$appbox) + { + $col = array('fonction', 'societe', 'activite', 'pays'); + + $f_req = implode(', ', $col); + + $sql = "SELECT usr_id, " . $f_req . " FROM usr"; + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt->closeCursor(); - } + + foreach ($rs as $row) + { + $tab_usr[$row['usr_id']] = array( + 'fonction' => $row['fonction'], + 'societe' => $row['societe'], + 'activite' => $row['activite'], + 'pays' => $row['pays'] + ); + } + + foreach ($appbox->get_databoxes() as $databox) + { + foreach ($tab_usr as $id => $columns) + { + $f_req = array(); + $params = array(':usr_id' => $id, ':site' => $appbox->get_registry()->get('GV_sit')); + foreach ($columns as $column => $value) + { + $column = trim($column); + $f_req[] = $column . " = :" . $column; + $params[':' . $column] = $value; + } + $f_req = implode(', ', $f_req); + $sql = "UPDATE log SET " . $f_req . " + WHERE usrid = :usr_id AND site = :site"; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute($params); + $stmt->closeCursor(); + } + } + + return $this; } - return $this; - } - - /** - * - * @return patch_303 - */ - function update_users_search_datas(appbox &$appbox) - { - foreach ($appbox->get_databoxes() as $databox) + /** + * + * @return patch_303 + */ + function update_users_search_datas(appbox &$appbox) { - $date_debut = '0000-00-00 00:00:00'; + foreach ($appbox->get_databoxes() as $databox) + { + $date_debut = '0000-00-00 00:00:00'; - $sql = 'SELECT MAX(date) as debut FROM `log_search`'; + $sql = 'SELECT MAX(date) as debut FROM `log_search`'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $row = $stmt->fetch(PDO::FETCH_ASSOC); - $stmt->closeCursor(); + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $row = $stmt->fetch(PDO::FETCH_ASSOC); + $stmt->closeCursor(); - if ($row) - { - $date_debut = $row['debut']; - } + if ($row) + { + $date_debut = $row['debut']; + } - $sql = 'REPLACE INTO log_search - (SELECT null as id, logid as log_id, date, askquest as search, - nbrep as results, coll_id - FROM quest - WHERE `date` > :date)'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(array(':date' => $date_debut)); - $stmt->closeCursor(); + $sql = 'REPLACE INTO log_search + (SELECT null as id, logid as log_id, date, askquest as search, + nbrep as results, coll_id + FROM quest + WHERE `date` > :date)'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(array(':date' => $date_debut)); + $stmt->closeCursor(); + } + + return $this; } - return $this; - } - } diff --git a/lib/classes/patch/304.class.php b/lib/classes/patch/304.class.php index 5ac77b7277..ddbff95d0b 100644 --- a/lib/classes/patch/304.class.php +++ b/lib/classes/patch/304.class.php @@ -18,61 +18,61 @@ class patch_304 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.0.4'; + /** + * + * @var string + */ + private $release = '3.0.4'; - /** - * - * @var Array - */ - private $concern = array(base::DATA_BOX); + /** + * + * @var Array + */ + private $concern = array(base::DATA_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$databox) - { - $sql = 'SELECT id FROM pref WHERE prop = "indexes"'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $rowcount = $stmt->rowCount(); - $stmt->closeCursor(); - - if ($rowcount == 0) + /** + * + * @return string + */ + function get_release() { - $sql = 'INSERT INTO pref - (id, prop, value, locale, updated_on, created_on) - VALUES - (null, "indexes", "1", "", NOW(), NOW())'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); + return $this->release; } - return true; - } + public function require_all_upgrades() + { + return false; + } + + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } + + function apply(base &$databox) + { + $sql = 'SELECT id FROM pref WHERE prop = "indexes"'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $rowcount = $stmt->rowCount(); + $stmt->closeCursor(); + + if ($rowcount == 0) + { + $sql = 'INSERT INTO pref + (id, prop, value, locale, updated_on, created_on) + VALUES + (null, "indexes", "1", "", NOW(), NOW())'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + } + + return true; + } } diff --git a/lib/classes/patch/305.class.php b/lib/classes/patch/305.class.php index 3d3da0cfe6..814cd21884 100644 --- a/lib/classes/patch/305.class.php +++ b/lib/classes/patch/305.class.php @@ -18,52 +18,52 @@ class patch_305 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.0.5'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var string + */ + private $release = '3.0.5'; + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } + /** + * + * @return string + */ + function get_release() + { + return $this->release; + } - public function require_all_upgrades() - { - return false; - } + public function require_all_upgrades() + { + return false; + } - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } - function apply(base &$appbox) - { - $sql = 'REPLACE INTO usr_settings - (SELECT usr_id, "start_page_query" as prop, last_query as value - FROM usr - WHERE model_of="0" AND usr_login NOT LIKE "(#deleted_%")'; + function apply(base &$appbox) + { + $sql = 'REPLACE INTO usr_settings + (SELECT usr_id, "start_page_query" as prop, last_query as value + FROM usr + WHERE model_of="0" AND usr_login NOT LIKE "(#deleted_%")'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); - return true; - } + return true; + } } diff --git a/lib/classes/patch/306.class.php b/lib/classes/patch/306.class.php index 9f212b0e56..dfff7728d2 100644 --- a/lib/classes/patch/306.class.php +++ b/lib/classes/patch/306.class.php @@ -18,69 +18,69 @@ class patch_306 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.0.6'; - /** - * - * @var Array - */ - private $concern = array(base::DATA_BOX); + /** + * + * @var string + */ + private $release = '3.0.6'; + /** + * + * @var Array + */ + private $concern = array(base::DATA_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$databox) - { - $dom = $databox->get_dom_structure(); - $xpath = $databox->get_xpath_structure(); - $res = $xpath->query('/record/subdefs/preview/type'); - - foreach ($res as $type) + /** + * + * @return string + */ + function get_release() { - if ($type->nodeValue == 'video') - { - $preview = $type->parentNode; - - $to_add = array( - 'acodec' => 'faac', - 'vcodec' => 'libx264', - 'bitrate' => '700' - ); - foreach ($to_add as $k => $v) - { - $el = $dom->createElement($k); - $el->appendChild($dom->createTextNode($v)); - $preview->appendChild($el); - } - } + return $this->release; } - $databox->saveStructure($dom); + public function require_all_upgrades() + { + return false; + } - return true; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } + + function apply(base &$databox) + { + $dom = $databox->get_dom_structure(); + $xpath = $databox->get_xpath_structure(); + $res = $xpath->query('/record/subdefs/preview/type'); + + foreach ($res as $type) + { + if ($type->nodeValue == 'video') + { + $preview = $type->parentNode; + + $to_add = array( + 'acodec' => 'faac', + 'vcodec' => 'libx264', + 'bitrate' => '700' + ); + foreach ($to_add as $k => $v) + { + $el = $dom->createElement($k); + $el->appendChild($dom->createTextNode($v)); + $preview->appendChild($el); + } + } + } + + $databox->saveStructure($dom); + + return true; + } } diff --git a/lib/classes/patch/310.class.php b/lib/classes/patch/310.class.php index 0fc5401210..462471fed6 100644 --- a/lib/classes/patch/310.class.php +++ b/lib/classes/patch/310.class.php @@ -18,160 +18,160 @@ class patch_310 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.1.0'; - /** - * - * @var Array - */ - private $concern = array(base::DATA_BOX); + /** + * + * @var string + */ + private $release = '3.1.0'; + /** + * + * @var Array + */ + private $concern = array(base::DATA_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$databox) - { - $dom_structure = $databox->get_dom_structure(); - $sx_structure = $databox->get_sxml_structure(); - - $subdefgroups = $sx_structure->xpath('//subdefgroup'); - - if (count($subdefgroups) > 0) - - return; - - $subdefs = $sx_structure->xpath('/record/subdefs'); - - if (count($subdefs) > 1) - exit('La structure semble erronnée, veuillez la corriger'); - - $new_subefs_node = $dom_structure->createElement('subdefs'); - - $subdefs_groups = array(); - - foreach ($subdefs[0] as $k => $v) + /** + * + * @return string + */ + function get_release() { - $type = isset($v->type) ? (string) $v->type : 'image'; - - if ($type == 'image') - $media = 'image'; - elseif ($type == 'audio') - { - if ($v->method == 'MP3') - $media = "audio"; - else - $media = "image"; - } - elseif ($type == 'video') - { - if ($v->method == 'AnimGIF') - $media = "gif"; - elseif ($v->method == 'JPG') - $media = "image"; - else - $media = 'video'; - } - - if (!isset($subdefs_groups[$type])) - { - $subdefs_groups[$type] = $dom_structure->createElement('subdefgroup'); - $subdefs_groups[$type]->setAttribute('name', $type); - } - - $dom_subdef = $dom_structure->createElement('subdef'); - $class = ($k == 'preview' ? 'preview' : 'thumbnail'); - $dom_subdef->setAttribute('class', $class); - $dom_subdef->setAttribute('name', $k); - $dom_subdef->setAttribute('downloadable', 'true'); - - foreach ($v as $tag => $value) - { - if (in_array($tag, array('type', 'name'))) - continue; - - $dom_element = $dom_structure->createElement($tag, $value); - $dom_subdef->appendChild($dom_element); - } - $dom_element = $dom_structure->createElement('mediatype', $media); - $dom_subdef->appendChild($dom_element); - - if ($media == 'video') - { - $dom_element = $dom_structure->createElement('threads', '1'); - $dom_subdef->appendChild($dom_element); - } - - - //preview, thumbnail et thumbnailGIF - if ($k == 'preview') - { - $dom_element = - $dom_structure->createElement('label', 'Prévisualisation'); - $dom_element->setAttribute('xml:lang', 'fr'); - $dom_subdef->appendChild($dom_element); - $dom_element = $dom_structure->createElement('label', 'Preview'); - $dom_element->setAttribute('lang', 'en'); - $dom_subdef->appendChild($dom_element); - } - elseif ($k == 'thumbnailGIF') - { - $dom_element = $dom_structure->createElement('label', 'Animation GIF'); - $dom_element->setAttribute('lang', 'fr'); - $dom_subdef->appendChild($dom_element); - $dom_element = $dom_structure->createElement('label', 'GIF animation'); - $dom_element->setAttribute('lang', 'en'); - $dom_subdef->appendChild($dom_element); - } - else - { - $dom_element = $dom_structure->createElement('label', 'Imagette'); - $dom_element->setAttribute('lang', 'fr'); - $dom_subdef->appendChild($dom_element); - $dom_element = $dom_structure->createElement('label', 'Thumbnail'); - $dom_element->setAttribute('lang', 'en'); - $dom_subdef->appendChild($dom_element); - } - - $subdefs_groups[$type]->appendChild($dom_subdef); + return $this->release; } - foreach ($subdefs_groups as $type => $node) - $new_subefs_node->appendChild($node); + public function require_all_upgrades() + { + return false; + } - $record = $dom_structure->documentElement; + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } - $record->replaceChild( - $new_subefs_node, - $record->getElementsByTagName('subdefs')->item(0) - ); + function apply(base &$databox) + { + $dom_structure = $databox->get_dom_structure(); + $sx_structure = $databox->get_sxml_structure(); - $databox->saveStructure($dom_structure); + $subdefgroups = $sx_structure->xpath('//subdefgroup'); - return true; - } + if (count($subdefgroups) > 0) + + return; + + $subdefs = $sx_structure->xpath('/record/subdefs'); + + if (count($subdefs) > 1) + exit('La structure semble erronnée, veuillez la corriger'); + + $new_subefs_node = $dom_structure->createElement('subdefs'); + + $subdefs_groups = array(); + + foreach ($subdefs[0] as $k => $v) + { + $type = isset($v->type) ? (string) $v->type : 'image'; + + if ($type == 'image') + $media = 'image'; + elseif ($type == 'audio') + { + if ($v->method == 'MP3') + $media = "audio"; + else + $media = "image"; + } + elseif ($type == 'video') + { + if ($v->method == 'AnimGIF') + $media = "gif"; + elseif ($v->method == 'JPG') + $media = "image"; + else + $media = 'video'; + } + + if (!isset($subdefs_groups[$type])) + { + $subdefs_groups[$type] = $dom_structure->createElement('subdefgroup'); + $subdefs_groups[$type]->setAttribute('name', $type); + } + + $dom_subdef = $dom_structure->createElement('subdef'); + $class = ($k == 'preview' ? 'preview' : 'thumbnail'); + $dom_subdef->setAttribute('class', $class); + $dom_subdef->setAttribute('name', $k); + $dom_subdef->setAttribute('downloadable', 'true'); + + foreach ($v as $tag => $value) + { + if (in_array($tag, array('type', 'name'))) + continue; + + $dom_element = $dom_structure->createElement($tag, $value); + $dom_subdef->appendChild($dom_element); + } + $dom_element = $dom_structure->createElement('mediatype', $media); + $dom_subdef->appendChild($dom_element); + + if ($media == 'video') + { + $dom_element = $dom_structure->createElement('threads', '1'); + $dom_subdef->appendChild($dom_element); + } + + + //preview, thumbnail et thumbnailGIF + if ($k == 'preview') + { + $dom_element = + $dom_structure->createElement('label', 'Prévisualisation'); + $dom_element->setAttribute('xml:lang', 'fr'); + $dom_subdef->appendChild($dom_element); + $dom_element = $dom_structure->createElement('label', 'Preview'); + $dom_element->setAttribute('lang', 'en'); + $dom_subdef->appendChild($dom_element); + } + elseif ($k == 'thumbnailGIF') + { + $dom_element = $dom_structure->createElement('label', 'Animation GIF'); + $dom_element->setAttribute('lang', 'fr'); + $dom_subdef->appendChild($dom_element); + $dom_element = $dom_structure->createElement('label', 'GIF animation'); + $dom_element->setAttribute('lang', 'en'); + $dom_subdef->appendChild($dom_element); + } + else + { + $dom_element = $dom_structure->createElement('label', 'Imagette'); + $dom_element->setAttribute('lang', 'fr'); + $dom_subdef->appendChild($dom_element); + $dom_element = $dom_structure->createElement('label', 'Thumbnail'); + $dom_element->setAttribute('lang', 'en'); + $dom_subdef->appendChild($dom_element); + } + + $subdefs_groups[$type]->appendChild($dom_subdef); + } + + foreach ($subdefs_groups as $type => $node) + $new_subefs_node->appendChild($node); + + $record = $dom_structure->documentElement; + + $record->replaceChild( + $new_subefs_node, + $record->getElementsByTagName('subdefs')->item(0) + ); + + $databox->saveStructure($dom_structure); + + return true; + } } diff --git a/lib/classes/patch/3102.class.php b/lib/classes/patch/3102.class.php index 8f4c626b2e..9f6360fb30 100644 --- a/lib/classes/patch/3102.class.php +++ b/lib/classes/patch/3102.class.php @@ -18,79 +18,79 @@ class patch_3102 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.1.20'; + /** + * + * @var string + */ + private $release = '3.1.20'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX, base::DATA_BOX); + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX, base::DATA_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$base) - { - $conn = connection::getPDOConnection(); - - $sql = 'SELECT task_id FROM task2 WHERE `class` = "task_period_upgradetov31"'; - - $stmt = $conn->prepare($sql); - $stmt->execute(); - $rowcount = $stmt->rowCount(); - $stmt->closeCursor(); - - if ($rowcount == 0) + /** + * + * @return string + */ + function get_release() { - $sql = 'INSERT INTO `task2` - (`task_id`, `usr_id_owner`, `pid`, `status`, `crashed`, - `active`, `name`, `last_exec_time`, `class`, `settings`, `completed`) - VALUES - (null, 0, 0, "stopped", 0, 1, "upgrade to v3.1", - "0000-00-00 00:00:00", "task_period_upgradetov31", - "' . - '", -1)'; - - $stmt = $conn->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); + return $this->release; } - - if ($base->get_base_type() == base::DATA_BOX) + public function require_all_upgrades() { - $sql = 'UPDATE record SET sha256 = "" - WHERE sha256 IS NULL AND parent_record_id = 0'; - $stmt = $base->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); + return false; } - return true; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } + + function apply(base &$base) + { + $conn = connection::getPDOConnection(); + + $sql = 'SELECT task_id FROM task2 WHERE `class` = "task_period_upgradetov31"'; + + $stmt = $conn->prepare($sql); + $stmt->execute(); + $rowcount = $stmt->rowCount(); + $stmt->closeCursor(); + + if ($rowcount == 0) + { + $sql = 'INSERT INTO `task2` + (`task_id`, `usr_id_owner`, `pid`, `status`, `crashed`, + `active`, `name`, `last_exec_time`, `class`, `settings`, `completed`) + VALUES + (null, 0, 0, "stopped", 0, 1, "upgrade to v3.1", + "0000-00-00 00:00:00", "task_period_upgradetov31", + "' . + '", -1)'; + + $stmt = $conn->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + } + + + if ($base->get_base_type() == base::DATA_BOX) + { + $sql = 'UPDATE record SET sha256 = "" + WHERE sha256 IS NULL AND parent_record_id = 0'; + $stmt = $base->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + } + + return true; + } } diff --git a/lib/classes/patch/3103.class.php b/lib/classes/patch/3103.class.php index 9a1ed7964c..f103d6b7ba 100644 --- a/lib/classes/patch/3103.class.php +++ b/lib/classes/patch/3103.class.php @@ -18,133 +18,133 @@ class patch_3103 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.1.0'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var string + */ + private $release = '3.1.0'; + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return true; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$appbox) - { - $conn = $appbox->get_connection(); - - $validate_process = array(); - - $sql = 'SELECT id, ssel_id, usr_id FROM validate'; - $stmt = $conn->prepare($sql); - $stmt->execute(); - $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - foreach ($rs as $row) + /** + * + * @return string + */ + function get_release() { - $validate_process[$row['ssel_id']][$row['usr_id']] = $row['id']; + return $this->release; } - $sql = 'SELECT u.*, s.ssel_id, c.base_id, c.record_id , s.usr_id as pushFrom - FROM sselcontusr u, sselcont c, ssel s' . - ' WHERE s.ssel_id = c.ssel_id AND u.sselcont_id = c.sselcont_id' . - ' AND s.deleted="0" ' . - ' ORDER BY s.ssel_id ASC, c.sselcont_id ASC'; - - $stmt = $conn->prepare($sql); - $stmt->execute(); - $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - foreach ($rs as $row) + public function require_all_upgrades() { - if (!isset($validate_process[$row['ssel_id']]) || - !array_key_exists($row['usr_id'], $validate_process[$row['ssel_id']]) - ) - { + return true; + } - $sql = 'INSERT INTO validate - (id, ssel_id, created_on, updated_on, expires_on, last_reminder, - usr_id, confirmed, can_agree, can_see_others) - VALUES - (null, :ssel_id, :created_on, :updated_on, :expires_on, null, - :usr_id, "0", :can_agree, :can_see)'; + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } + function apply(base &$appbox) + { + $conn = $appbox->get_connection(); + + $validate_process = array(); + + $sql = 'SELECT id, ssel_id, usr_id FROM validate'; $stmt = $conn->prepare($sql); - - $expire = new DateTime($row['dateFin']); - $expire = $expire->format('u') == 0 ? - null : phraseadate::format_mysql($expire); - - - $params = array( - ':ssel_id' => $row['ssel_id'] - , ':created_on' => $row['date_maj'] - , ':updated_on' => $row['date_maj'] - , ':expires_on' => $expire - , ':usr_id' => $row['usr_id'] - , ':can_agree' => $row['canAgree'] - , ':can_see' => $row['canSeeOther'] - ); - $stmt->execute($params); - - $validate_process[$row['ssel_id']][$row['usr_id']] = $conn->lastInsertId(); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt->closeCursor(); - $sbas_id = phrasea::sbasFromBas($row['base_id']); - $record = new record_adapter($sbas_id, $row['record_id']); + foreach ($rs as $row) + { + $validate_process[$row['ssel_id']][$row['usr_id']] = $row['id']; + } - $user = User_Adapter::getInstance($row['usr_id'], $appbox); - $pusher = User_Adapter::getInstance($row['pushFrom'], $appbox); + $sql = 'SELECT u.*, s.ssel_id, c.base_id, c.record_id , s.usr_id as pushFrom + FROM sselcontusr u, sselcont c, ssel s' . + ' WHERE s.ssel_id = c.ssel_id AND u.sselcont_id = c.sselcont_id' . + ' AND s.deleted="0" ' . + ' ORDER BY s.ssel_id ASC, c.sselcont_id ASC'; - if ($row['canHD']) - $user->ACL()->grant_hd_on($record, $pusher, 'validate'); - else - $user->ACL()->grant_preview_on($record, $pusher, 'validate'); - } + $stmt = $conn->prepare($sql); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); - $sql = 'REPLACE INTO validate_datas - (id, validate_id, sselcont_id, updated_on, agreement) - VALUES - (null, :validate_id, :sselcont_id, :updated_on, :agreement)'; + foreach ($rs as $row) + { + if (!isset($validate_process[$row['ssel_id']]) || + !array_key_exists($row['usr_id'], $validate_process[$row['ssel_id']]) + ) + { - $stmt = $conn->prepare($sql); + $sql = 'INSERT INTO validate + (id, ssel_id, created_on, updated_on, expires_on, last_reminder, + usr_id, confirmed, can_agree, can_see_others) + VALUES + (null, :ssel_id, :created_on, :updated_on, :expires_on, null, + :usr_id, "0", :can_agree, :can_see)'; - $params = array( - ':validate_id' => $validate_process[$row['ssel_id']][$row['usr_id']] - , ':sselcont_id' => $row['sselcont_id'] - , ':updated_on' => $row['date_maj'] - , ':agreement' => $row['agree'] - ); - $stmt->execute($params); - $stmt->closeCursor(); + $stmt = $conn->prepare($sql); + + $expire = new DateTime($row['dateFin']); + $expire = $expire->format('u') == 0 ? + null : phraseadate::format_mysql($expire); + + + $params = array( + ':ssel_id' => $row['ssel_id'] + , ':created_on' => $row['date_maj'] + , ':updated_on' => $row['date_maj'] + , ':expires_on' => $expire + , ':usr_id' => $row['usr_id'] + , ':can_agree' => $row['canAgree'] + , ':can_see' => $row['canSeeOther'] + ); + $stmt->execute($params); + + $validate_process[$row['ssel_id']][$row['usr_id']] = $conn->lastInsertId(); + $stmt->closeCursor(); + + $sbas_id = phrasea::sbasFromBas($row['base_id']); + $record = new record_adapter($sbas_id, $row['record_id']); + + $user = User_Adapter::getInstance($row['usr_id'], $appbox); + $pusher = User_Adapter::getInstance($row['pushFrom'], $appbox); + + if ($row['canHD']) + $user->ACL()->grant_hd_on($record, $pusher, 'validate'); + else + $user->ACL()->grant_preview_on($record, $pusher, 'validate'); + } + + $sql = 'REPLACE INTO validate_datas + (id, validate_id, sselcont_id, updated_on, agreement) + VALUES + (null, :validate_id, :sselcont_id, :updated_on, :agreement)'; + + $stmt = $conn->prepare($sql); + + $params = array( + ':validate_id' => $validate_process[$row['ssel_id']][$row['usr_id']] + , ':sselcont_id' => $row['sselcont_id'] + , ':updated_on' => $row['date_maj'] + , ':agreement' => $row['agree'] + ); + $stmt->execute($params); + $stmt->closeCursor(); + } + + return true; } - return true; - } - } diff --git a/lib/classes/patch/311.class.php b/lib/classes/patch/311.class.php index 5c71912843..a0198a02e3 100644 --- a/lib/classes/patch/311.class.php +++ b/lib/classes/patch/311.class.php @@ -18,51 +18,51 @@ class patch_311 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.1.1'; - /** - * - * @var Array - */ - private $concern = array(base::DATA_BOX); + /** + * + * @var string + */ + private $release = '3.1.1'; + /** + * + * @var Array + */ + private $concern = array(base::DATA_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } + /** + * + * @return string + */ + function get_release() + { + return $this->release; + } - public function require_all_upgrades() - { - return false; - } + public function require_all_upgrades() + { + return false; + } - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } - function apply(base &$databox) - { - $sql = 'UPDATE record SET jeton = ' - . (JETON_WRITE_META_DOC | JETON_WRITE_META_SUBDEF); + function apply(base &$databox) + { + $sql = 'UPDATE record SET jeton = ' + . (JETON_WRITE_META_DOC | JETON_WRITE_META_SUBDEF); - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); - return true; - } + return true; + } } diff --git a/lib/classes/patch/320.class.php b/lib/classes/patch/320.class.php index e9f51cf0f7..9de66a9bbe 100644 --- a/lib/classes/patch/320.class.php +++ b/lib/classes/patch/320.class.php @@ -18,50 +18,50 @@ class patch_320 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.2.0.0.a1'; - /** - * - * @var Array - */ - private $concern = array(base::DATA_BOX); + /** + * + * @var string + */ + private $release = '3.2.0.0.a1'; + /** + * + * @var Array + */ + private $concern = array(base::DATA_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } + /** + * + * @return string + */ + function get_release() + { + return $this->release; + } - public function require_all_upgrades() - { - return false; - } + public function require_all_upgrades() + { + return false; + } - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } - function apply(base &$databox) - { - $sql = 'UPDATE record SET parent_record_id = "1" - WHERE parent_record_id != "0"'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); + function apply(base &$databox) + { + $sql = 'UPDATE record SET parent_record_id = "1" + WHERE parent_record_id != "0"'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); - return true; - } + return true; + } } diff --git a/lib/classes/patch/320a.class.php b/lib/classes/patch/320a.class.php index ad7175ddc3..7b6ed19e94 100644 --- a/lib/classes/patch/320a.class.php +++ b/lib/classes/patch/320a.class.php @@ -18,87 +18,87 @@ class patch_320a implements patchInterface { - /** - * - * @var string - */ - private $release = '3.2.0.0.a2'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var string + */ + private $release = '3.2.0.0.a2'; + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$appbox) - { - $sql = 'SELECT * FROM usr WHERE nonce IS NULL'; - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - $sql = 'UPDATE usr SET nonce = :nonce WHERE usr_id = :usr_id'; - $stmt = $appbox->get_connection()->prepare($sql); - foreach ($rs as $row) + /** + * + * @return string + */ + function get_release() { - $nonce = random::generatePassword(16); - $params = array(':usr_id' => $row['usr_id'], ':nonce' => $nonce); - $stmt->execute($params); - } - $stmt->closeCursor(); - - - - $sql = 'SELECT task_id, `class` FROM task2'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - $tasks = array(); - - $sql = 'UPDATE task2 SET `class` = :class WHERE task_id = :task_id'; - $stmt = $appbox->get_connection()->prepare($sql); - foreach ($rs as $row) - { - if (strpos($row['class'], 'task_period_') !== false) - continue; - - $params = array( - ':task_id' => $row['task_id'] - , ':class' => str_replace('task_', 'task_period_', $row['class']) - ); - - $stmt->execute($params); + return $this->release; } - $stmt->closeCursor(); + public function require_all_upgrades() + { + return false; + } - return true; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } + + function apply(base &$appbox) + { + $sql = 'SELECT * FROM usr WHERE nonce IS NULL'; + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + $sql = 'UPDATE usr SET nonce = :nonce WHERE usr_id = :usr_id'; + $stmt = $appbox->get_connection()->prepare($sql); + foreach ($rs as $row) + { + $nonce = random::generatePassword(16); + $params = array(':usr_id' => $row['usr_id'], ':nonce' => $nonce); + $stmt->execute($params); + } + $stmt->closeCursor(); + + + + $sql = 'SELECT task_id, `class` FROM task2'; + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + $tasks = array(); + + $sql = 'UPDATE task2 SET `class` = :class WHERE task_id = :task_id'; + $stmt = $appbox->get_connection()->prepare($sql); + foreach ($rs as $row) + { + if (strpos($row['class'], 'task_period_') !== false) + continue; + + $params = array( + ':task_id' => $row['task_id'] + , ':class' => str_replace('task_', 'task_period_', $row['class']) + ); + + $stmt->execute($params); + } + + $stmt->closeCursor(); + + return true; + } } diff --git a/lib/classes/patch/320aa.class.php b/lib/classes/patch/320aa.class.php index 5468abc4d5..5781e20401 100644 --- a/lib/classes/patch/320aa.class.php +++ b/lib/classes/patch/320aa.class.php @@ -18,95 +18,95 @@ class patch_320aa implements patchInterface { - /** - * - * @var string - */ - private $release = '3.2.0.0.a1'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var string + */ + private $release = '3.2.0.0.a1'; + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$appbox) - { - if(is_file(__DIR__ . '/../../../config/_GV.php')) - require __DIR__ . '/../../../config/_GV.php'; - require __DIR__ . '/../../../lib/conf.d/_GV_template.inc'; - - define('GV_STATIC_URL', ''); - define('GV_sphinx', false); - define('GV_sphinx_host', ''); - define('GV_sphinx_port', ''); - define('GV_sphinx_rt_host', ''); - define('GV_sphinx_rt_port', ''); - - $registry = $appbox->get_registry(); - - foreach ($GV as $section => $datas_section) + /** + * + * @return string + */ + function get_release() { - foreach ($datas_section['vars'] as $datas) - { - - $registry->un_set($datas['name']); - eval('$test = defined("' . $datas["name"] . '");'); - if (!$test) - { - continue; - } - eval('$val = ' . $datas["name"] . ';'); - - $val = $val === true ? '1' : $val; - $val = $val === false ? '0' : $val; - - if($datas['name'] == 'GV_exiftool' && strpos($val, 'lib/exiftool/exiftool') !== false) - { - $val = str_replace('lib/exiftool/exiftool', 'lib/vendor/exiftool/exiftool', $val); - } - - switch ($datas['type']) - { - case registry::TYPE_ENUM_MULTI: - case registry::TYPE_INTEGER: - case registry::TYPE_BOOLEAN: - case registry::TYPE_STRING: - case registry::TYPE_ARRAY: - $type = $datas['type']; - break; - default: - $type = registry::TYPE_STRING; - break; - } - $registry->set($datas['name'], $val, $type); - } + return $this->release; } - $registry->un_set('registry_loaded'); - return true; - } + public function require_all_upgrades() + { + return false; + } + + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } + + function apply(base &$appbox) + { + if(is_file(__DIR__ . '/../../../config/_GV.php')) + require __DIR__ . '/../../../config/_GV.php'; + require __DIR__ . '/../../../lib/conf.d/_GV_template.inc'; + + define('GV_STATIC_URL', ''); + define('GV_sphinx', false); + define('GV_sphinx_host', ''); + define('GV_sphinx_port', ''); + define('GV_sphinx_rt_host', ''); + define('GV_sphinx_rt_port', ''); + + $registry = $appbox->get_registry(); + + foreach ($GV as $section => $datas_section) + { + foreach ($datas_section['vars'] as $datas) + { + + $registry->un_set($datas['name']); + eval('$test = defined("' . $datas["name"] . '");'); + if (!$test) + { + continue; + } + eval('$val = ' . $datas["name"] . ';'); + + $val = $val === true ? '1' : $val; + $val = $val === false ? '0' : $val; + + if($datas['name'] == 'GV_exiftool' && strpos($val, 'lib/exiftool/exiftool') !== false) + { + $val = str_replace('lib/exiftool/exiftool', 'lib/vendor/exiftool/exiftool', $val); + } + + switch ($datas['type']) + { + case registry::TYPE_ENUM_MULTI: + case registry::TYPE_INTEGER: + case registry::TYPE_BOOLEAN: + case registry::TYPE_STRING: + case registry::TYPE_ARRAY: + $type = $datas['type']; + break; + default: + $type = registry::TYPE_STRING; + break; + } + $registry->set($datas['name'], $val, $type); + } + } + $registry->un_set('registry_loaded'); + + return true; + } } diff --git a/lib/classes/patch/320ab.class.php b/lib/classes/patch/320ab.class.php index 453077dede..8a8eb34d5c 100644 --- a/lib/classes/patch/320ab.class.php +++ b/lib/classes/patch/320ab.class.php @@ -18,54 +18,54 @@ class patch_320ab implements patchInterface { - /** - * - * @var string - */ - private $release = '3.2.0.0.a1'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var string + */ + private $release = '3.2.0.0.a1'; + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } + /** + * + * @return string + */ + function get_release() + { + return $this->release; + } - public function require_all_upgrades() - { - return false; - } + public function require_all_upgrades() + { + return false; + } - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } - function apply(base &$appbox) - { - $sql = 'REPLACE INTO records_rights - (SELECT null as id, usr_id, b.sbas_id, record_id, "1" as document - , null as preview, "push" as `case`, pushFrom as pusher_usr_id - FROM sselcont c, ssel s, bas b - WHERE c.ssel_id = s.ssel_id - AND b.base_id = c.base_id AND c.canHD = 1 - )'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); + function apply(base &$appbox) + { + $sql = 'REPLACE INTO records_rights + (SELECT null as id, usr_id, b.sbas_id, record_id, "1" as document + , null as preview, "push" as `case`, pushFrom as pusher_usr_id + FROM sselcont c, ssel s, bas b + WHERE c.ssel_id = s.ssel_id + AND b.base_id = c.base_id AND c.canHD = 1 + )'; + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); - return true; - } + return true; + } } diff --git a/lib/classes/patch/320b.class.php b/lib/classes/patch/320b.class.php index e412497fa8..6d62b481e2 100644 --- a/lib/classes/patch/320b.class.php +++ b/lib/classes/patch/320b.class.php @@ -19,49 +19,49 @@ class patch_320b implements patchInterface { - /** - * - * @var string - */ - private $release = '3.2.0.0.a3'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var string + */ + private $release = '3.2.0.0.a3'; + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } + /** + * + * @return string + */ + function get_release() + { + return $this->release; + } - public function require_all_upgrades() - { - return false; - } + public function require_all_upgrades() + { + return false; + } - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } - function apply(base &$appbox) - { - $sql = 'UPDATE basusr SET nowatermark=1 WHERE needwatermark=0'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - unset($stmt); + function apply(base &$appbox) + { + $sql = 'UPDATE basusr SET nowatermark=1 WHERE needwatermark=0'; + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + unset($stmt); - return true; - } + return true; + } } diff --git a/lib/classes/patch/320c.class.php b/lib/classes/patch/320c.class.php index 1e2b62f4aa..42e1eece9e 100644 --- a/lib/classes/patch/320c.class.php +++ b/lib/classes/patch/320c.class.php @@ -18,149 +18,149 @@ class patch_320c implements patchInterface { - /** - * - * @var string - */ - private $release = '3.2.0.0.a4'; + /** + * + * @var string + */ + private $release = '3.2.0.0.a4'; - /** - * - * @var Array - */ - private $concern = array(base::DATA_BOX); + /** + * + * @var Array + */ + private $concern = array(base::DATA_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$databox) - { - $sql = 'TRUNCATE metadatas'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - $sql = 'TRUNCATE metadatas_structure'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - $sql = 'TRUNCATE technical_datas'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - - $phrasea_maps = array( - 'pdftext' => '/rdf:RDF/rdf:Description/PHRASEANET:pdftext' - , 'tf-archivedate' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-archivedate' - , 'tf-atime' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-atime' - , 'tf-chgdocdate' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-chgdocdate' - , 'tf-ctime' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-ctime' - , 'tf-editdate' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-editdate' - , 'tf-mtime' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-mtime' - , 'tf-parentdir' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-parentdir' - , 'tf-bits' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-bits' - , 'tf-channels' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-channels' - , 'tf-extension' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-extension' - , 'tf-filename' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-filename' - , 'tf-filepath' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-filepath' - , 'tf-height' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-height' - , 'tf-mimetype' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-mimetype' - , 'tf-recordid' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-recordid' - , 'tf-size' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-size' - , 'tf-width' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-width' - ); - - $sxe = $databox->get_sxml_structure(); - $dom_struct = $databox->get_dom_structure(); - $xp_struct = $databox->get_xpath_structure(); - - foreach ($sxe->description->children() as $fname => $field) + /** + * + * @return string + */ + function get_release() { - $src = trim(isset($field['src']) ? $field['src'] : ''); - - if (array_key_exists($src, $phrasea_maps)) - { - $src = $phrasea_maps[$src]; - } - - $nodes = $xp_struct->query('/record/description/' . $fname); - if ($nodes->length > 0) - { - $node = $nodes->item(0); - $node->setAttribute('src', $src); - $node->removeAttribute('meta_id'); - } + return $this->release; } - $databox->saveStructure($dom_struct); + public function require_all_upgrades() + { + return false; + } - $ext_databox = new extended_databox($databox->get_sbas_id()); - $ext_databox->migrate_fields(); + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } - $databox->delete_data_from_cache(databox::CACHE_STRUCTURE); - $databox->delete_data_from_cache(databox::CACHE_META_STRUCT); + function apply(base &$databox) + { + $sql = 'TRUNCATE metadatas'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + $sql = 'TRUNCATE metadatas_structure'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + $sql = 'TRUNCATE technical_datas'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); - $conn = connection::getPDOConnection(); - $sql = 'INSERT INTO `task2` - (`task_id`, `usr_id_owner`, `pid`, `status`, `crashed`, - `active`, `name`, `last_exec_time`, `class`, `settings`, `completed`) - VALUES - (null, 0, 0, "stopped", 0, 1, "upgrade to v3.2 for sbas ' . $databox->get_sbas_id() . '", - "0000-00-00 00:00:00", "task_period_upgradetov32", - "' . - '' . $databox->get_sbas_id() . '", -1)'; - $stmt = $conn->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); + $phrasea_maps = array( + 'pdftext' => '/rdf:RDF/rdf:Description/PHRASEANET:pdftext' + , 'tf-archivedate' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-archivedate' + , 'tf-atime' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-atime' + , 'tf-chgdocdate' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-chgdocdate' + , 'tf-ctime' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-ctime' + , 'tf-editdate' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-editdate' + , 'tf-mtime' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-mtime' + , 'tf-parentdir' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-parentdir' + , 'tf-bits' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-bits' + , 'tf-channels' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-channels' + , 'tf-extension' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-extension' + , 'tf-filename' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-filename' + , 'tf-filepath' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-filepath' + , 'tf-height' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-height' + , 'tf-mimetype' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-mimetype' + , 'tf-recordid' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-recordid' + , 'tf-size' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-size' + , 'tf-width' => '/rdf:RDF/rdf:Description/PHRASEANET:tf-width' + ); - $sql = 'DELETE FROM `task2` WHERE class="readmeta"'; - $stmt = $conn->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - unset($stmt); + $sxe = $databox->get_sxml_structure(); + $dom_struct = $databox->get_dom_structure(); + $xp_struct = $databox->get_xpath_structure(); + + foreach ($sxe->description->children() as $fname => $field) + { + $src = trim(isset($field['src']) ? $field['src'] : ''); + + if (array_key_exists($src, $phrasea_maps)) + { + $src = $phrasea_maps[$src]; + } + + $nodes = $xp_struct->query('/record/description/' . $fname); + if ($nodes->length > 0) + { + $node = $nodes->item(0); + $node->setAttribute('src', $src); + $node->removeAttribute('meta_id'); + } + } + + $databox->saveStructure($dom_struct); + + $ext_databox = new extended_databox($databox->get_sbas_id()); + $ext_databox->migrate_fields(); + + $databox->delete_data_from_cache(databox::CACHE_STRUCTURE); + $databox->delete_data_from_cache(databox::CACHE_META_STRUCT); - return true; - } + $conn = connection::getPDOConnection(); + $sql = 'INSERT INTO `task2` + (`task_id`, `usr_id_owner`, `pid`, `status`, `crashed`, + `active`, `name`, `last_exec_time`, `class`, `settings`, `completed`) + VALUES + (null, 0, 0, "stopped", 0, 1, "upgrade to v3.2 for sbas ' . $databox->get_sbas_id() . '", + "0000-00-00 00:00:00", "task_period_upgradetov32", + "' . + '' . $databox->get_sbas_id() . '", -1)'; + $stmt = $conn->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + $sql = 'DELETE FROM `task2` WHERE class="readmeta"'; + $stmt = $conn->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + unset($stmt); + + + return true; + } } class extended_databox extends databox { - public function __construct($sbas_id) - { - parent::__construct($sbas_id); - } + public function __construct($sbas_id) + { + parent::__construct($sbas_id); + } - public function migrate_fields() - { - $this->feed_meta_fields(); + public function migrate_fields() + { + $this->feed_meta_fields(); - return $this; - } + return $this; + } } diff --git a/lib/classes/patch/320d.class.php b/lib/classes/patch/320d.class.php index 12db701ed5..0714c98d69 100644 --- a/lib/classes/patch/320d.class.php +++ b/lib/classes/patch/320d.class.php @@ -18,65 +18,65 @@ class patch_320d implements patchInterface { - /** - * - * @var string - */ - private $release = '3.2.0.0.a5'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var string + */ + private $release = '3.2.0.0.a5'; + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$appbox) - { - - $sql = 'SELECT base_id, usr_id FROM order_masters'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - $sql = 'UPDATE basusr SET order_master="1" - WHERE base_id = :base_id AND usr_id = :usr_id'; - $stmt = $appbox->get_connection()->prepare($sql); - - foreach ($rs as $row) + /** + * + * @return string + */ + function get_release() { - $params = array( - ':base_id' => $row['base_id'], - ':usr_id' => $row['usr_id'] - ); - $stmt->execute($params); + return $this->release; } - $stmt->closeCursor(); + public function require_all_upgrades() + { + return false; + } - return true; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } + + function apply(base &$appbox) + { + + $sql = 'SELECT base_id, usr_id FROM order_masters'; + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + $sql = 'UPDATE basusr SET order_master="1" + WHERE base_id = :base_id AND usr_id = :usr_id'; + $stmt = $appbox->get_connection()->prepare($sql); + + foreach ($rs as $row) + { + $params = array( + ':base_id' => $row['base_id'], + ':usr_id' => $row['usr_id'] + ); + $stmt->execute($params); + } + + $stmt->closeCursor(); + + return true; + } } diff --git a/lib/classes/patch/320e.class.php b/lib/classes/patch/320e.class.php index 07d344606a..03946fb1d8 100644 --- a/lib/classes/patch/320e.class.php +++ b/lib/classes/patch/320e.class.php @@ -18,79 +18,79 @@ class patch_320e implements patchInterface { - /** - * - * @var string - */ - private $release = '3.2.0.0.a6'; + /** + * + * @var string + */ + private $release = '3.2.0.0.a6'; - /** - * - * @var Array - */ - private $concern = array(base::DATA_BOX); + /** + * + * @var Array + */ + private $concern = array(base::DATA_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$databox) - { - $sql = 'UPDATE record r, subdef s - SET r.mime = s.mime - WHERE r.record_id = s.record_id AND s.name="document"'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - $sql = 'UPDATE subdef s, record r - SET s.updated_on = r.moddate, s.created_on = r.credate - WHERE s.record_id = r.record_id'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - $sql = 'UPDATE subdef SET `name` = LOWER( `name` )'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - - $dom = $databox->get_dom_structure(); - $xpath = $databox->get_xpath_structure(); - - $nodes = $xpath->query('//record/subdefs/subdefgroup/subdef'); - - foreach ($nodes as $node) + /** + * + * @return string + */ + function get_release() { - $name = mb_strtolower(trim($node->getAttribute('name'))); - if ($name === '') - continue; - $node->setAttribute('name', $name); + return $this->release; } - $databox->saveStructure($dom); + public function require_all_upgrades() + { + return false; + } - return true; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } + + function apply(base &$databox) + { + $sql = 'UPDATE record r, subdef s + SET r.mime = s.mime + WHERE r.record_id = s.record_id AND s.name="document"'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + $sql = 'UPDATE subdef s, record r + SET s.updated_on = r.moddate, s.created_on = r.credate + WHERE s.record_id = r.record_id'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + $sql = 'UPDATE subdef SET `name` = LOWER( `name` )'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + + $dom = $databox->get_dom_structure(); + $xpath = $databox->get_xpath_structure(); + + $nodes = $xpath->query('//record/subdefs/subdefgroup/subdef'); + + foreach ($nodes as $node) + { + $name = mb_strtolower(trim($node->getAttribute('name'))); + if ($name === '') + continue; + $node->setAttribute('name', $name); + } + + $databox->saveStructure($dom); + + return true; + } } diff --git a/lib/classes/patch/320f.class.php b/lib/classes/patch/320f.class.php index 7777e680cb..c9f1287237 100644 --- a/lib/classes/patch/320f.class.php +++ b/lib/classes/patch/320f.class.php @@ -18,195 +18,195 @@ class patch_320f implements patchInterface { - /** - * - * @var string - */ - private $release = '3.2.0.0.a4'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var string + */ + private $release = '3.2.0.0.a4'; + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return true; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$appbox) - { - $feeds = array(); - - try + /** + * + * @return string + */ + function get_release() { - $sql = 'ALTER TABLE `ssel` ADD `migrated` INT NOT NULL DEFAULT "0"'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - } - catch(Exception $e) - { - + return $this->release; } - $sql = 'SELECT ssel_id, usr_id, name, descript, pub_date - , updater, pub_restrict, homelink - FROM ssel WHERE (public = "1" or homelink="1") and migrated = 0'; - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - $date_ref = new DateTime(); - - foreach ($rs as $row) + public function require_all_upgrades() { - $user = User_Adapter::getInstance($row['usr_id'], $appbox); + return true; + } - $feed = $this->get_feed($appbox, $user, $row['pub_restrict'], $row['homelink']); + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } - if(!$feed instanceof Feed_Adapter) - { - continue; - } + function apply(base &$appbox) + { + $feeds = array(); - $entry = Feed_Entry_Adapter::create($appbox, $feed, array_shift($feed->get_publishers()), $row['name'], $row['descript'], $user->get_display_name(), $user->get_email()); - $date_create = new DateTime($row['pub_date']); - if ($date_create < $date_ref) - { - $date_ref = $date_create; - } - $entry->set_created_on($date_create); - if ($row['updater'] != '0000-00-00 00:00:00') - { - $date_update = new DateTime($row['updater']); - $entry->set_updated_on($date_update); - } - - $sql = 'SELECT sselcont_id, ssel_id, base_id, record_id - FROM sselcont WHERE ssel_id = :ssel_id ORDER BY ord ASC'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(array(':ssel_id' => $row['ssel_id'])); - $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - foreach ($rs as $row) - { try { - $record = new record_adapter(phrasea::sbasFromBas($row['base_id']), $row['record_id']); - $item = Feed_Entry_Item::create($appbox, $entry, $record); + $sql = 'ALTER TABLE `ssel` ADD `migrated` INT NOT NULL DEFAULT "0"'; + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); } - catch (Exception_NotFound $e) + catch(Exception $e) { } - } - $sql = 'UPDATE ssel SET deleted = "1", migrated="1" - WHERE ssel_id = :ssel_id'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(array(':ssel_id' => $row['ssel_id'])); - $stmt->closeCursor(); - } - $this->set_feed_dates($date_ref); + $sql = 'SELECT ssel_id, usr_id, name, descript, pub_date + , updater, pub_restrict, homelink + FROM ssel WHERE (public = "1" or homelink="1") and migrated = 0'; - return true; - } + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); - protected function set_feed_dates(DateTime $date_ref) - { - foreach (self::$feeds as $array_feeds) - { - foreach ($array_feeds as $feed) - { - $feed->set_created_on($date_ref); - } - } + $date_ref = new DateTime(); - return; - } - - protected static $feeds = array(); - - protected function get_feed(appbox &$appbox, User_Adapter &$user, $pub_restrict, $homelink) - { - $user_key = 'user_' . $user->get_id(); - if ($homelink == '1') - $feed_key = 'feed_homelink'; - elseif ($pub_restrict == '1') - $feed_key = 'feed_restricted'; - else - $feed_key = 'feed_public'; - - if (!array_key_exists($user_key, self::$feeds) || !isset(self::$feeds[$user_key][$feed_key])) - { - if ($homelink == '1') - $title = $user->get_display_name() . ' - ' . 'homelink Feed'; - elseif ($pub_restrict == '1') - $title = $user->get_display_name() . ' - ' . 'private Feed'; - else - $title = $user->get_display_name() . ' - ' . 'public Feed'; - - $feed = Feed_Adapter::create($appbox, $user, $title, ''); - - if ($homelink) - { - $feed->set_public(true); - } - elseif ($pub_restrict == 1) - { - $collection = array_shift($user->ACL()->get_granted_base()); - if (!($collection instanceof collection)) + foreach ($rs as $row) { - foreach ($appbox->get_databoxes() as $databox) - { - foreach ($databox->get_collections() as $coll) + $user = User_Adapter::getInstance($row['usr_id'], $appbox); + + $feed = $this->get_feed($appbox, $user, $row['pub_restrict'], $row['homelink']); + + if(!$feed instanceof Feed_Adapter) { - $collection = $coll; - break; + continue; } - if ($collection instanceof collection) - break; - } - } - if (!($collection instanceof collection)) - { - echo "unable to find a collection to protect feeds"; + $entry = Feed_Entry_Adapter::create($appbox, $feed, array_shift($feed->get_publishers()), $row['name'], $row['descript'], $user->get_display_name(), $user->get_email()); + $date_create = new DateTime($row['pub_date']); + if ($date_create < $date_ref) + { + $date_ref = $date_create; + } + $entry->set_created_on($date_create); + if ($row['updater'] != '0000-00-00 00:00:00') + { + $date_update = new DateTime($row['updater']); + $entry->set_updated_on($date_update); + } - return false; + $sql = 'SELECT sselcont_id, ssel_id, base_id, record_id + FROM sselcont WHERE ssel_id = :ssel_id ORDER BY ord ASC'; + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(array(':ssel_id' => $row['ssel_id'])); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + foreach ($rs as $row) + { + try + { + $record = new record_adapter(phrasea::sbasFromBas($row['base_id']), $row['record_id']); + $item = Feed_Entry_Item::create($appbox, $entry, $record); + } + catch (Exception_NotFound $e) + { + + } + } + + $sql = 'UPDATE ssel SET deleted = "1", migrated="1" + WHERE ssel_id = :ssel_id'; + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(array(':ssel_id' => $row['ssel_id'])); + $stmt->closeCursor(); } - $feed->set_collection($collection); - } - self::$feeds[$user_key][$feed_key] = $feed; + $this->set_feed_dates($date_ref); + + return true; } - else + + protected function set_feed_dates(DateTime $date_ref) { - $feed = self::$feeds[$user_key][$feed_key]; + foreach (self::$feeds as $array_feeds) + { + foreach ($array_feeds as $feed) + { + $feed->set_created_on($date_ref); + } + } + + return; } - return $feed; - } + protected static $feeds = array(); + + protected function get_feed(appbox &$appbox, User_Adapter &$user, $pub_restrict, $homelink) + { + $user_key = 'user_' . $user->get_id(); + if ($homelink == '1') + $feed_key = 'feed_homelink'; + elseif ($pub_restrict == '1') + $feed_key = 'feed_restricted'; + else + $feed_key = 'feed_public'; + + if (!array_key_exists($user_key, self::$feeds) || !isset(self::$feeds[$user_key][$feed_key])) + { + if ($homelink == '1') + $title = $user->get_display_name() . ' - ' . 'homelink Feed'; + elseif ($pub_restrict == '1') + $title = $user->get_display_name() . ' - ' . 'private Feed'; + else + $title = $user->get_display_name() . ' - ' . 'public Feed'; + + $feed = Feed_Adapter::create($appbox, $user, $title, ''); + + if ($homelink) + { + $feed->set_public(true); + } + elseif ($pub_restrict == 1) + { + $collection = array_shift($user->ACL()->get_granted_base()); + if (!($collection instanceof collection)) + { + foreach ($appbox->get_databoxes() as $databox) + { + foreach ($databox->get_collections() as $coll) + { + $collection = $coll; + break; + } + if ($collection instanceof collection) + break; + } + } + + if (!($collection instanceof collection)) + { + echo "unable to find a collection to protect feeds"; + + return false; + } + $feed->set_collection($collection); + } + self::$feeds[$user_key][$feed_key] = $feed; + } + else + { + $feed = self::$feeds[$user_key][$feed_key]; + } + + return $feed; + } } diff --git a/lib/classes/patch/320h.class.php b/lib/classes/patch/320h.class.php index 1d4866eabf..90db0bb095 100644 --- a/lib/classes/patch/320h.class.php +++ b/lib/classes/patch/320h.class.php @@ -18,49 +18,49 @@ class patch_320h implements patchInterface { - /** - * - * @var string - */ - private $release = '3.2.0.0.a8'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var string + */ + private $release = '3.2.0.0.a8'; + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } + /** + * + * @return string + */ + function get_release() + { + return $this->release; + } - public function require_all_upgrades() - { - return true; - } + public function require_all_upgrades() + { + return true; + } - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } - function apply(base &$appbox) - { - $sql = 'DELETE FROM basusr WHERE actif = "0"'; + function apply(base &$appbox) + { + $sql = 'DELETE FROM basusr WHERE actif = "0"'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); - return true; - } + return true; + } } diff --git a/lib/classes/patch/360.class.php b/lib/classes/patch/360.class.php index 0804f89972..72f8c0cdbe 100644 --- a/lib/classes/patch/360.class.php +++ b/lib/classes/patch/360.class.php @@ -18,259 +18,259 @@ class patch_360 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.6.0a1'; + /** + * + * @var string + */ + private $release = '3.6.0a1'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return true; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$appbox) - { - $tables = array('StoryWZ', 'ValidationDatas', 'ValidationParticipants', 'ValidationSessions', 'BasketElements', 'Baskets'); - - foreach ($tables as $table) + /** + * + * @return string + */ + function get_release() { - $sql = 'DELETE FROM ' . $table; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); + return $this->release; } - - $stories = array(); - - $sql = 'SELECT sbas_id, rid as record_id, usr_id - FROM ssel - WHERE temporaryType = "1"'; - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $rs_s = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - $current = array(); - - foreach ($rs_s as $row_story) + public function require_all_upgrades() { - $serial = $row_story['sbas_id'] . '_' . $row_story['usr_id'] . '_' . $row_story['record_id']; - - if (isset($current[$serial])) - { - $stories[] = $row_story; - } - - $current[$serial] = $serial; + return true; } - $sql = 'DELETE FROM ssel - WHERE temporaryType="1" AND record_id = :record_id - AND usr_id = :usr_id AND sbas_id = :sbas_id'; - $stmt = $appbox->get_connection()->prepare($sql); - - foreach ($stories as $row) + /** + * + * @return Array + */ + function concern() { - $params = array( - ':usr_id' => $row['usr_id'], - ':sbas_id' => $row['sbas_id'], - ':record_id' => $row['record_id'] - ); - $stmt->execute($params); + return $this->concern; } - $stmt->closeCursor(); - - $sql = 'INSERT INTO StoryWZ - ( - SELECT null as id, sbas_id, rid as record_id, usr_id, date as created - FROM ssel - WHERE temporaryType = "1" - )'; - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - $sql = 'INSERT INTO Baskets - ( - SELECT ssel_id as id, name, descript as description, usr_id, 1 as is_read - , pushFrom as pusher_id, - 0 as archived, date as created, updater as updated - FROM ssel - WHERE temporaryType = "0" - )'; - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - - $sql = 'SELECT ssel_id FROM ssel WHERE temporaryType = "0"'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - $sselcont_ids = array(); - - foreach ($rs as $row) + function apply(base &$appbox) { - $sql = 'SELECT c.sselcont_id, c.record_id, b.sbas_id - FROM sselcont c, bas b, ssel s - WHERE s.temporaryType = "0" AND b.base_id = c.base_id - AND c.ssel_id = :ssel_id AND s.ssel_id = c.ssel_id'; + $tables = array('StoryWZ', 'ValidationDatas', 'ValidationParticipants', 'ValidationSessions', 'BasketElements', 'Baskets'); - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(array(':ssel_id' => $row['ssel_id'])); - $rs_be = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - $current = array(); - - foreach ($rs_be as $row_sselcont) - { - $serial = $row_sselcont['sbas_id'] . '_' . $row_sselcont['record_id']; - - if (isset($current[$serial])) + foreach ($tables as $table) { - $sselcont_ids[] = $row_sselcont['sselcont_id']; + $sql = 'DELETE FROM ' . $table; + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); } - $current[$serial] = $serial; - } + + $stories = array(); + + $sql = 'SELECT sbas_id, rid as record_id, usr_id + FROM ssel + WHERE temporaryType = "1"'; + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $rs_s = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + $current = array(); + + foreach ($rs_s as $row_story) + { + $serial = $row_story['sbas_id'] . '_' . $row_story['usr_id'] . '_' . $row_story['record_id']; + + if (isset($current[$serial])) + { + $stories[] = $row_story; + } + + $current[$serial] = $serial; + } + + $sql = 'DELETE FROM ssel + WHERE temporaryType="1" AND record_id = :record_id + AND usr_id = :usr_id AND sbas_id = :sbas_id'; + $stmt = $appbox->get_connection()->prepare($sql); + + foreach ($stories as $row) + { + $params = array( + ':usr_id' => $row['usr_id'], + ':sbas_id' => $row['sbas_id'], + ':record_id' => $row['record_id'] + ); + $stmt->execute($params); + } + + $stmt->closeCursor(); + + $sql = 'INSERT INTO StoryWZ + ( + SELECT null as id, sbas_id, rid as record_id, usr_id, date as created + FROM ssel + WHERE temporaryType = "1" + )'; + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + $sql = 'INSERT INTO Baskets + ( + SELECT ssel_id as id, name, descript as description, usr_id, 1 as is_read + , pushFrom as pusher_id, + 0 as archived, date as created, updater as updated + FROM ssel + WHERE temporaryType = "0" + )'; + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + + $sql = 'SELECT ssel_id FROM ssel WHERE temporaryType = "0"'; + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + $sselcont_ids = array(); + + foreach ($rs as $row) + { + $sql = 'SELECT c.sselcont_id, c.record_id, b.sbas_id + FROM sselcont c, bas b, ssel s + WHERE s.temporaryType = "0" AND b.base_id = c.base_id + AND c.ssel_id = :ssel_id AND s.ssel_id = c.ssel_id'; + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(array(':ssel_id' => $row['ssel_id'])); + $rs_be = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + $current = array(); + + foreach ($rs_be as $row_sselcont) + { + $serial = $row_sselcont['sbas_id'] . '_' . $row_sselcont['record_id']; + + if (isset($current[$serial])) + { + $sselcont_ids[] = $row_sselcont['sselcont_id']; + } + + $current[$serial] = $serial; + } + } + + $sql = 'DELETE FROM sselcont WHERE sselcont_id = :sselcont_id'; + $stmt = $appbox->get_connection()->prepare($sql); + + foreach ($sselcont_ids as $sselcont_id) + { + $stmt->execute(array(':sselcont_id' => $sselcont_id)); + } + + $stmt->closeCursor(); + + $sql = 'INSERT INTO BasketElements + ( + SELECT sselcont_id as id, c.ssel_id as basket_id, record_id, b.sbas_id, c.ord, + s.date as created, s.updater as updated + FROM sselcont c, ssel s, bas b + WHERE temporaryType = "0" AND b.base_id = c.base_id AND s.ssel_id = c.ssel_id + )'; + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + $sql = 'UPDATE Baskets SET pusher_id = NULL WHERE pusher_id = 0'; + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + + $sql = 'INSERT INTO ValidationSessions + ( + SELECT null as id, v.ssel_id as basket_id ,created_on as created + ,updated_on as updated ,expires_on as expires + ,v.usr_id as initiator_id + FROM ssel s, validate v + WHERE v.ssel_id = s.ssel_id AND v.usr_id = s.usr_id + )'; + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + $sql = 'INSERT INTO ValidationParticipants + ( + SELECT v.id as id, v.usr_id + , 1 AS is_aware, confirmed as is_confirmed, 1 as can_agree + , can_see_others, last_reminder AS reminded + , vs.`id` AS ValidationSession_id + FROM validate v, ssel s, ValidationSessions vs + WHERE s.ssel_id = v.ssel_id AND vs.basket_id = v.ssel_id + )'; + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + + $sql = 'SELECT usr_id, basket_id, p.id as participant_id + FROM ValidationParticipants p, ValidationSessions s + WHERE p.ValidationSession_Id = s.id'; + + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + + $sql = 'INSERT INTO ValidationDatas ( + SELECT d.id , :participant_id as participant_id, d.sselcont_id, d.agreement, + d.note, d.updated_on as updated + FROM validate v, validate_datas d, sselcont c + WHERE c.sselcont_id = d.sselcont_id AND v.id = d.validate_id + AND v.usr_id = :usr_id AND v.ssel_id = :basket_id + )'; + $stmt = $appbox->get_connection()->prepare($sql); + foreach ($rs as $row) + { + $params = array( + ':participant_id' => $row['participant_id'], + ':basket_id' => $row['basket_id'], + ':usr_id' => $row['usr_id'], + ); + $stmt->execute($params); + } + + $stmt->closeCursor(); + + $sql = 'UPDATE ValidationDatas + SET agreement = NULL where agreement = "0"'; + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + $sql = 'UPDATE ValidationDatas + SET agreement = "0" where agreement = "-1"'; + + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + return true; } - $sql = 'DELETE FROM sselcont WHERE sselcont_id = :sselcont_id'; - $stmt = $appbox->get_connection()->prepare($sql); - - foreach ($sselcont_ids as $sselcont_id) - { - $stmt->execute(array(':sselcont_id' => $sselcont_id)); - } - - $stmt->closeCursor(); - - $sql = 'INSERT INTO BasketElements - ( - SELECT sselcont_id as id, c.ssel_id as basket_id, record_id, b.sbas_id, c.ord, - s.date as created, s.updater as updated - FROM sselcont c, ssel s, bas b - WHERE temporaryType = "0" AND b.base_id = c.base_id AND s.ssel_id = c.ssel_id - )'; - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - $sql = 'UPDATE Baskets SET pusher_id = NULL WHERE pusher_id = 0'; - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - - $sql = 'INSERT INTO ValidationSessions - ( - SELECT null as id, v.ssel_id as basket_id ,created_on as created - ,updated_on as updated ,expires_on as expires - ,v.usr_id as initiator_id - FROM ssel s, validate v - WHERE v.ssel_id = s.ssel_id AND v.usr_id = s.usr_id - )'; - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - $sql = 'INSERT INTO ValidationParticipants - ( - SELECT v.id as id, v.usr_id - , 1 AS is_aware, confirmed as is_confirmed, 1 as can_agree - , can_see_others, last_reminder AS reminded - , vs.`id` AS ValidationSession_id - FROM validate v, ssel s, ValidationSessions vs - WHERE s.ssel_id = v.ssel_id AND vs.basket_id = v.ssel_id - )'; - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - - $sql = 'SELECT usr_id, basket_id, p.id as participant_id - FROM ValidationParticipants p, ValidationSessions s - WHERE p.ValidationSession_Id = s.id'; - - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - - $sql = 'INSERT INTO ValidationDatas ( - SELECT d.id , :participant_id as participant_id, d.sselcont_id, d.agreement, - d.note, d.updated_on as updated - FROM validate v, validate_datas d, sselcont c - WHERE c.sselcont_id = d.sselcont_id AND v.id = d.validate_id - AND v.usr_id = :usr_id AND v.ssel_id = :basket_id - )'; - $stmt = $appbox->get_connection()->prepare($sql); - foreach ($rs as $row) - { - $params = array( - ':participant_id' => $row['participant_id'], - ':basket_id' => $row['basket_id'], - ':usr_id' => $row['usr_id'], - ); - $stmt->execute($params); - } - - $stmt->closeCursor(); - - $sql = 'UPDATE ValidationDatas - SET agreement = NULL where agreement = "0"'; - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - $sql = 'UPDATE ValidationDatas - SET agreement = "0" where agreement = "-1"'; - - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - return true; - } - } diff --git a/lib/classes/patch/3602.class.php b/lib/classes/patch/3602.class.php index f198b3590d..16dc25db3e 100644 --- a/lib/classes/patch/3602.class.php +++ b/lib/classes/patch/3602.class.php @@ -18,56 +18,56 @@ class patch_3602 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.6.0a1'; - /** - * - * @var Array - */ - private $concern = array(base::DATA_BOX); + /** + * + * @var string + */ + private $release = '3.6.0a1'; + /** + * + * @var Array + */ + private $concern = array(base::DATA_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$databox) - { - try + /** + * + * @return string + */ + function get_release() { - $sql = 'ALTER TABLE `metadatas` DROP INDEX `unique`'; - - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - } - catch(\PDOException $e) - { - + return $this->release; } - return true; - } + public function require_all_upgrades() + { + return false; + } + + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } + + function apply(base &$databox) + { + try + { + $sql = 'ALTER TABLE `metadatas` DROP INDEX `unique`'; + + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + } + catch(\PDOException $e) + { + + } + + return true; + } } diff --git a/lib/classes/patch/3603.class.php b/lib/classes/patch/3603.class.php index 5f62abfe59..f51b4dcc6b 100644 --- a/lib/classes/patch/3603.class.php +++ b/lib/classes/patch/3603.class.php @@ -18,51 +18,51 @@ class patch_3603 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.6.0a2'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var string + */ + private $release = '3.6.0a2'; + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } + /** + * + * @return string + */ + function get_release() + { + return $this->release; + } - public function require_all_upgrades() - { - return true; - } + public function require_all_upgrades() + { + return true; + } - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } - function apply(base &$appbox) - { + function apply(base &$appbox) + { - $sql = 'UPDATE usr SET usr_mail = NULL - WHERE usr_mail IS NOT NULL AND usr_login LIKE "(#deleted%"'; + $sql = 'UPDATE usr SET usr_mail = NULL + WHERE usr_mail IS NOT NULL AND usr_login LIKE "(#deleted%"'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); - return true; - } + return true; + } } diff --git a/lib/classes/patch/3604.class.php b/lib/classes/patch/3604.class.php index ae4aabf0fd..20667935f2 100644 --- a/lib/classes/patch/3604.class.php +++ b/lib/classes/patch/3604.class.php @@ -18,172 +18,172 @@ class patch_3604 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.6.0a2'; - - /** - * - * @var Array - */ - private $concern = array(base::DATA_BOX); - - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return true; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$databox) - { /** - * Fail if upgrade has previously failed, no problem + * + * @var string */ - try + private $release = '3.6.0a2'; + + /** + * + * @var Array + */ + private $concern = array(base::DATA_BOX); + + /** + * + * @return string + */ + function get_release() { - $sql = "ALTER TABLE `metadatas` - ADD `updated` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '1', - ADD INDEX ( `updated` )"; - - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - - $sql = 'UPDATE metadatas SET updated = "0" - WHERE meta_struct_id - IN (SELECT id FROM metadatas_structure WHERE multi = "1")'; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - } - catch (\Exception $e) - { - + return $this->release; } - - try + public function require_all_upgrades() { - $sql = 'ALTER TABLE `metadatas` DROP INDEX `unique`'; - - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - } - catch(\PDOException $e) - { - - } - - $sql = 'SELECT m . * - FROM metadatas_structure s, metadatas m - WHERE m.meta_struct_id = s.id - AND s.multi = "1" AND updated="0"'; - - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $rowCount = $stmt->rowCount(); - $stmt->closeCursor(); - - $n = 0; - $perPage = 1000; - - while ($n < $rowCount) - { - $sql = 'SELECT m . * - FROM metadatas_structure s, metadatas m - WHERE m.meta_struct_id = s.id - AND s.multi = "1" LIMIT ' . $n . ', ' . $perPage; - - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - $databox->get_connection()->beginTransaction(); - - $sql = 'INSERT INTO metadatas(id, record_id, meta_struct_id, value) - VALUES (null, :record_id, :meta_struct_id, :value)'; - $stmt = $databox->get_connection()->prepare($sql); - - $databox_fields = array(); - - foreach ($rs as $row) - { - $meta_struct_id = $row['meta_struct_id']; - - if ( ! isset($databox_fields[$meta_struct_id])) - { - $databox_fields[$meta_struct_id] = \databox_field::get_instance($databox, $meta_struct_id); - } - - $values = \caption_field::get_multi_values($row['value'], $databox_fields[$meta_struct_id]->get_separator()); - - foreach ($values as $value) - { - $params = array( - ':record_id' => $row['record_id'], - ':meta_struct_id' => $row['meta_struct_id'], - ':value' => $value, - ); - $stmt->execute($params); - } - } - - $stmt->closeCursor(); - - - $sql = 'DELETE FROM metadatas WHERE id = :id'; - $stmt = $databox->get_connection()->prepare($sql); - - foreach ($rs as $row) - { - $params = array(':id' => $row['id']); - $stmt->execute($params); - } - - $stmt->closeCursor(); - - $databox->get_connection()->commit(); - - $n+= $perPage; + return true; } /** - * Remove the extra column + * + * @return Array */ - try + function concern() { - $sql = "ALTER TABLE `metadatas` DROP `updated`"; - $stmt = $databox->get_connection()->prepare($sql); - $stmt->execute(); - $stmt->closeCursor(); - } - catch (\Exception $e) - { - + return $this->concern; } - return true; - } + function apply(base &$databox) + { + /** + * Fail if upgrade has previously failed, no problem + */ + try + { + $sql = "ALTER TABLE `metadatas` + ADD `updated` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '1', + ADD INDEX ( `updated` )"; + + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + + $sql = 'UPDATE metadatas SET updated = "0" + WHERE meta_struct_id + IN (SELECT id FROM metadatas_structure WHERE multi = "1")'; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + } + catch (\Exception $e) + { + + } + + + try + { + $sql = 'ALTER TABLE `metadatas` DROP INDEX `unique`'; + + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + } + catch(\PDOException $e) + { + + } + + $sql = 'SELECT m . * + FROM metadatas_structure s, metadatas m + WHERE m.meta_struct_id = s.id + AND s.multi = "1" AND updated="0"'; + + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $rowCount = $stmt->rowCount(); + $stmt->closeCursor(); + + $n = 0; + $perPage = 1000; + + while ($n < $rowCount) + { + $sql = 'SELECT m . * + FROM metadatas_structure s, metadatas m + WHERE m.meta_struct_id = s.id + AND s.multi = "1" LIMIT ' . $n . ', ' . $perPage; + + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + $databox->get_connection()->beginTransaction(); + + $sql = 'INSERT INTO metadatas(id, record_id, meta_struct_id, value) + VALUES (null, :record_id, :meta_struct_id, :value)'; + $stmt = $databox->get_connection()->prepare($sql); + + $databox_fields = array(); + + foreach ($rs as $row) + { + $meta_struct_id = $row['meta_struct_id']; + + if ( ! isset($databox_fields[$meta_struct_id])) + { + $databox_fields[$meta_struct_id] = \databox_field::get_instance($databox, $meta_struct_id); + } + + $values = \caption_field::get_multi_values($row['value'], $databox_fields[$meta_struct_id]->get_separator()); + + foreach ($values as $value) + { + $params = array( + ':record_id' => $row['record_id'], + ':meta_struct_id' => $row['meta_struct_id'], + ':value' => $value, + ); + $stmt->execute($params); + } + } + + $stmt->closeCursor(); + + + $sql = 'DELETE FROM metadatas WHERE id = :id'; + $stmt = $databox->get_connection()->prepare($sql); + + foreach ($rs as $row) + { + $params = array(':id' => $row['id']); + $stmt->execute($params); + } + + $stmt->closeCursor(); + + $databox->get_connection()->commit(); + + $n+= $perPage; + } + + /** + * Remove the extra column + */ + try + { + $sql = "ALTER TABLE `metadatas` DROP `updated`"; + $stmt = $databox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + } + catch (\Exception $e) + { + + } + + return true; + } } diff --git a/lib/classes/patch/361.class.php b/lib/classes/patch/361.class.php index bd305924d5..9994700167 100644 --- a/lib/classes/patch/361.class.php +++ b/lib/classes/patch/361.class.php @@ -20,128 +20,128 @@ use Doctrine\ORM\Tools\Pagination\Paginator; class patch_361 implements patchInterface { - /** - * - * @var string - */ - private $release = '3.6.1'; + /** + * + * @var string + */ + private $release = '3.6.1'; - /** - * - * @var Array - */ - private $concern = array(base::APPLICATION_BOX); + /** + * + * @var Array + */ + private $concern = array(base::APPLICATION_BOX); - /** - * - * @return string - */ - function get_release() - { - return $this->release; - } - - public function require_all_upgrades() - { - return false; - } - - /** - * - * @return Array - */ - function concern() - { - return $this->concern; - } - - function apply(base &$appbox) - { - $Core = \bootstrap::getCore(); - - $em = $Core->getEntityManager(); - - $conn = $appbox->get_connection(); - - $sql = 'SELECT sbas_id, record_id, id FROM BasketElements'; - $stmt = $conn->prepare($sql); - $stmt->execute(); - $result = $stmt->fetchAll(PDO::FETCH_ASSOC); - $stmt->closeCursor(); - - foreach ($result as $row) + /** + * + * @return string + */ + function get_release() { - $sbas_id = (int) $row['sbas_id']; - - try - { - $connbas = connection::getPDOConnection($sbas_id); - } - catch (\Exception $e) - { - $conn->exec('DELETE FROM ValidationDatas WHERE basket_element_id = ' . $row['id']); - $conn->exec('DELETE FROM BasketElements WHERE id = ' . $row['id']); - continue; - } - - $sql = 'SELECT record_id FROM record WHERE record_id = :record_id'; - $stmt = $connbas->prepare($sql); - $stmt->execute(array(':record_id' => $row['record_id'])); - $rowCount = $stmt->rowCount(); - $stmt->closeCursor(); - - if ($rowCount == 0) - { - $conn->exec('DELETE FROM ValidationDatas WHERE basket_element_id = ' . $row['id']); - $conn->exec('DELETE FROM BasketElements WHERE id = ' . $row['id']); - } + return $this->release; } - - $dql = "SELECT b FROM Entities\Basket b WHERE b.description != ''"; - - $n = 0; - $perPage = 100; - - $query = $em->createQuery($dql) - ->setFirstResult($n) - ->setMaxResults($perPage); - - $paginator = new Paginator($query, true); - - $count = count($paginator); - - while ($n < $count) + public function require_all_upgrades() { - $query = $em->createQuery($dql) - ->setFirstResult($n) - ->setMaxResults($perPage); + return false; + } - $paginator = new Paginator($query, true); + /** + * + * @return Array + */ + function concern() + { + return $this->concern; + } - foreach ($paginator as $basket) - { - $htmlDesc = $basket->getDescription(); + function apply(base &$appbox) + { + $Core = \bootstrap::getCore(); - $description = trim(strip_tags(str_replace("
", "\n", $htmlDesc))); + $em = $Core->getEntityManager(); - if ($htmlDesc == $description) + $conn = $appbox->get_connection(); + + $sql = 'SELECT sbas_id, record_id, id FROM BasketElements'; + $stmt = $conn->prepare($sql); + $stmt->execute(); + $result = $stmt->fetchAll(PDO::FETCH_ASSOC); + $stmt->closeCursor(); + + foreach ($result as $row) { - continue; + $sbas_id = (int) $row['sbas_id']; + + try + { + $connbas = connection::getPDOConnection($sbas_id); + } + catch (\Exception $e) + { + $conn->exec('DELETE FROM ValidationDatas WHERE basket_element_id = ' . $row['id']); + $conn->exec('DELETE FROM BasketElements WHERE id = ' . $row['id']); + continue; + } + + $sql = 'SELECT record_id FROM record WHERE record_id = :record_id'; + $stmt = $connbas->prepare($sql); + $stmt->execute(array(':record_id' => $row['record_id'])); + $rowCount = $stmt->rowCount(); + $stmt->closeCursor(); + + if ($rowCount == 0) + { + $conn->exec('DELETE FROM ValidationDatas WHERE basket_element_id = ' . $row['id']); + $conn->exec('DELETE FROM BasketElements WHERE id = ' . $row['id']); + } } - $basket->setDescription($description); - } - $n += $perPage; - $em->flush(); + $dql = "SELECT b FROM Entities\Basket b WHERE b.description != ''"; + + $n = 0; + $perPage = 100; + + $query = $em->createQuery($dql) + ->setFirstResult($n) + ->setMaxResults($perPage); + + $paginator = new Paginator($query, true); + + $count = count($paginator); + + while ($n < $count) + { + $query = $em->createQuery($dql) + ->setFirstResult($n) + ->setMaxResults($perPage); + + $paginator = new Paginator($query, true); + + foreach ($paginator as $basket) + { + $htmlDesc = $basket->getDescription(); + + $description = trim(strip_tags(str_replace("
", "\n", $htmlDesc))); + + if ($htmlDesc == $description) + { + continue; + } + + $basket->setDescription($description); + } + + $n += $perPage; + $em->flush(); + } + + $em->flush(); + + + return true; } - $em->flush(); - - - return true; - } - }