[ 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 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 }
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 |