Ejemplo n.º 1
0
function hook_oneportalcloud_ChangePackage($upgradeid)
{
    $upgradeFields = array('Ram' => 1, 'Storage' => 3, 'Cores' => 33, 'OS' => 8, 'IPs' => 11);
    $table = 'tblupgrades as tu left join tblhosting as th on tu.relid = th.id left join tblproducts as tp on tp.id = th.packageid left join tblcustomfields as tcf on tcf.relid = tp.id left join tblcustomfieldsvalues as tcfv on tcf.id = tcfv.fieldid and tcfv.relid = tu.relid';
    $fields = 'tcfv.value as server_id, tu.relid as service_id,tp.servertype,tp.configoption1,tp.configoption2,tp.configoption3';
    $where = "tu.id = '{$upgradeid['upgradeid']}' and tcf.fieldname = 'Server ID'";
    $query = "Select {$fields} from {$table} where {$where}";
    $result = mysql_query($query);
    $params = mysql_fetch_array($result);
    if ($params['servertype'] != 'oneportalcloud') {
        return 'success';
    }
    $table = 'tblupgrades';
    $fields = 'originalvalue,newvalue';
    $where = "id = '{$upgradeid['upgradeid']}'";
    $query = "Select {$fields} from {$table} where {$where}";
    $result = mysql_query($query);
    $names = array();
    while ($data = mysql_fetch_array($result)) {
        list($cat, $opt) = explode('=>', $data['originalvalue']);
        $table = 'tblproductconfigoptions as tc left join tblproductconfigoptionssub as tcs on tc.id = tcs.configid ';
        $fields = 'tc.optionname as category, tcs.optionname';
        $where = "tcs.configid = '{$cat}' and tcs.id = '{$data['newvalue']}'";
        $query = "Select {$fields} from {$table} where {$where}";
        $res = mysql_query($query);
        $item = mysql_fetch_array($res);
        $names[$item['category']] = $item['optionname'];
    }
    $op = new OnePortalCloud($params['configoption1'], $params['configoption2'], $params['configoption3']);
    $core = 69;
    $post = array();
    foreach ($upgradeFields as $up => $cat) {
        if (isset($names[$up])) {
            $var = $op->findOption($names[$up], $cat, $core);
            $val = $var->id;
            $post[$cat] = $val;
        }
    }
    $ret = $op->upgradeServer($params['server_id'], $post);
    return 'success';
}