private function retrieveMetaForBlock($block)
 {
     global $adb;
     $tabid = $this->getTabId();
     require 'user_privileges/user_privileges_' . $this->user->id . '.php';
     if ($is_admin == true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] == 0) {
         $sql = "select *, '0' as readonly from vtiger_field where tabid =? and block in (" . generateQuestionMarks($block) . ") and displaytype in (1,2,3,4)";
         $params = array($tabid, $block);
     } else {
         $profileList = getCurrentUserProfileList();
         if (count($profileList) > 0) {
             $sql = "SELECT vtiger_field.*, vtiger_profile2field.readonly\n\t\t\t\t\t\tFROM vtiger_field\n\t\t\t\t\t\tINNER JOIN vtiger_profile2field\n\t\t\t\t\t\tON vtiger_profile2field.fieldid = vtiger_field.fieldid\n\t\t\t\t\t\tINNER JOIN vtiger_def_org_field\n\t\t\t\t\t\tON vtiger_def_org_field.fieldid = vtiger_field.fieldid\n\t\t\t\t\t\tWHERE vtiger_field.tabid =? AND vtiger_profile2field.visible = 0 \n\t\t\t\t\t\tAND vtiger_profile2field.profileid IN (" . generateQuestionMarks($profileList) . ")\n\t\t\t\t\t\tAND vtiger_def_org_field.visible = 0 and vtiger_field.block in (" . generateQuestionMarks($block) . ") and vtiger_field.displaytype in (1,2,3,4) and vtiger_field.presence in (0,2) group by columnname";
             $params = array($tabid, $profileList, $block);
         } else {
             $sql = "SELECT vtiger_field.*, vtiger_profile2field.readonly\n\t\t\t\t\t\tFROM vtiger_field\n\t\t\t\t\t\tINNER JOIN vtiger_profile2field\n\t\t\t\t\t\tON vtiger_profile2field.fieldid = vtiger_field.fieldid\n\t\t\t\t\t\tINNER JOIN vtiger_def_org_field\n\t\t\t\t\t\tON vtiger_def_org_field.fieldid = vtiger_field.fieldid\n\t\t\t\t\t\tWHERE vtiger_field.tabid=? \n\t\t\t\t\t\tAND vtiger_profile2field.visible = 0 \n\t\t\t\t\t\tAND vtiger_def_org_field.visible = 0 and vtiger_field.block in (" . generateQuestionMarks($block) . ") and vtiger_field.displaytype in (1,2,3,4) and vtiger_field.presence in (0,2) group by columnname";
             $params = array($tabid, $block);
         }
     }
     // Bulk Save Mode: Group by is not required!?
     if (CRMEntity::isBulkSaveMode()) {
         $sql = preg_replace("/group by [^ ]*/", " ", $sql);
     }
     // END
     $result = $adb->pquery($sql, $params);
     $noofrows = $adb->num_rows($result);
     $referenceArray = array();
     $knownFieldArray = array();
     for ($i = 0; $i < $noofrows; $i++) {
         $fieldname = $adb->query_result($result, $i, "fieldname");
         if (strcasecmp($fieldname, 'imagename') === 0) {
             continue;
         }
         $webserviceField = WebserviceField::fromQueryResult($adb, $result, $i);
         $this->moduleFields[$webserviceField->getFieldName()] = $webserviceField;
     }
 }
 function initialize()
 {
     global $adb, $current_user;
     if ($this->moduleMeta === null) {
         $moduleHandler = vtws_getModuleHandlerFromName($this->parent->getModuleName(), $current_user);
         $this->moduleMeta = $moduleHandler->getMeta();
     }
     if ($this->parent->getModuleName() == 'Products' and $this->parent->getFieldName() == 'imagename') {
         $sql = "select *, '0' as readonly from vtiger_field where vtiger_field.tabid=14 and fieldname='imagename'";
         $result = $adb->pquery($sql, array());
         $webserviceField = WebserviceField::fromQueryResult($adb, $result, 0);
         $this->fieldInfo = $webserviceField;
     } else {
         $moduleFields = $this->moduleMeta->getModuleFields();
         $this->fieldInfo = $moduleFields[$this->parent->getFieldName()];
     }
 }