Merge pull request #2061 from civicrm/4.3
[civicrm-core.git] / CRM / Event / Page / AJAX.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | CiviCRM version 4.4 |
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2013 |
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 *
30 * @package CRM
31 * @copyright CiviCRM LLC (c) 2004-2013
32 * $Id$
33 *
34 */
35
36 /**
37 * This class contains all the function that are called using AJAX
38 */
39 class CRM_Event_Page_AJAX {
40
41 /**
42 * Function for building Event combo box
43 */
44 function event() {
45 $name = trim(CRM_Utils_Type::escape($_GET['s'], 'String'));
46 if (!$name) {
47 $name = '%';
48 }
49 $whereClause = " title LIKE '$name%' AND ( civicrm_event.is_template IS NULL OR civicrm_event.is_template = 0 )";
50 $includeOld = CRM_Utils_Request::retrieve('includeOld', 'Boolean', CRM_Core_DAO::$_nullObject, FALSE, TRUE);
51 if (!$includeOld) {
52 $whereClause .= " AND ( end_date IS NULL OR end_date >= NOW() )";
53 }
54 $query = "
55 SELECT civicrm_event.title AS title,
56 civicrm_event.id AS id,
57 civicrm_address.city AS city,
58 civicrm_event.start_date
59 FROM civicrm_event
60 LEFT JOIN civicrm_loc_block ON
61 civicrm_event.loc_block_id = civicrm_loc_block.id
62 LEFT JOIN civicrm_address ON
63 civicrm_loc_block.address_id = civicrm_address.id
64 WHERE
65 {$whereClause}
66 ORDER BY
67 civicrm_event.title
68 ";
69 $dao = CRM_Core_DAO::executeQuery($query);
70 while ($dao->fetch()) {
71 $fields = array();
72 foreach (array('title', 'city') as $field) {
73 if (isset($dao->$field)) {
74 array_push($fields, $dao->$field);
75 }
76 }
77 if (isset($dao->start_date)) {
78 array_push($fields, CRM_Utils_Date::customFormat($dao->start_date));
79 }
80 $eventinfo = implode(' - ', $fields);
81 echo $elements = "$eventinfo|$dao->id\n";
82 }
83 CRM_Utils_System::civiExit();
84 }
85
86 /**
87 * Function for building Event Type combo box
88 */
89 function eventType() {
90 $name = trim(CRM_Utils_Type::escape($_GET['s'], 'String'));
91 if (!$name) {
92 $name = '%';
93 }
94 $whereClause = " v.label LIKE '$name%' ";
95
96 $query = "
97 SELECT v.label ,v.value
98 FROM civicrm_option_value v,
99 civicrm_option_group g
100 WHERE v.option_group_id = g.id
101 AND g.name = 'event_type'
102 AND v.is_active = 1
103 AND {$whereClause}
104 ORDER by v.weight";
105
106 $dao = CRM_Core_DAO::executeQuery($query);
107 while ($dao->fetch()) {
108 echo $elements = "$dao->label|$dao->value\n";
109 }
110 CRM_Utils_System::civiExit();
111 }
112
113 /**
114 * Function for building EventFee combo box
115 */
116 function eventFee() {
117 $name = trim(CRM_Utils_Type::escape($_GET['s'], 'String'));
118
119 if (!$name) {
120 $name = '%';
121 }
122
123 $whereClause = "cv.label LIKE '$name%' ";
124
125 $query = "SELECT DISTINCT (
126 cv.label
127 ), cv.id
128 FROM civicrm_price_field_value cv
129 LEFT JOIN civicrm_price_field cf ON cv.price_field_id = cf.id
130 LEFT JOIN civicrm_price_set_entity ce ON ce.price_set_id = cf.price_set_id
131 WHERE ce.entity_table = 'civicrm_event' AND {$whereClause}
132 GROUP BY cv.label";
133 $dao = CRM_Core_DAO::executeQuery($query);
134 while ($dao->fetch()) {
135 echo $elements = "$dao->label|$dao->id\n";
136 }
137 CRM_Utils_System::civiExit();
138 }
139
140 function eventList() {
141 $listparams = CRM_Utils_Array::value('listall', $_REQUEST, 1);
142 $events = CRM_Event_BAO_Event::getEvents($listparams);
143
144 $elements = array(array('name' => ts('- select -'),
145 'value' => '',
146 ));
147 foreach ($events as $id => $name) {
148 $elements[] = array(
149 'name' => $name,
150 'value' => $id,
151 );
152 }
153
154 echo json_encode($elements);
155 CRM_Utils_System::civiExit();
156 }
157
158 /**
159 * Function to get default participant role
160 */
161 function participantRole() {
162 $eventID = $_GET['eventId'];
163
164 $defaultRoleId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event',
165 $eventID,
166 'default_role_id',
167 'id'
168 );
169 $participantRole = array('role' => $defaultRoleId);
170 echo json_encode($participantRole);
171 CRM_Utils_System::civiExit();
172 }
173 }
174