예제 #1
0
<?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)');
예제 #3
0
<?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');
예제 #4
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]));
}
예제 #5
0
파일: tooltip.php 프로젝트: cretzu89/EPESI
<?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);
}
예제 #6
0
<?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']));
}
예제 #8
0
파일: export.php 프로젝트: cretzu89/EPESI
<?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);
}
예제 #9
0
<?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);
}
예제 #10
0
<?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);
    }
}
예제 #11
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, '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;
        }
예제 #13
0
<?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'));
예제 #14
0
<?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');
예제 #16
0
<?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']));
        }
예제 #17
0
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))
예제 #18
0
<?php

defined("_VALID_ACCESS") || die('Direct access forbidden');
PatchUtil::db_add_column('cron', 'description', 'C(255)');
예제 #19
0
<?php

defined("_VALID_ACCESS") || die('Direct access forbidden');
PatchUtil::db_add_column('modules', 'state', 'I NOTNULL DEFAULT 0');