getPreferences(); } $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $referenceFields = $moduleModel->getFieldsByType(array('reference', 'multireference')); foreach ($referenceFields as $fieldModel) { if ($fieldModel && $fieldModel->isViewable()) { $referenceList = $fieldModel->getReferenceList(); if (in_array('Users', $referenceList)) continue; foreach ($referenceList as $refModuleName) { $refModuleModel = Vtiger_Module_Model::getInstance($refModuleName); $refModuleEmailFields = $refModuleModel->getFieldsByType('email'); if (empty($refModuleEmailFields)) continue; $accesibleFields = array(); $refModuleEmailFieldsPref = $prefs[$refModuleModel->getId()]; //updating field model prefs foreach ($refModuleEmailFields as $fieldModel) { if (!$fieldModel->isViewable()) continue; if ($refModuleEmailFieldsPref && in_array($fieldModel->getId(), $refModuleEmailFieldsPref)) { $fieldModel->set('isPreferred', true); } $accesibleFields[$fieldModel->getName()] = $fieldModel; } $refModuleEmailFields = $accesibleFields; if (!empty($refModuleEmailFields)) { $parentEmailFieldsInfo[$refModuleModel->getId()] = $refModuleEmailFields; } } } } return $parentEmailFieldsInfo; } }