[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /*+*********************************************************************************** 3 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 *************************************************************************************/ 10 11 require_once 'include/Webservices/Utils.php'; 12 require_once ("modules/Users/Users.php"); 13 require_once ("include/Webservices/VtigerCRMObject.php"); 14 require_once ("include/Webservices/VtigerCRMObjectMeta.php"); 15 require_once ("include/Webservices/DataTransform.php"); 16 require_once ("include/Webservices/WebServiceError.php"); 17 require_once 'include/utils/utils.php'; 18 require_once 'include/Webservices/ModuleTypes.php'; 19 require_once ('include/Webservices/DescribeObject.php'); 20 require_once 'include/Webservices/WebserviceField.php'; 21 require_once 'include/Webservices/EntityMeta.php'; 22 require_once 'include/Webservices/VtigerWebserviceObject.php'; 23 24 /* 25 * An implementation of VTEntityType that uses the webservices api to reflect on vtiger's types. 26 */ 27 class VTWSEntityType{ 28 29 function __construct($entityTypeName, $user){ 30 $describeResult = vtws_describe($entityTypeName, $user); 31 //print_r($describeResult); 32 $this->entityTypeName = $entityTypeName; 33 $this->description = $describeResult; 34 } 35 36 function usingGlobalCurrentUser($entityTypeName){ 37 global $current_user; 38 return new VTWSEntityType($entityTypeName, $current_user); 39 40 41 } 42 43 function forUser($entityTypeName, $user){ 44 return new VTWSEntityType($entityTypeName, $user); 45 } 46 function getTabId(){ 47 global $adb; 48 if(!isset($this->tabId)){ 49 $result = $adb->pquery("select tabid from vtiger_tab where name=?", 50 array($this->entityTypeName)); 51 $this->tabId = $adb->query_result($result,0,"tabid"); 52 } 53 return $this->tabId; 54 } 55 56 function getModuleName(){ 57 return $this->moduleName; 58 } 59 60 function getFieldNames(){ 61 if(!isset($this->fieldNames)){ 62 $fields = $this->description['fields']; 63 $arr = array(); 64 foreach($fields as $field){ 65 $arr[]=$field["name"]; 66 } 67 $this->fieldNames = $arr; 68 } 69 return $this->fieldNames; 70 } 71 72 73 74 function getFieldLabel($fieldName){ 75 if(!isset($this->fieldLabels)){ 76 $this->getFieldLabels(); 77 } 78 return $this->fieldLabels[$fieldName]; 79 } 80 81 function getFieldLabels(){ 82 if(!isset($this->fieldLabels)){ 83 $fields = $this->description['fields']; 84 foreach($fields as $field){ 85 $this->fieldLabels[$field['name']] = $field['label']; 86 } 87 } 88 return $this->fieldLabels; 89 } 90 91 function getFieldType($fieldName){ 92 if(!isset($this->fieldTypes[$fieldName])){ 93 $fields = $this->description['fields']; 94 foreach($fields as $field){ 95 if($field['name']==$fieldName){ 96 $type = $field['type']; 97 $et = new VTWSFieldType(); 98 switch($type['name']){ 99 case 'reference': 100 $et->type = 'Related'; 101 $et->relatedTo = $type['refersTo']; 102 break; 103 case 'integer': 104 $et->type = 'Number'; 105 $et->format = 'Integer'; 106 break; 107 case 'url': 108 $et->type = 'Url'; 109 break; 110 case 'string': 111 $et->type = 'String'; 112 break; 113 case 'picklist': 114 $et->type = 'Select'; 115 $et->values = $type['picklistValues']; 116 break; 117 case 'datetime': 118 $et->type = 'DateTime'; 119 break; 120 case 'email': 121 $et->type = 'Email'; 122 break; 123 case 'boolean': 124 $et->type = 'Boolean'; 125 break; 126 case 'phone': 127 $et->type = 'Phone'; 128 break; 129 case 'text': 130 $et->type = 'String'; 131 break; 132 case 'a'://Autogenerated type is getting messed up for Accounts 133 $et->type = 'Id'; 134 break; 135 case 'date': 136 $et->type = 'Date'; 137 break; 138 case 'time': 139 $et->type = 'Time'; 140 break; 141 case 'double': 142 $et->type = 'Number'; 143 $et->format = 'Decimal'; 144 break; 145 case 'autogenerated': 146 $et->type = 'Id'; 147 break; 148 case 'owner': 149 $et->type = 'Owner'; 150 break; 151 case 'multipicklist': 152 $et->type = 'Select'; 153 $et->values = array(); 154 break; 155 case 'skype': 156 $et->type = 'Skype'; 157 break; 158 case 'password': 159 $et->type = 'Password'; 160 break; 161 case 'decimal': 162 $et->type = 'Number'; 163 $et->format = 'Decimal'; 164 break; 165 case 'currency': 166 $et->type = 'Number'; 167 $et->format = 'Decimal'; 168 break; 169 default: 170 print_r($type); 171 throw new Exception($type["name"]." is not supported yet."); 172 } 173 $this->fieldTypes[$fieldName] = $et; 174 break; 175 } 176 } 177 178 } 179 return $this->fieldTypes[$fieldName]; 180 } 181 182 function getFieldTypes(){ 183 $adb = $this->adb; 184 $fieldNames = $this->getFieldNames(); 185 $fieldTypes = array(); 186 foreach($fieldNames as $fieldName){ 187 $fieldTypes[$fieldName]=$this->getFieldType($fieldName); 188 } 189 return $fieldTypes; 190 } 191 192 } 193 194 195 196 class VTWSFieldType{ 197 function toArray(){ 198 $ro = new ReflectionObject($this); 199 $props = $ro->getProperties(); 200 $arr = array(); 201 foreach($props as $prop){ 202 $arr[$prop->getName()]=$prop->getValue($this); 203 } 204 return $arr; 205 } 206 } 207 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |