Use ?? operator instead of CRM_Utils_Array::value() in array assignments with null...
[civicrm-core.git] / CRM / Event / Info.php
CommitLineData
6a488035
TO
1<?php
2/*
3 +--------------------------------------------------------------------+
bc77d7c0 4 | Copyright CiviCRM LLC. All rights reserved. |
6a488035 5 | |
bc77d7c0
TO
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 |
6a488035 9 +--------------------------------------------------------------------+
d25dd0ee 10 */
6a488035
TO
11
12/**
13 * This class introduces component to the system and provides all the
14 * information about it. It needs to extend CRM_Core_Component_Info
15 * abstract class.
16 *
17 * @package CRM
ca5cec67 18 * @copyright CiviCRM LLC https://civicrm.org/licensing
6a488035
TO
19 * $Id$
20 *
21 */
22class CRM_Event_Info extends CRM_Core_Component_Info {
23
e7c15cb6 24 /**
90b461f1 25 * @var string
e7c15cb6
CW
26 * @inheritDoc
27 */
6a488035
TO
28 protected $keyword = 'event';
29
0cf587a7 30 /**
e7c15cb6 31 * @inheritDoc
0cf587a7
EM
32 * @return array
33 */
6a488035 34 public function getInfo() {
be2fb01f 35 return [
6a488035
TO
36 'name' => 'CiviEvent',
37 'translatedName' => ts('CiviEvent'),
38 'title' => ts('CiviCRM Event Engine'),
39 'search' => 1,
40 'showActivitiesInCore' => 1,
be2fb01f 41 ];
6a488035
TO
42 }
43
0cf587a7 44 /**
e7c15cb6 45 * @inheritDoc
0cf587a7 46 * @param bool $getAllUnconditionally
221b21b4
AH
47 * @param bool $descriptions
48 * Whether to return permission descriptions
0cf587a7
EM
49 *
50 * @return array
51 */
221b21b4 52 public function getPermissions($getAllUnconditionally = FALSE, $descriptions = FALSE) {
be2fb01f
CW
53 $permissions = [
54 'access CiviEvent' => [
221b21b4
AH
55 ts('access CiviEvent'),
56 ts('Create events, view all events, and view participant records (for visible contacts)'),
be2fb01f
CW
57 ],
58 'edit event participants' => [
221b21b4
AH
59 ts('edit event participants'),
60 ts('Record and update backend event registrations'),
be2fb01f
CW
61 ],
62 'edit all events' => [
221b21b4
AH
63 ts('edit all events'),
64 ts('Edit events even without specific ACL granted'),
be2fb01f
CW
65 ],
66 'register for events' => [
221b21b4
AH
67 ts('register for events'),
68 ts('Register for events online'),
be2fb01f
CW
69 ],
70 'view event info' => [
221b21b4
AH
71 ts('view event info'),
72 ts('View online event information pages'),
be2fb01f
CW
73 ],
74 'view event participants' => [
221b21b4 75 ts('view event participants'),
be2fb01f
CW
76 ],
77 'delete in CiviEvent' => [
221b21b4
AH
78 ts('delete in CiviEvent'),
79 ts('Delete participants and events that you can edit'),
be2fb01f
CW
80 ],
81 'manage event profiles' => [
bcbb2167 82 ts('manage event profiles'),
83 ts('Allow users to create, edit and copy event-related profile forms used for online event registration.'),
be2fb01f
CW
84 ],
85 ];
221b21b4
AH
86
87 if (!$descriptions) {
88 foreach ($permissions as $name => $attr) {
89 $permissions[$name] = array_shift($attr);
90 }
91 }
92
93 return $permissions;
6a488035
TO
94 }
95
0cf587a7
EM
96 /**
97 * @return array
98 */
81bb85ea 99 public function getAnonymousPermissionWarnings() {
be2fb01f 100 return [
81bb85ea 101 'access CiviEvent',
be2fb01f 102 ];
81bb85ea
AC
103 }
104
0cf587a7 105 /**
e7c15cb6 106 * @inheritDoc
0cf587a7
EM
107 * @return array
108 */
6a488035 109 public function getUserDashboardElement() {
be2fb01f 110 return [
6ea503d4 111 'name' => ts('Events'),
6a488035 112 'title' => ts('Your Event(s)'),
be2fb01f 113 'perm' => ['register for events'],
6a488035 114 'weight' => 20,
be2fb01f 115 ];
6a488035
TO
116 }
117
0cf587a7 118 /**
e7c15cb6 119 * @inheritDoc
0cf587a7
EM
120 * @return array
121 */
6a488035 122 public function registerTab() {
be2fb01f 123 return [
6ea503d4 124 'title' => ts('Events'),
6a488035
TO
125 'id' => 'participant',
126 'url' => 'participant',
127 'weight' => 40,
be2fb01f 128 ];
6a488035
TO
129 }
130
b04115b4
CW
131 /**
132 * @inheritDoc
133 * @return string
134 */
135 public function getIcon() {
136 return 'crm-i fa-calendar';
137 }
138
0cf587a7 139 /**
e7c15cb6 140 * @inheritDoc
0cf587a7
EM
141 * @return array
142 */
6a488035 143 public function registerAdvancedSearchPane() {
be2fb01f 144 return [
6ea503d4 145 'title' => ts('Events'),
6a488035 146 'weight' => 40,
be2fb01f 147 ];
6a488035
TO
148 }
149
0cf587a7 150 /**
e7c15cb6 151 * @inheritDoc
0cf587a7
EM
152 * @return array
153 */
6a488035 154 public function getActivityTypes() {
be2fb01f
CW
155 $types = [];
156 $types['Event'] = [
6ea503d4 157 'title' => ts('Event'),
6a488035 158 'callback' => 'CRM_Event_Page_EventInfo::run()',
be2fb01f 159 ];
6a488035
TO
160 return $types;
161 }
162
0cf587a7 163 /**
fe482240 164 * add shortcut to Create New.
0cf587a7
EM
165 * @param $shortCuts
166 * @param $newCredit
167 */
6a488035
TO
168 public function creatNewShortcut(&$shortCuts, $newCredit) {
169 if (CRM_Core_Permission::check('access CiviEvent') &&
170 CRM_Core_Permission::check('edit event participants')
171 ) {
be2fb01f 172 $shortCut[] = [
6b5ca1ea 173 'path' => 'civicrm/participant/add',
174 'query' => "reset=1&action=add&context=standalone",
175 'ref' => 'new-participant',
176 'title' => ts('Event Registration'),
be2fb01f 177 ];
6a488035
TO
178 if ($newCredit) {
179 $title = ts('Event Registration') . '<br />&nbsp;&nbsp;(' . ts('credit card') . ')';
be2fb01f 180 $shortCut[0]['shortCuts'][] = [
6b5ca1ea 181 'path' => 'civicrm/participant/add',
182 'query' => "reset=1&action=add&context=standalone&mode=live",
183 'ref' => 'new-participant-cc',
184 'title' => $title,
be2fb01f 185 ];
6a488035 186 }
6b5ca1ea 187 $shortCuts = array_merge($shortCuts, $shortCut);
6a488035
TO
188 }
189 }
96025800 190
6a488035 191}