3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
19 * This class handle activity view mode.
21 class CRM_Activity_Form_ActivityView
extends CRM_Core_Form
{
24 * Set variables up before form is built.
26 public function preProcess() {
27 // Get the activity values.
28 $activityId = CRM_Utils_Request
::retrieve('id', 'Positive', $this);
29 $context = CRM_Utils_Request
::retrieve('context', 'Alphanumeric', $this);
30 $cid = CRM_Utils_Request
::retrieve('cid', 'Positive', $this);
32 // Check for required permissions, CRM-6264.
34 !CRM_Activity_BAO_Activity
::checkPermission($activityId, CRM_Core_Action
::VIEW
)
36 CRM_Core_Error
::statusBounce(ts('You do not have permission to access this page.'));
39 $session = CRM_Core_Session
::singleton();
40 if (!in_array($context, [
46 $url = CRM_Utils_System
::url('civicrm/contact/view', "reset=1&cid={$cid}&selectedChild=activity");
49 $url = CRM_Utils_System
::url('civicrm/dashboard', 'reset=1');
52 $session->pushUserContext($url);
54 $params = ['id' => $activityId];
55 CRM_Activity_BAO_Activity
::retrieve($params, $defaults);
57 // Send activity type description to template.
58 list(, $activityTypeDescription) = CRM_Core_BAO_OptionValue
::getActivityTypeDetails($defaults['activity_type_id']);
59 $this->assign('activityTypeDescription', $activityTypeDescription);
61 if (!empty($defaults['mailingId'])) {
62 $this->_mailing_id
= $defaults['source_record_id'] ??
NULL;
63 $mailingReport = CRM_Mailing_BAO_Mailing
::report($this->_mailing_id
, TRUE);
64 CRM_Mailing_BAO_Mailing
::getMailingContent($mailingReport, $this);
65 $this->assign('mailingReport', $mailingReport);
67 $full_open_report = CRM_Mailing_Event_BAO_Opened
::getRows(
68 $this->_mailing_id
, NULL, FALSE, NULL, NULL, NULL, $cid);
69 $this->assign('openreport', $full_open_report);
71 $click_thru_report = CRM_Mailing_Event_BAO_TrackableURLOpen
::getRows($this->_mailing_id
, NULL, FALSE, NULL, NULL, NULL, NULL, $cid);
72 $this->assign('clickreport', $click_thru_report);
75 foreach ($defaults as $key => $value) {
76 if (substr($key, -3) != '_id') {
77 $values[$key] = $value;
82 if ($campaignId = CRM_Utils_Array
::value('campaign_id', $defaults)) {
83 $campaigns = CRM_Campaign_BAO_Campaign
::getCampaigns($campaignId);
84 $values['campaign'] = $campaigns[$campaignId];
86 if ($engagementLevel = CRM_Utils_Array
::value('engagement_level', $defaults)) {
87 $engagementLevels = CRM_Campaign_PseudoConstant
::engagementLevel();
88 $values['engagement_level'] = CRM_Utils_Array
::value($engagementLevel, $engagementLevels, $engagementLevel);
91 $values['attachment'] = CRM_Core_BAO_File
::attachmentInfo('civicrm_activity', $activityId);
92 $this->assign('values', $values);
94 $url = CRM_Utils_System
::url(implode("/", $this->urlPath
), "reset=1&id={$activityId}&action=view&cid={$defaults['source_contact_id']}");
95 CRM_Utils_Recent
::add($defaults['subject'],
99 $defaults['source_contact_id'],
100 $defaults['source_contact']
105 * Build the form object.
107 public function buildQuickForm() {
111 'name' => ts('Done'),
112 'spacing' => ' ',