function vtws_addEntityInfo()
 {
     require_once 'include/Webservices/Utils.php';
     $names = vtws_getModuleNameList();
     $moduleHandler = array('file' => 'include/Webservices/VtigerModuleOperation.php', 'class' => 'VtigerModuleOperation');
     foreach ($names as $tab) {
         if (in_array($tab, array('Rss', 'Webmails', 'Recyclebin'))) {
             continue;
         }
         $entityId = $this->db->getUniqueID("vtiger_ws_entity");
         $this->db->pquery('insert into vtiger_ws_entity(id,name,handler_path,handler_class,ismodule) values (?,?,?,?,?)', array($entityId, $tab, $moduleHandler['file'], $moduleHandler['class'], 1));
     }
     $entityId = $this->db->getUniqueID("vtiger_ws_entity");
     $this->db->pquery('insert into vtiger_ws_entity(id,name,handler_path,handler_class,ismodule) values (?,?,?,?,?)', array($entityId, 'Events', $moduleHandler['file'], $moduleHandler['class'], 1));
     $entityId = $this->db->getUniqueID("vtiger_ws_entity");
     $this->db->pquery('insert into vtiger_ws_entity(id,name,handler_path,handler_class,ismodule) values (?,?,?,?,?)', array($entityId, 'Users', $moduleHandler['file'], $moduleHandler['class'], 1));
     vtws_addDefaultActorTypeEntity('Groups', array('fieldNames' => 'groupname', 'indexField' => 'groupid', 'tableName' => 'vtiger_groups'));
     require_once "include/Webservices/WebServiceError.php";
     require_once 'include/Webservices/VtigerWebserviceObject.php';
     $webserviceObject = VtigerWebserviceObject::fromName($this->db, 'Groups');
     $this->db->pquery("insert into vtiger_ws_entity_tables(webservice_entity_id,table_name) values \n\t\t\t(?,?)", array($webserviceObject->getEntityId(), 'vtiger_groups'));
     vtws_addDefaultActorTypeEntity('Currency', array('fieldNames' => 'currency_name', 'indexField' => 'id', 'tableName' => 'vtiger_currency_info'));
     $webserviceObject = VtigerWebserviceObject::fromName($this->db, 'Currency');
     $this->db->pquery("insert into vtiger_ws_entity_tables(webservice_entity_id,table_name) values (?,?)", array($webserviceObject->getEntityId(), 'vtiger_currency_info'));
     vtws_addDefaultActorTypeEntity('DocumentFolders', array('fieldNames' => 'foldername', 'indexField' => 'folderid', 'tableName' => 'vtiger_attachmentsfolder'));
     $webserviceObject = VtigerWebserviceObject::fromName($this->db, 'DocumentFolders');
     $this->db->pquery("insert into vtiger_ws_entity_tables(webservice_entity_id,table_name) values (?,?)", array($webserviceObject->getEntityId(), 'vtiger_attachmentsfolder'));
 }
Beispiel #2
0
 function return_global_var_value($sql, $var, $module)
 {
     global $log, $adb, $gvvalidationinfo;
     $list_of_modules = array();
     $list_of_modules['Default'] = '';
     $isBusinessMapping = substr($var, 0, 16) == 'BusinessMapping_';
     $query = $adb->pquery($sql, array($var));
     $gvvalidationinfo[] = 'candidate variable records found: ' . $adb->num_rows($query);
     for ($i = 0; $i < $adb->num_rows($query); $i++) {
         $gvvalidationinfo[] = 'evaluate candidate <a href="index.php?action=DetailView&record=' . $adb->query_result($query, $i, 'globalvariableid') . '&module=GlobalVariable">' . $adb->query_result($query, $i, 'globalno') . '</a>';
         if ($adb->query_result($query, $i, 'module_list') == '') {
             if ($isBusinessMapping) {
                 $value = $adb->query_result($query, $i, 'bmapid');
             } else {
                 $value = $adb->query_result($query, $i, 'value');
                 if ($value == '[[Use Description]]') {
                     $value = $adb->query_result($query, $i, 'description');
                 }
             }
             $list_of_modules['Default'] = $value;
         } else {
             $in_module_list = $adb->query_result($query, $i, 'in_module_list');
             $modules_list = array_map('trim', explode('|##|', $adb->query_result($query, $i, 'module_list')));
             if ($in_module_list == 1) {
                 for ($j = 0; $j < sizeof($modules_list); $j++) {
                     if ($isBusinessMapping) {
                         $value = $adb->query_result($query, $i, 'bmapid');
                     } else {
                         $value = $adb->query_result($query, $i, 'value');
                         if ($value == '[[Use Description]]') {
                             $value = $adb->query_result($query, $i, 'description');
                         }
                     }
                     $list_of_modules[$modules_list[$j]] = $value;
                 }
             } else {
                 $all_modules = vtws_getModuleNameList();
                 $other_modules = array_diff($all_modules, $modules_list);
                 for ($l = 0; $l < sizeof($other_modules); $l++) {
                     if ($isBusinessMapping) {
                         $value = $adb->query_result($query, $i, 'bmapid');
                     } else {
                         $value = $adb->query_result($query, $i, 'value');
                         if ($value == '[[Use Description]]') {
                             $value = $adb->query_result($query, $i, 'description');
                         }
                     }
                     $value = $isBusinessMapping ? $adb->query_result($query, $i, 'bmapid') : $adb->query_result($query, $i, 'value');
                     $list_of_modules[$other_modules[$l]] = $value;
                 }
             }
         }
     }
     $gvvalidationinfo[] = "candidate list of modules to look for {$module}: " . print_r($list_of_modules, true);
     if (sizeof($list_of_modules) > 0) {
         if (array_key_exists($module, $list_of_modules)) {
             return $list_of_modules[$module];
         } else {
             return $list_of_modules['Default'];
         }
     }
     return '';
 }
	<td class='gvtestlabeltext'><?php 
echo getTranslatedString('User', 'GlobalVariable');
?>
</td>
	<td><select name="ulist" id="ulist" style='width: 250px;'><?php 
echo getUserslist();
?>
</select></td>
</tr>
<tr>
	<td class='gvtestlabeltext'><?php 
echo getTranslatedString('Module', 'GlobalVariable');
?>
</td>
	<td><select name="mlist" id="mlist" style='width: 250px;'><?php 
$mlist = vtws_getModuleNameList();
$modlist = array();
foreach ($mlist as $mod) {
    $modlist[$mod] = getTranslatedString($mod, $mod);
}
asort($modlist);
echo get_select_options_with_id($modlist, '');
?>
</select></td>
</tr>
<tr><td style="height:6px"></td></tr>
<tr>
	<td colspan="2" align="center"><button onclick="javascript:gvSearchVariableValue();"><?php 
echo getTranslatedString('Search Value', 'GlobalVariable');
?>
</button></td>
function webserviceMigration()
{
    global $adb;
    require_once 'include/utils/CommonUtils.php';
    require_once 'include/Webservices/Utils.php';
    $fieldTypeInfo = array('picklist' => array(15, 16), 'text' => array(19, 20, 21, 24), 'autogenerated' => array(3), 'phone' => array(11), 'multipicklist' => array(33), 'url' => array(17), 'skype' => array(85), 'boolean' => array(56, 156), 'owner' => array(53), 'file' => array(61, 28));
    $referenceMapping = array("50" => array("Accounts"), "51" => array("Accounts"), "57" => array("Contacts"), "58" => array("Campaigns"), "73" => array("Accounts"), "75" => array("Vendors"), "76" => array("Potentials"), "78" => array("Quotes"), "80" => array("SalesOrder"), "81" => array("Vendors"), "101" => array("Users"), "52" => array("Users"), "357" => array("Contacts", "Accounts", "Leads", "Users", "Vendors"), "59" => array("Products"), "66" => array("Leads", "Accounts", "Potentials", "HelpDesk"), "77" => array("Users"), "68" => array("Contacts", "Accounts"), "117" => array('Currency'), "116" => array('Currency'), '26' => array('DocumentFolders'), '10' => array());
    ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_fieldtype(fieldtypeid integer(19) not null auto_increment,uitype varchar(30)not null,fieldtype varchar(200) not null,PRIMARY KEY(fieldtypeid),UNIQUE KEY uitype_idx (uitype)) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_referencetype(fieldtypeid integer(19) not null,type varchar(25) not null,PRIMARY KEY(fieldtypeid,type),  CONSTRAINT `fk_1_vtiger_referencetype` FOREIGN KEY (`fieldtypeid`) REFERENCES `vtiger_ws_fieldtype` (`fieldtypeid`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_userauthtoken(userid integer(19) not null,token varchar(25) not null,expiretime INTEGER(19),PRIMARY KEY(userid,expiretime),UNIQUE KEY userid_idx (userid)) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    ExecuteQuery("alter table vtiger_users add column accesskey varchar(36);");
    $fieldid = $adb->getUniqueID("vtiger_field");
    $usersTabId = getTabid("Users");
    $user_adv_block_id = getBlockId($usersTabId, 'LBL_USER_ADV_OPTIONS');
    ExecuteQuery("insert into vtiger_field (tabid, fieldid, columnname, tablename, generatedtype, uitype, fieldname, fieldlabel, readonly, presence, selected, maximumlength, sequence, block, displaytype, typeofdata, quickcreate, quickcreatesequence, info_type, masseditable, helpinfo) values({$usersTabId},{$fieldid},'accesskey','vtiger_users',1,3,'accesskey','Webservice Access Key',1,0,0,100,2,{$user_adv_block_id},2,'V~O',1,null,'BAS',0,'Webservice Access Key');");
    foreach ($referenceMapping as $uitype => $referenceArray) {
        $success = true;
        $result = $adb->pquery("insert into vtiger_ws_fieldtype(uitype,fieldtype) values(?,?)", array($uitype, "reference"));
        if (!is_object($result)) {
            $success = false;
        }
        $result = $adb->pquery("select * from vtiger_ws_fieldtype where uitype=?", array($uitype));
        $rowCount = $adb->num_rows($result);
        for ($i = 0; $i < $rowCount; $i++) {
            $fieldTypeId = $adb->query_result($result, $i, "fieldtypeid");
            foreach ($referenceArray as $index => $referenceType) {
                $result = $adb->pquery("insert into vtiger_ws_referencetype(fieldtypeid,type) values(?,?)", array($fieldTypeId, $referenceType));
                if (!is_object($result)) {
                    echo "failed for: {$referenceType}, uitype: {$fieldTypeId}";
                    $success = false;
                }
            }
        }
        if (!$success) {
            echo "Migration Query Failed";
            break;
        }
    }
    foreach ($fieldTypeInfo as $type => $uitypes) {
        foreach ($uitypes as $uitype) {
            $result = $adb->pquery("insert into vtiger_ws_fieldtype(uitype,fieldtype) values(?,?)", array($uitype, $type));
            if (!is_object($result)) {
                "Query for fieldtype details({$uitype}:uitype,{$type}:fieldtype)";
            }
        }
    }
    $sql = "select * from vtiger_users";
    $updateQuery = "update vtiger_users set accesskey=? where id=?";
    $result = $adb->pquery($sql, array());
    $rowCount = $adb->num_rows($result);
    for ($i = 0; $i < $rowCount; $i++) {
        $userId = $adb->query_result($result, $i, "id");
        $insertResult = $adb->pquery($updateQuery, array(vtws_generateRandomAccessKey(16), $userId));
        if (!is_object($insertResult)) {
            echo "failed for user: "******"user_name");
            break;
        }
    }
    ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_entity(id integer(11) not null auto_increment PRIMARY\n\t\tKEY,name varchar(25) not null UNIQUE,handler_path varchar(255) NOT NULL,handler_class varchar(64) NOT NULL,\n\t\tismodule int(3) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_entity_name(entity_id integer(11) not null PRIMARY\n\t\tKEY,name_fields varchar(50),index_field varchar(50),table_name varchar(50)) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    $names = vtws_getModuleNameList();
    $moduleHandler = array('file' => 'include/Webservices/VtigerModuleOperation.php', 'class' => 'VtigerModuleOperation');
    foreach ($names as $tab) {
        if (in_array($tab, array('Rss', 'Webmails', 'Recyclebin'))) {
            continue;
        }
        $entityId = $adb->getUniqueID("vtiger_ws_entity");
        $adb->pquery('insert into vtiger_ws_entity(id,name,handler_path,handler_class,ismodule) values (?,?,?,?,?)', array($entityId, $tab, $moduleHandler['file'], $moduleHandler['class'], 1));
    }
    $entityId = $adb->getUniqueID("vtiger_ws_entity");
    $adb->pquery('insert into vtiger_ws_entity(id,name,handler_path,handler_class,ismodule) values (?,?,?,?,?)', array($entityId, 'Events', $moduleHandler['file'], $moduleHandler['class'], 1));
    $entityId = $adb->getUniqueID("vtiger_ws_entity");
    $adb->pquery('insert into vtiger_ws_entity(id,name,handler_path,handler_class,ismodule) values (?,?,?,?,?)', array($entityId, 'Users', $moduleHandler['file'], $moduleHandler['class'], 1));
    vtws_addDefaultActorTypeEntity('Groups', array('fieldNames' => 'groupname', 'indexField' => 'groupid', 'tableName' => 'vtiger_groups'));
    ExecuteQuery("CREATE TABLE IF NOT EXISTS `vtiger_ws_entity_tables` (`webservice_entity_id` int(11) NOT NULL ,`table_name` varchar(50) NOT NULL , PRIMARY KEY  (`webservice_entity_id`,`table_name`), CONSTRAINT `fk_1_vtiger_ws_actor_tables` FOREIGN KEY (`webservice_entity_id`) REFERENCES `vtiger_ws_entity` (`id`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8");
    ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_entity_fieldtype(fieldtypeid integer(19) not null auto_increment,table_name varchar(50) not null,field_name varchar(50) not null,fieldtype varchar(200) not null,PRIMARY KEY(fieldtypeid),UNIQUE KEY vtiger_idx_1_tablename_fieldname (table_name,field_name)) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_entity_referencetype(fieldtypeid integer(19) not null,type varchar(25) not null,PRIMARY KEY(fieldtypeid,type),  CONSTRAINT `vtiger_fk_1_actors_referencetype` FOREIGN KEY (`fieldtypeid`) REFERENCES `vtiger_ws_entity_fieldtype` (`fieldtypeid`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    require_once "include/Webservices/WebServiceError.php";
    require_once 'include/Webservices/VtigerWebserviceObject.php';
    $webserviceObject = VtigerWebserviceObject::fromName($adb, 'Groups');
    ExecuteQuery("insert into vtiger_ws_entity_tables(webservice_entity_id,table_name) values ({$webserviceObject->getEntityId()},'vtiger_groups')");
    ExecuteQuery("CREATE TABLE IF NOT EXISTS vtiger_ws_operation(operationid int(11) not null auto_increment PRIMARY KEY,name varchar(128) \n\tnot null UNIQUE,handler_path varchar(255),handler_method varchar(64), type varchar(8) not null,prelogin int(3) not null, KEY vtiger_idx_ws_oepration_prelogin (prelogin)) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    ExecuteQuery("CREATE TABLE IF NOT EXISTS `vtiger_ws_operation_parameters` (`operationid` int(11) NOT NULL, `name` varchar(128) NOT NULL,\n\t\t`type` varchar(64) NOT NULL, sequence int(11) not null,PRIMARY KEY  (`operationid`,`name`), CONSTRAINT \n\t\t`vtiger_fk_1_ws_operation_params` FOREIGN KEY (`operationid`) REFERENCES `vtiger_ws_operation` (`operationid`) \n\t\tON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    $operationMeta = array("login" => array("include" => array("include/Webservices/Login.php"), "handler" => "vtws_login", "params" => array("username" => "String", "accessKey" => "String"), "prelogin" => 1, "type" => "POST"), "retrieve" => array("include" => array("include/Webservices/Retrieve.php"), "handler" => "vtws_retrieve", "params" => array("id" => "String"), "prelogin" => 0, "type" => "GET"), "create" => array("include" => array("include/Webservices/Create.php"), "handler" => "vtws_create", "params" => array("elementType" => "String", "element" => "encoded"), "prelogin" => 0, "type" => "POST"), "update" => array("include" => array("include/Webservices/Update.php"), "handler" => "vtws_update", "params" => array("element" => "encoded"), "prelogin" => 0, "type" => "POST"), "delete" => array("include" => array("include/Webservices/Delete.php"), "handler" => "vtws_delete", "params" => array("id" => "String"), "prelogin" => 0, "type" => "POST"), "sync" => array("include" => array("include/Webservices/GetUpdates.php"), "handler" => "vtws_sync", "params" => array("modifiedTime" => "DateTime", "elementType" => "String"), "prelogin" => 0, "type" => "GET"), "query" => array("include" => array("include/Webservices/Query.php"), "handler" => "vtws_query", "params" => array("query" => "String"), "prelogin" => 0, "type" => "GET"), "logout" => array("include" => array("include/Webservices/Logout.php"), "handler" => "vtws_logout", "params" => array("sessionName" => "String"), "prelogin" => 0, "type" => "POST"), "listtypes" => array("include" => array("include/Webservices/ModuleTypes.php"), "handler" => "vtws_listtypes", "params" => array(), "prelogin" => 0, "type" => "GET"), "getchallenge" => array("include" => array("include/Webservices/AuthToken.php"), "handler" => "vtws_getchallenge", "params" => array("username" => "String"), "prelogin" => 1, "type" => "GET"), "describe" => array("include" => array("include/Webservices/DescribeObject.php"), "handler" => "vtws_describe", "params" => array("elementType" => "String"), "prelogin" => 0, "type" => "GET"), "extendsession" => array("include" => array("include/Webservices/ExtendSession.php"), "handler" => "vtws_extendSession", 'params' => array(), "prelogin" => 1, "type" => "POST"));
    $createOperationQuery = "insert into vtiger_ws_operation(operationid,name,handler_path,handler_method,type,prelogin) \n\t\tvalues (?,?,?,?,?,?);";
    $createOperationParamsQuery = "insert into vtiger_ws_operation_parameters(operationid,name,type,sequence) \n\t\tvalues (?,?,?,?);";
    foreach ($operationMeta as $operationName => $operationDetails) {
        $operationId = $adb->getUniqueID("vtiger_ws_operation");
        $result = $adb->pquery($createOperationQuery, array($operationId, $operationName, $operationDetails['include'], $operationDetails['handler'], $operationDetails['type'], $operationDetails['prelogin']));
        $params = $operationDetails['params'];
        $sequence = 1;
        foreach ($params as $paramName => $paramType) {
            $result = $adb->pquery($createOperationParamsQuery, array($operationId, $paramName, $paramType, $sequence++));
        }
    }
    vtws_addDefaultActorTypeEntity('Currency', array('fieldNames' => 'currency_name', 'indexField' => 'id', 'tableName' => 'vtiger_currency_info'));
    require_once 'include/Webservices/VtigerWebserviceObject.php';
    $webserviceObject = VtigerWebserviceObject::fromName($adb, 'Currency');
    ExecuteQuery("insert into vtiger_ws_entity_tables(webservice_entity_id,table_name) values ({$webserviceObject->getEntityId()},'vtiger_currency_info')");
    vtws_addDefaultActorTypeEntity('DocumentFolders', array('fieldNames' => 'foldername', 'indexField' => 'folderid', 'tableName' => 'vtiger_attachmentsfolder'));
    $webserviceObject = VtigerWebserviceObject::fromName($adb, 'DocumentFolders');
    ExecuteQuery("insert into vtiger_ws_entity_tables(webservice_entity_id,table_name) values ({$webserviceObject->getEntityId()},'vtiger_attachmentsfolder')");
    $success = true;
    $fieldTypeId = $adb->getUniqueID("vtiger_ws_entity_fieldtype");
    $result = $adb->pquery("insert into vtiger_ws_entity_fieldtype(fieldtypeid,table_name,field_name,fieldtype) values(?,?,?,?);", array($fieldTypeId, 'vtiger_attachmentsfolder', 'createdby', "reference"));
    if (!is_object($result)) {
        echo "failed fo init<br>";
        $success = false;
    }
    $result = $adb->pquery("insert into vtiger_ws_entity_referencetype(fieldtypeid,type) values(?,?)", array($fieldTypeId, 'Users'));
    if (!is_object($result)) {
        echo "failed for: Users, fieldtypeid: {$fieldTypeId}";
        $success = false;
    }
    if (!$success) {
        echo "Migration Query Failed";
    }
}
function VT520GA_webserviceMigrate()
{
    require_once 'include/Webservices/Utils.php';
    $customWebserviceDetails = array("name" => "revise", "include" => "include/Webservices/Revise.php", "handler" => "vtws_revise", "prelogin" => 0, "type" => "POST");
    $customWebserviceParams = array(array("name" => 'element', "type" => 'Encoded'));
    echo 'INITIALIZING WEBSERVICE...';
    $operationId = vtws_addWebserviceOperation($customWebserviceDetails['name'], $customWebserviceDetails['include'], $customWebserviceDetails['handler'], $customWebserviceDetails['type']);
    if ($operationId === null && $operationId > 0) {
        echo 'FAILED TO SETUP ' . $customWebserviceDetails['name'] . ' WEBSERVICE';
        die;
    }
    $sequence = 1;
    foreach ($customWebserviceParams as $param) {
        $status = vtws_addWebserviceOperationParam($operationId, $param['name'], $param['type'], $sequence++);
        if ($status === false) {
            echo 'FAILED TO SETUP ' . $customWebserviceDetails['name'] . ' WEBSERVICE HALFWAY THOURGH';
            die;
        }
    }
    $moduleList = vtws_getModuleNameList();
    foreach ($moduleList as $moduleName) {
        vtws_addDefaultModuleTypeEntity($moduleName);
    }
    ExecuteQuery("delete from vtiger_ws_fieldtype where uitype=116;");
    ExecuteQuery("update vtiger_field set uitype=117 where tabid=29 and fieldname='currency_id';");
}