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()); $presense = array(0, 2); $restrictedFieldNames = array('campaignrelstatus'); $restrictedUitypes = array(4, 10, 51, 52, 53, 57, 58, 69, 70); $selectedGeneratedTypes = array(1, 2); $db = PearDatabase::getInstance(); $query = 'SELECT fieldid FROM vtiger_field WHERE presence IN ('. generateQuestionMarks($presense) .') AND tabid IN ('. generateQuestionMarks($selectedTabidsList) .') AND uitype NOT IN ('. generateQuestionMarks($restrictedUitypes) .') AND fieldname NOT IN ('. generateQuestionMarks($restrictedFieldNames) .') AND generatedtype IN ('.generateQuestionMarks($selectedGeneratedTypes).')'; $params = array_merge($presense, $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 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; } }