[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Settings/MailConverter/models/ -> Module.php (source)

   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  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1