Merge pull request #4500 from colemanw/CRM-15346
[civicrm-core.git] / CRM / Event / Info.php
CommitLineData
6a488035
TO
1<?php
2/*
3 +--------------------------------------------------------------------+
06b69b18 4 | CiviCRM version 4.5 |
6a488035 5 +--------------------------------------------------------------------+
06b69b18 6 | Copyright CiviCRM LLC (c) 2004-2014 |
6a488035
TO
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
9 | |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
13 | |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
18 | |
19 | You should have received a copy of the GNU Affero General Public |
20 | License and the CiviCRM Licensing Exception along |
21 | with this program; if not, contact CiviCRM LLC |
22 | at info[AT]civicrm[DOT]org. If you have questions about the |
23 | GNU Affero General Public License or the licensing of CiviCRM, |
24 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
25 +--------------------------------------------------------------------+
26*/
27
28/**
29 * This class introduces component to the system and provides all the
30 * information about it. It needs to extend CRM_Core_Component_Info
31 * abstract class.
32 *
33 * @package CRM
06b69b18 34 * @copyright CiviCRM LLC (c) 2004-2014
6a488035
TO
35 * $Id$
36 *
37 */
38class CRM_Event_Info extends CRM_Core_Component_Info {
39
40 // docs inherited from interface
41 protected $keyword = 'event';
42
43 // docs inherited from interface
0cf587a7
EM
44 /**
45 * @return array
46 */
6a488035
TO
47 public function getInfo() {
48 return array(
49 'name' => 'CiviEvent',
50 'translatedName' => ts('CiviEvent'),
51 'title' => ts('CiviCRM Event Engine'),
52 'search' => 1,
53 'showActivitiesInCore' => 1,
54 );
55 }
56
57 // docs inherited from interface
0cf587a7
EM
58 /**
59 * @param bool $getAllUnconditionally
60 *
61 * @return array
62 */
33777e4a 63 public function getPermissions($getAllUnconditionally = FALSE) {
6a488035
TO
64 return array(
65 'access CiviEvent',
66 'edit event participants',
67 'edit all events',
68 'register for events',
69 'view event info',
70 'view event participants',
71 'delete in CiviEvent',
72 );
73 }
74
0cf587a7
EM
75 /**
76 * @return array
77 */
81bb85ea
AC
78 public function getAnonymousPermissionWarnings() {
79 return array(
80 'access CiviEvent',
81 );
82 }
83
6a488035 84 // docs inherited from interface
0cf587a7
EM
85 /**
86 * @return array
87 */
6a488035
TO
88 public function getUserDashboardElement() {
89 return array('name' => ts('Events'),
90 'title' => ts('Your Event(s)'),
91 'perm' => array('register for events'),
92 'weight' => 20,
93 );
94 }
95
96 // docs inherited from interface
0cf587a7
EM
97 /**
98 * @return array
99 */
6a488035
TO
100 public function registerTab() {
101 return array('title' => ts('Events'),
102 'id' => 'participant',
103 'url' => 'participant',
104 'weight' => 40,
105 );
106 }
107
108 // docs inherited from interface
0cf587a7
EM
109 /**
110 * @return array
111 */
6a488035
TO
112 public function registerAdvancedSearchPane() {
113 return array('title' => ts('Events'),
114 'weight' => 40,
115 );
116 }
117
118 // docs inherited from interface
0cf587a7
EM
119 /**
120 * @return array
121 */
6a488035
TO
122 public function getActivityTypes() {
123 $types = array();
124 $types['Event'] = array('title' => ts('Event'),
125 'callback' => 'CRM_Event_Page_EventInfo::run()',
126 );
127 return $types;
128 }
129
130 // add shortcut to Create New
0cf587a7
EM
131 /**
132 * @param $shortCuts
133 * @param $newCredit
134 */
6a488035
TO
135 public function creatNewShortcut(&$shortCuts, $newCredit) {
136 if (CRM_Core_Permission::check('access CiviEvent') &&
137 CRM_Core_Permission::check('edit event participants')
138 ) {
6b5ca1ea 139 $shortCut[] = array(
140 'path' => 'civicrm/participant/add',
141 'query' => "reset=1&action=add&context=standalone",
142 'ref' => 'new-participant',
143 'title' => ts('Event Registration'),
144 );
6a488035
TO
145 if ($newCredit) {
146 $title = ts('Event Registration') . '<br />&nbsp;&nbsp;(' . ts('credit card') . ')';
6b5ca1ea 147 $shortCut[0]['shortCuts'][] = array(
148 'path' => 'civicrm/participant/add',
149 'query' => "reset=1&action=add&context=standalone&mode=live",
150 'ref' => 'new-participant-cc',
151 'title' => $title,
152 );
6a488035 153 }
6b5ca1ea 154 $shortCuts = array_merge($shortCuts, $shortCut);
6a488035
TO
155 }
156 }
157}
158