[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Campaigns/models/ -> RelationListView.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 Campaigns_RelationListView_Model extends Vtiger_RelationListView_Model {
  12  
  13      /**
  14       * Function to get the links for related list
  15       * @return <Array> List of action models <Vtiger_Link_Model>
  16       */
  17  	public function getLinks() {
  18          $relatedLinks = parent::getLinks();
  19          $relationModel = $this->getRelationModel();
  20          $relatedModuleName = $relationModel->getRelationModuleModel()->getName();
  21  
  22          if (array_key_exists($relatedModuleName, $relationModel->getEmailEnabledModulesInfoForDetailView())) {
  23              $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
  24              if ($currentUserPriviligesModel->hasModulePermission(getTabid('Emails'))) {
  25                  $emailLink = Vtiger_Link_Model::getInstanceFromValues(array(
  26                          'linktype' => 'LISTVIEWBASIC',
  27                          'linklabel' => vtranslate('LBL_SEND_EMAIL', $relatedModuleName),
  28                          'linkurl' => "javascript:Campaigns_RelatedList_Js.triggerSendEmail('index.php?module=$relatedModuleName&view=MassActionAjax&mode=showComposeEmailForm&step=step1','Emails');",
  29                          'linkicon' => ''
  30                  ));
  31                  $emailLink->set('_sendEmail',true);
  32                  $relatedLinks['LISTVIEWBASIC'][] = $emailLink;
  33              }
  34          }
  35          return $relatedLinks;
  36      }
  37  
  38      /**
  39       * Function to get list of record models in this relation
  40       * @param <Vtiger_Paging_Model> $pagingModel
  41       * @return <array> List of record models <Vtiger_Record_Model>
  42       */
  43  	public function getEntries($pagingModel) {
  44          $relationModel = $this->getRelationModel();
  45          $parentRecordModel = $this->getParentRecordModel();
  46          $relatedModuleName = $relationModel->getRelationModuleModel()->getName();
  47  
  48          $relatedRecordModelsList = parent::getEntries($pagingModel);
  49          $emailEnabledModulesInfo = $relationModel->getEmailEnabledModulesInfoForDetailView();
  50  
  51          if (array_key_exists($relatedModuleName, $emailEnabledModulesInfo) && $relatedRecordModelsList) {
  52              $fieldName = $emailEnabledModulesInfo[$relatedModuleName]['fieldName'];
  53              $tableName = $emailEnabledModulesInfo[$relatedModuleName]['tableName'];
  54  
  55              $db = PearDatabase::getInstance();
  56              $relatedRecordIdsList = array_keys($relatedRecordModelsList);
  57  
  58              $query = "SELECT campaignrelstatus, $fieldName FROM $tableName
  59                          INNER JOIN vtiger_campaignrelstatus ON vtiger_campaignrelstatus.campaignrelstatusid = $tableName.campaignrelstatusid
  60                          WHERE $fieldName IN (". generateQuestionMarks($relatedRecordIdsList).") AND campaignid = ?";
  61              array_push($relatedRecordIdsList, $parentRecordModel->getId());
  62  
  63              $result = $db->pquery($query, $relatedRecordIdsList);
  64              $numOfrows = $db->num_rows($result);
  65  
  66              for($i=0; $i<$numOfrows; $i++) {
  67                  $recordId = $db->query_result($result, $i, $fieldName);
  68                  $relatedRecordModel = $relatedRecordModelsList[$recordId];
  69  
  70                  $relatedRecordModel->set('status', $db->query_result($result, $i, 'campaignrelstatus'));
  71                  $relatedRecordModelsList[$recordId] = $relatedRecordModel;
  72              }
  73          }
  74          return $relatedRecordModelsList;
  75      }
  76  }


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