[ 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 Settings_MailConverter_Module_Model extends Settings_Vtiger_Module_Model { 12 13 var $name = 'MailConverter'; 14 15 /** 16 * Function to get Create record url 17 * @return <String> Url 18 */ 19 public function getCreateRecordUrl() { 20 $url = 'index.php?module=MailConverter&parent='.$this->getParentName().'&action=CheckMailBoxMaxLimit'; 21 return 'javascript:Settings_MailConverter_List_Js.checkMailBoxMaxLimit("'.$url.'")'; 22 } 23 24 /** 25 * Function to get List of fields for mail converter record 26 * @return <Array> List of fields 27 */ 28 public function getFields() { 29 $fields = array( 30 'scannername' => array('name' => 'scannername','typeofdata'=>'V~M','label'=>'Scanner Name','datatype'=>'string'), 31 'server' => array('name' => 'server','typeofdata'=>'V~M','label'=>'Server','datatype'=>'string'), 32 'username' => array('name' => 'username','typeofdata'=>'V~M','label'=>'User Name','datatype'=>'string') , 33 'password' => array('name' => 'password','typeofdata'=>'V~M','label'=>'Password','datatype'=>'password') , 34 'protocol' => array('name' => 'protocol','typeofdata'=>'C~O','label'=>'Protocol','datatype'=>'radio') , 35 'ssltype' => array('name' => 'ssltype','typeofdata'=>'C~O','label'=>'SSL Type','datatype'=>'radio') , 36 'sslmethod' => array('name' => 'sslmethod','typeofdata'=>'C~O','label'=>'SSL Method','datatype'=>'radio') , 37 'connecturl' => array('name' => 'connecturl', 'typeofdata'=>'V~O','label' => 'Connect URL','datatype' => 'string','isEditable'=>false), 38 'searchfor' => array('name' => 'searchfor', 'typeofdata'=>'V~O','label'=>'Look For','datatype'=>'picklist'), 39 'markas' => array('name' => 'markas', 'typeofdata'=>'V~O','label'=>'After Scan','datatype'=>'picklist'), 40 'isvalid' => array('name' => 'isvalid', 'typeofdata'=>'C~O','label'=>'Status','datatype'=>'boolean'), 41 'time_zone' => array('name' => 'time_zone', 'typeofdata'=>'V~O','label'=>'Time Zone','datatype'=>'picklist')); 42 43 $fieldsList = array(); 44 foreach($fields as $fieldName => $fieldInfo) { 45 $fieldModel = new Settings_MailConverter_Field_Model(); 46 foreach($fieldInfo as $key=>$value) { 47 $fieldModel->set($key, $value); 48 } 49 $fieldsList[$fieldName] = $fieldModel; 50 } 51 return $fieldsList; 52 } 53 54 /** 55 * Function to get the field of setup Rules 56 * @return <Array> List of setup rule fields 57 */ 58 59 public function getSetupRuleFiels() { 60 $ruleFields = array( 61 'fromaddress' => array('name' => 'fromaddress', 'label' => 'LBL_FROM', 'datatype' => 'email'), 62 'toaddress' => array('name' => 'toaddress', 'label' => 'LBL_TO', 'datatype' => 'email'), 63 'cc' => array('name' => 'cc', 'label' => 'LBL_CC', 'datatype' => 'email'), 64 'bcc' => array('name' => 'bcc', 'label' => 'LBL_BCC', 'datatype' => 'email'), 65 'subject' => array('name' => 'subject', 'label' => 'LBL_SUBJECT', 'datatype' => 'picklist'), 66 'body' => array('name' => 'body', 'label' => 'LBL_BODY', 'datatype' => 'picklist'), 67 'matchusing' => array('name' => 'matchusing', 'label' => 'LBL_MATCH', 'datatype' => 'radio'), 68 'action' => array('name' => 'action', 'label' => 'LBL_ACTION', 'datatype' => 'picklist') 69 ); 70 $ruleFieldsList = array(); 71 foreach($ruleFields as $fieldName => $fieldInfo) { 72 $fieldModel = new Settings_MailConverter_RuleField_Model(); 73 foreach($fieldInfo as $key=>$value) { 74 $fieldModel->set($key, $value); 75 } 76 $ruleFieldsList[$fieldName] = $fieldModel; 77 } 78 return $ruleFieldsList; 79 } 80 81 /** 82 * Function to get Default url for this module 83 * @return <String> Url 84 */ 85 public function getDefaultUrl() { 86 return 'index.php?module=' . $this->getName() . '&parent=' . $this->getParentName() . '&view=List'; 87 } 88 89 public function isPagingSupported() { 90 return false; 91 } 92 93 public function MailBoxExists() { 94 $db = PearDatabase::getInstance(); 95 $result = $db->pquery("SELECT COUNT(*) AS count FROM vtiger_mailscanner", array()); 96 $response = $db->query_result($result, 0, 'count'); 97 if ($response == 0) 98 return false; 99 return true; 100 } 101 102 public function getDefaultId() { 103 $db = PearDatabase::getInstance(); 104 $result = $db->pquery("SELECT MIN(scannerid) AS id FROM vtiger_mailscanner", array()); 105 $id = $db->query_result($result, 0, 'id'); 106 return $id; 107 } 108 109 public function getMailboxes() { 110 $mailBox = array(); 111 $db = PearDatabase::getInstance(); 112 $result = $db->pquery("SELECT scannerid, scannername FROM vtiger_mailscanner", array()); 113 $numOfRows = $db->num_rows($result); 114 for ($i = 0; $i < $numOfRows; $i++) { 115 $mailBox[$i]['scannerid'] = $db->query_result($result, $i, 'scannerid'); 116 $mailBox[$i]['scannername'] = $db->query_result($result, $i, 'scannername'); 117 } 118 return $mailBox; 119 } 120 121 public function getScannedFolders($id) { 122 $folders = array(); 123 $db = PearDatabase::getInstance(); 124 $result = $db->pquery("SELECT foldername FROM vtiger_mailscanner_folders WHERE scannerid=? AND enabled=1", array($id)); 125 $numOfRows = $db->num_rows($result); 126 for ($i = 0; $i < $numOfRows; $i++) { 127 $folders[$i] = $db->query_result($result, $i, 'foldername'); 128 } 129 return $folders; 130 } 131 132 public function getFolders($id) { 133 include_once 'modules/Settings/MailConverter/handlers/MailScannerInfo.php'; 134 include_once 'modules/Settings/MailConverter/handlers/MailBox.php'; 135 $scannerName = Settings_MailConverter_Module_Model::getScannerName($id); 136 $scannerInfo = new Vtiger_MailScannerInfo($scannerName); 137 $mailBox = new Vtiger_MailBox($scannerInfo); 138 $isConnected = $mailBox->connect(); 139 if($isConnected) { 140 $allFolders = $mailBox->getFolders(); 141 $folders = array(); 142 $selectedFolders = Settings_MailConverter_Module_Model::getScannedFolders($id); 143 if(is_array($allFolders)) { 144 foreach ($allFolders as $a) { 145 if (in_array($a, $selectedFolders)) { 146 $folders[$a] = 'checked'; 147 } else { 148 $folders[$a] = ''; 149 } 150 } 151 return $folders; 152 } else { 153 return $allFolders; 154 } 155 156 } 157 return false; 158 } 159 160 public function getScannerName($id) { 161 $db = PearDatabase::getInstance(); 162 $result = $db->pquery("SELECT scannername FROM vtiger_mailscanner WHERE scannerid=?", array($id)); 163 $scannerName = $db->query_result($result, 0, 'scannername'); 164 return $scannerName; 165 } 166 167 public function updateFolders($scannerId, $folders) { 168 include_once 'modules/Settings/MailConverter/handlers/MailScannerInfo.php'; 169 $db = PearDatabase::getInstance(); 170 $scannerName = Settings_MailConverter_Module_Model::getScannerName($scannerId); 171 $scannerInfo = new Vtiger_MailScannerInfo($scannerName); 172 $lastScan = $scannerInfo->dateBasedOnMailServerTimezone('d-M-Y'); 173 $db->pquery("DELETE FROM vtiger_mailscanner_folders WHERE scannerid=?", array($scannerId)); 174 foreach ($folders as $folder) { 175 $db->pquery("INSERT INTO vtiger_mailscanner_folders VALUES(?,?,?,?,?,?)", array('', $scannerId, $folder, $lastScan, '0', '1')); 176 } 177 } 178 179 }
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 |