<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); if (!array_key_exists(strtoupper('deleted'), DB::MetaColumnNames('utils_attachment_file'))) { PatchUtil::db_add_column('utils_attachment_file', 'deleted', 'I1 DEFAULT 0'); $ret = DB::Execute('SELECT uaf.id as id, uaf.original as original, uaf.attach_id as attach_id, uaf.revision as revision, ual.local as local FROM utils_attachment_file uaf LEFT JOIN utils_attachment_link ual ON ual.id=uaf.attach_id ORDER BY revision DESC'); $max_rev = array(); $ids = array(); while ($row = $ret->FetchRow()) { if (!isset($max_rev[$row['attach_id']])) { $max_rev[$row['attach_id']] = $row['revision']; } else { $ids[] = $row['id']; } if (!$row['original']) { $ids[] = $row['id']; } $old_filename = DATA_DIR . '/Utils_Attachment/' . $row['local'] . '/' . $row['attach_id'] . '_' . $row['revision']; $new_filename = DATA_DIR . '/Utils_Attachment/' . $row['local'] . '/' . $row['id']; @rename($old_filename, $new_filename); } if (!empty($ids)) { DB::Execute('UPDATE utils_attachment_file SET deleted=1 WHERE id IN (' . implode(',', $ids) . ')'); } }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); PatchUtil::db_add_column('base_lang_trans_contrib', 'credits', 'I1'); PatchUtil::db_add_column('base_lang_trans_contrib', 'credits_website', 'C(128)'); PatchUtil::db_add_column('base_lang_trans_contrib', 'contact_email', 'C(128)');
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); PatchUtil::db_add_column('utils_attachment_link', 'title', 'C(255)'); PatchUtil::db_add_column('utils_attachment_link', 'crypted', 'I1 DEFAULT 0');
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); @PatchUtil::db_add_column('utils_currency', 'default_currency', 'I1'); $first = DB::GetCol('SELECT id FROM utils_currency WHERE active=1 AND default_currency=1 ORDER BY id'); if (!$first) { $first = DB::GetCol('SELECT id FROM utils_currency WHERE active=1 ORDER BY id'); } DB::Execute('UPDATE utils_currency SET default_currency=0'); if ($first) { DB::Execute('UPDATE utils_currency SET default_currency=1 WHERE id=%d', array($first[0])); }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); $recordsets = Utils_RecordBrowserCommon::list_installed_recordsets(); $checkpoint = Patch::checkpoint('recordset'); $processed = $checkpoint->get('processed', array()); foreach ($recordsets as $tab => $caption) { if (isset($processed[$tab])) { continue; } $processed[$tab] = true; Patch::require_time(5); $tab = $tab . "_field"; PatchUtil::db_add_column($tab, 'tooltip', 'I1 DEFAULT 1'); DB::Execute('UPDATE ' . $tab . ' SET tooltip=visible'); $checkpoint->set('processed', $processed); }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); $pdb = new PatchesDB(); if ($pdb->was_applied(md5('modules/Utils/RecordBrowser/patches/20140827_search_include.php'))) { return; } PatchUtil::db_add_column('recordbrowser_table_properties', 'search_include', 'I1 DEFAULT 0'); PatchUtil::db_add_column('recordbrowser_table_properties', 'search_priority', 'I1 DEFAULT 0'); Utils_RecordBrowserCommon::set_search('company', 1, 2); Utils_RecordBrowserCommon::set_search('contact', 1, 2); Utils_RecordBrowserCommon::set_search('crm_meeting', 2, 0); Utils_RecordBrowserCommon::set_search('phonecall', 2, 0); Utils_RecordBrowserCommon::set_search('task', 2, 0); Utils_RecordBrowserCommon::set_search('crm_assets', 2, 0); Utils_RecordBrowserCommon::set_search('rc_mail_threads', 2, -1); Utils_RecordBrowserCommon::set_search('rc_mails', 2, -1); Utils_RecordBrowserCommon::set_search('rc_multiple_emails', 2, 0); Utils_RecordBrowserCommon::set_search('custom_projects', 1, 1); Utils_RecordBrowserCommon::set_search('custom_personalequipment', 2, -2); Utils_RecordBrowserCommon::set_search('custom_jobsearch', 2, 0); Utils_RecordBrowserCommon::set_search('custom_jobsearch_history', 2, -1); Utils_RecordBrowserCommon::set_search('custom_ccn_sales', 2, 0); Utils_RecordBrowserCommon::set_search('custom_monthlycost', 2, 0); Utils_RecordBrowserCommon::set_search('custom_merlin_licence', 2, 0); Utils_RecordBrowserCommon::set_search('custom_merlin_sent', 2, -2); Utils_RecordBrowserCommon::set_search('utils_attachment', 1, 0); Utils_RecordBrowserCommon::set_search('premium_listmanager', 2, 0); Utils_RecordBrowserCommon::set_search('premium_listmanager_element', 2, -1); Utils_RecordBrowserCommon::set_search('premium_warehouse', 2, 0); Utils_RecordBrowserCommon::set_search('premium_projects', 2, 0);
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); if (ModuleManager::is_installed('Utils_Attachment') == -1) { return; } PatchUtil::db_add_column('utils_attachment_download', 'expires_on', 'T'); $ret = DB::Execute('SELECT * FROM utils_attachment_download'); while ($row = $ret->FetchRow()) { if (!is_numeric($row['created_on'])) { $row['created_on'] = strtotime($row['created_on']); } DB::Execute('UPDATE utils_attachment_download SET expires_on=%T WHERE id=%s', array($row['created_on'] + 3600 * 24 * 7, $row['id'])); }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); $recordsets = Utils_RecordBrowserCommon::list_installed_recordsets(); $checkpoint = Patch::checkpoint('recordset'); $processed = $checkpoint->get('processed', array()); foreach ($recordsets as $tab => $caption) { if (isset($processed[$tab])) { continue; } $processed[$tab] = true; Patch::require_time(5); $tab = $tab . "_field"; PatchUtil::db_add_column($tab, 'export', 'I1 DEFAULT 1'); $checkpoint->set('processed', $processed); }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); $checkpoint = Patch::checkpoint('tables'); if (!$checkpoint->is_done()) { DB::CreateTable('recordbrowser_words_index', 'id I AUTO KEY,word C(3)', array('constraints' => ', UNIQUE(word)')); DB::CreateTable('recordbrowser_words_map', 'word_id I, tab C(64), record_id I, field_name C(32), position I', array('constraints' => ', FOREIGN KEY (word_id) REFERENCES recordbrowser_words_index(id)')); DB::CreateIndex('recordbrowser_words_map__idx', 'recordbrowser_words_map', 'word_id,tab,record_id,field_name'); DB::CreateIndex('recordbrowser_words_map__idx2', 'recordbrowser_words_map', 'tab,record_id'); $checkpoint->done(); } $checkpoint2 = Patch::checkpoint('tabs'); if ($checkpoint2->has('tabs')) { $tabs = $checkpoint2->get('tabs'); } else { $tabs = DB::GetCol('SELECT tab FROM recordbrowser_table_properties'); } foreach ($tabs as $i => $tab) { $checkpoint2->require_time(1); @PatchUtil::db_add_column($tab . '_data_1', 'indexed', 'I1 NOT NULL DEFAULT 0'); @DB::CreateIndex($tab . '_idxed', $tab . '_data_1', 'indexed,active'); unset($tabs[$i]); $checkpoint2->set('tabs', $tabs); }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); PatchUtil::db_add_column('utils_commondata_tree', 'position', 'I4'); reset_sub_arrays('/'); function reset_sub_arrays($name) { Utils_CommonDataCommon::reset_array_positions($name); $arr = Utils_CommonDataCommon::get_array($name, false, false, true); foreach ($arr as $k => $v) { if (empty($k)) { continue; } reset_sub_arrays($name . '/' . $k); } }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); $recordsets = Utils_RecordBrowserCommon::list_installed_recordsets(); $checkpoint = Patch::checkpoint('recordset'); $processed = $checkpoint->get('processed', array()); foreach ($recordsets as $tab => $caption) { if (isset($processed[$tab])) { continue; } $processed[$tab] = true; Patch::require_time(5); $tab = $tab . "_field"; PatchUtil::db_add_column($tab, 'caption', 'C(255)'); $checkpoint->set('processed', $processed); }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); PatchUtil::db_add_column('user_login', 'admin', 'I'); if (!in_array('aro', DB::MetaTables())) { return; } if (!function_exists('get_acl_user_id')) { function get_acl_user_id($user_id) { $sql = 'SELECT id FROM aro WHERE section_value=' . DB::qstr('Users') . ' AND value=' . DB::qstr($user_id); return DB::GetOne($sql); } function is_user_in_group($uid, $group) { // $groups_arr = Acl::$gacl->get_object_groups($uid); $object_id = $uid; $object_type = 'aro'; $group_table = 'aro_groups'; $map_table = 'groups_aro_map'; $query = 'SELECT gm.group_id FROM ' . $map_table . ' gm '; $query .= 'WHERE gm.' . $object_type . '_id=' . $object_id; $rs = DB::Execute($query); $groups_arr = array(); while ($row = $rs->FetchRow()) { $groups_arr[] = $row[0]; } // END if (!$groups_arr) { return false; }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); @PatchUtil::db_add_column('utils_attachment_local', 'func', 'C(255)'); @PatchUtil::db_add_column('utils_attachment_local', 'args', 'C(255)'); DB::Execute('UPDATE utils_attachment_local SET func=(SELECT d.f_func FROM utils_attachment_data_1 d WHERE d.id=attachment),args=(SELECT d.f_args FROM utils_attachment_data_1 d WHERE d.id=attachment) WHERE func is null'); Utils_RecordBrowserCommon::delete_record_field('utils_attachment', 'Func'); Utils_RecordBrowserCommon::delete_record_field('utils_attachment', 'Args'); Utils_RecordBrowserCommon::wipe_access('utils_attachment'); Utils_RecordBrowserCommon::add_access('utils_attachment', 'view', 'ACCESS:employee', array('(!permission' => 2, '|:Created_by' => 'USER_ID')); Utils_RecordBrowserCommon::add_access('utils_attachment', 'delete', 'ACCESS:employee', array(':Created_by' => 'USER_ID')); Utils_RecordBrowserCommon::add_access('utils_attachment', 'delete', array('ACCESS:employee', 'ACCESS:manager')); Utils_RecordBrowserCommon::add_access('utils_attachment', 'add', 'ACCESS:employee', array(), array('edited_on')); Utils_RecordBrowserCommon::add_access('utils_attachment', 'edit', 'ACCESS:employee', array('(permission' => 0, '|:Created_by' => 'USER_ID'), array('edited_on'));
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); // this patch has been renamed to make update process right // 4bb2048388cd0807ac707edeaa67dfa2 is: // modules/Utils/RecordBrowser/patches/20140814_add_processing_order.php $db = new PatchesDB(); if ($db->was_applied('4bb2048388cd0807ac707edeaa67dfa2')) { return; } $recordsets = Utils_RecordBrowserCommon::list_installed_recordsets(); $checkpoint = Patch::checkpoint('recordset'); $processed = $checkpoint->get('processed', array()); foreach ($recordsets as $tab => $caption) { if (isset($processed[$tab])) { continue; } $processed[$tab] = true; Patch::require_time(3); $tab = $tab . "_field"; $columns = DB::MetaColumnNames($tab); if (!isset($columns['PROCESSING_ORDER'])) { PatchUtil::db_add_column($tab, 'processing_order', 'I2'); DB::Execute("UPDATE {$tab} SET processing_order=position"); } $checkpoint->set('processed', $processed); }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); PatchUtil::db_add_column('recordbrowser_table_properties', 'jump_to_id', 'I1 DEFAULT 1');
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); ModuleManager::install('Utils/FileStorage'); @PatchUtil::db_add_column('utils_attachment_file', 'filestorage_id', 'I8 NOTNULL'); Patch::set_message('Processing files'); $files_checkpoint = Patch::checkpoint('files'); if (!$files_checkpoint->is_done()) { if ($files_checkpoint->has('files')) { $files = $files_checkpoint->get('files'); } else { $files = 0; } if ($files_checkpoint->has('files_qty')) { $files_qty = $files_checkpoint->get('files_qty'); } else { $files_qty = DB::GetOne('SELECT count(*) FROM utils_attachment_file'); $files_checkpoint->set('files_qty', $files_qty); } while ($ret = DB::SelectLimit('SELECT f.id,f.attach_id as aid,f.original FROM utils_attachment_file f ORDER BY f.id', 1, $files++)) { $row = $ret->FetchRow(); if (!$row) { break; } if (file_exists(DATA_DIR . '/Utils_Attachment/' . $row['aid'] . '/' . $row['id'])) { Patch::set_message('Processing file: ' . $files . '/' . $files_qty); $files_checkpoint->require_time(2); $fsid = Utils_FileStorageCommon::write_file($row['original'], DATA_DIR . '/Utils_Attachment/' . $row['aid'] . '/' . $row['id'], 'attachment_file/' . $row['id']); unlink(DATA_DIR . '/Utils_Attachment/' . $row['aid'] . '/' . $row['id']); DB::Execute('UPDATE utils_attachment_file SET filestorage_id=%d WHERE id=%d', array($fsid, $row['id'])); }
if(!$field_ids_checkpoint->is_done()) { Patch::require_time(20); $recordsets = Utils_RecordBrowserCommon::list_installed_recordsets(); foreach ($recordsets as $tab => $caption) { DB::Execute('UPDATE '.$tab.'_data_1 SET indexed=0'); } $field_ids_checkpoint->done(); } $tab_id_col_checkpoint = Patch::checkpoint('tab_id_col'); if(!$tab_id_col_checkpoint->is_done()) { Patch::require_time(20); PatchUtil::db_add_column('recordbrowser_words_map', 'tab_id', 'I2'); PatchUtil::db_add_column('recordbrowser_words_map', 'field_id', 'I2'); if(DB::is_postgresql()) { DB::Execute('ALTER TABLE recordbrowser_words_map ADD CONSTRAINT tab_id_fk FOREIGN KEY (tab_id) REFERENCES recordbrowser_table_properties'); } else { DB::Execute('ALTER TABLE recordbrowser_words_map ADD FOREIGN KEY (tab_id) REFERENCES recordbrowser_table_properties(id)'); } $tab_id_col_checkpoint->done(); } $remove_idx_checkpoint = Patch::checkpoint('remove_idx'); if(!$remove_idx_checkpoint->is_done()) { Patch::require_time(20); if(DB::is_mysql()) { $a = DB::GetRow('SHOW CREATE TABLE recordbrowser_words_map'); if(preg_match('/CONSTRAINT (.+) FOREIGN KEY .*word_id/',$a[1],$m))
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); PatchUtil::db_add_column('cron', 'description', 'C(255)');
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); PatchUtil::db_add_column('modules', 'state', 'I NOTNULL DEFAULT 0');