[ 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 class Emails_Module_Model extends Vtiger_Module_Model{ 12 13 /** 14 * Function to check whether the module is an entity type module or not 15 * @return <Boolean> true/false 16 */ 17 public function isQuickCreateSupported() { 18 //emails module is not enabled for quick create 19 return false; 20 } 21 22 public function isWorkflowSupported() { 23 return false; 24 } 25 26 /** 27 * Function to check whether the module is summary view supported 28 * @return <Boolean> - true/false 29 */ 30 public function isSummaryViewSupported() { 31 return false; 32 } 33 34 /** 35 * Function to get emails related modules 36 * @return <Array> - list of modules 37 */ 38 public function getEmailRelatedModules() { 39 $userPrivModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); 40 41 $relatedModules = vtws_listtypes(array('email'), Users_Record_Model::getCurrentUserModel()); 42 $relatedModules = $relatedModules['types']; 43 44 foreach ($relatedModules as $key => $moduleName) { 45 if ($moduleName === 'Users') { 46 unset($relatedModules[$key]); 47 } 48 } 49 foreach ($relatedModules as $moduleName) { 50 $moduleModel = Vtiger_Module_Model::getInstance($moduleName); 51 if($userPrivModel->isAdminUser() || $userPrivModel->hasGlobalReadPermission() || $userPrivModel->hasModulePermission($moduleModel->getId())) { 52 $emailRelatedModules[] = $moduleName; 53 } 54 } 55 $emailRelatedModules[] = 'Users'; 56 return $emailRelatedModules; 57 } 58 59 /** 60 * Function to search emails for send email 61 * @param <String> $searchValue 62 * @return <Array> Result of searched emails 63 */ 64 public function searchEmails($searchValue) { 65 $emailsResult = array(); 66 $db = PearDatabase::getInstance(); 67 $currentUserModel = Users_Record_Model::getCurrentUserModel(); 68 $emailSupportedModulesList = $this->getEmailRelatedModules(); 69 70 foreach ($emailSupportedModulesList as $moduleName) { 71 $searchFields = array(); 72 $moduleModel = Vtiger_Module_Model::getInstance($moduleName); 73 $emailFieldModels = $moduleModel->getFieldsByType('email'); 74 75 foreach ($emailFieldModels as $fieldName => $fieldModel) { 76 if ($fieldModel->isViewable()) { 77 $searchFields[] = $fieldName; 78 } 79 } 80 $emailFields = $searchFields; 81 82 $nameFields = $moduleModel->getNameFields(); 83 foreach ($nameFields as $fieldName) { 84 $fieldModel = Vtiger_Field_Model::getInstance($fieldName, $moduleModel); 85 if ($fieldModel->isViewable()) { 86 $searchFields[] = $fieldName; 87 } 88 } 89 90 if ($emailFields) { 91 $moduleInstance = CRMEntity::getInstance($moduleName); 92 $queryGenerator = new QueryGenerator($moduleName, $currentUserModel); 93 $listFields = $searchFields; 94 $listFields[] = 'id'; 95 $queryGenerator->setFields($listFields); 96 97 //Opensource fix for showing up deleted records on email search 98 $queryGenerator->startGroup(""); 99 foreach ($searchFields as $key => $emailField) { 100 $queryGenerator->addCondition($emailField, trim($searchValue), 'c', 'OR'); 101 } 102 103 $queryGenerator->endGroup(); 104 $result = $db->pquery($queryGenerator->getQuery(), array()); 105 $numOfRows = $db->num_rows($result); 106 107 for($i=0; $i<$numOfRows; $i++) { 108 $row = $db->query_result_rowdata($result, $i); 109 foreach ($emailFields as $emailField) { 110 $emailFieldValue = $row[$emailField]; 111 if ($emailFieldValue) { 112 $recordLabel = getEntityFieldNameDisplay($moduleName, $nameFields, $row); 113 if (strpos($emailFieldValue, $searchValue) !== false || strpos($recordLabel, $searchValue) !== false) { 114 $emailsResult[vtranslate($moduleName, $moduleName)][$row[$moduleInstance->table_index]][] 115 = array('value' => $emailFieldValue, 116 'label' => $recordLabel . ' <b>('.$emailFieldValue.')</b>'); 117 118 } 119 } 120 } 121 } 122 } 123 } 124 return $emailsResult; 125 } 126 } 127 ?>
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 |