list of field models */ public function getFields() { if (!$this->fields) { $fieldModelsList = array(); $fieldIds = $this->getMappingSupportedFieldIdsList(); foreach ($fieldIds as $fieldId) { $fieldModel = Settings_Leads_Field_Model::getInstance($fieldId, $this); $fieldModelsList[$fieldModel->getFieldDataType()][$fieldId] = $fieldModel; } $this->fields = $fieldModelsList; } return $this->fields; } /** * Function to get mapping supported field ids list * @return list of field ids */ public function getMappingSupportedFieldIdsList() { if (!$this->supportedFieldIdsList) { $selectedTabidsList[] = getTabid($this->getName()); $restrictedFieldNames = array('campaignrelstatus'); $restrictedUitypes = $this->getRestrictedUitypes(); $selectedGeneratedTypes = array(1, 2); $db = PearDatabase::getInstance(); $query = 'SELECT fieldid FROM vtiger_field WHERE tabid IN ('. generateQuestionMarks($selectedTabidsList) .') AND uitype NOT IN ('. generateQuestionMarks($restrictedUitypes) .') AND fieldname NOT IN ('. generateQuestionMarks($restrictedFieldNames) .') AND generatedtype IN ('.generateQuestionMarks($selectedGeneratedTypes).')'; $params = array_merge($selectedTabidsList, $restrictedUitypes,$restrictedFieldNames, $selectedGeneratedTypes); $result = $db->pquery($query, $params); $numOfRows = $db->num_rows($result); $fieldIdsList = array(); for ($i=0; $i<$numOfRows; $i++) { $fieldIdsList[] = $db->query_result($result, $i, 'fieldid'); } $this->supportedFieldIdsList = $fieldIdsList; } return $this->supportedFieldIdsList; } /** * Function to get the Restricted Ui Types * @return Restricted ui types */ public function getRestrictedUitypes() { return array(4, 51, 52, 53, 57, 58, 70); } /** * Function to get instance of module * @param $moduleName * @return */ public static function getInstance($moduleName) { $moduleModel = parent::getInstance($moduleName); $objectProperties = get_object_vars($moduleModel); $moduleModel = new self(); foreach ($objectProperties as $properName => $propertyValue) { $moduleModel->$properName = $propertyValue; } return $moduleModel; } }