@@ -283,6 +283,7 @@ |
||
283 | 283 | * |
284 | 284 | * @param boolean $full_link if TRUE (default) we return the html for the name of the event linked to the event. |
285 | 285 | * Otherwise we just return the url of the event. |
286 | + * @param EE_Event $event |
|
286 | 287 | * @return string |
287 | 288 | */ |
288 | 289 | private function _get_event_link($event, $full_link = true) |
@@ -134,7 +134,7 @@ discard block |
||
134 | 134 | |
135 | 135 | |
136 | 136 | // If there is no event objecdt by now then get out. |
137 | - if (! $this->_event instanceof EE_Event) { |
|
137 | + if ( ! $this->_event instanceof EE_Event) { |
|
138 | 138 | return ''; |
139 | 139 | } |
140 | 140 | |
@@ -187,11 +187,11 @@ discard block |
||
187 | 187 | $image = $this->_event->feature_image_url(array(600, 300)); |
188 | 188 | // @todo: eventually we should make this an attribute shortcode so that em can send along what size they want returned. |
189 | 189 | return ! empty($image) |
190 | - ? '<img src="' . $image . '" alt="' |
|
190 | + ? '<img src="'.$image.'" alt="' |
|
191 | 191 | . sprintf( |
192 | 192 | esc_attr__('%s Feature Image', 'event_espresso'), |
193 | 193 | $this->_event->get('EVT_name') |
194 | - ) . '" />' |
|
194 | + ).'" />' |
|
195 | 195 | : ''; |
196 | 196 | break; |
197 | 197 | |
@@ -251,7 +251,7 @@ discard block |
||
251 | 251 | // Add a filter to allow all instances of EVENT_META_* to run through do_shortcode, default to false. |
252 | 252 | // Check if a do_shortcode attribute was set to true and if so run $event_meta through that function. |
253 | 253 | if (apply_filters('FHEE__EventEspresso_core_libraries_shortcodes_EE_Event_Shortcodes___parser__event_meta_do_shortcode', false) |
254 | - || !empty($attrs['do_shortcode']) && filter_var($attrs['do_shortcode'], FILTER_VALIDATE_BOOLEAN) |
|
254 | + || ! empty($attrs['do_shortcode']) && filter_var($attrs['do_shortcode'], FILTER_VALIDATE_BOOLEAN) |
|
255 | 255 | ) { |
256 | 256 | return do_shortcode($event_meta); |
257 | 257 | } |
@@ -269,11 +269,11 @@ discard block |
||
269 | 269 | |
270 | 270 | if (strpos($shortcode, '[EVENT_IMAGE_*') !== false) { |
271 | 271 | $attrs = $this->_get_shortcode_attrs($shortcode); |
272 | - $width = empty($attrs['width']) ? '' : ' width="' . $attrs['width'] . '"'; |
|
273 | - $height = empty($attrs['height']) ? '' : ' height="' . $attrs['height'] . '"'; |
|
272 | + $width = empty($attrs['width']) ? '' : ' width="'.$attrs['width'].'"'; |
|
273 | + $height = empty($attrs['height']) ? '' : ' height="'.$attrs['height'].'"'; |
|
274 | 274 | |
275 | 275 | // Size may be set to a string such as 'tumbnail' or "width, height" eg - '200,200' |
276 | - if (! empty($attrs['size'])) { |
|
276 | + if ( ! empty($attrs['size'])) { |
|
277 | 277 | $size = explode(',', $attrs['size']); |
278 | 278 | if (count($size) === 1) { |
279 | 279 | $size = $size[0]; |
@@ -285,11 +285,11 @@ discard block |
||
285 | 285 | $image = $this->_event->feature_image_url($size); |
286 | 286 | |
287 | 287 | return ! empty($image) |
288 | - ? '<img src="' . $image . '" alt="' |
|
288 | + ? '<img src="'.$image.'" alt="' |
|
289 | 289 | . sprintf( |
290 | 290 | esc_attr__('%s Feature Image', 'event_espresso'), |
291 | 291 | $this->_event->get('EVT_name') |
292 | - ) . '"' . $width . $height . '/>' |
|
292 | + ).'"'.$width.$height.'/>' |
|
293 | 293 | : ''; |
294 | 294 | } |
295 | 295 | |
@@ -308,6 +308,6 @@ discard block |
||
308 | 308 | { |
309 | 309 | $url = get_permalink($event->ID()); |
310 | 310 | |
311 | - return $full_link ? '<a href="' . $url . '">' . $event->get('EVT_name') . '</a>' : $url; |
|
311 | + return $full_link ? '<a href="'.$url.'">'.$event->get('EVT_name').'</a>' : $url; |
|
312 | 312 | } |
313 | 313 | } |
@@ -19,296 +19,296 @@ |
||
19 | 19 | { |
20 | 20 | |
21 | 21 | |
22 | - /** |
|
23 | - * Will hold the EE_Event if available |
|
24 | - * |
|
25 | - * @var EE_Event |
|
26 | - */ |
|
27 | - protected $_event; |
|
28 | - |
|
29 | - |
|
30 | - public function __construct() |
|
31 | - { |
|
32 | - parent::__construct(); |
|
33 | - } |
|
34 | - |
|
35 | - |
|
36 | - protected function _init_props() |
|
37 | - { |
|
38 | - $this->label = __('Event Shortcodes', 'event_espresso'); |
|
39 | - $this->description = __('All shortcodes specific to event related data', 'event_espresso'); |
|
40 | - $this->_shortcodes = array( |
|
41 | - '[EVENT_ID]' => __( |
|
42 | - 'Will be replaced by the event ID of an event', |
|
43 | - 'event_espresso' |
|
44 | - ), |
|
45 | - '[EVENT]' => __('The name of the event', 'event_espresso'), |
|
46 | - '[EVENT_NAME]' => __( |
|
47 | - "This also can be used for the name of the event", |
|
48 | - 'event_espresso' |
|
49 | - ), |
|
50 | - '[EVENT_PHONE]' => __( |
|
51 | - 'The phone number for the event (usually an info number)', |
|
52 | - 'event_espresso' |
|
53 | - ), |
|
54 | - '[EVENT_DESCRIPTION]' => __('The description of the event', 'event_espresso'), |
|
55 | - '[EVENT_EXCERPT]' => __( |
|
56 | - 'This gets parsed to the value for the excerpt field in the event or blank if there is no excerpt.', |
|
57 | - 'event_espresso' |
|
58 | - ), |
|
59 | - '[EVENT_LINK]' => __('A link associated with the event', 'event_espresso'), |
|
60 | - '[EVENT_URL]' => __( |
|
61 | - 'A link to the event set up on the host site.', |
|
62 | - 'event_espresso' |
|
63 | - ), |
|
64 | - '[VIRTUAL_URL]' => __( |
|
65 | - 'What was used for the "URL of Event" field in the Venue settings', |
|
66 | - 'event_espresso' |
|
67 | - ), |
|
68 | - '[VIRTUAL_PHONE]' => __( |
|
69 | - 'An alternate phone number for the event. Typically used as a "call-in" number', |
|
70 | - 'event_espresso' |
|
71 | - ), |
|
72 | - '[EVENT_IMAGE]' => __( |
|
73 | - 'This will parse to the Feature image for the event.', |
|
74 | - 'event_espresso' |
|
75 | - ), |
|
76 | - '[EVENT_IMAGE_*]' => sprintf( |
|
77 | - __( |
|
78 | - 'This will parse to the Feature image for the event, %1$ssize%2$s can be set to determine the size of the image loaded by the shortcode. The %1$swidth%2$s and/or %1$sheight%2$s can also be set to determine the width and height of the image when output. By default the shortcode will load the %1$sthumbnail%2$s image size.', |
|
79 | - 'event_espresso' |
|
80 | - ), |
|
81 | - '<code>', |
|
82 | - '</code>' |
|
83 | - ), |
|
84 | - '[EVENT_TOTAL_AVAILABLE_SPACES_*]' => sprintf( |
|
85 | - __( |
|
86 | - 'This will parse to the total available spaces for an event. Calculating total spaces is approximate because it is dependent on the complexity of limits on your event. There are two methods of calculation (which can be indicated by the %1$smethod%2$s param on the shortcode). %1$scurrent%2$s which will do a more accurate calculation of total available spaces based on current sales, and %1$sfull%2$s which will be the maximum total available spaces that is on the event in optimal conditions. The shortcode will default to current.', |
|
87 | - 'event_espresso' |
|
88 | - ), |
|
89 | - '<code>', |
|
90 | - '</code>' |
|
91 | - ), |
|
92 | - '[EVENT_TOTAL_SPOTS_TAKEN]' => __( |
|
93 | - 'This shortcode will parse to the output the total approved registrations for this event', |
|
94 | - 'event_espresso' |
|
95 | - ), |
|
96 | - '[EVENT_FACEBOOK_URL]' => __( |
|
97 | - 'This will return the Facebook URL for the event if you have it set via custom field in your event, otherwise it will use the Facebook URL set in "Your Organization Settings". To set the facebook url in your event, add a custom field with the key as <code>event_facebook</code> and the value as your facebook url.', |
|
98 | - 'event_espresso' |
|
99 | - ), |
|
100 | - '[EVENT_TWITTER_URL]' => __( |
|
101 | - 'This will return the Twitter URL for the event if you have it set via custom field in your event, otherwise it will use the Twitter URL set in "Your Organization Settings". To set the facebook url in your event, add a custom field with the key as <code>event_twitter</code> and the value as your facebook url', |
|
102 | - 'event_espresso' |
|
103 | - ), |
|
104 | - '[EVENT_META_*]' => sprintf( |
|
105 | - __( |
|
106 | - 'This is a special dynamic shortcode. After the "*", add the exact name for your custom field, if there is a value set for that custom field within the event then it will be output in place of this shortcode. If you use shortcodes within your custom fields set %1$sdo_shortcode=true%2$s at the end of the shortcode to run the value through the do_shortcode function. ', |
|
107 | - 'event_espresso' |
|
108 | - ), |
|
109 | - '<code>', |
|
110 | - '</code>' |
|
111 | - ), |
|
112 | - '[REGISTRATION_LIST_TABLE_FOR_EVENT_URL]' => __( |
|
113 | - 'This parses to the url for the registration list table filtered by registrations for this event.', |
|
114 | - 'event_espresso' |
|
115 | - ), |
|
116 | - ); |
|
117 | - } |
|
118 | - |
|
119 | - |
|
120 | - protected function _parser($shortcode) |
|
121 | - { |
|
122 | - |
|
123 | - |
|
124 | - $this->_event = $this->_data instanceof EE_Event ? $this->_data : null; |
|
125 | - |
|
126 | - // if no event, then let's see if there is a reg_obj. If there IS, then we'll try and grab the event from the reg_obj instead. |
|
127 | - if (empty($this->_event)) { |
|
128 | - $aee = $this->_data instanceof EE_Messages_Addressee ? $this->_data : null; |
|
129 | - $aee = $this->_extra_data instanceof EE_Messages_Addressee ? $this->_extra_data : $aee; |
|
130 | - |
|
131 | - $this->_event = $aee instanceof EE_Messages_Addressee && $aee->reg_obj instanceof EE_Registration |
|
132 | - ? $aee->reg_obj->event() : null; |
|
133 | - } |
|
134 | - |
|
135 | - |
|
136 | - // If there is no event objecdt by now then get out. |
|
137 | - if (! $this->_event instanceof EE_Event) { |
|
138 | - return ''; |
|
139 | - } |
|
140 | - |
|
141 | - switch ($shortcode) { |
|
142 | - case '[EVENT_ID]': |
|
143 | - return $this->_event->ID(); |
|
144 | - break; |
|
145 | - |
|
146 | - case '[EVENT]': |
|
147 | - case '[EVENT_NAME]': |
|
148 | - return $this->_event->get('EVT_name'); |
|
149 | - break; |
|
150 | - |
|
151 | - case '[EVENT_PHONE]': |
|
152 | - return $this->_event->get('EVT_phone'); |
|
153 | - break; |
|
154 | - |
|
155 | - case '[EVENT_DESCRIPTION]': |
|
156 | - return $this->_event->get('EVT_desc'); |
|
157 | - break; |
|
158 | - |
|
159 | - case '[EVENT_EXCERPT]': |
|
160 | - return $this->_event->get('EVT_short_desc'); |
|
161 | - break; |
|
162 | - |
|
163 | - case '[EVENT_LINK]': |
|
164 | - return $this->_get_event_link($this->_event); |
|
165 | - break; |
|
166 | - |
|
167 | - case '[EVENT_URL]': |
|
168 | - return $this->_get_event_link($this->_event, false); |
|
169 | - break; |
|
170 | - |
|
171 | - case '[VIRTUAL_URL]': |
|
172 | - $venue = $this->_event->get_first_related('Venue'); |
|
173 | - if (empty($venue)) { |
|
174 | - return ''; |
|
175 | - } |
|
176 | - return $venue->get('VNU_virtual_url'); |
|
177 | - |
|
178 | - case '[VIRTUAL_PHONE]': |
|
179 | - $venue = $this->_event->get_first_related('Venue'); |
|
180 | - if (empty($venue)) { |
|
181 | - return ''; |
|
182 | - } |
|
183 | - return $venue->get('VNU_virtual_phone'); |
|
184 | - break; |
|
185 | - |
|
186 | - case '[EVENT_IMAGE]': |
|
187 | - $image = $this->_event->feature_image_url(array(600, 300)); |
|
188 | - // @todo: eventually we should make this an attribute shortcode so that em can send along what size they want returned. |
|
189 | - return ! empty($image) |
|
190 | - ? '<img src="' . $image . '" alt="' |
|
191 | - . sprintf( |
|
192 | - esc_attr__('%s Feature Image', 'event_espresso'), |
|
193 | - $this->_event->get('EVT_name') |
|
194 | - ) . '" />' |
|
195 | - : ''; |
|
196 | - break; |
|
197 | - |
|
198 | - case '[EVENT_FACEBOOK_URL]': |
|
199 | - $facebook_url = $this->_event->get_post_meta('event_facebook', true); |
|
200 | - return empty($facebook_url) ? EE_Registry::instance()->CFG->organization->get_pretty('facebook') |
|
201 | - : $facebook_url; |
|
202 | - break; |
|
203 | - |
|
204 | - case '[EVENT_TWITTER_URL]': |
|
205 | - $twitter_url = $this->_event->get_post_meta('event_twitter', true); |
|
206 | - return empty($twitter_url) ? EE_Registry::instance()->CFG->organization->get_pretty('twitter') |
|
207 | - : $twitter_url; |
|
208 | - break; |
|
209 | - |
|
210 | - case '[EVENT_AUTHOR_EMAIL]': |
|
211 | - $author_id = $this->_event->get('EVT_wp_user'); |
|
212 | - $user_data = get_userdata((int) $author_id); |
|
213 | - return $user_data->user_email; |
|
214 | - break; |
|
215 | - |
|
216 | - case '[EVENT_TOTAL_SPOTS_TAKEN]': |
|
217 | - return EEM_Registration::instance()->count( |
|
218 | - array(array('EVT_ID' => $this->_event->ID(), 'STS_ID' => EEM_Registration::status_id_approved)), |
|
219 | - 'REG_ID', |
|
220 | - true |
|
221 | - ); |
|
222 | - break; |
|
223 | - |
|
224 | - case '[REGISTRATION_LIST_TABLE_FOR_EVENT_URL]': |
|
225 | - return EEH_URL::add_query_args_and_nonce( |
|
226 | - array( |
|
227 | - 'event_id' => $this->_event->ID(), |
|
228 | - 'page' => 'espresso_registrations', |
|
229 | - 'action' => 'default', |
|
230 | - ), |
|
231 | - admin_url('admin.php'), |
|
232 | - true |
|
233 | - ); |
|
234 | - break; |
|
235 | - } |
|
236 | - |
|
237 | - if (strpos($shortcode, '[EVENT_META_*') !== false) { |
|
238 | - // Strip the shortcode itself from $shortcode leaving any attributes set. |
|
239 | - // Removing the * is correct here as _* is used to indiciate a dynamic shortcode. |
|
240 | - $shortcode = str_replace('[EVENT_META_*', '', $shortcode); |
|
241 | - $shortcode = trim(str_replace(']', '', $shortcode)); |
|
242 | - // Get any attributes set on this shortcode. |
|
243 | - $attrs = $this->_get_shortcode_attrs($shortcode); |
|
244 | - // The meta_key set on the shortcode should always be the first value in the array. |
|
245 | - $meta_key = $attrs[0]; |
|
246 | - // Pull the meta value from the event post. |
|
247 | - $event_meta = $this->_event->get_post_meta($meta_key, true); |
|
248 | - // If we have no event_meta, just return an empty string. |
|
249 | - if (empty($event_meta)) { |
|
250 | - return ''; |
|
251 | - } |
|
252 | - // Add a filter to allow all instances of EVENT_META_* to run through do_shortcode, default to false. |
|
253 | - // Check if a do_shortcode attribute was set to true and if so run $event_meta through that function. |
|
254 | - if (apply_filters('FHEE__EventEspresso_core_libraries_shortcodes_EE_Event_Shortcodes___parser__event_meta_do_shortcode', false) |
|
255 | - || !empty($attrs['do_shortcode']) && filter_var($attrs['do_shortcode'], FILTER_VALIDATE_BOOLEAN) |
|
256 | - ) { |
|
257 | - return do_shortcode($event_meta); |
|
258 | - } |
|
259 | - // Still here? We just need to return the event_meta value as is. |
|
260 | - return $event_meta; |
|
261 | - } |
|
262 | - |
|
263 | - if (strpos($shortcode, '[EVENT_TOTAL_AVAILABLE_SPACES_*') !== false) { |
|
264 | - $attrs = $this->_get_shortcode_attrs($shortcode); |
|
265 | - $method = empty($attrs['method']) ? 'current' : $attrs['method']; |
|
266 | - $method = $method === 'current'; |
|
267 | - $available = $this->_event->total_available_spaces($method); |
|
268 | - return $available === EE_INF ? '∞' : $available; |
|
269 | - } |
|
270 | - |
|
271 | - if (strpos($shortcode, '[EVENT_IMAGE_*') !== false) { |
|
272 | - $attrs = $this->_get_shortcode_attrs($shortcode); |
|
273 | - $width = empty($attrs['width']) ? '' : ' width="' . $attrs['width'] . '"'; |
|
274 | - $height = empty($attrs['height']) ? '' : ' height="' . $attrs['height'] . '"'; |
|
275 | - |
|
276 | - // Size may be set to a string such as 'tumbnail' or "width, height" eg - '200,200' |
|
277 | - if (! empty($attrs['size'])) { |
|
278 | - $size = explode(',', $attrs['size']); |
|
279 | - if (count($size) === 1) { |
|
280 | - $size = $size[0]; |
|
281 | - } |
|
282 | - } else { |
|
283 | - $size = 'thumbnail'; |
|
284 | - } |
|
285 | - |
|
286 | - $image = $this->_event->feature_image_url($size); |
|
287 | - |
|
288 | - return ! empty($image) |
|
289 | - ? '<img src="' . $image . '" alt="' |
|
290 | - . sprintf( |
|
291 | - esc_attr__('%s Feature Image', 'event_espresso'), |
|
292 | - $this->_event->get('EVT_name') |
|
293 | - ) . '"' . $width . $height . '/>' |
|
294 | - : ''; |
|
295 | - } |
|
296 | - |
|
297 | - return ''; |
|
298 | - } |
|
299 | - |
|
300 | - |
|
301 | - /** |
|
302 | - * returns the link to the event |
|
303 | - * |
|
304 | - * @param boolean $full_link if TRUE (default) we return the html for the name of the event linked to the event. |
|
305 | - * Otherwise we just return the url of the event. |
|
306 | - * @return string |
|
307 | - */ |
|
308 | - private function _get_event_link($event, $full_link = true) |
|
309 | - { |
|
310 | - $url = get_permalink($event->ID()); |
|
311 | - |
|
312 | - return $full_link ? '<a href="' . $url . '">' . $event->get('EVT_name') . '</a>' : $url; |
|
313 | - } |
|
22 | + /** |
|
23 | + * Will hold the EE_Event if available |
|
24 | + * |
|
25 | + * @var EE_Event |
|
26 | + */ |
|
27 | + protected $_event; |
|
28 | + |
|
29 | + |
|
30 | + public function __construct() |
|
31 | + { |
|
32 | + parent::__construct(); |
|
33 | + } |
|
34 | + |
|
35 | + |
|
36 | + protected function _init_props() |
|
37 | + { |
|
38 | + $this->label = __('Event Shortcodes', 'event_espresso'); |
|
39 | + $this->description = __('All shortcodes specific to event related data', 'event_espresso'); |
|
40 | + $this->_shortcodes = array( |
|
41 | + '[EVENT_ID]' => __( |
|
42 | + 'Will be replaced by the event ID of an event', |
|
43 | + 'event_espresso' |
|
44 | + ), |
|
45 | + '[EVENT]' => __('The name of the event', 'event_espresso'), |
|
46 | + '[EVENT_NAME]' => __( |
|
47 | + "This also can be used for the name of the event", |
|
48 | + 'event_espresso' |
|
49 | + ), |
|
50 | + '[EVENT_PHONE]' => __( |
|
51 | + 'The phone number for the event (usually an info number)', |
|
52 | + 'event_espresso' |
|
53 | + ), |
|
54 | + '[EVENT_DESCRIPTION]' => __('The description of the event', 'event_espresso'), |
|
55 | + '[EVENT_EXCERPT]' => __( |
|
56 | + 'This gets parsed to the value for the excerpt field in the event or blank if there is no excerpt.', |
|
57 | + 'event_espresso' |
|
58 | + ), |
|
59 | + '[EVENT_LINK]' => __('A link associated with the event', 'event_espresso'), |
|
60 | + '[EVENT_URL]' => __( |
|
61 | + 'A link to the event set up on the host site.', |
|
62 | + 'event_espresso' |
|
63 | + ), |
|
64 | + '[VIRTUAL_URL]' => __( |
|
65 | + 'What was used for the "URL of Event" field in the Venue settings', |
|
66 | + 'event_espresso' |
|
67 | + ), |
|
68 | + '[VIRTUAL_PHONE]' => __( |
|
69 | + 'An alternate phone number for the event. Typically used as a "call-in" number', |
|
70 | + 'event_espresso' |
|
71 | + ), |
|
72 | + '[EVENT_IMAGE]' => __( |
|
73 | + 'This will parse to the Feature image for the event.', |
|
74 | + 'event_espresso' |
|
75 | + ), |
|
76 | + '[EVENT_IMAGE_*]' => sprintf( |
|
77 | + __( |
|
78 | + 'This will parse to the Feature image for the event, %1$ssize%2$s can be set to determine the size of the image loaded by the shortcode. The %1$swidth%2$s and/or %1$sheight%2$s can also be set to determine the width and height of the image when output. By default the shortcode will load the %1$sthumbnail%2$s image size.', |
|
79 | + 'event_espresso' |
|
80 | + ), |
|
81 | + '<code>', |
|
82 | + '</code>' |
|
83 | + ), |
|
84 | + '[EVENT_TOTAL_AVAILABLE_SPACES_*]' => sprintf( |
|
85 | + __( |
|
86 | + 'This will parse to the total available spaces for an event. Calculating total spaces is approximate because it is dependent on the complexity of limits on your event. There are two methods of calculation (which can be indicated by the %1$smethod%2$s param on the shortcode). %1$scurrent%2$s which will do a more accurate calculation of total available spaces based on current sales, and %1$sfull%2$s which will be the maximum total available spaces that is on the event in optimal conditions. The shortcode will default to current.', |
|
87 | + 'event_espresso' |
|
88 | + ), |
|
89 | + '<code>', |
|
90 | + '</code>' |
|
91 | + ), |
|
92 | + '[EVENT_TOTAL_SPOTS_TAKEN]' => __( |
|
93 | + 'This shortcode will parse to the output the total approved registrations for this event', |
|
94 | + 'event_espresso' |
|
95 | + ), |
|
96 | + '[EVENT_FACEBOOK_URL]' => __( |
|
97 | + 'This will return the Facebook URL for the event if you have it set via custom field in your event, otherwise it will use the Facebook URL set in "Your Organization Settings". To set the facebook url in your event, add a custom field with the key as <code>event_facebook</code> and the value as your facebook url.', |
|
98 | + 'event_espresso' |
|
99 | + ), |
|
100 | + '[EVENT_TWITTER_URL]' => __( |
|
101 | + 'This will return the Twitter URL for the event if you have it set via custom field in your event, otherwise it will use the Twitter URL set in "Your Organization Settings". To set the facebook url in your event, add a custom field with the key as <code>event_twitter</code> and the value as your facebook url', |
|
102 | + 'event_espresso' |
|
103 | + ), |
|
104 | + '[EVENT_META_*]' => sprintf( |
|
105 | + __( |
|
106 | + 'This is a special dynamic shortcode. After the "*", add the exact name for your custom field, if there is a value set for that custom field within the event then it will be output in place of this shortcode. If you use shortcodes within your custom fields set %1$sdo_shortcode=true%2$s at the end of the shortcode to run the value through the do_shortcode function. ', |
|
107 | + 'event_espresso' |
|
108 | + ), |
|
109 | + '<code>', |
|
110 | + '</code>' |
|
111 | + ), |
|
112 | + '[REGISTRATION_LIST_TABLE_FOR_EVENT_URL]' => __( |
|
113 | + 'This parses to the url for the registration list table filtered by registrations for this event.', |
|
114 | + 'event_espresso' |
|
115 | + ), |
|
116 | + ); |
|
117 | + } |
|
118 | + |
|
119 | + |
|
120 | + protected function _parser($shortcode) |
|
121 | + { |
|
122 | + |
|
123 | + |
|
124 | + $this->_event = $this->_data instanceof EE_Event ? $this->_data : null; |
|
125 | + |
|
126 | + // if no event, then let's see if there is a reg_obj. If there IS, then we'll try and grab the event from the reg_obj instead. |
|
127 | + if (empty($this->_event)) { |
|
128 | + $aee = $this->_data instanceof EE_Messages_Addressee ? $this->_data : null; |
|
129 | + $aee = $this->_extra_data instanceof EE_Messages_Addressee ? $this->_extra_data : $aee; |
|
130 | + |
|
131 | + $this->_event = $aee instanceof EE_Messages_Addressee && $aee->reg_obj instanceof EE_Registration |
|
132 | + ? $aee->reg_obj->event() : null; |
|
133 | + } |
|
134 | + |
|
135 | + |
|
136 | + // If there is no event objecdt by now then get out. |
|
137 | + if (! $this->_event instanceof EE_Event) { |
|
138 | + return ''; |
|
139 | + } |
|
140 | + |
|
141 | + switch ($shortcode) { |
|
142 | + case '[EVENT_ID]': |
|
143 | + return $this->_event->ID(); |
|
144 | + break; |
|
145 | + |
|
146 | + case '[EVENT]': |
|
147 | + case '[EVENT_NAME]': |
|
148 | + return $this->_event->get('EVT_name'); |
|
149 | + break; |
|
150 | + |
|
151 | + case '[EVENT_PHONE]': |
|
152 | + return $this->_event->get('EVT_phone'); |
|
153 | + break; |
|
154 | + |
|
155 | + case '[EVENT_DESCRIPTION]': |
|
156 | + return $this->_event->get('EVT_desc'); |
|
157 | + break; |
|
158 | + |
|
159 | + case '[EVENT_EXCERPT]': |
|
160 | + return $this->_event->get('EVT_short_desc'); |
|
161 | + break; |
|
162 | + |
|
163 | + case '[EVENT_LINK]': |
|
164 | + return $this->_get_event_link($this->_event); |
|
165 | + break; |
|
166 | + |
|
167 | + case '[EVENT_URL]': |
|
168 | + return $this->_get_event_link($this->_event, false); |
|
169 | + break; |
|
170 | + |
|
171 | + case '[VIRTUAL_URL]': |
|
172 | + $venue = $this->_event->get_first_related('Venue'); |
|
173 | + if (empty($venue)) { |
|
174 | + return ''; |
|
175 | + } |
|
176 | + return $venue->get('VNU_virtual_url'); |
|
177 | + |
|
178 | + case '[VIRTUAL_PHONE]': |
|
179 | + $venue = $this->_event->get_first_related('Venue'); |
|
180 | + if (empty($venue)) { |
|
181 | + return ''; |
|
182 | + } |
|
183 | + return $venue->get('VNU_virtual_phone'); |
|
184 | + break; |
|
185 | + |
|
186 | + case '[EVENT_IMAGE]': |
|
187 | + $image = $this->_event->feature_image_url(array(600, 300)); |
|
188 | + // @todo: eventually we should make this an attribute shortcode so that em can send along what size they want returned. |
|
189 | + return ! empty($image) |
|
190 | + ? '<img src="' . $image . '" alt="' |
|
191 | + . sprintf( |
|
192 | + esc_attr__('%s Feature Image', 'event_espresso'), |
|
193 | + $this->_event->get('EVT_name') |
|
194 | + ) . '" />' |
|
195 | + : ''; |
|
196 | + break; |
|
197 | + |
|
198 | + case '[EVENT_FACEBOOK_URL]': |
|
199 | + $facebook_url = $this->_event->get_post_meta('event_facebook', true); |
|
200 | + return empty($facebook_url) ? EE_Registry::instance()->CFG->organization->get_pretty('facebook') |
|
201 | + : $facebook_url; |
|
202 | + break; |
|
203 | + |
|
204 | + case '[EVENT_TWITTER_URL]': |
|
205 | + $twitter_url = $this->_event->get_post_meta('event_twitter', true); |
|
206 | + return empty($twitter_url) ? EE_Registry::instance()->CFG->organization->get_pretty('twitter') |
|
207 | + : $twitter_url; |
|
208 | + break; |
|
209 | + |
|
210 | + case '[EVENT_AUTHOR_EMAIL]': |
|
211 | + $author_id = $this->_event->get('EVT_wp_user'); |
|
212 | + $user_data = get_userdata((int) $author_id); |
|
213 | + return $user_data->user_email; |
|
214 | + break; |
|
215 | + |
|
216 | + case '[EVENT_TOTAL_SPOTS_TAKEN]': |
|
217 | + return EEM_Registration::instance()->count( |
|
218 | + array(array('EVT_ID' => $this->_event->ID(), 'STS_ID' => EEM_Registration::status_id_approved)), |
|
219 | + 'REG_ID', |
|
220 | + true |
|
221 | + ); |
|
222 | + break; |
|
223 | + |
|
224 | + case '[REGISTRATION_LIST_TABLE_FOR_EVENT_URL]': |
|
225 | + return EEH_URL::add_query_args_and_nonce( |
|
226 | + array( |
|
227 | + 'event_id' => $this->_event->ID(), |
|
228 | + 'page' => 'espresso_registrations', |
|
229 | + 'action' => 'default', |
|
230 | + ), |
|
231 | + admin_url('admin.php'), |
|
232 | + true |
|
233 | + ); |
|
234 | + break; |
|
235 | + } |
|
236 | + |
|
237 | + if (strpos($shortcode, '[EVENT_META_*') !== false) { |
|
238 | + // Strip the shortcode itself from $shortcode leaving any attributes set. |
|
239 | + // Removing the * is correct here as _* is used to indiciate a dynamic shortcode. |
|
240 | + $shortcode = str_replace('[EVENT_META_*', '', $shortcode); |
|
241 | + $shortcode = trim(str_replace(']', '', $shortcode)); |
|
242 | + // Get any attributes set on this shortcode. |
|
243 | + $attrs = $this->_get_shortcode_attrs($shortcode); |
|
244 | + // The meta_key set on the shortcode should always be the first value in the array. |
|
245 | + $meta_key = $attrs[0]; |
|
246 | + // Pull the meta value from the event post. |
|
247 | + $event_meta = $this->_event->get_post_meta($meta_key, true); |
|
248 | + // If we have no event_meta, just return an empty string. |
|
249 | + if (empty($event_meta)) { |
|
250 | + return ''; |
|
251 | + } |
|
252 | + // Add a filter to allow all instances of EVENT_META_* to run through do_shortcode, default to false. |
|
253 | + // Check if a do_shortcode attribute was set to true and if so run $event_meta through that function. |
|
254 | + if (apply_filters('FHEE__EventEspresso_core_libraries_shortcodes_EE_Event_Shortcodes___parser__event_meta_do_shortcode', false) |
|
255 | + || !empty($attrs['do_shortcode']) && filter_var($attrs['do_shortcode'], FILTER_VALIDATE_BOOLEAN) |
|
256 | + ) { |
|
257 | + return do_shortcode($event_meta); |
|
258 | + } |
|
259 | + // Still here? We just need to return the event_meta value as is. |
|
260 | + return $event_meta; |
|
261 | + } |
|
262 | + |
|
263 | + if (strpos($shortcode, '[EVENT_TOTAL_AVAILABLE_SPACES_*') !== false) { |
|
264 | + $attrs = $this->_get_shortcode_attrs($shortcode); |
|
265 | + $method = empty($attrs['method']) ? 'current' : $attrs['method']; |
|
266 | + $method = $method === 'current'; |
|
267 | + $available = $this->_event->total_available_spaces($method); |
|
268 | + return $available === EE_INF ? '∞' : $available; |
|
269 | + } |
|
270 | + |
|
271 | + if (strpos($shortcode, '[EVENT_IMAGE_*') !== false) { |
|
272 | + $attrs = $this->_get_shortcode_attrs($shortcode); |
|
273 | + $width = empty($attrs['width']) ? '' : ' width="' . $attrs['width'] . '"'; |
|
274 | + $height = empty($attrs['height']) ? '' : ' height="' . $attrs['height'] . '"'; |
|
275 | + |
|
276 | + // Size may be set to a string such as 'tumbnail' or "width, height" eg - '200,200' |
|
277 | + if (! empty($attrs['size'])) { |
|
278 | + $size = explode(',', $attrs['size']); |
|
279 | + if (count($size) === 1) { |
|
280 | + $size = $size[0]; |
|
281 | + } |
|
282 | + } else { |
|
283 | + $size = 'thumbnail'; |
|
284 | + } |
|
285 | + |
|
286 | + $image = $this->_event->feature_image_url($size); |
|
287 | + |
|
288 | + return ! empty($image) |
|
289 | + ? '<img src="' . $image . '" alt="' |
|
290 | + . sprintf( |
|
291 | + esc_attr__('%s Feature Image', 'event_espresso'), |
|
292 | + $this->_event->get('EVT_name') |
|
293 | + ) . '"' . $width . $height . '/>' |
|
294 | + : ''; |
|
295 | + } |
|
296 | + |
|
297 | + return ''; |
|
298 | + } |
|
299 | + |
|
300 | + |
|
301 | + /** |
|
302 | + * returns the link to the event |
|
303 | + * |
|
304 | + * @param boolean $full_link if TRUE (default) we return the html for the name of the event linked to the event. |
|
305 | + * Otherwise we just return the url of the event. |
|
306 | + * @return string |
|
307 | + */ |
|
308 | + private function _get_event_link($event, $full_link = true) |
|
309 | + { |
|
310 | + $url = get_permalink($event->ID()); |
|
311 | + |
|
312 | + return $full_link ? '<a href="' . $url . '">' . $event->get('EVT_name') . '</a>' : $url; |
|
313 | + } |
|
314 | 314 | } |
@@ -125,6 +125,9 @@ discard block |
||
125 | 125 | } |
126 | 126 | |
127 | 127 | |
128 | + /** |
|
129 | + * @param EE_Registration $reg |
|
130 | + */ |
|
128 | 131 | private function _get_tickets_from_event(EE_Event $event, $reg = null) |
129 | 132 | { |
130 | 133 | $evt_tkts = isset($this->_extra_data['data']->events) ? $this->_extra_data['data']->events[ $event->ID( |
@@ -203,6 +206,9 @@ discard block |
||
203 | 206 | } |
204 | 207 | |
205 | 208 | |
209 | + /** |
|
210 | + * @param EE_Registration $reg |
|
211 | + */ |
|
206 | 212 | private function _get_datetimes_from_event(EE_Event $event, $reg = null) |
207 | 213 | { |
208 | 214 | $evt_dtts = isset($this->_extra_data['data']->events) ? $this->_extra_data['data']->events[ $event->ID( |
@@ -19,205 +19,205 @@ |
||
19 | 19 | class EE_Primary_Registration_List_Shortcodes extends EE_Shortcodes |
20 | 20 | { |
21 | 21 | |
22 | - public function __construct() |
|
23 | - { |
|
24 | - parent::__construct(); |
|
25 | - } |
|
26 | - |
|
27 | - |
|
28 | - protected function _init_props() |
|
29 | - { |
|
30 | - $this->label = __('Primary Registrant List Shortcodes', 'event_espresso'); |
|
31 | - $this->description = __( |
|
32 | - 'All shortcodes specific primary registrant recipients list type data.', |
|
33 | - 'event_espresso' |
|
34 | - ); |
|
35 | - $this->_shortcodes = array( |
|
36 | - '[PRIMARY_REGISTRANT_TICKET_LIST]' => __( |
|
37 | - 'Will output a list of tickets that the primary registration received.', |
|
38 | - 'event_espresso' |
|
39 | - ), |
|
40 | - '[PRIMARY_REGISTRANT_DATETIME_LIST]' => __( |
|
41 | - 'Will output a list of datetimes that the primary registrant for the transaction has been registered for.', |
|
42 | - 'event_espresso' |
|
43 | - ), |
|
44 | - ); |
|
45 | - } |
|
46 | - |
|
47 | - |
|
48 | - protected function _parser($shortcode) |
|
49 | - { |
|
50 | - switch ($shortcode) { |
|
51 | - case '[PRIMARY_REGISTRANT_TICKET_LIST]': |
|
52 | - return $this->_get_recipient_ticket_list(true); |
|
53 | - break; |
|
54 | - |
|
55 | - case '[PRIMARY_REGISTRANT_DATETIME_LIST]': |
|
56 | - return $this->_get_recipient_datetime_list(true); |
|
57 | - break; |
|
58 | - } |
|
59 | - return ''; |
|
60 | - } |
|
61 | - |
|
62 | - |
|
63 | - /** |
|
64 | - * figure out what the incoming data is and then return the appropriate parsed value |
|
65 | - * |
|
66 | - * @param boolean $primary whether we're getting the primary registrant ticket_list. |
|
67 | - * @return string |
|
68 | - */ |
|
69 | - private function _get_recipient_ticket_list($primary = false) |
|
70 | - { |
|
71 | - $this->_validate_list_requirements(); |
|
72 | - |
|
73 | - if ($this->_data['data'] instanceof EE_Messages_Addressee) { |
|
74 | - return $this->_get_recipient_ticket_list_parsed($this->_data['data'], $primary); |
|
75 | - } elseif ($this->_extra_data['data'] instanceof EE_Messages_Addressee) { |
|
76 | - return $this->_get_recipient_ticket_list_parsed($this->_extra_data['data'], $primary); |
|
77 | - } else { |
|
78 | - return ''; |
|
79 | - } |
|
80 | - } |
|
81 | - |
|
82 | - |
|
83 | - private function _get_recipient_ticket_list_parsed(EE_Messages_Addressee $data, $primary = false) |
|
84 | - { |
|
85 | - $registration = $primary ? $data->primary_reg_obj : $data->reg_obj; |
|
86 | - if (! $registration instanceof EE_Registration) { |
|
87 | - return ''; |
|
88 | - } |
|
89 | - // setup valid shortcodes depending on what the status of the $this->_data property is |
|
90 | - if ($this->_data['data'] instanceof EE_Messages_Addressee) { |
|
91 | - $valid_shortcodes = array( |
|
92 | - 'ticket', |
|
93 | - 'event_list', |
|
94 | - 'attendee_list', |
|
95 | - 'datetime_list', |
|
96 | - 'registration_details', |
|
97 | - 'attendee', |
|
98 | - ); |
|
99 | - $template = $this->_data['template']; |
|
100 | - $tkts = array($data->registrations[ $registration->ID() ]['tkt_obj']); |
|
101 | - $data = $this->_data; |
|
102 | - } elseif ($this->_data['data'] instanceof EE_Event) { |
|
103 | - $valid_shortcodes = array('ticket', 'attendee_list', 'datetime_list', 'attendee'); |
|
104 | - $template = is_array($this->_data['template']) && isset($this->_data['template']['ticket_list']) |
|
105 | - ? $this->_data['template']['ticket_list'] : $this->_extra_data['template']['ticket_list']; |
|
106 | - // let's remove any existing [EVENT_LIST] shortcode from the ticket list template so that we don't get recursion. |
|
107 | - $template = str_replace('[EVENT_LIST]', '', $template); |
|
108 | - // data will be tickets for this event for this recipient. |
|
109 | - $tkts = $this->_get_tickets_from_event($this->_data['data'], $registration); |
|
110 | - $data = $this->_extra_data; |
|
111 | - } else { |
|
112 | - return ''; |
|
113 | - } |
|
114 | - |
|
115 | - $tktparsed = ''; |
|
116 | - foreach ($tkts as $ticket) { |
|
117 | - $tktparsed .= $this->_shortcode_helper->parse_ticket_list_template( |
|
118 | - $template, |
|
119 | - $ticket, |
|
120 | - $valid_shortcodes, |
|
121 | - $data |
|
122 | - ); |
|
123 | - } |
|
124 | - return $tktparsed; |
|
125 | - } |
|
126 | - |
|
127 | - |
|
128 | - private function _get_tickets_from_event(EE_Event $event, $reg = null) |
|
129 | - { |
|
130 | - $evt_tkts = isset($this->_extra_data['data']->events) ? $this->_extra_data['data']->events[ $event->ID( |
|
131 | - ) ]['tkt_objs'] : array(); |
|
132 | - |
|
133 | - if ($reg instanceof EE_Registration && $this->_extra_data['data'] instanceof EE_Messages_Addressee) { |
|
134 | - $adj_tkts = array(); |
|
135 | - // return only tickets for the given attendee |
|
136 | - foreach ($evt_tkts as $tkt) { |
|
137 | - if (isset($this->_extra_data['data']->registrations[ $reg->ID() ]['tkt_obj']) |
|
138 | - && $this->_extra_data['data']->registrations[ $reg->ID() ]['tkt_obj']->ID() == $tkt->ID() |
|
139 | - ) { |
|
140 | - $adj_tkts[] = $tkt; |
|
141 | - } |
|
142 | - } |
|
143 | - $evt_tkts = $adj_tkts; |
|
144 | - } |
|
145 | - return $evt_tkts; |
|
146 | - } |
|
147 | - |
|
148 | - |
|
149 | - /** |
|
150 | - * figure out what the incoming data is and then return the appropriate parsed value |
|
151 | - * |
|
152 | - * @param boolean $primary whether we're getting the primary registrant ticket_list. |
|
153 | - * @return string |
|
154 | - */ |
|
155 | - private function _get_recipient_datetime_list($primary = false) |
|
156 | - { |
|
157 | - $this->_validate_list_requirements(); |
|
158 | - |
|
159 | - if ($this->_data['data'] instanceof EE_Messages_Addressee) { |
|
160 | - return $this->_get_recipient_datetime_list_parsed($this->_data['data'], $primary); |
|
161 | - } elseif ($this->_extra_data['data'] instanceof EE_Messages_Addressee) { |
|
162 | - return $this->_get_recipient_datetime_list_parsed($this->_extra_data['data'], $primary); |
|
163 | - } else { |
|
164 | - return ''; |
|
165 | - } |
|
166 | - |
|
167 | - return $this->_get_recipient_datetime_list_parsed($this->_data['data'], $primary); |
|
168 | - } |
|
169 | - |
|
170 | - |
|
171 | - private function _get_recipient_datetime_list_parsed(EE_Messages_Addressee $data, $primary = false) |
|
172 | - { |
|
173 | - $registration = $primary ? $data->primary_reg_obj : $data->reg_obj; |
|
174 | - if (! $registration instanceof EE_Registration) { |
|
175 | - return ''; |
|
176 | - } |
|
177 | - // setup valid shortcodes depending on what the status of the $this->_data property is |
|
178 | - if ($this->_data['data'] instanceof EE_Messages_Addressee) { |
|
179 | - $valid_shortcodes = array('datetime', 'attendee'); |
|
180 | - $template = $this->_data['template']; |
|
181 | - $dtts = $data->registrations[ $registration->ID() ]['dtt_objs']; |
|
182 | - $data = $this->_data; |
|
183 | - } elseif ($this->_data['data'] instanceof EE_Event) { |
|
184 | - $valid_shortcodes = array('datetime', 'attendee'); |
|
185 | - $template = is_array($this->_data['template']) && isset($this->_data['template']['datetime_list']) |
|
186 | - ? $this->_data['template']['datetime_list'] : $this->_extra_data['template']['datetime_list']; |
|
187 | - $dtts = $this->_get_datetimes_from_event($this->_data['data'], $registration); |
|
188 | - $data = $this->_extra_data; |
|
189 | - } else { |
|
190 | - return ''; |
|
191 | - } |
|
192 | - |
|
193 | - $dtt_parsed = ''; |
|
194 | - foreach ($dtts as $datetime) { |
|
195 | - $dtt_parsed .= $this->_shortcode_helper->parse_datetime_list_template( |
|
196 | - $template, |
|
197 | - $datetime, |
|
198 | - $valid_shortcodes, |
|
199 | - $this->_extra_data |
|
200 | - ); |
|
201 | - } |
|
202 | - return $dtt_parsed; |
|
203 | - } |
|
204 | - |
|
205 | - |
|
206 | - private function _get_datetimes_from_event(EE_Event $event, $reg = null) |
|
207 | - { |
|
208 | - $evt_dtts = isset($this->_extra_data['data']->events) ? $this->_extra_data['data']->events[ $event->ID( |
|
209 | - ) ]['dtt_objs'] : array(); |
|
210 | - |
|
211 | - if ($reg instanceof EE_Registration && $this->_extra_data['data'] instanceof EE_Messages_Addressee) { |
|
212 | - $adj_dtts = array(); |
|
213 | - // return only dtts for the given attendee |
|
214 | - foreach ($evt_dtts as $dtt) { |
|
215 | - if (isset($this->_extra_data['data']->registrations[ $reg->ID() ]['dtt_objs'][ $dtt->ID() ])) { |
|
216 | - $adj_dtts[] = $dtt; |
|
217 | - } |
|
218 | - } |
|
219 | - $evt_dtts = $adj_dtts; |
|
220 | - } |
|
221 | - return $evt_dtts; |
|
222 | - } |
|
22 | + public function __construct() |
|
23 | + { |
|
24 | + parent::__construct(); |
|
25 | + } |
|
26 | + |
|
27 | + |
|
28 | + protected function _init_props() |
|
29 | + { |
|
30 | + $this->label = __('Primary Registrant List Shortcodes', 'event_espresso'); |
|
31 | + $this->description = __( |
|
32 | + 'All shortcodes specific primary registrant recipients list type data.', |
|
33 | + 'event_espresso' |
|
34 | + ); |
|
35 | + $this->_shortcodes = array( |
|
36 | + '[PRIMARY_REGISTRANT_TICKET_LIST]' => __( |
|
37 | + 'Will output a list of tickets that the primary registration received.', |
|
38 | + 'event_espresso' |
|
39 | + ), |
|
40 | + '[PRIMARY_REGISTRANT_DATETIME_LIST]' => __( |
|
41 | + 'Will output a list of datetimes that the primary registrant for the transaction has been registered for.', |
|
42 | + 'event_espresso' |
|
43 | + ), |
|
44 | + ); |
|
45 | + } |
|
46 | + |
|
47 | + |
|
48 | + protected function _parser($shortcode) |
|
49 | + { |
|
50 | + switch ($shortcode) { |
|
51 | + case '[PRIMARY_REGISTRANT_TICKET_LIST]': |
|
52 | + return $this->_get_recipient_ticket_list(true); |
|
53 | + break; |
|
54 | + |
|
55 | + case '[PRIMARY_REGISTRANT_DATETIME_LIST]': |
|
56 | + return $this->_get_recipient_datetime_list(true); |
|
57 | + break; |
|
58 | + } |
|
59 | + return ''; |
|
60 | + } |
|
61 | + |
|
62 | + |
|
63 | + /** |
|
64 | + * figure out what the incoming data is and then return the appropriate parsed value |
|
65 | + * |
|
66 | + * @param boolean $primary whether we're getting the primary registrant ticket_list. |
|
67 | + * @return string |
|
68 | + */ |
|
69 | + private function _get_recipient_ticket_list($primary = false) |
|
70 | + { |
|
71 | + $this->_validate_list_requirements(); |
|
72 | + |
|
73 | + if ($this->_data['data'] instanceof EE_Messages_Addressee) { |
|
74 | + return $this->_get_recipient_ticket_list_parsed($this->_data['data'], $primary); |
|
75 | + } elseif ($this->_extra_data['data'] instanceof EE_Messages_Addressee) { |
|
76 | + return $this->_get_recipient_ticket_list_parsed($this->_extra_data['data'], $primary); |
|
77 | + } else { |
|
78 | + return ''; |
|
79 | + } |
|
80 | + } |
|
81 | + |
|
82 | + |
|
83 | + private function _get_recipient_ticket_list_parsed(EE_Messages_Addressee $data, $primary = false) |
|
84 | + { |
|
85 | + $registration = $primary ? $data->primary_reg_obj : $data->reg_obj; |
|
86 | + if (! $registration instanceof EE_Registration) { |
|
87 | + return ''; |
|
88 | + } |
|
89 | + // setup valid shortcodes depending on what the status of the $this->_data property is |
|
90 | + if ($this->_data['data'] instanceof EE_Messages_Addressee) { |
|
91 | + $valid_shortcodes = array( |
|
92 | + 'ticket', |
|
93 | + 'event_list', |
|
94 | + 'attendee_list', |
|
95 | + 'datetime_list', |
|
96 | + 'registration_details', |
|
97 | + 'attendee', |
|
98 | + ); |
|
99 | + $template = $this->_data['template']; |
|
100 | + $tkts = array($data->registrations[ $registration->ID() ]['tkt_obj']); |
|
101 | + $data = $this->_data; |
|
102 | + } elseif ($this->_data['data'] instanceof EE_Event) { |
|
103 | + $valid_shortcodes = array('ticket', 'attendee_list', 'datetime_list', 'attendee'); |
|
104 | + $template = is_array($this->_data['template']) && isset($this->_data['template']['ticket_list']) |
|
105 | + ? $this->_data['template']['ticket_list'] : $this->_extra_data['template']['ticket_list']; |
|
106 | + // let's remove any existing [EVENT_LIST] shortcode from the ticket list template so that we don't get recursion. |
|
107 | + $template = str_replace('[EVENT_LIST]', '', $template); |
|
108 | + // data will be tickets for this event for this recipient. |
|
109 | + $tkts = $this->_get_tickets_from_event($this->_data['data'], $registration); |
|
110 | + $data = $this->_extra_data; |
|
111 | + } else { |
|
112 | + return ''; |
|
113 | + } |
|
114 | + |
|
115 | + $tktparsed = ''; |
|
116 | + foreach ($tkts as $ticket) { |
|
117 | + $tktparsed .= $this->_shortcode_helper->parse_ticket_list_template( |
|
118 | + $template, |
|
119 | + $ticket, |
|
120 | + $valid_shortcodes, |
|
121 | + $data |
|
122 | + ); |
|
123 | + } |
|
124 | + return $tktparsed; |
|
125 | + } |
|
126 | + |
|
127 | + |
|
128 | + private function _get_tickets_from_event(EE_Event $event, $reg = null) |
|
129 | + { |
|
130 | + $evt_tkts = isset($this->_extra_data['data']->events) ? $this->_extra_data['data']->events[ $event->ID( |
|
131 | + ) ]['tkt_objs'] : array(); |
|
132 | + |
|
133 | + if ($reg instanceof EE_Registration && $this->_extra_data['data'] instanceof EE_Messages_Addressee) { |
|
134 | + $adj_tkts = array(); |
|
135 | + // return only tickets for the given attendee |
|
136 | + foreach ($evt_tkts as $tkt) { |
|
137 | + if (isset($this->_extra_data['data']->registrations[ $reg->ID() ]['tkt_obj']) |
|
138 | + && $this->_extra_data['data']->registrations[ $reg->ID() ]['tkt_obj']->ID() == $tkt->ID() |
|
139 | + ) { |
|
140 | + $adj_tkts[] = $tkt; |
|
141 | + } |
|
142 | + } |
|
143 | + $evt_tkts = $adj_tkts; |
|
144 | + } |
|
145 | + return $evt_tkts; |
|
146 | + } |
|
147 | + |
|
148 | + |
|
149 | + /** |
|
150 | + * figure out what the incoming data is and then return the appropriate parsed value |
|
151 | + * |
|
152 | + * @param boolean $primary whether we're getting the primary registrant ticket_list. |
|
153 | + * @return string |
|
154 | + */ |
|
155 | + private function _get_recipient_datetime_list($primary = false) |
|
156 | + { |
|
157 | + $this->_validate_list_requirements(); |
|
158 | + |
|
159 | + if ($this->_data['data'] instanceof EE_Messages_Addressee) { |
|
160 | + return $this->_get_recipient_datetime_list_parsed($this->_data['data'], $primary); |
|
161 | + } elseif ($this->_extra_data['data'] instanceof EE_Messages_Addressee) { |
|
162 | + return $this->_get_recipient_datetime_list_parsed($this->_extra_data['data'], $primary); |
|
163 | + } else { |
|
164 | + return ''; |
|
165 | + } |
|
166 | + |
|
167 | + return $this->_get_recipient_datetime_list_parsed($this->_data['data'], $primary); |
|
168 | + } |
|
169 | + |
|
170 | + |
|
171 | + private function _get_recipient_datetime_list_parsed(EE_Messages_Addressee $data, $primary = false) |
|
172 | + { |
|
173 | + $registration = $primary ? $data->primary_reg_obj : $data->reg_obj; |
|
174 | + if (! $registration instanceof EE_Registration) { |
|
175 | + return ''; |
|
176 | + } |
|
177 | + // setup valid shortcodes depending on what the status of the $this->_data property is |
|
178 | + if ($this->_data['data'] instanceof EE_Messages_Addressee) { |
|
179 | + $valid_shortcodes = array('datetime', 'attendee'); |
|
180 | + $template = $this->_data['template']; |
|
181 | + $dtts = $data->registrations[ $registration->ID() ]['dtt_objs']; |
|
182 | + $data = $this->_data; |
|
183 | + } elseif ($this->_data['data'] instanceof EE_Event) { |
|
184 | + $valid_shortcodes = array('datetime', 'attendee'); |
|
185 | + $template = is_array($this->_data['template']) && isset($this->_data['template']['datetime_list']) |
|
186 | + ? $this->_data['template']['datetime_list'] : $this->_extra_data['template']['datetime_list']; |
|
187 | + $dtts = $this->_get_datetimes_from_event($this->_data['data'], $registration); |
|
188 | + $data = $this->_extra_data; |
|
189 | + } else { |
|
190 | + return ''; |
|
191 | + } |
|
192 | + |
|
193 | + $dtt_parsed = ''; |
|
194 | + foreach ($dtts as $datetime) { |
|
195 | + $dtt_parsed .= $this->_shortcode_helper->parse_datetime_list_template( |
|
196 | + $template, |
|
197 | + $datetime, |
|
198 | + $valid_shortcodes, |
|
199 | + $this->_extra_data |
|
200 | + ); |
|
201 | + } |
|
202 | + return $dtt_parsed; |
|
203 | + } |
|
204 | + |
|
205 | + |
|
206 | + private function _get_datetimes_from_event(EE_Event $event, $reg = null) |
|
207 | + { |
|
208 | + $evt_dtts = isset($this->_extra_data['data']->events) ? $this->_extra_data['data']->events[ $event->ID( |
|
209 | + ) ]['dtt_objs'] : array(); |
|
210 | + |
|
211 | + if ($reg instanceof EE_Registration && $this->_extra_data['data'] instanceof EE_Messages_Addressee) { |
|
212 | + $adj_dtts = array(); |
|
213 | + // return only dtts for the given attendee |
|
214 | + foreach ($evt_dtts as $dtt) { |
|
215 | + if (isset($this->_extra_data['data']->registrations[ $reg->ID() ]['dtt_objs'][ $dtt->ID() ])) { |
|
216 | + $adj_dtts[] = $dtt; |
|
217 | + } |
|
218 | + } |
|
219 | + $evt_dtts = $adj_dtts; |
|
220 | + } |
|
221 | + return $evt_dtts; |
|
222 | + } |
|
223 | 223 | } |
@@ -83,7 +83,7 @@ discard block |
||
83 | 83 | private function _get_recipient_ticket_list_parsed(EE_Messages_Addressee $data, $primary = false) |
84 | 84 | { |
85 | 85 | $registration = $primary ? $data->primary_reg_obj : $data->reg_obj; |
86 | - if (! $registration instanceof EE_Registration) { |
|
86 | + if ( ! $registration instanceof EE_Registration) { |
|
87 | 87 | return ''; |
88 | 88 | } |
89 | 89 | // setup valid shortcodes depending on what the status of the $this->_data property is |
@@ -97,7 +97,7 @@ discard block |
||
97 | 97 | 'attendee', |
98 | 98 | ); |
99 | 99 | $template = $this->_data['template']; |
100 | - $tkts = array($data->registrations[ $registration->ID() ]['tkt_obj']); |
|
100 | + $tkts = array($data->registrations[$registration->ID()]['tkt_obj']); |
|
101 | 101 | $data = $this->_data; |
102 | 102 | } elseif ($this->_data['data'] instanceof EE_Event) { |
103 | 103 | $valid_shortcodes = array('ticket', 'attendee_list', 'datetime_list', 'attendee'); |
@@ -127,15 +127,15 @@ discard block |
||
127 | 127 | |
128 | 128 | private function _get_tickets_from_event(EE_Event $event, $reg = null) |
129 | 129 | { |
130 | - $evt_tkts = isset($this->_extra_data['data']->events) ? $this->_extra_data['data']->events[ $event->ID( |
|
131 | - ) ]['tkt_objs'] : array(); |
|
130 | + $evt_tkts = isset($this->_extra_data['data']->events) ? $this->_extra_data['data']->events[$event->ID( |
|
131 | + )]['tkt_objs'] : array(); |
|
132 | 132 | |
133 | 133 | if ($reg instanceof EE_Registration && $this->_extra_data['data'] instanceof EE_Messages_Addressee) { |
134 | 134 | $adj_tkts = array(); |
135 | 135 | // return only tickets for the given attendee |
136 | 136 | foreach ($evt_tkts as $tkt) { |
137 | - if (isset($this->_extra_data['data']->registrations[ $reg->ID() ]['tkt_obj']) |
|
138 | - && $this->_extra_data['data']->registrations[ $reg->ID() ]['tkt_obj']->ID() == $tkt->ID() |
|
137 | + if (isset($this->_extra_data['data']->registrations[$reg->ID()]['tkt_obj']) |
|
138 | + && $this->_extra_data['data']->registrations[$reg->ID()]['tkt_obj']->ID() == $tkt->ID() |
|
139 | 139 | ) { |
140 | 140 | $adj_tkts[] = $tkt; |
141 | 141 | } |
@@ -171,14 +171,14 @@ discard block |
||
171 | 171 | private function _get_recipient_datetime_list_parsed(EE_Messages_Addressee $data, $primary = false) |
172 | 172 | { |
173 | 173 | $registration = $primary ? $data->primary_reg_obj : $data->reg_obj; |
174 | - if (! $registration instanceof EE_Registration) { |
|
174 | + if ( ! $registration instanceof EE_Registration) { |
|
175 | 175 | return ''; |
176 | 176 | } |
177 | 177 | // setup valid shortcodes depending on what the status of the $this->_data property is |
178 | 178 | if ($this->_data['data'] instanceof EE_Messages_Addressee) { |
179 | 179 | $valid_shortcodes = array('datetime', 'attendee'); |
180 | 180 | $template = $this->_data['template']; |
181 | - $dtts = $data->registrations[ $registration->ID() ]['dtt_objs']; |
|
181 | + $dtts = $data->registrations[$registration->ID()]['dtt_objs']; |
|
182 | 182 | $data = $this->_data; |
183 | 183 | } elseif ($this->_data['data'] instanceof EE_Event) { |
184 | 184 | $valid_shortcodes = array('datetime', 'attendee'); |
@@ -205,14 +205,14 @@ discard block |
||
205 | 205 | |
206 | 206 | private function _get_datetimes_from_event(EE_Event $event, $reg = null) |
207 | 207 | { |
208 | - $evt_dtts = isset($this->_extra_data['data']->events) ? $this->_extra_data['data']->events[ $event->ID( |
|
209 | - ) ]['dtt_objs'] : array(); |
|
208 | + $evt_dtts = isset($this->_extra_data['data']->events) ? $this->_extra_data['data']->events[$event->ID( |
|
209 | + )]['dtt_objs'] : array(); |
|
210 | 210 | |
211 | 211 | if ($reg instanceof EE_Registration && $this->_extra_data['data'] instanceof EE_Messages_Addressee) { |
212 | 212 | $adj_dtts = array(); |
213 | 213 | // return only dtts for the given attendee |
214 | 214 | foreach ($evt_dtts as $dtt) { |
215 | - if (isset($this->_extra_data['data']->registrations[ $reg->ID() ]['dtt_objs'][ $dtt->ID() ])) { |
|
215 | + if (isset($this->_extra_data['data']->registrations[$reg->ID()]['dtt_objs'][$dtt->ID()])) { |
|
216 | 216 | $adj_dtts[] = $dtt; |
217 | 217 | } |
218 | 218 | } |
@@ -20,6 +20,7 @@ discard block |
||
20 | 20 | |
21 | 21 | /** |
22 | 22 | * @param bool $throw_exceptions |
23 | + * @return void |
|
23 | 24 | */ |
24 | 25 | public function setThrowExceptions($throw_exceptions); |
25 | 26 | |
@@ -37,7 +38,7 @@ discard block |
||
37 | 38 | public function process(NoticesContainerInterface $notices); |
38 | 39 | |
39 | 40 | /** |
40 | - * @return void; |
|
41 | + * @return void |
|
41 | 42 | */ |
42 | 43 | public function clearNotices(); |
43 | 44 | } |
@@ -13,31 +13,31 @@ |
||
13 | 13 | interface NoticeConverterInterface |
14 | 14 | { |
15 | 15 | |
16 | - /** |
|
17 | - * @return NoticesContainerInterface |
|
18 | - */ |
|
19 | - public function getNotices(); |
|
16 | + /** |
|
17 | + * @return NoticesContainerInterface |
|
18 | + */ |
|
19 | + public function getNotices(); |
|
20 | 20 | |
21 | - /** |
|
22 | - * @param bool $throw_exceptions |
|
23 | - */ |
|
24 | - public function setThrowExceptions($throw_exceptions); |
|
21 | + /** |
|
22 | + * @param bool $throw_exceptions |
|
23 | + */ |
|
24 | + public function setThrowExceptions($throw_exceptions); |
|
25 | 25 | |
26 | - /** |
|
27 | - * @return bool |
|
28 | - */ |
|
29 | - public function getThrowExceptions(); |
|
26 | + /** |
|
27 | + * @return bool |
|
28 | + */ |
|
29 | + public function getThrowExceptions(); |
|
30 | 30 | |
31 | - /** |
|
32 | - * Converts NoticesContainerInterface objects into other format |
|
33 | - * |
|
34 | - * @param NoticesContainerInterface $notices |
|
35 | - * @return |
|
36 | - */ |
|
37 | - public function process(NoticesContainerInterface $notices); |
|
31 | + /** |
|
32 | + * Converts NoticesContainerInterface objects into other format |
|
33 | + * |
|
34 | + * @param NoticesContainerInterface $notices |
|
35 | + * @return |
|
36 | + */ |
|
37 | + public function process(NoticesContainerInterface $notices); |
|
38 | 38 | |
39 | - /** |
|
40 | - * @return void; |
|
41 | - */ |
|
42 | - public function clearNotices(); |
|
39 | + /** |
|
40 | + * @return void; |
|
41 | + */ |
|
42 | + public function clearNotices(); |
|
43 | 43 | } |
@@ -231,7 +231,7 @@ discard block |
||
231 | 231 | * display_add_new_state_micro_form |
232 | 232 | * |
233 | 233 | * @param EE_Form_Section_Proper $question_group_reg_form |
234 | - * @return string |
|
234 | + * @return EE_Form_Section_Proper |
|
235 | 235 | * @throws EE_Error |
236 | 236 | * @throws InvalidArgumentException |
237 | 237 | * @throws InvalidDataTypeException |
@@ -773,7 +773,7 @@ discard block |
||
773 | 773 | |
774 | 774 | /** |
775 | 775 | * @param EE_State[] $state_options |
776 | - * @return array |
|
776 | + * @return EE_State[] |
|
777 | 777 | * @throws EE_Error |
778 | 778 | * @throws InvalidArgumentException |
779 | 779 | * @throws InvalidDataTypeException |
@@ -17,818 +17,818 @@ |
||
17 | 17 | { |
18 | 18 | |
19 | 19 | |
20 | - /** |
|
21 | - * @return EED_Module|EED_Add_New_State |
|
22 | - */ |
|
23 | - public static function instance() |
|
24 | - { |
|
25 | - return parent::get_instance(__CLASS__); |
|
26 | - } |
|
27 | - |
|
28 | - |
|
29 | - /** |
|
30 | - * set_hooks - for hooking into EE Core, other modules, etc |
|
31 | - * |
|
32 | - * @return void |
|
33 | - */ |
|
34 | - public static function set_hooks() |
|
35 | - { |
|
36 | - add_action('wp_loaded', array('EED_Add_New_State', 'set_definitions'), 2); |
|
37 | - add_action('wp_enqueue_scripts', array('EED_Add_New_State', 'translate_js_strings'), 0); |
|
38 | - add_action('wp_enqueue_scripts', array('EED_Add_New_State', 'wp_enqueue_scripts'), 10); |
|
39 | - add_filter( |
|
40 | - 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___question_group_reg_form__question_group_reg_form', |
|
41 | - array('EED_Add_New_State', 'display_add_new_state_micro_form'), |
|
42 | - 1, |
|
43 | - 1 |
|
44 | - ); |
|
45 | - add_filter( |
|
46 | - 'FHEE__EE_SPCO_Reg_Step_Payment_Options___get_billing_form_for_payment_method__billing_form', |
|
47 | - array('EED_Add_New_State', 'display_add_new_state_micro_form'), |
|
48 | - 1, |
|
49 | - 1 |
|
50 | - ); |
|
51 | - add_filter( |
|
52 | - 'FHEE__EE_Single_Page_Checkout__process_attendee_information__valid_data_line_item', |
|
53 | - array('EED_Add_New_State', 'unset_new_state_request_params'), |
|
54 | - 10, |
|
55 | - 1 |
|
56 | - ); |
|
57 | - add_filter( |
|
58 | - 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__state_options', |
|
59 | - array('EED_Add_New_State', 'inject_new_reg_state_into_options'), |
|
60 | - 10, |
|
61 | - 5 |
|
62 | - ); |
|
63 | - add_filter( |
|
64 | - 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__country_options', |
|
65 | - array('EED_Add_New_State', 'inject_new_reg_country_into_options'), |
|
66 | - 10, |
|
67 | - 5 |
|
68 | - ); |
|
69 | - add_filter( |
|
70 | - 'FHEE__EE_State_Select_Input____construct__state_options', |
|
71 | - array('EED_Add_New_State', 'state_options'), |
|
72 | - 10, |
|
73 | - 1 |
|
74 | - ); |
|
75 | - add_filter( |
|
76 | - 'FHEE__EE_Country_Select_Input____construct__country_options', |
|
77 | - array('EED_Add_New_State', 'country_options'), |
|
78 | - 10, |
|
79 | - 1 |
|
80 | - ); |
|
81 | - } |
|
82 | - |
|
83 | - |
|
84 | - /** |
|
85 | - * set_hooks_admin - for hooking into EE Admin Core, other modules, etc |
|
86 | - * |
|
87 | - * @return void |
|
88 | - */ |
|
89 | - public static function set_hooks_admin() |
|
90 | - { |
|
91 | - add_action('wp_loaded', array('EED_Add_New_State', 'set_definitions'), 2); |
|
92 | - add_filter( |
|
93 | - 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___question_group_reg_form__question_group_reg_form', |
|
94 | - array('EED_Add_New_State', 'display_add_new_state_micro_form'), |
|
95 | - 1, |
|
96 | - 1 |
|
97 | - ); |
|
98 | - add_filter( |
|
99 | - 'FHEE__EE_SPCO_Reg_Step_Payment_Options___get_billing_form_for_payment_method__billing_form', |
|
100 | - array('EED_Add_New_State', 'display_add_new_state_micro_form'), |
|
101 | - 1, |
|
102 | - 1 |
|
103 | - ); |
|
104 | - add_action('wp_ajax_espresso_add_new_state', array('EED_Add_New_State', 'add_new_state')); |
|
105 | - add_action('wp_ajax_nopriv_espresso_add_new_state', array('EED_Add_New_State', 'add_new_state')); |
|
106 | - add_filter( |
|
107 | - 'FHEE__EE_Single_Page_Checkout__process_attendee_information__valid_data_line_item', |
|
108 | - array('EED_Add_New_State', 'unset_new_state_request_params'), |
|
109 | - 10, |
|
110 | - 1 |
|
111 | - ); |
|
112 | - add_action( |
|
113 | - 'AHEE__General_Settings_Admin_Page__update_country_settings__state_saved', |
|
114 | - array('EED_Add_New_State', 'update_country_settings'), |
|
115 | - 10, |
|
116 | - 3 |
|
117 | - ); |
|
118 | - add_action( |
|
119 | - 'AHEE__General_Settings_Admin_Page__delete_state__state_deleted', |
|
120 | - array('EED_Add_New_State', 'update_country_settings'), |
|
121 | - 10, |
|
122 | - 3 |
|
123 | - ); |
|
124 | - add_filter( |
|
125 | - 'FHEE__EE_State_Select_Input____construct__state_options', |
|
126 | - array('EED_Add_New_State', 'state_options'), |
|
127 | - 10, |
|
128 | - 1 |
|
129 | - ); |
|
130 | - add_filter( |
|
131 | - 'FHEE__EE_Country_Select_Input____construct__country_options', |
|
132 | - array('EED_Add_New_State', 'country_options'), |
|
133 | - 10, |
|
134 | - 1 |
|
135 | - ); |
|
136 | - add_filter( |
|
137 | - 'FHEE__EE_Form_Section_Proper__receive_form_submission__request_data', |
|
138 | - array('EED_Add_New_State', 'filter_checkout_request_params'), |
|
139 | - 10, |
|
140 | - 1 |
|
141 | - ); |
|
142 | - add_filter( |
|
143 | - 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__state_options', |
|
144 | - array('EED_Add_New_State', 'inject_new_reg_state_into_options'), |
|
145 | - 10, |
|
146 | - 5 |
|
147 | - ); |
|
148 | - add_filter( |
|
149 | - 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__country_options', |
|
150 | - array('EED_Add_New_State', 'inject_new_reg_country_into_options'), |
|
151 | - 10, |
|
152 | - 5 |
|
153 | - ); |
|
154 | - } |
|
155 | - |
|
156 | - |
|
157 | - /** |
|
158 | - * @return void |
|
159 | - */ |
|
160 | - public static function set_definitions() |
|
161 | - { |
|
162 | - define('ANS_ASSETS_URL', plugin_dir_url(__FILE__) . 'assets/'); |
|
163 | - define( |
|
164 | - 'ANS_TEMPLATES_PATH', |
|
165 | - str_replace( |
|
166 | - '\\', |
|
167 | - '/', |
|
168 | - plugin_dir_path(__FILE__) |
|
169 | - ) . 'templates/' |
|
170 | - ); |
|
171 | - } |
|
172 | - |
|
173 | - |
|
174 | - /** |
|
175 | - * @param WP $WP |
|
176 | - * @return void |
|
177 | - */ |
|
178 | - public function run($WP) |
|
179 | - { |
|
180 | - } |
|
181 | - |
|
182 | - |
|
183 | - /** |
|
184 | - * @return void |
|
185 | - */ |
|
186 | - public static function translate_js_strings() |
|
187 | - { |
|
188 | - EE_Registry::$i18n_js_strings['ans_no_country'] = esc_html__( |
|
189 | - 'In order to proceed, you need to select the Country that your State/Province belongs to.', |
|
190 | - 'event_espresso' |
|
191 | - ); |
|
192 | - EE_Registry::$i18n_js_strings['ans_no_name'] = esc_html__( |
|
193 | - 'In order to proceed, you need to enter the name of your State/Province.', |
|
194 | - 'event_espresso' |
|
195 | - ); |
|
196 | - EE_Registry::$i18n_js_strings['ans_no_abbreviation'] = esc_html__( |
|
197 | - 'In order to proceed, you need to enter an abbreviation for the name of your State/Province.', |
|
198 | - 'event_espresso' |
|
199 | - ); |
|
200 | - EE_Registry::$i18n_js_strings['ans_save_success'] = esc_html__( |
|
201 | - 'The new state was successfully saved to the database.', |
|
202 | - 'event_espresso' |
|
203 | - ); |
|
204 | - EE_Registry::$i18n_js_strings['ans_server_save_error'] = esc_html__( |
|
205 | - 'An unknown error has occurred on the server while saving the new state to the database.', |
|
206 | - 'event_espresso' |
|
207 | - ); |
|
208 | - } |
|
209 | - |
|
210 | - |
|
211 | - /** |
|
212 | - * @return void |
|
213 | - */ |
|
214 | - public static function wp_enqueue_scripts() |
|
215 | - { |
|
216 | - if (apply_filters('EED_Single_Page_Checkout__SPCO_active', false)) { |
|
217 | - wp_register_script( |
|
218 | - 'add_new_state', |
|
219 | - ANS_ASSETS_URL . 'add_new_state.js', |
|
220 | - array('espresso_core', 'single_page_checkout'), |
|
221 | - EVENT_ESPRESSO_VERSION, |
|
222 | - true |
|
223 | - ); |
|
224 | - wp_enqueue_script('add_new_state'); |
|
225 | - } |
|
226 | - } |
|
227 | - |
|
228 | - |
|
229 | - |
|
230 | - /** |
|
231 | - * display_add_new_state_micro_form |
|
232 | - * |
|
233 | - * @param EE_Form_Section_Proper $question_group_reg_form |
|
234 | - * @return string |
|
235 | - * @throws EE_Error |
|
236 | - * @throws InvalidArgumentException |
|
237 | - * @throws InvalidDataTypeException |
|
238 | - * @throws InvalidInterfaceException |
|
239 | - */ |
|
240 | - public static function display_add_new_state_micro_form(EE_Form_Section_Proper $question_group_reg_form) |
|
241 | - { |
|
242 | - // only add the 'new_state_micro_form' when displaying reg forms, |
|
243 | - // not during processing since we process the 'new_state_micro_form' in it's own AJAX request |
|
244 | - $action = EE_Registry::instance()->REQ->get('action', ''); |
|
245 | - // is the "state" question in this form section? |
|
246 | - $input = $question_group_reg_form->get_subsection('state'); |
|
247 | - if ($action === 'process_reg_step' || $action === 'update_reg_step') { |
|
248 | - // ok then all we need to do is make sure the input's HTML name is consistent |
|
249 | - // by forcing it to set it now, like it did while getting the form for display |
|
250 | - if ($input instanceof EE_State_Select_Input) { |
|
251 | - $input->html_name(); |
|
252 | - } |
|
253 | - return $question_group_reg_form; |
|
254 | - } |
|
255 | - // we're only doing this for state select inputs |
|
256 | - if ($input instanceof EE_State_Select_Input |
|
257 | - && ! $input->get_display_strategy() instanceof EE_Hidden_Display_Strategy |
|
258 | - ) { |
|
259 | - // grab any set values from the request |
|
260 | - $country_name = str_replace('state', 'nsmf_new_state_country', $input->html_name()); |
|
261 | - $state_name = str_replace('state', 'nsmf_new_state_name', $input->html_name()); |
|
262 | - $abbrv_name = str_replace('state', 'nsmf_new_state_abbrv', $input->html_name()); |
|
263 | - $new_state_submit_id = str_replace('state', 'new_state', $input->html_id()); |
|
264 | - $country_options = array(); |
|
265 | - $countries = EEM_Country::instance()->get_all_countries(); |
|
266 | - if (! empty($countries)) { |
|
267 | - foreach ($countries as $country) { |
|
268 | - if ($country instanceof EE_Country) { |
|
269 | - $country_options[ $country->ID() ] = $country->name(); |
|
270 | - } |
|
271 | - } |
|
272 | - } |
|
273 | - $new_state_micro_form = new EE_Form_Section_Proper( |
|
274 | - array( |
|
275 | - 'name' => 'new_state_micro_form', |
|
276 | - 'html_id' => 'new_state_micro_form', |
|
277 | - 'layout_strategy' => new EE_Div_Per_Section_Layout(), |
|
278 | - 'subsections' => array( |
|
279 | - // add hidden input to indicate that a new state is being added |
|
280 | - 'add_new_state' => new EE_Hidden_Input( |
|
281 | - array( |
|
282 | - 'html_name' => str_replace( |
|
283 | - 'state', |
|
284 | - 'nsmf_add_new_state', |
|
285 | - $input->html_name() |
|
286 | - ), |
|
287 | - 'html_id' => str_replace( |
|
288 | - 'state', |
|
289 | - 'nsmf_add_new_state', |
|
290 | - $input->html_id() |
|
291 | - ), |
|
292 | - 'default' => 0, |
|
293 | - ) |
|
294 | - ), |
|
295 | - // add link for displaying hidden container |
|
296 | - 'click_here_link' => new EE_Form_Section_HTML( |
|
297 | - apply_filters( |
|
298 | - 'FHEE__EED_Add_New_State__display_add_new_state_micro_form__click_here_link', |
|
299 | - EEH_HTML::link( |
|
300 | - '', |
|
301 | - esc_html__('click here to add a new state/province', 'event_espresso'), |
|
302 | - '', |
|
303 | - 'display-' . $input->html_id(), |
|
304 | - 'ee-form-add-new-state-lnk display-the-hidden smaller-text hide-if-no-js', |
|
305 | - '', |
|
306 | - 'data-target="' . $input->html_id() . '"' |
|
307 | - ) |
|
308 | - ) |
|
309 | - ), |
|
310 | - // add initial html for hidden container |
|
311 | - 'add_new_state_micro_form' => new EE_Form_Section_HTML( |
|
312 | - apply_filters( |
|
313 | - 'FHEE__EED_Add_New_State__display_add_new_state_micro_form__add_new_state_micro_form', |
|
314 | - EEH_HTML::div( |
|
315 | - '', |
|
316 | - $input->html_id() . '-dv', |
|
317 | - 'ee-form-add-new-state-dv', |
|
318 | - 'display: none;' |
|
319 | - ) . |
|
320 | - EEH_HTML::h6( |
|
321 | - esc_html__( |
|
322 | - 'Is your state/province missing from the dropdown menu above? You can add it by completing the following steps:', |
|
323 | - 'event_espresso' |
|
324 | - ) |
|
325 | - ) . |
|
326 | - EEH_HTML::ul() . |
|
327 | - EEH_HTML::li( |
|
328 | - esc_html__( |
|
329 | - 'first select the Country that your State/Province belongs to', |
|
330 | - 'event_espresso' |
|
331 | - ) |
|
332 | - ) . |
|
333 | - EEH_HTML::li( |
|
334 | - esc_html__('enter the name of your State/Province', 'event_espresso') |
|
335 | - ) . |
|
336 | - EEH_HTML::li( |
|
337 | - esc_html__( |
|
338 | - 'enter a two to six letter abbreviation for the name of your State/Province', |
|
339 | - 'event_espresso' |
|
340 | - ) |
|
341 | - ) . |
|
342 | - EEH_HTML::li(esc_html__('click the ADD button', 'event_espresso')) . |
|
343 | - EEH_HTML::ulx() |
|
344 | - ) |
|
345 | - ), |
|
346 | - // NEW STATE COUNTRY |
|
347 | - 'new_state_country' => new EE_Country_Select_Input( |
|
348 | - $country_options, |
|
349 | - array( |
|
350 | - 'html_name' => $country_name, |
|
351 | - 'html_id' => str_replace( |
|
352 | - 'state', |
|
353 | - 'nsmf_new_state_country', |
|
354 | - $input->html_id() |
|
355 | - ), |
|
356 | - 'html_class' => $input->html_class() . ' new-state-country', |
|
357 | - 'html_label_text' => esc_html__('New State/Province Country', 'event_espresso'), |
|
358 | - 'default' => EE_Registry::instance()->REQ->get($country_name, ''), |
|
359 | - 'required' => false, |
|
360 | - ) |
|
361 | - ), |
|
362 | - // NEW STATE NAME |
|
363 | - 'new_state_name' => new EE_Text_Input( |
|
364 | - array( |
|
365 | - 'html_name' => $state_name, |
|
366 | - 'html_id' => str_replace( |
|
367 | - 'state', |
|
368 | - 'nsmf_new_state_name', |
|
369 | - $input->html_id() |
|
370 | - ), |
|
371 | - 'html_class' => $input->html_class() . ' new-state-state', |
|
372 | - 'html_label_text' => esc_html__( |
|
373 | - 'New State/Province Name', |
|
374 | - 'event_espresso' |
|
375 | - ), |
|
376 | - 'default' => EE_Registry::instance()->REQ->get($state_name, ''), |
|
377 | - 'required' => false, |
|
378 | - ) |
|
379 | - ), |
|
380 | - 'spacer' => new EE_Form_Section_HTML(EEH_HTML::br()), |
|
381 | - // NEW STATE NAME |
|
382 | - 'new_state_abbrv' => new EE_Text_Input( |
|
383 | - array( |
|
384 | - 'html_name' => $abbrv_name, |
|
385 | - 'html_id' => str_replace( |
|
386 | - 'state', |
|
387 | - 'nsmf_new_state_abbrv', |
|
388 | - $input->html_id() |
|
389 | - ), |
|
390 | - 'html_class' => $input->html_class() . ' new-state-abbrv', |
|
391 | - 'html_label_text' => esc_html__( |
|
392 | - 'New State/Province Abbreviation', |
|
393 | - 'event_espresso' |
|
394 | - ) . ' *', |
|
395 | - 'other_html_attributes' => 'size="24"', |
|
396 | - 'default' => EE_Registry::instance()->REQ->get($abbrv_name, ''), |
|
397 | - 'required' => false, |
|
398 | - ) |
|
399 | - ), |
|
400 | - // "submit" button |
|
401 | - 'add_new_state_submit_button' => new EE_Form_Section_HTML( |
|
402 | - apply_filters( |
|
403 | - 'FHEE__EED_Add_New_State__display_add_new_state_micro_form__add_new_state_submit_button', |
|
404 | - EEH_HTML::nbsp(3) . |
|
405 | - EEH_HTML::link( |
|
406 | - '', |
|
407 | - esc_html__('ADD', 'event_espresso'), |
|
408 | - '', |
|
409 | - 'submit-' . $new_state_submit_id, |
|
410 | - 'ee-form-add-new-state-submit button button-secondary', |
|
411 | - '', |
|
412 | - 'data-target="' . $new_state_submit_id . '" data-value-field-name="' . $input->valueFieldName(). '"' |
|
413 | - ) |
|
414 | - ) |
|
415 | - ), |
|
416 | - // extra info |
|
417 | - 'add_new_state_extra' => new EE_Form_Section_HTML( |
|
418 | - apply_filters( |
|
419 | - 'FHEE__EED_Add_New_State__display_add_new_state_micro_form__add_new_state_extra', |
|
420 | - EEH_HTML::br(2) |
|
421 | - . |
|
422 | - EEH_HTML::div('', '', 'small-text') |
|
423 | - . |
|
424 | - EEH_HTML::strong( |
|
425 | - '* ' . |
|
426 | - esc_html__( |
|
427 | - 'Don\'t know your State/Province Abbreviation?', |
|
428 | - 'event_espresso' |
|
429 | - ) |
|
430 | - ) |
|
431 | - . |
|
432 | - EEH_HTML::br() |
|
433 | - . |
|
434 | - sprintf( |
|
435 | - esc_html__( |
|
436 | - 'You can look here: %s, for a list of Countries and links to their State/Province Abbreviations ("Subdivisions assigned codes" column).', |
|
437 | - 'event_espresso' |
|
438 | - ), |
|
439 | - EEH_HTML::link( |
|
440 | - 'http://en.wikipedia.org/wiki/ISO_3166-2', |
|
441 | - 'http://en.wikipedia.org/wiki/ISO_3166-2', |
|
442 | - '', |
|
443 | - '', |
|
444 | - 'ee-form-add-new-state-wiki-lnk', |
|
445 | - '', |
|
446 | - 'target="_blank"' |
|
447 | - ) |
|
448 | - ) |
|
449 | - . |
|
450 | - EEH_HTML::divx() |
|
451 | - . |
|
452 | - EEH_HTML::br() |
|
453 | - . |
|
454 | - EEH_HTML::link( |
|
455 | - '', |
|
456 | - esc_html__('cancel new State/Province', 'event_espresso'), |
|
457 | - '', |
|
458 | - 'hide-' . $input->html_id(), |
|
459 | - 'ee-form-cancel-new-state-lnk smaller-text', |
|
460 | - '', |
|
461 | - 'data-target="' . $input->html_id() . '"' |
|
462 | - ) |
|
463 | - . |
|
464 | - EEH_HTML::divx() |
|
465 | - . |
|
466 | - EEH_HTML::br() |
|
467 | - ) |
|
468 | - ), |
|
469 | - ), |
|
470 | - ) |
|
471 | - ); |
|
472 | - $question_group_reg_form->add_subsections( |
|
473 | - array('new_state_micro_form' => $new_state_micro_form), |
|
474 | - 'state', |
|
475 | - false |
|
476 | - ); |
|
477 | - } |
|
478 | - return $question_group_reg_form; |
|
479 | - } |
|
480 | - |
|
481 | - |
|
482 | - /** |
|
483 | - * set_new_state_input_width |
|
484 | - * |
|
485 | - * @return int|string |
|
486 | - * @throws EE_Error |
|
487 | - * @throws InvalidArgumentException |
|
488 | - * @throws InvalidDataTypeException |
|
489 | - * @throws InvalidInterfaceException |
|
490 | - * @throws ReflectionException |
|
491 | - */ |
|
492 | - public static function add_new_state() |
|
493 | - { |
|
494 | - $REQ = EE_Registry::instance()->load_core('Request_Handler'); |
|
495 | - if (absint($REQ->get('nsmf_add_new_state')) === 1) { |
|
496 | - EE_Registry::instance()->load_model('State'); |
|
497 | - // grab country ISO code, new state name, and new state abbreviation |
|
498 | - $state_country = $REQ->is_set('nsmf_new_state_country') |
|
499 | - ? sanitize_text_field($REQ->get('nsmf_new_state_country')) |
|
500 | - : false; |
|
501 | - $state_name = $REQ->is_set('nsmf_new_state_name') |
|
502 | - ? sanitize_text_field($REQ->get('nsmf_new_state_name')) |
|
503 | - : false; |
|
504 | - $state_abbr = $REQ->is_set('nsmf_new_state_abbrv') |
|
505 | - ? sanitize_text_field($REQ->get('nsmf_new_state_abbrv')) |
|
506 | - : false; |
|
507 | - if ($state_country && $state_name && $state_abbr) { |
|
508 | - $new_state = EED_Add_New_State::save_new_state_to_db( |
|
509 | - array( |
|
510 | - 'CNT_ISO' => strtoupper($state_country), |
|
511 | - 'STA_abbrev' => strtoupper($state_abbr), |
|
512 | - 'STA_name' => ucwords($state_name), |
|
513 | - 'STA_active' => false, |
|
514 | - ) |
|
515 | - ); |
|
516 | - if ($new_state instanceof EE_State) { |
|
517 | - // clean house |
|
518 | - EE_Registry::instance()->REQ->un_set('nsmf_add_new_state'); |
|
519 | - EE_Registry::instance()->REQ->un_set('nsmf_new_state_country'); |
|
520 | - EE_Registry::instance()->REQ->un_set('nsmf_new_state_name'); |
|
521 | - EE_Registry::instance()->REQ->un_set('nsmf_new_state_abbrv'); |
|
522 | - // get any existing new states |
|
523 | - $new_states = EE_Registry::instance()->SSN->get_session_data( |
|
524 | - 'nsmf_new_states' |
|
525 | - ); |
|
526 | - $new_states[ $new_state->ID() ] = $new_state; |
|
527 | - EE_Registry::instance()->SSN->set_session_data( |
|
528 | - array('nsmf_new_states' => $new_states) |
|
529 | - ); |
|
530 | - if (EE_Registry::instance()->REQ->ajax) { |
|
531 | - echo wp_json_encode( |
|
532 | - array( |
|
533 | - 'success' => true, |
|
534 | - 'id' => $new_state->ID(), |
|
535 | - 'name' => $new_state->name(), |
|
536 | - 'abbrev' => $new_state->abbrev(), |
|
537 | - 'country_iso' => $new_state->country_iso(), |
|
538 | - 'country_name' => $new_state->country()->name(), |
|
539 | - ) |
|
540 | - ); |
|
541 | - exit(); |
|
542 | - } |
|
543 | - return $new_state->ID(); |
|
544 | - } |
|
545 | - } else { |
|
546 | - $error = esc_html__( |
|
547 | - 'A new State/Province could not be added because invalid or missing data was received.', |
|
548 | - 'event_espresso' |
|
549 | - ); |
|
550 | - if (EE_Registry::instance()->REQ->ajax) { |
|
551 | - echo wp_json_encode(array('error' => $error)); |
|
552 | - exit(); |
|
553 | - } |
|
554 | - EE_Error::add_error($error, __FILE__, __FUNCTION__, __LINE__); |
|
555 | - } |
|
556 | - } |
|
557 | - return false; |
|
558 | - } |
|
559 | - |
|
560 | - |
|
561 | - /** |
|
562 | - * recursively drills down through request params to remove any that were added by this module |
|
563 | - * |
|
564 | - * @param array $request_params |
|
565 | - * @return array |
|
566 | - */ |
|
567 | - public static function filter_checkout_request_params($request_params) |
|
568 | - { |
|
569 | - foreach ($request_params as $form_section) { |
|
570 | - if (is_array($form_section)) { |
|
571 | - EED_Add_New_State::unset_new_state_request_params($form_section); |
|
572 | - EED_Add_New_State::filter_checkout_request_params($form_section); |
|
573 | - } |
|
574 | - } |
|
575 | - return $request_params; |
|
576 | - } |
|
577 | - |
|
578 | - |
|
579 | - /** |
|
580 | - * @param array $request_params |
|
581 | - * @return array |
|
582 | - */ |
|
583 | - public static function unset_new_state_request_params($request_params) |
|
584 | - { |
|
585 | - unset( |
|
586 | - $request_params['new_state_micro_form'], |
|
587 | - $request_params['new_state_micro_add_new_state'], |
|
588 | - $request_params['new_state_micro_new_state_country'], |
|
589 | - $request_params['new_state_micro_new_state_name'], |
|
590 | - $request_params['new_state_micro_new_state_abbrv'] |
|
591 | - ); |
|
592 | - return $request_params; |
|
593 | - } |
|
594 | - |
|
595 | - |
|
596 | - /** |
|
597 | - * @param array $props_n_values |
|
598 | - * @return bool |
|
599 | - * @throws EE_Error |
|
600 | - * @throws InvalidArgumentException |
|
601 | - * @throws InvalidDataTypeException |
|
602 | - * @throws InvalidInterfaceException |
|
603 | - */ |
|
604 | - public static function save_new_state_to_db($props_n_values = array()) |
|
605 | - { |
|
606 | - $existing_state = EEM_State::instance()->get_all(array($props_n_values, 'limit' => 1)); |
|
607 | - if (! empty($existing_state)) { |
|
608 | - return array_pop($existing_state); |
|
609 | - } |
|
610 | - $new_state = EE_State::new_instance($props_n_values); |
|
611 | - if ($new_state instanceof EE_State) { |
|
612 | - $country_settings_url = add_query_arg( |
|
613 | - array( |
|
614 | - 'page' => 'espresso_general_settings', |
|
615 | - 'action' => 'country_settings', |
|
616 | - 'country' => $new_state->country_iso(), |
|
617 | - ), |
|
618 | - admin_url('admin.php') |
|
619 | - ); |
|
620 | - // if not non-ajax admin |
|
621 | - new PersistentAdminNotice( |
|
622 | - 'new-state-added-' . $new_state->country_iso() . '-' . $new_state->abbrev(), |
|
623 | - sprintf( |
|
624 | - esc_html__( |
|
625 | - 'A new State named "%1$s (%2$s)" was dynamically added from an Event Espresso form for the Country of "%3$s".%5$sTo verify, edit, and/or delete this new State, please go to the %4$s and update the States / Provinces section.%5$sCheck "Yes" to have this new State added to dropdown select lists in forms.', |
|
626 | - 'event_espresso' |
|
627 | - ), |
|
628 | - '<b>' . $new_state->name() . '</b>', |
|
629 | - '<b>' . $new_state->abbrev() . '</b>', |
|
630 | - '<b>' . $new_state->country()->name() . '</b>', |
|
631 | - '<a href="' |
|
632 | - . $country_settings_url |
|
633 | - . '">' |
|
634 | - . esc_html__( |
|
635 | - 'Event Espresso - General Settings > Countries Tab', |
|
636 | - 'event_espresso' |
|
637 | - ) |
|
638 | - . '</a>', |
|
639 | - '<br />' |
|
640 | - ) |
|
641 | - ); |
|
642 | - $new_state->save(); |
|
643 | - EEM_State::instance()->reset_cached_states(); |
|
644 | - return $new_state; |
|
645 | - } |
|
646 | - return false; |
|
647 | - } |
|
648 | - |
|
649 | - |
|
650 | - /** |
|
651 | - * @param string $CNT_ISO |
|
652 | - * @param string $STA_ID |
|
653 | - * @param array $cols_n_values |
|
654 | - * @return void |
|
655 | - * @throws DomainException |
|
656 | - * @throws EE_Error |
|
657 | - * @throws InvalidArgumentException |
|
658 | - * @throws InvalidDataTypeException |
|
659 | - * @throws InvalidInterfaceException |
|
660 | - */ |
|
661 | - public static function update_country_settings($CNT_ISO = '', $STA_ID = '', $cols_n_values = array()) |
|
662 | - { |
|
663 | - if (! $CNT_ISO) { |
|
664 | - EE_Error::add_error( |
|
665 | - esc_html__('An invalid or missing Country ISO Code was received.', 'event_espresso'), |
|
666 | - __FILE__, |
|
667 | - __FUNCTION__, |
|
668 | - __LINE__ |
|
669 | - ); |
|
670 | - } |
|
671 | - $STA_abbrev = is_array($cols_n_values) && isset($cols_n_values['STA_abbrev']) ? $cols_n_values['STA_abbrev'] |
|
672 | - : false; |
|
673 | - if (! $STA_abbrev && ! empty($STA_ID)) { |
|
674 | - $state = EEM_State::instance()->get_one_by_ID($STA_ID); |
|
675 | - if ($state instanceof EE_State) { |
|
676 | - $STA_abbrev = $state->abbrev(); |
|
677 | - } |
|
678 | - } |
|
679 | - if (! $STA_abbrev) { |
|
680 | - EE_Error::add_error( |
|
681 | - esc_html__('An invalid or missing State Abbreviation was received.', 'event_espresso'), |
|
682 | - __FILE__, |
|
683 | - __FUNCTION__, |
|
684 | - __LINE__ |
|
685 | - ); |
|
686 | - } |
|
687 | - /** @var PersistentAdminNoticeManager $persistent_admin_notice_manager */ |
|
688 | - $persistent_admin_notice_manager = LoaderFactory::getLoader()->getShared( |
|
689 | - 'EventEspresso\core\services\notifications\PersistentAdminNoticeManager' |
|
690 | - ); |
|
691 | - $persistent_admin_notice_manager->dismissNotice($CNT_ISO . '-' . $STA_abbrev, true, true); |
|
692 | - } |
|
693 | - |
|
694 | - |
|
695 | - /** |
|
696 | - * @param EE_State[] $state_options |
|
697 | - * @param EE_SPCO_Reg_Step_Attendee_Information $reg_step |
|
698 | - * @param EE_Registration $registration |
|
699 | - * @param EE_Question $question |
|
700 | - * @param $answer |
|
701 | - * @return array |
|
702 | - * @throws EE_Error |
|
703 | - * @throws InvalidArgumentException |
|
704 | - * @throws InvalidDataTypeException |
|
705 | - * @throws InvalidInterfaceException |
|
706 | - */ |
|
707 | - public static function inject_new_reg_state_into_options( |
|
708 | - $state_options = array(), |
|
709 | - EE_SPCO_Reg_Step_Attendee_Information $reg_step, |
|
710 | - EE_Registration $registration, |
|
711 | - EE_Question $question, |
|
712 | - $answer |
|
713 | - ) { |
|
714 | - if ($answer instanceof EE_Answer && $question instanceof EE_Question |
|
715 | - && $question->type() === EEM_Question::QST_type_state |
|
716 | - ) { |
|
717 | - $STA_ID = $answer->value(); |
|
718 | - if (! empty($STA_ID)) { |
|
719 | - $state = EEM_State::instance()->get_one_by_ID($STA_ID); |
|
720 | - if ($state instanceof EE_State) { |
|
721 | - $country = $state->country(); |
|
722 | - if ($country instanceof EE_Country) { |
|
723 | - if (! isset($state_options[ $country->name() ])) { |
|
724 | - $state_options[ $country->name() ] = array(); |
|
725 | - } |
|
726 | - if (! isset($state_options[ $country->name() ][ $STA_ID ])) { |
|
727 | - $state_options[ $country->name() ][ $STA_ID ] = $state->name(); |
|
728 | - } |
|
729 | - } |
|
730 | - } |
|
731 | - } |
|
732 | - } |
|
733 | - return $state_options; |
|
734 | - } |
|
735 | - |
|
736 | - |
|
737 | - /** |
|
738 | - * @param EE_Country[] $country_options |
|
739 | - * @param EE_SPCO_Reg_Step_Attendee_Information $reg_step |
|
740 | - * @param EE_Registration $registration |
|
741 | - * @param EE_Question $question |
|
742 | - * @param $answer |
|
743 | - * @return array |
|
744 | - * @throws EE_Error |
|
745 | - * @throws InvalidArgumentException |
|
746 | - * @throws InvalidDataTypeException |
|
747 | - * @throws InvalidInterfaceException |
|
748 | - */ |
|
749 | - public static function inject_new_reg_country_into_options( |
|
750 | - $country_options = array(), |
|
751 | - EE_SPCO_Reg_Step_Attendee_Information $reg_step, |
|
752 | - EE_Registration $registration, |
|
753 | - EE_Question $question, |
|
754 | - $answer |
|
755 | - ) { |
|
756 | - if ($answer instanceof EE_Answer && $question instanceof EE_Question |
|
757 | - && $question->type() |
|
758 | - === EEM_Question::QST_type_country |
|
759 | - ) { |
|
760 | - $CNT_ISO = $answer->value(); |
|
761 | - if (! empty($CNT_ISO)) { |
|
762 | - $country = EEM_Country::instance()->get_one_by_ID($CNT_ISO); |
|
763 | - if ($country instanceof EE_Country) { |
|
764 | - if (! isset($country_options[ $CNT_ISO ])) { |
|
765 | - $country_options[ $CNT_ISO ] = $country->name(); |
|
766 | - } |
|
767 | - } |
|
768 | - } |
|
769 | - } |
|
770 | - return $country_options; |
|
771 | - } |
|
772 | - |
|
773 | - |
|
774 | - /** |
|
775 | - * @param EE_State[] $state_options |
|
776 | - * @return array |
|
777 | - * @throws EE_Error |
|
778 | - * @throws InvalidArgumentException |
|
779 | - * @throws InvalidDataTypeException |
|
780 | - * @throws InvalidInterfaceException |
|
781 | - */ |
|
782 | - public static function state_options($state_options = array()) |
|
783 | - { |
|
784 | - $new_states = EED_Add_New_State::_get_new_states(); |
|
785 | - foreach ($new_states as $new_state) { |
|
786 | - if ($new_state instanceof EE_State |
|
787 | - && $new_state->country() instanceof EE_Country |
|
788 | - ) { |
|
789 | - $state_options[ $new_state->country()->name() ][ $new_state->ID() ] = $new_state->name(); |
|
790 | - } |
|
791 | - } |
|
792 | - return $state_options; |
|
793 | - } |
|
794 | - |
|
795 | - |
|
796 | - /** |
|
797 | - * @return array |
|
798 | - * @throws InvalidArgumentException |
|
799 | - * @throws InvalidDataTypeException |
|
800 | - * @throws InvalidInterfaceException |
|
801 | - */ |
|
802 | - protected static function _get_new_states() |
|
803 | - { |
|
804 | - $new_states = array(); |
|
805 | - if (EE_Registry::instance()->SSN instanceof EE_Session) { |
|
806 | - $new_states = EE_Registry::instance()->SSN->get_session_data( |
|
807 | - 'nsmf_new_states' |
|
808 | - ); |
|
809 | - } |
|
810 | - return is_array($new_states) ? $new_states : array(); |
|
811 | - } |
|
812 | - |
|
813 | - |
|
814 | - /** |
|
815 | - * @param EE_Country[] $country_options |
|
816 | - * @return array |
|
817 | - * @throws EE_Error |
|
818 | - * @throws InvalidArgumentException |
|
819 | - * @throws InvalidDataTypeException |
|
820 | - * @throws InvalidInterfaceException |
|
821 | - */ |
|
822 | - public static function country_options($country_options = array()) |
|
823 | - { |
|
824 | - $new_states = EED_Add_New_State::_get_new_states(); |
|
825 | - foreach ($new_states as $new_state) { |
|
826 | - if ($new_state instanceof EE_State |
|
827 | - && $new_state->country() instanceof EE_Country |
|
828 | - ) { |
|
829 | - $country_options[ $new_state->country()->ID() ] = $new_state->country()->name(); |
|
830 | - } |
|
831 | - } |
|
832 | - return $country_options; |
|
833 | - } |
|
20 | + /** |
|
21 | + * @return EED_Module|EED_Add_New_State |
|
22 | + */ |
|
23 | + public static function instance() |
|
24 | + { |
|
25 | + return parent::get_instance(__CLASS__); |
|
26 | + } |
|
27 | + |
|
28 | + |
|
29 | + /** |
|
30 | + * set_hooks - for hooking into EE Core, other modules, etc |
|
31 | + * |
|
32 | + * @return void |
|
33 | + */ |
|
34 | + public static function set_hooks() |
|
35 | + { |
|
36 | + add_action('wp_loaded', array('EED_Add_New_State', 'set_definitions'), 2); |
|
37 | + add_action('wp_enqueue_scripts', array('EED_Add_New_State', 'translate_js_strings'), 0); |
|
38 | + add_action('wp_enqueue_scripts', array('EED_Add_New_State', 'wp_enqueue_scripts'), 10); |
|
39 | + add_filter( |
|
40 | + 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___question_group_reg_form__question_group_reg_form', |
|
41 | + array('EED_Add_New_State', 'display_add_new_state_micro_form'), |
|
42 | + 1, |
|
43 | + 1 |
|
44 | + ); |
|
45 | + add_filter( |
|
46 | + 'FHEE__EE_SPCO_Reg_Step_Payment_Options___get_billing_form_for_payment_method__billing_form', |
|
47 | + array('EED_Add_New_State', 'display_add_new_state_micro_form'), |
|
48 | + 1, |
|
49 | + 1 |
|
50 | + ); |
|
51 | + add_filter( |
|
52 | + 'FHEE__EE_Single_Page_Checkout__process_attendee_information__valid_data_line_item', |
|
53 | + array('EED_Add_New_State', 'unset_new_state_request_params'), |
|
54 | + 10, |
|
55 | + 1 |
|
56 | + ); |
|
57 | + add_filter( |
|
58 | + 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__state_options', |
|
59 | + array('EED_Add_New_State', 'inject_new_reg_state_into_options'), |
|
60 | + 10, |
|
61 | + 5 |
|
62 | + ); |
|
63 | + add_filter( |
|
64 | + 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__country_options', |
|
65 | + array('EED_Add_New_State', 'inject_new_reg_country_into_options'), |
|
66 | + 10, |
|
67 | + 5 |
|
68 | + ); |
|
69 | + add_filter( |
|
70 | + 'FHEE__EE_State_Select_Input____construct__state_options', |
|
71 | + array('EED_Add_New_State', 'state_options'), |
|
72 | + 10, |
|
73 | + 1 |
|
74 | + ); |
|
75 | + add_filter( |
|
76 | + 'FHEE__EE_Country_Select_Input____construct__country_options', |
|
77 | + array('EED_Add_New_State', 'country_options'), |
|
78 | + 10, |
|
79 | + 1 |
|
80 | + ); |
|
81 | + } |
|
82 | + |
|
83 | + |
|
84 | + /** |
|
85 | + * set_hooks_admin - for hooking into EE Admin Core, other modules, etc |
|
86 | + * |
|
87 | + * @return void |
|
88 | + */ |
|
89 | + public static function set_hooks_admin() |
|
90 | + { |
|
91 | + add_action('wp_loaded', array('EED_Add_New_State', 'set_definitions'), 2); |
|
92 | + add_filter( |
|
93 | + 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___question_group_reg_form__question_group_reg_form', |
|
94 | + array('EED_Add_New_State', 'display_add_new_state_micro_form'), |
|
95 | + 1, |
|
96 | + 1 |
|
97 | + ); |
|
98 | + add_filter( |
|
99 | + 'FHEE__EE_SPCO_Reg_Step_Payment_Options___get_billing_form_for_payment_method__billing_form', |
|
100 | + array('EED_Add_New_State', 'display_add_new_state_micro_form'), |
|
101 | + 1, |
|
102 | + 1 |
|
103 | + ); |
|
104 | + add_action('wp_ajax_espresso_add_new_state', array('EED_Add_New_State', 'add_new_state')); |
|
105 | + add_action('wp_ajax_nopriv_espresso_add_new_state', array('EED_Add_New_State', 'add_new_state')); |
|
106 | + add_filter( |
|
107 | + 'FHEE__EE_Single_Page_Checkout__process_attendee_information__valid_data_line_item', |
|
108 | + array('EED_Add_New_State', 'unset_new_state_request_params'), |
|
109 | + 10, |
|
110 | + 1 |
|
111 | + ); |
|
112 | + add_action( |
|
113 | + 'AHEE__General_Settings_Admin_Page__update_country_settings__state_saved', |
|
114 | + array('EED_Add_New_State', 'update_country_settings'), |
|
115 | + 10, |
|
116 | + 3 |
|
117 | + ); |
|
118 | + add_action( |
|
119 | + 'AHEE__General_Settings_Admin_Page__delete_state__state_deleted', |
|
120 | + array('EED_Add_New_State', 'update_country_settings'), |
|
121 | + 10, |
|
122 | + 3 |
|
123 | + ); |
|
124 | + add_filter( |
|
125 | + 'FHEE__EE_State_Select_Input____construct__state_options', |
|
126 | + array('EED_Add_New_State', 'state_options'), |
|
127 | + 10, |
|
128 | + 1 |
|
129 | + ); |
|
130 | + add_filter( |
|
131 | + 'FHEE__EE_Country_Select_Input____construct__country_options', |
|
132 | + array('EED_Add_New_State', 'country_options'), |
|
133 | + 10, |
|
134 | + 1 |
|
135 | + ); |
|
136 | + add_filter( |
|
137 | + 'FHEE__EE_Form_Section_Proper__receive_form_submission__request_data', |
|
138 | + array('EED_Add_New_State', 'filter_checkout_request_params'), |
|
139 | + 10, |
|
140 | + 1 |
|
141 | + ); |
|
142 | + add_filter( |
|
143 | + 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__state_options', |
|
144 | + array('EED_Add_New_State', 'inject_new_reg_state_into_options'), |
|
145 | + 10, |
|
146 | + 5 |
|
147 | + ); |
|
148 | + add_filter( |
|
149 | + 'FHEE__EE_SPCO_Reg_Step_Attendee_Information___generate_question_input__country_options', |
|
150 | + array('EED_Add_New_State', 'inject_new_reg_country_into_options'), |
|
151 | + 10, |
|
152 | + 5 |
|
153 | + ); |
|
154 | + } |
|
155 | + |
|
156 | + |
|
157 | + /** |
|
158 | + * @return void |
|
159 | + */ |
|
160 | + public static function set_definitions() |
|
161 | + { |
|
162 | + define('ANS_ASSETS_URL', plugin_dir_url(__FILE__) . 'assets/'); |
|
163 | + define( |
|
164 | + 'ANS_TEMPLATES_PATH', |
|
165 | + str_replace( |
|
166 | + '\\', |
|
167 | + '/', |
|
168 | + plugin_dir_path(__FILE__) |
|
169 | + ) . 'templates/' |
|
170 | + ); |
|
171 | + } |
|
172 | + |
|
173 | + |
|
174 | + /** |
|
175 | + * @param WP $WP |
|
176 | + * @return void |
|
177 | + */ |
|
178 | + public function run($WP) |
|
179 | + { |
|
180 | + } |
|
181 | + |
|
182 | + |
|
183 | + /** |
|
184 | + * @return void |
|
185 | + */ |
|
186 | + public static function translate_js_strings() |
|
187 | + { |
|
188 | + EE_Registry::$i18n_js_strings['ans_no_country'] = esc_html__( |
|
189 | + 'In order to proceed, you need to select the Country that your State/Province belongs to.', |
|
190 | + 'event_espresso' |
|
191 | + ); |
|
192 | + EE_Registry::$i18n_js_strings['ans_no_name'] = esc_html__( |
|
193 | + 'In order to proceed, you need to enter the name of your State/Province.', |
|
194 | + 'event_espresso' |
|
195 | + ); |
|
196 | + EE_Registry::$i18n_js_strings['ans_no_abbreviation'] = esc_html__( |
|
197 | + 'In order to proceed, you need to enter an abbreviation for the name of your State/Province.', |
|
198 | + 'event_espresso' |
|
199 | + ); |
|
200 | + EE_Registry::$i18n_js_strings['ans_save_success'] = esc_html__( |
|
201 | + 'The new state was successfully saved to the database.', |
|
202 | + 'event_espresso' |
|
203 | + ); |
|
204 | + EE_Registry::$i18n_js_strings['ans_server_save_error'] = esc_html__( |
|
205 | + 'An unknown error has occurred on the server while saving the new state to the database.', |
|
206 | + 'event_espresso' |
|
207 | + ); |
|
208 | + } |
|
209 | + |
|
210 | + |
|
211 | + /** |
|
212 | + * @return void |
|
213 | + */ |
|
214 | + public static function wp_enqueue_scripts() |
|
215 | + { |
|
216 | + if (apply_filters('EED_Single_Page_Checkout__SPCO_active', false)) { |
|
217 | + wp_register_script( |
|
218 | + 'add_new_state', |
|
219 | + ANS_ASSETS_URL . 'add_new_state.js', |
|
220 | + array('espresso_core', 'single_page_checkout'), |
|
221 | + EVENT_ESPRESSO_VERSION, |
|
222 | + true |
|
223 | + ); |
|
224 | + wp_enqueue_script('add_new_state'); |
|
225 | + } |
|
226 | + } |
|
227 | + |
|
228 | + |
|
229 | + |
|
230 | + /** |
|
231 | + * display_add_new_state_micro_form |
|
232 | + * |
|
233 | + * @param EE_Form_Section_Proper $question_group_reg_form |
|
234 | + * @return string |
|
235 | + * @throws EE_Error |
|
236 | + * @throws InvalidArgumentException |
|
237 | + * @throws InvalidDataTypeException |
|
238 | + * @throws InvalidInterfaceException |
|
239 | + */ |
|
240 | + public static function display_add_new_state_micro_form(EE_Form_Section_Proper $question_group_reg_form) |
|
241 | + { |
|
242 | + // only add the 'new_state_micro_form' when displaying reg forms, |
|
243 | + // not during processing since we process the 'new_state_micro_form' in it's own AJAX request |
|
244 | + $action = EE_Registry::instance()->REQ->get('action', ''); |
|
245 | + // is the "state" question in this form section? |
|
246 | + $input = $question_group_reg_form->get_subsection('state'); |
|
247 | + if ($action === 'process_reg_step' || $action === 'update_reg_step') { |
|
248 | + // ok then all we need to do is make sure the input's HTML name is consistent |
|
249 | + // by forcing it to set it now, like it did while getting the form for display |
|
250 | + if ($input instanceof EE_State_Select_Input) { |
|
251 | + $input->html_name(); |
|
252 | + } |
|
253 | + return $question_group_reg_form; |
|
254 | + } |
|
255 | + // we're only doing this for state select inputs |
|
256 | + if ($input instanceof EE_State_Select_Input |
|
257 | + && ! $input->get_display_strategy() instanceof EE_Hidden_Display_Strategy |
|
258 | + ) { |
|
259 | + // grab any set values from the request |
|
260 | + $country_name = str_replace('state', 'nsmf_new_state_country', $input->html_name()); |
|
261 | + $state_name = str_replace('state', 'nsmf_new_state_name', $input->html_name()); |
|
262 | + $abbrv_name = str_replace('state', 'nsmf_new_state_abbrv', $input->html_name()); |
|
263 | + $new_state_submit_id = str_replace('state', 'new_state', $input->html_id()); |
|
264 | + $country_options = array(); |
|
265 | + $countries = EEM_Country::instance()->get_all_countries(); |
|
266 | + if (! empty($countries)) { |
|
267 | + foreach ($countries as $country) { |
|
268 | + if ($country instanceof EE_Country) { |
|
269 | + $country_options[ $country->ID() ] = $country->name(); |
|
270 | + } |
|
271 | + } |
|
272 | + } |
|
273 | + $new_state_micro_form = new EE_Form_Section_Proper( |
|
274 | + array( |
|
275 | + 'name' => 'new_state_micro_form', |
|
276 | + 'html_id' => 'new_state_micro_form', |
|
277 | + 'layout_strategy' => new EE_Div_Per_Section_Layout(), |
|
278 | + 'subsections' => array( |
|
279 | + // add hidden input to indicate that a new state is being added |
|
280 | + 'add_new_state' => new EE_Hidden_Input( |
|
281 | + array( |
|
282 | + 'html_name' => str_replace( |
|
283 | + 'state', |
|
284 | + 'nsmf_add_new_state', |
|
285 | + $input->html_name() |
|
286 | + ), |
|
287 | + 'html_id' => str_replace( |
|
288 | + 'state', |
|
289 | + 'nsmf_add_new_state', |
|
290 | + $input->html_id() |
|
291 | + ), |
|
292 | + 'default' => 0, |
|
293 | + ) |
|
294 | + ), |
|
295 | + // add link for displaying hidden container |
|
296 | + 'click_here_link' => new EE_Form_Section_HTML( |
|
297 | + apply_filters( |
|
298 | + 'FHEE__EED_Add_New_State__display_add_new_state_micro_form__click_here_link', |
|
299 | + EEH_HTML::link( |
|
300 | + '', |
|
301 | + esc_html__('click here to add a new state/province', 'event_espresso'), |
|
302 | + '', |
|
303 | + 'display-' . $input->html_id(), |
|
304 | + 'ee-form-add-new-state-lnk display-the-hidden smaller-text hide-if-no-js', |
|
305 | + '', |
|
306 | + 'data-target="' . $input->html_id() . '"' |
|
307 | + ) |
|
308 | + ) |
|
309 | + ), |
|
310 | + // add initial html for hidden container |
|
311 | + 'add_new_state_micro_form' => new EE_Form_Section_HTML( |
|
312 | + apply_filters( |
|
313 | + 'FHEE__EED_Add_New_State__display_add_new_state_micro_form__add_new_state_micro_form', |
|
314 | + EEH_HTML::div( |
|
315 | + '', |
|
316 | + $input->html_id() . '-dv', |
|
317 | + 'ee-form-add-new-state-dv', |
|
318 | + 'display: none;' |
|
319 | + ) . |
|
320 | + EEH_HTML::h6( |
|
321 | + esc_html__( |
|
322 | + 'Is your state/province missing from the dropdown menu above? You can add it by completing the following steps:', |
|
323 | + 'event_espresso' |
|
324 | + ) |
|
325 | + ) . |
|
326 | + EEH_HTML::ul() . |
|
327 | + EEH_HTML::li( |
|
328 | + esc_html__( |
|
329 | + 'first select the Country that your State/Province belongs to', |
|
330 | + 'event_espresso' |
|
331 | + ) |
|
332 | + ) . |
|
333 | + EEH_HTML::li( |
|
334 | + esc_html__('enter the name of your State/Province', 'event_espresso') |
|
335 | + ) . |
|
336 | + EEH_HTML::li( |
|
337 | + esc_html__( |
|
338 | + 'enter a two to six letter abbreviation for the name of your State/Province', |
|
339 | + 'event_espresso' |
|
340 | + ) |
|
341 | + ) . |
|
342 | + EEH_HTML::li(esc_html__('click the ADD button', 'event_espresso')) . |
|
343 | + EEH_HTML::ulx() |
|
344 | + ) |
|
345 | + ), |
|
346 | + // NEW STATE COUNTRY |
|
347 | + 'new_state_country' => new EE_Country_Select_Input( |
|
348 | + $country_options, |
|
349 | + array( |
|
350 | + 'html_name' => $country_name, |
|
351 | + 'html_id' => str_replace( |
|
352 | + 'state', |
|
353 | + 'nsmf_new_state_country', |
|
354 | + $input->html_id() |
|
355 | + ), |
|
356 | + 'html_class' => $input->html_class() . ' new-state-country', |
|
357 | + 'html_label_text' => esc_html__('New State/Province Country', 'event_espresso'), |
|
358 | + 'default' => EE_Registry::instance()->REQ->get($country_name, ''), |
|
359 | + 'required' => false, |
|
360 | + ) |
|
361 | + ), |
|
362 | + // NEW STATE NAME |
|
363 | + 'new_state_name' => new EE_Text_Input( |
|
364 | + array( |
|
365 | + 'html_name' => $state_name, |
|
366 | + 'html_id' => str_replace( |
|
367 | + 'state', |
|
368 | + 'nsmf_new_state_name', |
|
369 | + $input->html_id() |
|
370 | + ), |
|
371 | + 'html_class' => $input->html_class() . ' new-state-state', |
|
372 | + 'html_label_text' => esc_html__( |
|
373 | + 'New State/Province Name', |
|
374 | + 'event_espresso' |
|
375 | + ), |
|
376 | + 'default' => EE_Registry::instance()->REQ->get($state_name, ''), |
|
377 | + 'required' => false, |
|
378 | + ) |
|
379 | + ), |
|
380 | + 'spacer' => new EE_Form_Section_HTML(EEH_HTML::br()), |
|
381 | + // NEW STATE NAME |
|
382 | + 'new_state_abbrv' => new EE_Text_Input( |
|
383 | + array( |
|
384 | + 'html_name' => $abbrv_name, |
|
385 | + 'html_id' => str_replace( |
|
386 | + 'state', |
|
387 | + 'nsmf_new_state_abbrv', |
|
388 | + $input->html_id() |
|
389 | + ), |
|
390 | + 'html_class' => $input->html_class() . ' new-state-abbrv', |
|
391 | + 'html_label_text' => esc_html__( |
|
392 | + 'New State/Province Abbreviation', |
|
393 | + 'event_espresso' |
|
394 | + ) . ' *', |
|
395 | + 'other_html_attributes' => 'size="24"', |
|
396 | + 'default' => EE_Registry::instance()->REQ->get($abbrv_name, ''), |
|
397 | + 'required' => false, |
|
398 | + ) |
|
399 | + ), |
|
400 | + // "submit" button |
|
401 | + 'add_new_state_submit_button' => new EE_Form_Section_HTML( |
|
402 | + apply_filters( |
|
403 | + 'FHEE__EED_Add_New_State__display_add_new_state_micro_form__add_new_state_submit_button', |
|
404 | + EEH_HTML::nbsp(3) . |
|
405 | + EEH_HTML::link( |
|
406 | + '', |
|
407 | + esc_html__('ADD', 'event_espresso'), |
|
408 | + '', |
|
409 | + 'submit-' . $new_state_submit_id, |
|
410 | + 'ee-form-add-new-state-submit button button-secondary', |
|
411 | + '', |
|
412 | + 'data-target="' . $new_state_submit_id . '" data-value-field-name="' . $input->valueFieldName(). '"' |
|
413 | + ) |
|
414 | + ) |
|
415 | + ), |
|
416 | + // extra info |
|
417 | + 'add_new_state_extra' => new EE_Form_Section_HTML( |
|
418 | + apply_filters( |
|
419 | + 'FHEE__EED_Add_New_State__display_add_new_state_micro_form__add_new_state_extra', |
|
420 | + EEH_HTML::br(2) |
|
421 | + . |
|
422 | + EEH_HTML::div('', '', 'small-text') |
|
423 | + . |
|
424 | + EEH_HTML::strong( |
|
425 | + '* ' . |
|
426 | + esc_html__( |
|
427 | + 'Don\'t know your State/Province Abbreviation?', |
|
428 | + 'event_espresso' |
|
429 | + ) |
|
430 | + ) |
|
431 | + . |
|
432 | + EEH_HTML::br() |
|
433 | + . |
|
434 | + sprintf( |
|
435 | + esc_html__( |
|
436 | + 'You can look here: %s, for a list of Countries and links to their State/Province Abbreviations ("Subdivisions assigned codes" column).', |
|
437 | + 'event_espresso' |
|
438 | + ), |
|
439 | + EEH_HTML::link( |
|
440 | + 'http://en.wikipedia.org/wiki/ISO_3166-2', |
|
441 | + 'http://en.wikipedia.org/wiki/ISO_3166-2', |
|
442 | + '', |
|
443 | + '', |
|
444 | + 'ee-form-add-new-state-wiki-lnk', |
|
445 | + '', |
|
446 | + 'target="_blank"' |
|
447 | + ) |
|
448 | + ) |
|
449 | + . |
|
450 | + EEH_HTML::divx() |
|
451 | + . |
|
452 | + EEH_HTML::br() |
|
453 | + . |
|
454 | + EEH_HTML::link( |
|
455 | + '', |
|
456 | + esc_html__('cancel new State/Province', 'event_espresso'), |
|
457 | + '', |
|
458 | + 'hide-' . $input->html_id(), |
|
459 | + 'ee-form-cancel-new-state-lnk smaller-text', |
|
460 | + '', |
|
461 | + 'data-target="' . $input->html_id() . '"' |
|
462 | + ) |
|
463 | + . |
|
464 | + EEH_HTML::divx() |
|
465 | + . |
|
466 | + EEH_HTML::br() |
|
467 | + ) |
|
468 | + ), |
|
469 | + ), |
|
470 | + ) |
|
471 | + ); |
|
472 | + $question_group_reg_form->add_subsections( |
|
473 | + array('new_state_micro_form' => $new_state_micro_form), |
|
474 | + 'state', |
|
475 | + false |
|
476 | + ); |
|
477 | + } |
|
478 | + return $question_group_reg_form; |
|
479 | + } |
|
480 | + |
|
481 | + |
|
482 | + /** |
|
483 | + * set_new_state_input_width |
|
484 | + * |
|
485 | + * @return int|string |
|
486 | + * @throws EE_Error |
|
487 | + * @throws InvalidArgumentException |
|
488 | + * @throws InvalidDataTypeException |
|
489 | + * @throws InvalidInterfaceException |
|
490 | + * @throws ReflectionException |
|
491 | + */ |
|
492 | + public static function add_new_state() |
|
493 | + { |
|
494 | + $REQ = EE_Registry::instance()->load_core('Request_Handler'); |
|
495 | + if (absint($REQ->get('nsmf_add_new_state')) === 1) { |
|
496 | + EE_Registry::instance()->load_model('State'); |
|
497 | + // grab country ISO code, new state name, and new state abbreviation |
|
498 | + $state_country = $REQ->is_set('nsmf_new_state_country') |
|
499 | + ? sanitize_text_field($REQ->get('nsmf_new_state_country')) |
|
500 | + : false; |
|
501 | + $state_name = $REQ->is_set('nsmf_new_state_name') |
|
502 | + ? sanitize_text_field($REQ->get('nsmf_new_state_name')) |
|
503 | + : false; |
|
504 | + $state_abbr = $REQ->is_set('nsmf_new_state_abbrv') |
|
505 | + ? sanitize_text_field($REQ->get('nsmf_new_state_abbrv')) |
|
506 | + : false; |
|
507 | + if ($state_country && $state_name && $state_abbr) { |
|
508 | + $new_state = EED_Add_New_State::save_new_state_to_db( |
|
509 | + array( |
|
510 | + 'CNT_ISO' => strtoupper($state_country), |
|
511 | + 'STA_abbrev' => strtoupper($state_abbr), |
|
512 | + 'STA_name' => ucwords($state_name), |
|
513 | + 'STA_active' => false, |
|
514 | + ) |
|
515 | + ); |
|
516 | + if ($new_state instanceof EE_State) { |
|
517 | + // clean house |
|
518 | + EE_Registry::instance()->REQ->un_set('nsmf_add_new_state'); |
|
519 | + EE_Registry::instance()->REQ->un_set('nsmf_new_state_country'); |
|
520 | + EE_Registry::instance()->REQ->un_set('nsmf_new_state_name'); |
|
521 | + EE_Registry::instance()->REQ->un_set('nsmf_new_state_abbrv'); |
|
522 | + // get any existing new states |
|
523 | + $new_states = EE_Registry::instance()->SSN->get_session_data( |
|
524 | + 'nsmf_new_states' |
|
525 | + ); |
|
526 | + $new_states[ $new_state->ID() ] = $new_state; |
|
527 | + EE_Registry::instance()->SSN->set_session_data( |
|
528 | + array('nsmf_new_states' => $new_states) |
|
529 | + ); |
|
530 | + if (EE_Registry::instance()->REQ->ajax) { |
|
531 | + echo wp_json_encode( |
|
532 | + array( |
|
533 | + 'success' => true, |
|
534 | + 'id' => $new_state->ID(), |
|
535 | + 'name' => $new_state->name(), |
|
536 | + 'abbrev' => $new_state->abbrev(), |
|
537 | + 'country_iso' => $new_state->country_iso(), |
|
538 | + 'country_name' => $new_state->country()->name(), |
|
539 | + ) |
|
540 | + ); |
|
541 | + exit(); |
|
542 | + } |
|
543 | + return $new_state->ID(); |
|
544 | + } |
|
545 | + } else { |
|
546 | + $error = esc_html__( |
|
547 | + 'A new State/Province could not be added because invalid or missing data was received.', |
|
548 | + 'event_espresso' |
|
549 | + ); |
|
550 | + if (EE_Registry::instance()->REQ->ajax) { |
|
551 | + echo wp_json_encode(array('error' => $error)); |
|
552 | + exit(); |
|
553 | + } |
|
554 | + EE_Error::add_error($error, __FILE__, __FUNCTION__, __LINE__); |
|
555 | + } |
|
556 | + } |
|
557 | + return false; |
|
558 | + } |
|
559 | + |
|
560 | + |
|
561 | + /** |
|
562 | + * recursively drills down through request params to remove any that were added by this module |
|
563 | + * |
|
564 | + * @param array $request_params |
|
565 | + * @return array |
|
566 | + */ |
|
567 | + public static function filter_checkout_request_params($request_params) |
|
568 | + { |
|
569 | + foreach ($request_params as $form_section) { |
|
570 | + if (is_array($form_section)) { |
|
571 | + EED_Add_New_State::unset_new_state_request_params($form_section); |
|
572 | + EED_Add_New_State::filter_checkout_request_params($form_section); |
|
573 | + } |
|
574 | + } |
|
575 | + return $request_params; |
|
576 | + } |
|
577 | + |
|
578 | + |
|
579 | + /** |
|
580 | + * @param array $request_params |
|
581 | + * @return array |
|
582 | + */ |
|
583 | + public static function unset_new_state_request_params($request_params) |
|
584 | + { |
|
585 | + unset( |
|
586 | + $request_params['new_state_micro_form'], |
|
587 | + $request_params['new_state_micro_add_new_state'], |
|
588 | + $request_params['new_state_micro_new_state_country'], |
|
589 | + $request_params['new_state_micro_new_state_name'], |
|
590 | + $request_params['new_state_micro_new_state_abbrv'] |
|
591 | + ); |
|
592 | + return $request_params; |
|
593 | + } |
|
594 | + |
|
595 | + |
|
596 | + /** |
|
597 | + * @param array $props_n_values |
|
598 | + * @return bool |
|
599 | + * @throws EE_Error |
|
600 | + * @throws InvalidArgumentException |
|
601 | + * @throws InvalidDataTypeException |
|
602 | + * @throws InvalidInterfaceException |
|
603 | + */ |
|
604 | + public static function save_new_state_to_db($props_n_values = array()) |
|
605 | + { |
|
606 | + $existing_state = EEM_State::instance()->get_all(array($props_n_values, 'limit' => 1)); |
|
607 | + if (! empty($existing_state)) { |
|
608 | + return array_pop($existing_state); |
|
609 | + } |
|
610 | + $new_state = EE_State::new_instance($props_n_values); |
|
611 | + if ($new_state instanceof EE_State) { |
|
612 | + $country_settings_url = add_query_arg( |
|
613 | + array( |
|
614 | + 'page' => 'espresso_general_settings', |
|
615 | + 'action' => 'country_settings', |
|
616 | + 'country' => $new_state->country_iso(), |
|
617 | + ), |
|
618 | + admin_url('admin.php') |
|
619 | + ); |
|
620 | + // if not non-ajax admin |
|
621 | + new PersistentAdminNotice( |
|
622 | + 'new-state-added-' . $new_state->country_iso() . '-' . $new_state->abbrev(), |
|
623 | + sprintf( |
|
624 | + esc_html__( |
|
625 | + 'A new State named "%1$s (%2$s)" was dynamically added from an Event Espresso form for the Country of "%3$s".%5$sTo verify, edit, and/or delete this new State, please go to the %4$s and update the States / Provinces section.%5$sCheck "Yes" to have this new State added to dropdown select lists in forms.', |
|
626 | + 'event_espresso' |
|
627 | + ), |
|
628 | + '<b>' . $new_state->name() . '</b>', |
|
629 | + '<b>' . $new_state->abbrev() . '</b>', |
|
630 | + '<b>' . $new_state->country()->name() . '</b>', |
|
631 | + '<a href="' |
|
632 | + . $country_settings_url |
|
633 | + . '">' |
|
634 | + . esc_html__( |
|
635 | + 'Event Espresso - General Settings > Countries Tab', |
|
636 | + 'event_espresso' |
|
637 | + ) |
|
638 | + . '</a>', |
|
639 | + '<br />' |
|
640 | + ) |
|
641 | + ); |
|
642 | + $new_state->save(); |
|
643 | + EEM_State::instance()->reset_cached_states(); |
|
644 | + return $new_state; |
|
645 | + } |
|
646 | + return false; |
|
647 | + } |
|
648 | + |
|
649 | + |
|
650 | + /** |
|
651 | + * @param string $CNT_ISO |
|
652 | + * @param string $STA_ID |
|
653 | + * @param array $cols_n_values |
|
654 | + * @return void |
|
655 | + * @throws DomainException |
|
656 | + * @throws EE_Error |
|
657 | + * @throws InvalidArgumentException |
|
658 | + * @throws InvalidDataTypeException |
|
659 | + * @throws InvalidInterfaceException |
|
660 | + */ |
|
661 | + public static function update_country_settings($CNT_ISO = '', $STA_ID = '', $cols_n_values = array()) |
|
662 | + { |
|
663 | + if (! $CNT_ISO) { |
|
664 | + EE_Error::add_error( |
|
665 | + esc_html__('An invalid or missing Country ISO Code was received.', 'event_espresso'), |
|
666 | + __FILE__, |
|
667 | + __FUNCTION__, |
|
668 | + __LINE__ |
|
669 | + ); |
|
670 | + } |
|
671 | + $STA_abbrev = is_array($cols_n_values) && isset($cols_n_values['STA_abbrev']) ? $cols_n_values['STA_abbrev'] |
|
672 | + : false; |
|
673 | + if (! $STA_abbrev && ! empty($STA_ID)) { |
|
674 | + $state = EEM_State::instance()->get_one_by_ID($STA_ID); |
|
675 | + if ($state instanceof EE_State) { |
|
676 | + $STA_abbrev = $state->abbrev(); |
|
677 | + } |
|
678 | + } |
|
679 | + if (! $STA_abbrev) { |
|
680 | + EE_Error::add_error( |
|
681 | + esc_html__('An invalid or missing State Abbreviation was received.', 'event_espresso'), |
|
682 | + __FILE__, |
|
683 | + __FUNCTION__, |
|
684 | + __LINE__ |
|
685 | + ); |
|
686 | + } |
|
687 | + /** @var PersistentAdminNoticeManager $persistent_admin_notice_manager */ |
|
688 | + $persistent_admin_notice_manager = LoaderFactory::getLoader()->getShared( |
|
689 | + 'EventEspresso\core\services\notifications\PersistentAdminNoticeManager' |
|
690 | + ); |
|
691 | + $persistent_admin_notice_manager->dismissNotice($CNT_ISO . '-' . $STA_abbrev, true, true); |
|
692 | + } |
|
693 | + |
|
694 | + |
|
695 | + /** |
|
696 | + * @param EE_State[] $state_options |
|
697 | + * @param EE_SPCO_Reg_Step_Attendee_Information $reg_step |
|
698 | + * @param EE_Registration $registration |
|
699 | + * @param EE_Question $question |
|
700 | + * @param $answer |
|
701 | + * @return array |
|
702 | + * @throws EE_Error |
|
703 | + * @throws InvalidArgumentException |
|
704 | + * @throws InvalidDataTypeException |
|
705 | + * @throws InvalidInterfaceException |
|
706 | + */ |
|
707 | + public static function inject_new_reg_state_into_options( |
|
708 | + $state_options = array(), |
|
709 | + EE_SPCO_Reg_Step_Attendee_Information $reg_step, |
|
710 | + EE_Registration $registration, |
|
711 | + EE_Question $question, |
|
712 | + $answer |
|
713 | + ) { |
|
714 | + if ($answer instanceof EE_Answer && $question instanceof EE_Question |
|
715 | + && $question->type() === EEM_Question::QST_type_state |
|
716 | + ) { |
|
717 | + $STA_ID = $answer->value(); |
|
718 | + if (! empty($STA_ID)) { |
|
719 | + $state = EEM_State::instance()->get_one_by_ID($STA_ID); |
|
720 | + if ($state instanceof EE_State) { |
|
721 | + $country = $state->country(); |
|
722 | + if ($country instanceof EE_Country) { |
|
723 | + if (! isset($state_options[ $country->name() ])) { |
|
724 | + $state_options[ $country->name() ] = array(); |
|
725 | + } |
|
726 | + if (! isset($state_options[ $country->name() ][ $STA_ID ])) { |
|
727 | + $state_options[ $country->name() ][ $STA_ID ] = $state->name(); |
|
728 | + } |
|
729 | + } |
|
730 | + } |
|
731 | + } |
|
732 | + } |
|
733 | + return $state_options; |
|
734 | + } |
|
735 | + |
|
736 | + |
|
737 | + /** |
|
738 | + * @param EE_Country[] $country_options |
|
739 | + * @param EE_SPCO_Reg_Step_Attendee_Information $reg_step |
|
740 | + * @param EE_Registration $registration |
|
741 | + * @param EE_Question $question |
|
742 | + * @param $answer |
|
743 | + * @return array |
|
744 | + * @throws EE_Error |
|
745 | + * @throws InvalidArgumentException |
|
746 | + * @throws InvalidDataTypeException |
|
747 | + * @throws InvalidInterfaceException |
|
748 | + */ |
|
749 | + public static function inject_new_reg_country_into_options( |
|
750 | + $country_options = array(), |
|
751 | + EE_SPCO_Reg_Step_Attendee_Information $reg_step, |
|
752 | + EE_Registration $registration, |
|
753 | + EE_Question $question, |
|
754 | + $answer |
|
755 | + ) { |
|
756 | + if ($answer instanceof EE_Answer && $question instanceof EE_Question |
|
757 | + && $question->type() |
|
758 | + === EEM_Question::QST_type_country |
|
759 | + ) { |
|
760 | + $CNT_ISO = $answer->value(); |
|
761 | + if (! empty($CNT_ISO)) { |
|
762 | + $country = EEM_Country::instance()->get_one_by_ID($CNT_ISO); |
|
763 | + if ($country instanceof EE_Country) { |
|
764 | + if (! isset($country_options[ $CNT_ISO ])) { |
|
765 | + $country_options[ $CNT_ISO ] = $country->name(); |
|
766 | + } |
|
767 | + } |
|
768 | + } |
|
769 | + } |
|
770 | + return $country_options; |
|
771 | + } |
|
772 | + |
|
773 | + |
|
774 | + /** |
|
775 | + * @param EE_State[] $state_options |
|
776 | + * @return array |
|
777 | + * @throws EE_Error |
|
778 | + * @throws InvalidArgumentException |
|
779 | + * @throws InvalidDataTypeException |
|
780 | + * @throws InvalidInterfaceException |
|
781 | + */ |
|
782 | + public static function state_options($state_options = array()) |
|
783 | + { |
|
784 | + $new_states = EED_Add_New_State::_get_new_states(); |
|
785 | + foreach ($new_states as $new_state) { |
|
786 | + if ($new_state instanceof EE_State |
|
787 | + && $new_state->country() instanceof EE_Country |
|
788 | + ) { |
|
789 | + $state_options[ $new_state->country()->name() ][ $new_state->ID() ] = $new_state->name(); |
|
790 | + } |
|
791 | + } |
|
792 | + return $state_options; |
|
793 | + } |
|
794 | + |
|
795 | + |
|
796 | + /** |
|
797 | + * @return array |
|
798 | + * @throws InvalidArgumentException |
|
799 | + * @throws InvalidDataTypeException |
|
800 | + * @throws InvalidInterfaceException |
|
801 | + */ |
|
802 | + protected static function _get_new_states() |
|
803 | + { |
|
804 | + $new_states = array(); |
|
805 | + if (EE_Registry::instance()->SSN instanceof EE_Session) { |
|
806 | + $new_states = EE_Registry::instance()->SSN->get_session_data( |
|
807 | + 'nsmf_new_states' |
|
808 | + ); |
|
809 | + } |
|
810 | + return is_array($new_states) ? $new_states : array(); |
|
811 | + } |
|
812 | + |
|
813 | + |
|
814 | + /** |
|
815 | + * @param EE_Country[] $country_options |
|
816 | + * @return array |
|
817 | + * @throws EE_Error |
|
818 | + * @throws InvalidArgumentException |
|
819 | + * @throws InvalidDataTypeException |
|
820 | + * @throws InvalidInterfaceException |
|
821 | + */ |
|
822 | + public static function country_options($country_options = array()) |
|
823 | + { |
|
824 | + $new_states = EED_Add_New_State::_get_new_states(); |
|
825 | + foreach ($new_states as $new_state) { |
|
826 | + if ($new_state instanceof EE_State |
|
827 | + && $new_state->country() instanceof EE_Country |
|
828 | + ) { |
|
829 | + $country_options[ $new_state->country()->ID() ] = $new_state->country()->name(); |
|
830 | + } |
|
831 | + } |
|
832 | + return $country_options; |
|
833 | + } |
|
834 | 834 | } |
@@ -159,14 +159,14 @@ discard block |
||
159 | 159 | */ |
160 | 160 | public static function set_definitions() |
161 | 161 | { |
162 | - define('ANS_ASSETS_URL', plugin_dir_url(__FILE__) . 'assets/'); |
|
162 | + define('ANS_ASSETS_URL', plugin_dir_url(__FILE__).'assets/'); |
|
163 | 163 | define( |
164 | 164 | 'ANS_TEMPLATES_PATH', |
165 | 165 | str_replace( |
166 | 166 | '\\', |
167 | 167 | '/', |
168 | 168 | plugin_dir_path(__FILE__) |
169 | - ) . 'templates/' |
|
169 | + ).'templates/' |
|
170 | 170 | ); |
171 | 171 | } |
172 | 172 | |
@@ -216,7 +216,7 @@ discard block |
||
216 | 216 | if (apply_filters('EED_Single_Page_Checkout__SPCO_active', false)) { |
217 | 217 | wp_register_script( |
218 | 218 | 'add_new_state', |
219 | - ANS_ASSETS_URL . 'add_new_state.js', |
|
219 | + ANS_ASSETS_URL.'add_new_state.js', |
|
220 | 220 | array('espresso_core', 'single_page_checkout'), |
221 | 221 | EVENT_ESPRESSO_VERSION, |
222 | 222 | true |
@@ -263,10 +263,10 @@ discard block |
||
263 | 263 | $new_state_submit_id = str_replace('state', 'new_state', $input->html_id()); |
264 | 264 | $country_options = array(); |
265 | 265 | $countries = EEM_Country::instance()->get_all_countries(); |
266 | - if (! empty($countries)) { |
|
266 | + if ( ! empty($countries)) { |
|
267 | 267 | foreach ($countries as $country) { |
268 | 268 | if ($country instanceof EE_Country) { |
269 | - $country_options[ $country->ID() ] = $country->name(); |
|
269 | + $country_options[$country->ID()] = $country->name(); |
|
270 | 270 | } |
271 | 271 | } |
272 | 272 | } |
@@ -300,10 +300,10 @@ discard block |
||
300 | 300 | '', |
301 | 301 | esc_html__('click here to add a new state/province', 'event_espresso'), |
302 | 302 | '', |
303 | - 'display-' . $input->html_id(), |
|
303 | + 'display-'.$input->html_id(), |
|
304 | 304 | 'ee-form-add-new-state-lnk display-the-hidden smaller-text hide-if-no-js', |
305 | 305 | '', |
306 | - 'data-target="' . $input->html_id() . '"' |
|
306 | + 'data-target="'.$input->html_id().'"' |
|
307 | 307 | ) |
308 | 308 | ) |
309 | 309 | ), |
@@ -313,33 +313,33 @@ discard block |
||
313 | 313 | 'FHEE__EED_Add_New_State__display_add_new_state_micro_form__add_new_state_micro_form', |
314 | 314 | EEH_HTML::div( |
315 | 315 | '', |
316 | - $input->html_id() . '-dv', |
|
316 | + $input->html_id().'-dv', |
|
317 | 317 | 'ee-form-add-new-state-dv', |
318 | 318 | 'display: none;' |
319 | - ) . |
|
319 | + ). |
|
320 | 320 | EEH_HTML::h6( |
321 | 321 | esc_html__( |
322 | 322 | 'Is your state/province missing from the dropdown menu above? You can add it by completing the following steps:', |
323 | 323 | 'event_espresso' |
324 | 324 | ) |
325 | - ) . |
|
326 | - EEH_HTML::ul() . |
|
325 | + ). |
|
326 | + EEH_HTML::ul(). |
|
327 | 327 | EEH_HTML::li( |
328 | 328 | esc_html__( |
329 | 329 | 'first select the Country that your State/Province belongs to', |
330 | 330 | 'event_espresso' |
331 | 331 | ) |
332 | - ) . |
|
332 | + ). |
|
333 | 333 | EEH_HTML::li( |
334 | 334 | esc_html__('enter the name of your State/Province', 'event_espresso') |
335 | - ) . |
|
335 | + ). |
|
336 | 336 | EEH_HTML::li( |
337 | 337 | esc_html__( |
338 | 338 | 'enter a two to six letter abbreviation for the name of your State/Province', |
339 | 339 | 'event_espresso' |
340 | 340 | ) |
341 | - ) . |
|
342 | - EEH_HTML::li(esc_html__('click the ADD button', 'event_espresso')) . |
|
341 | + ). |
|
342 | + EEH_HTML::li(esc_html__('click the ADD button', 'event_espresso')). |
|
343 | 343 | EEH_HTML::ulx() |
344 | 344 | ) |
345 | 345 | ), |
@@ -353,7 +353,7 @@ discard block |
||
353 | 353 | 'nsmf_new_state_country', |
354 | 354 | $input->html_id() |
355 | 355 | ), |
356 | - 'html_class' => $input->html_class() . ' new-state-country', |
|
356 | + 'html_class' => $input->html_class().' new-state-country', |
|
357 | 357 | 'html_label_text' => esc_html__('New State/Province Country', 'event_espresso'), |
358 | 358 | 'default' => EE_Registry::instance()->REQ->get($country_name, ''), |
359 | 359 | 'required' => false, |
@@ -368,7 +368,7 @@ discard block |
||
368 | 368 | 'nsmf_new_state_name', |
369 | 369 | $input->html_id() |
370 | 370 | ), |
371 | - 'html_class' => $input->html_class() . ' new-state-state', |
|
371 | + 'html_class' => $input->html_class().' new-state-state', |
|
372 | 372 | 'html_label_text' => esc_html__( |
373 | 373 | 'New State/Province Name', |
374 | 374 | 'event_espresso' |
@@ -387,11 +387,11 @@ discard block |
||
387 | 387 | 'nsmf_new_state_abbrv', |
388 | 388 | $input->html_id() |
389 | 389 | ), |
390 | - 'html_class' => $input->html_class() . ' new-state-abbrv', |
|
390 | + 'html_class' => $input->html_class().' new-state-abbrv', |
|
391 | 391 | 'html_label_text' => esc_html__( |
392 | 392 | 'New State/Province Abbreviation', |
393 | 393 | 'event_espresso' |
394 | - ) . ' *', |
|
394 | + ).' *', |
|
395 | 395 | 'other_html_attributes' => 'size="24"', |
396 | 396 | 'default' => EE_Registry::instance()->REQ->get($abbrv_name, ''), |
397 | 397 | 'required' => false, |
@@ -401,15 +401,15 @@ discard block |
||
401 | 401 | 'add_new_state_submit_button' => new EE_Form_Section_HTML( |
402 | 402 | apply_filters( |
403 | 403 | 'FHEE__EED_Add_New_State__display_add_new_state_micro_form__add_new_state_submit_button', |
404 | - EEH_HTML::nbsp(3) . |
|
404 | + EEH_HTML::nbsp(3). |
|
405 | 405 | EEH_HTML::link( |
406 | 406 | '', |
407 | 407 | esc_html__('ADD', 'event_espresso'), |
408 | 408 | '', |
409 | - 'submit-' . $new_state_submit_id, |
|
409 | + 'submit-'.$new_state_submit_id, |
|
410 | 410 | 'ee-form-add-new-state-submit button button-secondary', |
411 | 411 | '', |
412 | - 'data-target="' . $new_state_submit_id . '" data-value-field-name="' . $input->valueFieldName(). '"' |
|
412 | + 'data-target="'.$new_state_submit_id.'" data-value-field-name="'.$input->valueFieldName().'"' |
|
413 | 413 | ) |
414 | 414 | ) |
415 | 415 | ), |
@@ -422,7 +422,7 @@ discard block |
||
422 | 422 | EEH_HTML::div('', '', 'small-text') |
423 | 423 | . |
424 | 424 | EEH_HTML::strong( |
425 | - '* ' . |
|
425 | + '* '. |
|
426 | 426 | esc_html__( |
427 | 427 | 'Don\'t know your State/Province Abbreviation?', |
428 | 428 | 'event_espresso' |
@@ -455,10 +455,10 @@ discard block |
||
455 | 455 | '', |
456 | 456 | esc_html__('cancel new State/Province', 'event_espresso'), |
457 | 457 | '', |
458 | - 'hide-' . $input->html_id(), |
|
458 | + 'hide-'.$input->html_id(), |
|
459 | 459 | 'ee-form-cancel-new-state-lnk smaller-text', |
460 | 460 | '', |
461 | - 'data-target="' . $input->html_id() . '"' |
|
461 | + 'data-target="'.$input->html_id().'"' |
|
462 | 462 | ) |
463 | 463 | . |
464 | 464 | EEH_HTML::divx() |
@@ -523,7 +523,7 @@ discard block |
||
523 | 523 | $new_states = EE_Registry::instance()->SSN->get_session_data( |
524 | 524 | 'nsmf_new_states' |
525 | 525 | ); |
526 | - $new_states[ $new_state->ID() ] = $new_state; |
|
526 | + $new_states[$new_state->ID()] = $new_state; |
|
527 | 527 | EE_Registry::instance()->SSN->set_session_data( |
528 | 528 | array('nsmf_new_states' => $new_states) |
529 | 529 | ); |
@@ -604,7 +604,7 @@ discard block |
||
604 | 604 | public static function save_new_state_to_db($props_n_values = array()) |
605 | 605 | { |
606 | 606 | $existing_state = EEM_State::instance()->get_all(array($props_n_values, 'limit' => 1)); |
607 | - if (! empty($existing_state)) { |
|
607 | + if ( ! empty($existing_state)) { |
|
608 | 608 | return array_pop($existing_state); |
609 | 609 | } |
610 | 610 | $new_state = EE_State::new_instance($props_n_values); |
@@ -619,15 +619,15 @@ discard block |
||
619 | 619 | ); |
620 | 620 | // if not non-ajax admin |
621 | 621 | new PersistentAdminNotice( |
622 | - 'new-state-added-' . $new_state->country_iso() . '-' . $new_state->abbrev(), |
|
622 | + 'new-state-added-'.$new_state->country_iso().'-'.$new_state->abbrev(), |
|
623 | 623 | sprintf( |
624 | 624 | esc_html__( |
625 | 625 | 'A new State named "%1$s (%2$s)" was dynamically added from an Event Espresso form for the Country of "%3$s".%5$sTo verify, edit, and/or delete this new State, please go to the %4$s and update the States / Provinces section.%5$sCheck "Yes" to have this new State added to dropdown select lists in forms.', |
626 | 626 | 'event_espresso' |
627 | 627 | ), |
628 | - '<b>' . $new_state->name() . '</b>', |
|
629 | - '<b>' . $new_state->abbrev() . '</b>', |
|
630 | - '<b>' . $new_state->country()->name() . '</b>', |
|
628 | + '<b>'.$new_state->name().'</b>', |
|
629 | + '<b>'.$new_state->abbrev().'</b>', |
|
630 | + '<b>'.$new_state->country()->name().'</b>', |
|
631 | 631 | '<a href="' |
632 | 632 | . $country_settings_url |
633 | 633 | . '">' |
@@ -660,7 +660,7 @@ discard block |
||
660 | 660 | */ |
661 | 661 | public static function update_country_settings($CNT_ISO = '', $STA_ID = '', $cols_n_values = array()) |
662 | 662 | { |
663 | - if (! $CNT_ISO) { |
|
663 | + if ( ! $CNT_ISO) { |
|
664 | 664 | EE_Error::add_error( |
665 | 665 | esc_html__('An invalid or missing Country ISO Code was received.', 'event_espresso'), |
666 | 666 | __FILE__, |
@@ -670,13 +670,13 @@ discard block |
||
670 | 670 | } |
671 | 671 | $STA_abbrev = is_array($cols_n_values) && isset($cols_n_values['STA_abbrev']) ? $cols_n_values['STA_abbrev'] |
672 | 672 | : false; |
673 | - if (! $STA_abbrev && ! empty($STA_ID)) { |
|
673 | + if ( ! $STA_abbrev && ! empty($STA_ID)) { |
|
674 | 674 | $state = EEM_State::instance()->get_one_by_ID($STA_ID); |
675 | 675 | if ($state instanceof EE_State) { |
676 | 676 | $STA_abbrev = $state->abbrev(); |
677 | 677 | } |
678 | 678 | } |
679 | - if (! $STA_abbrev) { |
|
679 | + if ( ! $STA_abbrev) { |
|
680 | 680 | EE_Error::add_error( |
681 | 681 | esc_html__('An invalid or missing State Abbreviation was received.', 'event_espresso'), |
682 | 682 | __FILE__, |
@@ -688,7 +688,7 @@ discard block |
||
688 | 688 | $persistent_admin_notice_manager = LoaderFactory::getLoader()->getShared( |
689 | 689 | 'EventEspresso\core\services\notifications\PersistentAdminNoticeManager' |
690 | 690 | ); |
691 | - $persistent_admin_notice_manager->dismissNotice($CNT_ISO . '-' . $STA_abbrev, true, true); |
|
691 | + $persistent_admin_notice_manager->dismissNotice($CNT_ISO.'-'.$STA_abbrev, true, true); |
|
692 | 692 | } |
693 | 693 | |
694 | 694 | |
@@ -715,16 +715,16 @@ discard block |
||
715 | 715 | && $question->type() === EEM_Question::QST_type_state |
716 | 716 | ) { |
717 | 717 | $STA_ID = $answer->value(); |
718 | - if (! empty($STA_ID)) { |
|
718 | + if ( ! empty($STA_ID)) { |
|
719 | 719 | $state = EEM_State::instance()->get_one_by_ID($STA_ID); |
720 | 720 | if ($state instanceof EE_State) { |
721 | 721 | $country = $state->country(); |
722 | 722 | if ($country instanceof EE_Country) { |
723 | - if (! isset($state_options[ $country->name() ])) { |
|
724 | - $state_options[ $country->name() ] = array(); |
|
723 | + if ( ! isset($state_options[$country->name()])) { |
|
724 | + $state_options[$country->name()] = array(); |
|
725 | 725 | } |
726 | - if (! isset($state_options[ $country->name() ][ $STA_ID ])) { |
|
727 | - $state_options[ $country->name() ][ $STA_ID ] = $state->name(); |
|
726 | + if ( ! isset($state_options[$country->name()][$STA_ID])) { |
|
727 | + $state_options[$country->name()][$STA_ID] = $state->name(); |
|
728 | 728 | } |
729 | 729 | } |
730 | 730 | } |
@@ -758,11 +758,11 @@ discard block |
||
758 | 758 | === EEM_Question::QST_type_country |
759 | 759 | ) { |
760 | 760 | $CNT_ISO = $answer->value(); |
761 | - if (! empty($CNT_ISO)) { |
|
761 | + if ( ! empty($CNT_ISO)) { |
|
762 | 762 | $country = EEM_Country::instance()->get_one_by_ID($CNT_ISO); |
763 | 763 | if ($country instanceof EE_Country) { |
764 | - if (! isset($country_options[ $CNT_ISO ])) { |
|
765 | - $country_options[ $CNT_ISO ] = $country->name(); |
|
764 | + if ( ! isset($country_options[$CNT_ISO])) { |
|
765 | + $country_options[$CNT_ISO] = $country->name(); |
|
766 | 766 | } |
767 | 767 | } |
768 | 768 | } |
@@ -786,7 +786,7 @@ discard block |
||
786 | 786 | if ($new_state instanceof EE_State |
787 | 787 | && $new_state->country() instanceof EE_Country |
788 | 788 | ) { |
789 | - $state_options[ $new_state->country()->name() ][ $new_state->ID() ] = $new_state->name(); |
|
789 | + $state_options[$new_state->country()->name()][$new_state->ID()] = $new_state->name(); |
|
790 | 790 | } |
791 | 791 | } |
792 | 792 | return $state_options; |
@@ -826,7 +826,7 @@ discard block |
||
826 | 826 | if ($new_state instanceof EE_State |
827 | 827 | && $new_state->country() instanceof EE_Country |
828 | 828 | ) { |
829 | - $country_options[ $new_state->country()->ID() ] = $new_state->country()->name(); |
|
829 | + $country_options[$new_state->country()->ID()] = $new_state->country()->name(); |
|
830 | 830 | } |
831 | 831 | } |
832 | 832 | return $country_options; |
@@ -96,7 +96,7 @@ |
||
96 | 96 | * the_content |
97 | 97 | * |
98 | 98 | * @access public |
99 | - * @return void |
|
99 | + * @return string |
|
100 | 100 | */ |
101 | 101 | public function the_content($content) |
102 | 102 | { |
@@ -12,95 +12,95 @@ |
||
12 | 12 | { |
13 | 13 | |
14 | 14 | |
15 | - /** |
|
16 | - * @return EED_Module |
|
17 | - */ |
|
18 | - public static function instance() |
|
19 | - { |
|
20 | - return parent::get_instance(__CLASS__); |
|
21 | - } |
|
15 | + /** |
|
16 | + * @return EED_Module |
|
17 | + */ |
|
18 | + public static function instance() |
|
19 | + { |
|
20 | + return parent::get_instance(__CLASS__); |
|
21 | + } |
|
22 | 22 | |
23 | 23 | |
24 | - /** |
|
25 | - * set_hooks - for hooking into EE Core, other modules, etc |
|
26 | - * |
|
27 | - * @access public |
|
28 | - * @return void |
|
29 | - */ |
|
30 | - public static function set_hooks() |
|
31 | - { |
|
32 | - } |
|
24 | + /** |
|
25 | + * set_hooks - for hooking into EE Core, other modules, etc |
|
26 | + * |
|
27 | + * @access public |
|
28 | + * @return void |
|
29 | + */ |
|
30 | + public static function set_hooks() |
|
31 | + { |
|
32 | + } |
|
33 | 33 | |
34 | - /** |
|
35 | - * set_hooks_admin - for hooking into EE Admin Core, other modules, etc |
|
36 | - * |
|
37 | - * @access public |
|
38 | - * @return void |
|
39 | - */ |
|
40 | - public static function set_hooks_admin() |
|
41 | - { |
|
42 | - } |
|
34 | + /** |
|
35 | + * set_hooks_admin - for hooking into EE Admin Core, other modules, etc |
|
36 | + * |
|
37 | + * @access public |
|
38 | + * @return void |
|
39 | + */ |
|
40 | + public static function set_hooks_admin() |
|
41 | + { |
|
42 | + } |
|
43 | 43 | |
44 | 44 | |
45 | - /** |
|
46 | - * run - initial module setup |
|
47 | - * |
|
48 | - * @access public |
|
49 | - * @return void |
|
50 | - */ |
|
51 | - public function run($WP) |
|
52 | - { |
|
53 | - } |
|
45 | + /** |
|
46 | + * run - initial module setup |
|
47 | + * |
|
48 | + * @access public |
|
49 | + * @return void |
|
50 | + */ |
|
51 | + public function run($WP) |
|
52 | + { |
|
53 | + } |
|
54 | 54 | |
55 | 55 | |
56 | - /** |
|
57 | - * certificate_launch |
|
58 | - * |
|
59 | - * @access public |
|
60 | - * @return void |
|
61 | - */ |
|
62 | - public function certificate_launch() |
|
63 | - { |
|
64 | - if (EE_Registry::instance()->REQ->is_set('id') && EE_Registry::instance()->REQ->is_set('r_id')) { |
|
65 | - echo espresso_certificate_launch( |
|
66 | - EE_Registry::instance()->REQ->get('id'), |
|
67 | - EE_Registry::instance()->REQ->get('r_id') |
|
68 | - ); |
|
69 | - } |
|
70 | - } |
|
56 | + /** |
|
57 | + * certificate_launch |
|
58 | + * |
|
59 | + * @access public |
|
60 | + * @return void |
|
61 | + */ |
|
62 | + public function certificate_launch() |
|
63 | + { |
|
64 | + if (EE_Registry::instance()->REQ->is_set('id') && EE_Registry::instance()->REQ->is_set('r_id')) { |
|
65 | + echo espresso_certificate_launch( |
|
66 | + EE_Registry::instance()->REQ->get('id'), |
|
67 | + EE_Registry::instance()->REQ->get('r_id') |
|
68 | + ); |
|
69 | + } |
|
70 | + } |
|
71 | 71 | |
72 | 72 | |
73 | - /** |
|
74 | - * wp_loaded |
|
75 | - * |
|
76 | - * @access public |
|
77 | - * @return void |
|
78 | - */ |
|
79 | - public function wp_loaded() |
|
80 | - { |
|
81 | - } |
|
73 | + /** |
|
74 | + * wp_loaded |
|
75 | + * |
|
76 | + * @access public |
|
77 | + * @return void |
|
78 | + */ |
|
79 | + public function wp_loaded() |
|
80 | + { |
|
81 | + } |
|
82 | 82 | |
83 | 83 | |
84 | - /** |
|
85 | - * wp |
|
86 | - * |
|
87 | - * @access public |
|
88 | - * @return void |
|
89 | - */ |
|
90 | - public function wp() |
|
91 | - { |
|
92 | - } |
|
84 | + /** |
|
85 | + * wp |
|
86 | + * |
|
87 | + * @access public |
|
88 | + * @return void |
|
89 | + */ |
|
90 | + public function wp() |
|
91 | + { |
|
92 | + } |
|
93 | 93 | |
94 | 94 | |
95 | - /** |
|
96 | - * the_content |
|
97 | - * |
|
98 | - * @access public |
|
99 | - * @return void |
|
100 | - */ |
|
101 | - public function the_content($content) |
|
102 | - { |
|
103 | - $content .= $this->ouput; |
|
104 | - return $content; |
|
105 | - } |
|
95 | + /** |
|
96 | + * the_content |
|
97 | + * |
|
98 | + * @access public |
|
99 | + * @return void |
|
100 | + */ |
|
101 | + public function the_content($content) |
|
102 | + { |
|
103 | + $content .= $this->ouput; |
|
104 | + return $content; |
|
105 | + } |
|
106 | 106 | } |
@@ -247,6 +247,7 @@ discard block |
||
247 | 247 | * @access public |
248 | 248 | * @param mixed boolean|string $join_terms pass TRUE or term string, doesn't really matter since this value |
249 | 249 | * doesn't really get used for anything yet |
250 | + * @param string $join_terms |
|
250 | 251 | * @return string |
251 | 252 | */ |
252 | 253 | public static function posts_join_sql_for_terms($join_terms = null) |
@@ -422,7 +423,7 @@ discard block |
||
422 | 423 | * or else some of the table references below will result in MySQL errors |
423 | 424 | * |
424 | 425 | * @access public |
425 | - * @param boolean $orderby_params |
|
426 | + * @param string[] $orderby_params |
|
426 | 427 | * @return string |
427 | 428 | */ |
428 | 429 | public static function posts_orderby_sql($orderby_params = array(), $sort = 'ASC') |
@@ -535,7 +536,7 @@ discard block |
||
535 | 536 | * |
536 | 537 | * @access public |
537 | 538 | * @param string $content |
538 | - * @return void |
|
539 | + * @return string |
|
539 | 540 | */ |
540 | 541 | public function event_details($content) |
541 | 542 | { |
@@ -552,7 +553,7 @@ discard block |
||
552 | 553 | * |
553 | 554 | * @access public |
554 | 555 | * @param string $content |
555 | - * @return void |
|
556 | + * @return string |
|
556 | 557 | */ |
557 | 558 | public function event_tickets($content) |
558 | 559 | { |
@@ -569,7 +570,7 @@ discard block |
||
569 | 570 | * |
570 | 571 | * @access public |
571 | 572 | * @param string $content |
572 | - * @return void |
|
573 | + * @return string |
|
573 | 574 | */ |
574 | 575 | public function event_datetimes($content) |
575 | 576 | { |
@@ -586,7 +587,7 @@ discard block |
||
586 | 587 | * |
587 | 588 | * @access public |
588 | 589 | * @param string $content |
589 | - * @return void |
|
590 | + * @return string |
|
590 | 591 | */ |
591 | 592 | public function event_venues($content) |
592 | 593 | { |
@@ -635,7 +636,7 @@ discard block |
||
635 | 636 | * excerpt_length |
636 | 637 | * |
637 | 638 | * @access public |
638 | - * @return void |
|
639 | + * @return integer|null |
|
639 | 640 | */ |
640 | 641 | public function excerpt_length($length) |
641 | 642 | { |
@@ -665,7 +666,7 @@ discard block |
||
665 | 666 | * excerpt_more |
666 | 667 | * |
667 | 668 | * @access public |
668 | - * @return void |
|
669 | + * @return string |
|
669 | 670 | */ |
670 | 671 | public function excerpt_more($more) |
671 | 672 | { |
@@ -866,7 +867,7 @@ discard block |
||
866 | 867 | * get_template_part |
867 | 868 | * |
868 | 869 | * @access public |
869 | - * @return void |
|
870 | + * @return string|null |
|
870 | 871 | */ |
871 | 872 | public static function get_template_part() |
872 | 873 | { |
@@ -910,7 +911,7 @@ discard block |
||
910 | 911 | * event_list_css |
911 | 912 | * |
912 | 913 | * @access public |
913 | - * @return void |
|
914 | + * @return string |
|
914 | 915 | */ |
915 | 916 | public static function event_list_css($extra_class = '') |
916 | 917 | { |
@@ -946,7 +947,7 @@ discard block |
||
946 | 947 | * display_description |
947 | 948 | * |
948 | 949 | * @access public |
949 | - * @return void |
|
950 | + * @return boolean |
|
950 | 951 | */ |
951 | 952 | public static function display_description($value) |
952 | 953 | { |
@@ -961,7 +962,7 @@ discard block |
||
961 | 962 | * display_venue_details |
962 | 963 | * |
963 | 964 | * @access public |
964 | - * @return void |
|
965 | + * @return boolean |
|
965 | 966 | */ |
966 | 967 | public static function display_venue_details() |
967 | 968 | { |
@@ -977,7 +978,7 @@ discard block |
||
977 | 978 | * display_address |
978 | 979 | * |
979 | 980 | * @access public |
980 | - * @return void |
|
981 | + * @return boolean |
|
981 | 982 | */ |
982 | 983 | public static function display_address() |
983 | 984 | { |
@@ -993,7 +994,7 @@ discard block |
||
993 | 994 | * pagination |
994 | 995 | * |
995 | 996 | * @access public |
996 | - * @return void |
|
997 | + * @return string |
|
997 | 998 | */ |
998 | 999 | public static function pagination() |
999 | 1000 | { |
@@ -12,1025 +12,1025 @@ |
||
12 | 12 | { |
13 | 13 | |
14 | 14 | |
15 | - /** |
|
16 | - * @return EED_Events_Archive_Filters |
|
17 | - */ |
|
18 | - public static function instance() |
|
19 | - { |
|
20 | - return parent::get_instance(__CLASS__); |
|
21 | - } |
|
22 | - |
|
23 | - |
|
24 | - /** |
|
25 | - * Start Date |
|
26 | - * |
|
27 | - * @var $_elf_month |
|
28 | - * @access protected |
|
29 | - */ |
|
30 | - protected $_elf_month = null; |
|
31 | - |
|
32 | - |
|
33 | - /** |
|
34 | - * Category |
|
35 | - * |
|
36 | - * @var $_elf_category |
|
37 | - * @access protected |
|
38 | - */ |
|
39 | - protected $_elf_category = null; |
|
40 | - |
|
41 | - |
|
42 | - /** |
|
43 | - * whether to display expired events in the event list |
|
44 | - * |
|
45 | - * @var $_show_expired |
|
46 | - * @access protected |
|
47 | - */ |
|
48 | - protected $_show_expired = null; |
|
49 | - |
|
50 | - |
|
51 | - /** |
|
52 | - * whether to display the event list as a grid or list |
|
53 | - * |
|
54 | - * @var $_type |
|
55 | - * @access protected |
|
56 | - */ |
|
57 | - protected static $_type = null; |
|
58 | - |
|
59 | - |
|
60 | - /** |
|
61 | - * array of existing event list views |
|
62 | - * |
|
63 | - * @var $_types |
|
64 | - * @access protected |
|
65 | - */ |
|
66 | - protected static $_types = array('grid', 'text', 'dates'); |
|
67 | - |
|
68 | - |
|
69 | - |
|
70 | - /** |
|
71 | - * set_hooks - for hooking into EE Core, other modules, etc |
|
72 | - * |
|
73 | - * @access public |
|
74 | - * @return void |
|
75 | - */ |
|
76 | - public static function set_hooks() |
|
77 | - { |
|
78 | - } |
|
79 | - |
|
80 | - /** |
|
81 | - * set_hooks_admin - for hooking into EE Admin Core, other modules, etc |
|
82 | - * |
|
83 | - * @access public |
|
84 | - * @return void |
|
85 | - */ |
|
86 | - public static function set_hooks_admin() |
|
87 | - { |
|
88 | - } |
|
89 | - |
|
90 | - |
|
91 | - /** |
|
92 | - * set_definitions |
|
93 | - * |
|
94 | - * @access public |
|
95 | - * @return void |
|
96 | - */ |
|
97 | - public static function set_definitions() |
|
98 | - { |
|
99 | - } |
|
100 | - |
|
101 | - |
|
102 | - /** |
|
103 | - * run - initial module setup |
|
104 | - * |
|
105 | - * @access public |
|
106 | - * @return void |
|
107 | - */ |
|
108 | - public function run($WP) |
|
109 | - { |
|
110 | - } |
|
111 | - |
|
112 | - |
|
113 | - /** |
|
114 | - * event_list |
|
115 | - * |
|
116 | - * @access public |
|
117 | - * @return void |
|
118 | - */ |
|
119 | - public function event_list() |
|
120 | - { |
|
121 | - // load other required components |
|
122 | - $this->_load_assests(); |
|
123 | - } |
|
124 | - |
|
125 | - |
|
126 | - /** |
|
127 | - * _filter_query_parts |
|
128 | - * |
|
129 | - * @access public |
|
130 | - * @return void |
|
131 | - */ |
|
132 | - private function _filter_query_parts() |
|
133 | - { |
|
134 | - // build event list query |
|
135 | - add_filter('posts_join', array($this, 'posts_join'), 1, 2); |
|
136 | - add_filter('posts_where', array($this, 'posts_where'), 1, 2); |
|
137 | - add_filter('posts_orderby', array($this, 'posts_orderby'), 1, 2); |
|
138 | - } |
|
139 | - |
|
140 | - /** |
|
141 | - * _type - the type of event list : grid, text, dates |
|
142 | - * |
|
143 | - * @access public |
|
144 | - * @return string |
|
145 | - */ |
|
146 | - public static function set_type() |
|
147 | - { |
|
148 | - do_action('AHEE__EED_Events_Archive_Filters__before_set_type'); |
|
149 | - EED_Events_Archive_Filters::$_types = apply_filters( |
|
150 | - 'EED_Events_Archive_Filters__set_type__types', |
|
151 | - EED_Events_Archive_Filters::$_types |
|
152 | - ); |
|
153 | - $view = isset(EE_Registry::instance()->CFG->EED_Events_Archive_Filters['default_type']) ? EE_Registry::instance( |
|
154 | - )->CFG->EED_Events_Archive_Filters['default_type'] : 'grid'; |
|
155 | - $elf_type = EE_Registry::instance()->REQ->is_set('elf_type') ? sanitize_text_field( |
|
156 | - EE_Registry::instance()->REQ->get('elf_type') |
|
157 | - ) : ''; |
|
158 | - $view = ! empty($elf_type) ? $elf_type : $view; |
|
159 | - $view = apply_filters('EED_Events_Archive_Filters__set_type__type', $view); |
|
160 | - if (! empty($view) && in_array($view, EED_Events_Archive_Filters::$_types)) { |
|
161 | - self::$_type = $view; |
|
162 | - } |
|
163 | - } |
|
164 | - |
|
165 | - /** |
|
166 | - * _show_expired |
|
167 | - * |
|
168 | - * @access private |
|
169 | - * @param boolean $req_only if TRUE, then ignore defaults and only return $_POST value |
|
170 | - * @return boolean |
|
171 | - */ |
|
172 | - private static function _show_expired($req_only = false) |
|
173 | - { |
|
174 | - // get default value for "display_expired_events" as set in the EE General Settings > Templates > Event Listings |
|
175 | - $show_expired = ! $req_only && isset( |
|
176 | - EE_Registry::instance()->CFG->EED_Events_Archive_Filters['display_expired_events'] |
|
177 | - ) ? EE_Registry::instance()->CFG->EED_Events_Archive_Filters['display_expired_events'] : false; |
|
178 | - // override default expired option if set via filter |
|
179 | - $show_expired = EE_Registry::instance()->REQ->is_set('elf_expired_chk') ? absint( |
|
180 | - EE_Registry::instance()->REQ->get('elf_expired_chk') |
|
181 | - ) : $show_expired; |
|
182 | - return $show_expired ? true : false; |
|
183 | - } |
|
184 | - |
|
185 | - /** |
|
186 | - * _event_category_slug |
|
187 | - * |
|
188 | - * @access private |
|
189 | - * @return string |
|
190 | - */ |
|
191 | - private static function _event_category_slug() |
|
192 | - { |
|
193 | - return EE_Registry::instance()->REQ->is_set('elf_category_dd') ? sanitize_text_field( |
|
194 | - EE_Registry::instance()->REQ->get('elf_category_dd') |
|
195 | - ) : ''; |
|
196 | - } |
|
197 | - |
|
198 | - /** |
|
199 | - * _display_month - what month should the event list display events for? |
|
200 | - * |
|
201 | - * @access private |
|
202 | - * @return string |
|
203 | - */ |
|
204 | - private static function _display_month() |
|
205 | - { |
|
206 | - return EE_Registry::instance()->REQ->is_set('elf_month_dd') ? sanitize_text_field( |
|
207 | - EE_Registry::instance()->REQ->get('elf_month_dd') |
|
208 | - ) : ''; |
|
209 | - } |
|
210 | - |
|
211 | - |
|
212 | - /** |
|
213 | - * get_post_data |
|
214 | - * |
|
215 | - * @access public |
|
216 | - * @return void |
|
217 | - */ |
|
218 | - public function get_post_data() |
|
219 | - { |
|
220 | - $this->_elf_month = EED_Events_Archive_Filters::_display_month(); |
|
221 | - $this->_elf_category = EED_Events_Archive_Filters::_event_category_slug(); |
|
222 | - $this->_show_expired = EED_Events_Archive_Filters::_show_expired(true); |
|
223 | - } |
|
224 | - |
|
225 | - |
|
226 | - /** |
|
227 | - * posts_join |
|
228 | - * |
|
229 | - * @access public |
|
230 | - * @return void |
|
231 | - */ |
|
232 | - public function posts_join($SQL, WP_Query $wp_query) |
|
233 | - { |
|
234 | - if (isset($wp_query->query) && isset($wp_query->query['post_type']) && $wp_query->query['post_type'] == 'espresso_events') { |
|
235 | - // Category |
|
236 | - $SQL .= EED_Events_Archive_Filters::posts_join_sql_for_terms( |
|
237 | - EED_Events_Archive_Filters::_event_category_slug() |
|
238 | - ); |
|
239 | - } |
|
240 | - return $SQL; |
|
241 | - } |
|
242 | - |
|
243 | - |
|
244 | - /** |
|
245 | - * posts_join_sql_for_terms |
|
246 | - * |
|
247 | - * @access public |
|
248 | - * @param mixed boolean|string $join_terms pass TRUE or term string, doesn't really matter since this value |
|
249 | - * doesn't really get used for anything yet |
|
250 | - * @return string |
|
251 | - */ |
|
252 | - public static function posts_join_sql_for_terms($join_terms = null) |
|
253 | - { |
|
254 | - $SQL = ''; |
|
255 | - if (! empty($join_terms)) { |
|
256 | - global $wpdb; |
|
257 | - $SQL .= " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id)"; |
|
258 | - $SQL .= " LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)"; |
|
259 | - $SQL .= " LEFT JOIN $wpdb->terms ON ($wpdb->terms.term_id = $wpdb->term_taxonomy.term_id) "; |
|
260 | - } |
|
261 | - return $SQL; |
|
262 | - } |
|
263 | - |
|
264 | - |
|
265 | - /** |
|
266 | - * posts_join_for_orderby |
|
267 | - * usage: $SQL .= EED_Events_Archive_Filters::posts_join_for_orderby( $orderby_params ); |
|
268 | - * |
|
269 | - * @access public |
|
270 | - * @param array $orderby_params |
|
271 | - * @return string |
|
272 | - */ |
|
273 | - public static function posts_join_for_orderby($orderby_params = array()) |
|
274 | - { |
|
275 | - global $wpdb; |
|
276 | - $SQL = ''; |
|
277 | - $orderby_params = is_array($orderby_params) ? $orderby_params : array($orderby_params); |
|
278 | - foreach ($orderby_params as $orderby) { |
|
279 | - switch ($orderby) { |
|
280 | - case 'ticket_start': |
|
281 | - case 'ticket_end': |
|
282 | - $SQL .= ' LEFT JOIN ' . EEM_Datetime_Ticket::instance()->table() . ' ON (' |
|
283 | - . EEM_Datetime::instance()->table() . '.DTT_ID = ' |
|
284 | - . EEM_Datetime_Ticket::instance()->table() . '.DTT_ID )'; |
|
285 | - $SQL .= ' LEFT JOIN ' . EEM_Ticket::instance()->table() . ' ON (' |
|
286 | - . EEM_Datetime_Ticket::instance()->table() . '.TKT_ID = ' |
|
287 | - . EEM_Ticket::instance()->table() . '.TKT_ID )'; |
|
288 | - break; |
|
289 | - |
|
290 | - case 'venue_title': |
|
291 | - case 'city': |
|
292 | - $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->table() . ' ON (' . $wpdb->posts . '.ID = ' |
|
293 | - . EEM_Event_Venue::instance()->table() . '.EVT_ID )'; |
|
294 | - $SQL .= ' LEFT JOIN ' . EEM_Venue::instance()->table() . ' ON (' |
|
295 | - . EEM_Event_Venue::instance()->table() . '.VNU_ID = ' |
|
296 | - . EEM_Venue::instance()->table() . '.VNU_ID )'; |
|
297 | - break; |
|
298 | - |
|
299 | - case 'state': |
|
300 | - $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->table() . ' ON (' . $wpdb->posts . '.ID = ' |
|
301 | - . EEM_Event_Venue::instance()->table() . '.EVT_ID )'; |
|
302 | - $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->second_table() . ' ON (' |
|
303 | - . EEM_Event_Venue::instance()->table() . '.VNU_ID = ' |
|
304 | - . EEM_Event_Venue::instance()->second_table() . '.VNU_ID )'; |
|
305 | - break; |
|
306 | - } |
|
307 | - } |
|
308 | - return $SQL; |
|
309 | - } |
|
310 | - |
|
311 | - |
|
312 | - /** |
|
313 | - * posts_where |
|
314 | - * |
|
315 | - * @access public |
|
316 | - * @return void |
|
317 | - */ |
|
318 | - public function posts_where($SQL, WP_Query $wp_query) |
|
319 | - { |
|
320 | - if (isset($wp_query->query_vars) && isset($wp_query->query_vars['post_type']) && $wp_query->query_vars['post_type'] == 'espresso_events') { |
|
321 | - // Show Expired ? |
|
322 | - $SQL .= EED_Events_Archive_Filters::posts_where_sql_for_show_expired( |
|
323 | - EED_Events_Archive_Filters::_show_expired() |
|
324 | - ); |
|
325 | - // Category |
|
326 | - // $elf_category = EED_Events_Archive_Filters::_event_category_slug(); |
|
327 | - $SQL .= EED_Events_Archive_Filters::posts_where_sql_for_event_category_slug( |
|
328 | - EED_Events_Archive_Filters::_event_category_slug() |
|
329 | - ); |
|
330 | - // Start Date |
|
331 | - // $elf_month = EED_Events_Archive_Filters::_display_month(); |
|
332 | - $SQL .= EED_Events_Archive_Filters::posts_where_sql_for_event_list_month( |
|
333 | - EED_Events_Archive_Filters::_display_month() |
|
334 | - ); |
|
335 | - } |
|
336 | - return $SQL; |
|
337 | - } |
|
338 | - |
|
339 | - |
|
340 | - /** |
|
341 | - * posts_where_sql_for_show_expired |
|
342 | - * |
|
343 | - * @access public |
|
344 | - * @param boolean $show_expired if TRUE, then displayed past events |
|
345 | - * @return string |
|
346 | - */ |
|
347 | - public static function posts_where_sql_for_show_expired($show_expired = false) |
|
348 | - { |
|
349 | - return ! $show_expired |
|
350 | - ? ' AND ' . EEM_Datetime::instance()->table() . '.DTT_EVT_end > "' . date('Y-m-d H:s:i') . '" ' |
|
351 | - : ''; |
|
352 | - } |
|
353 | - |
|
354 | - |
|
355 | - /** |
|
356 | - * posts_where_sql_for_event_category_slug |
|
357 | - * |
|
358 | - * @access public |
|
359 | - * @param boolean $event_category_slug |
|
360 | - * @return string |
|
361 | - */ |
|
362 | - public static function posts_where_sql_for_event_category_slug($event_category_slug = null) |
|
363 | - { |
|
364 | - global $wpdb; |
|
365 | - return ! empty($event_category_slug) ? ' AND ' . $wpdb->terms . '.slug = "' . $event_category_slug . '" ' : ''; |
|
366 | - } |
|
367 | - |
|
368 | - /** |
|
369 | - * posts_where_sql_for_event_list_month |
|
370 | - * |
|
371 | - * @access public |
|
372 | - * @param boolean $month |
|
373 | - * @return string |
|
374 | - */ |
|
375 | - public static function posts_where_sql_for_event_list_month($month = null) |
|
376 | - { |
|
377 | - $SQL = ''; |
|
378 | - if (! empty($month)) { |
|
379 | - // event start date is LESS than the end of the month ( so nothing that doesn't start until next month ) |
|
380 | - $SQL = ' AND ' . EEM_Datetime::instance()->table() . '.DTT_EVT_start'; |
|
381 | - $SQL .= ' <= "' . date('Y-m-t 23:59:59', \EEH_DTT_Helper::first_of_month_timestamp($month)) . '"'; |
|
382 | - // event end date is GREATER than the start of the month ( so nothing that ended before this month ) |
|
383 | - $SQL .= ' AND ' . EEM_Datetime::instance()->table() . '.DTT_EVT_end'; |
|
384 | - $SQL .= ' >= "' . date('Y-m-d 0:0:00', \EEH_DTT_Helper::first_of_month_timestamp($month)) . '" '; |
|
385 | - } |
|
386 | - return $SQL; |
|
387 | - } |
|
388 | - |
|
389 | - |
|
390 | - /** |
|
391 | - * posts_orderby |
|
392 | - * |
|
393 | - * @access public |
|
394 | - * @return void |
|
395 | - */ |
|
396 | - public function posts_orderby($SQL, WP_Query $wp_query) |
|
397 | - { |
|
398 | - if (isset($wp_query->query) && isset($wp_query->query['post_type']) && $wp_query->query['post_type'] == 'espresso_events') { |
|
399 | - $SQL = EED_Events_Archive_Filters::posts_orderby_sql(array('start_date')); |
|
400 | - } |
|
401 | - return $SQL; |
|
402 | - } |
|
403 | - |
|
404 | - |
|
405 | - /** |
|
406 | - * posts_orderby_sql |
|
407 | - * |
|
408 | - * possible parameters: |
|
409 | - * ID |
|
410 | - * start_date |
|
411 | - * end_date |
|
412 | - * event_name |
|
413 | - * category_slug |
|
414 | - * ticket_start |
|
415 | - * ticket_end |
|
416 | - * venue_title |
|
417 | - * city |
|
418 | - * state |
|
419 | - * |
|
420 | - * **IMPORTANT** |
|
421 | - * make sure to also send the $orderby_params array to the posts_join_for_orderby() method |
|
422 | - * or else some of the table references below will result in MySQL errors |
|
423 | - * |
|
424 | - * @access public |
|
425 | - * @param boolean $orderby_params |
|
426 | - * @return string |
|
427 | - */ |
|
428 | - public static function posts_orderby_sql($orderby_params = array(), $sort = 'ASC') |
|
429 | - { |
|
430 | - global $wpdb; |
|
431 | - $SQL = ''; |
|
432 | - $cntr = 1; |
|
433 | - $orderby_params = is_array($orderby_params) ? $orderby_params : array($orderby_params); |
|
434 | - foreach ($orderby_params as $orderby) { |
|
435 | - $glue = $cntr == 1 || $cntr == count($orderby_params) ? ' ' : ', '; |
|
436 | - switch ($orderby) { |
|
437 | - case 'id': |
|
438 | - case 'ID': |
|
439 | - $SQL .= $glue . $wpdb->posts . '.ID ' . $sort; |
|
440 | - break; |
|
441 | - |
|
442 | - case 'start_date': |
|
443 | - $SQL .= $glue . EEM_Datetime::instance()->table() . '.DTT_EVT_start ' . $sort; |
|
444 | - break; |
|
445 | - |
|
446 | - case 'end_date': |
|
447 | - $SQL .= $glue . EEM_Datetime::instance()->table() . '.DTT_EVT_end ' . $sort; |
|
448 | - break; |
|
449 | - |
|
450 | - case 'event_name': |
|
451 | - $SQL .= $glue . $wpdb->posts . '.post_title ' . $sort; |
|
452 | - break; |
|
453 | - |
|
454 | - case 'category_slug': |
|
455 | - $SQL .= $glue . $wpdb->terms . '.slug ' . $sort; |
|
456 | - break; |
|
457 | - |
|
458 | - case 'ticket_start': |
|
459 | - $SQL .= $glue . EEM_Ticket::instance()->table() . '.TKT_start_date ' . $sort; |
|
460 | - break; |
|
461 | - |
|
462 | - case 'ticket_end': |
|
463 | - $SQL .= $glue . EEM_Ticket::instance()->table() . '.TKT_end_date ' . $sort; |
|
464 | - break; |
|
465 | - |
|
466 | - case 'venue_title': |
|
467 | - $SQL .= $glue . 'venue_title ' . $sort; |
|
468 | - break; |
|
469 | - |
|
470 | - case 'city': |
|
471 | - $SQL .= $glue . EEM_Venue::instance()->second_table() . '.VNU_city ' . $sort; |
|
472 | - break; |
|
473 | - |
|
474 | - case 'state': |
|
475 | - $SQL .= $glue . EEM_State::instance()->table() . '.STA_name ' . $sort; |
|
476 | - break; |
|
477 | - } |
|
478 | - $cntr++; |
|
479 | - } |
|
480 | - // echo '<h4>$SQL : ' . $SQL . ' <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>'; |
|
481 | - return $SQL; |
|
482 | - } |
|
483 | - |
|
484 | - |
|
485 | - /** |
|
486 | - * template_redirect |
|
487 | - * |
|
488 | - * @access public |
|
489 | - * @return void |
|
490 | - */ |
|
491 | - public function template_redirect() |
|
492 | - { |
|
493 | - // add event list filters |
|
494 | - add_action('loop_start', array($this, 'event_list_template_filters')); |
|
495 | - // and pagination |
|
496 | - add_action('loop_start', array($this, 'event_list_pagination')); |
|
497 | - add_action('loop_end', array($this, 'event_list_pagination')); |
|
498 | - // if NOT a custom template |
|
499 | - if (EE_Registry::instance() |
|
500 | - ->load_core('Front_Controller', array(), false, true) |
|
501 | - ->get_selected_template() != 'archive-espresso_events.php' |
|
502 | - ) { |
|
503 | - // don't know if theme uses the_excerpt |
|
504 | - add_filter('the_excerpt', array($this, 'event_details'), 100); |
|
505 | - add_filter('the_excerpt', array($this, 'event_tickets'), 110); |
|
506 | - add_filter('the_excerpt', array($this, 'event_datetimes'), 120); |
|
507 | - add_filter('the_excerpt', array($this, 'event_venues'), 130); |
|
508 | - // or the_content |
|
509 | - add_filter('the_content', array($this, 'event_details'), 100); |
|
510 | - add_filter('the_content', array($this, 'event_tickets'), 110); |
|
511 | - add_filter('the_content', array($this, 'event_datetimes'), 120); |
|
512 | - add_filter('the_content', array($this, 'event_venues'), 130); |
|
513 | - } else { |
|
514 | - remove_all_filters('excerpt_length'); |
|
515 | - add_filter('excerpt_length', array($this, 'excerpt_length'), 10); |
|
516 | - add_filter('excerpt_more', array($this, 'excerpt_more'), 10); |
|
517 | - } |
|
518 | - } |
|
519 | - |
|
520 | - |
|
521 | - /** |
|
522 | - * event_list_pagination |
|
523 | - * |
|
524 | - * @access public |
|
525 | - * @return void |
|
526 | - */ |
|
527 | - public function event_list_pagination() |
|
528 | - { |
|
529 | - echo '<div class="ee-pagination-dv ee-clear-float">' . espresso_event_list_pagination() . '</div>'; |
|
530 | - } |
|
531 | - |
|
532 | - |
|
533 | - /** |
|
534 | - * event_details |
|
535 | - * |
|
536 | - * @access public |
|
537 | - * @param string $content |
|
538 | - * @return void |
|
539 | - */ |
|
540 | - public function event_details($content) |
|
541 | - { |
|
542 | - return EEH_Template::display_template( |
|
543 | - EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-details.php', |
|
544 | - array('the_content' => $content), |
|
545 | - true |
|
546 | - ); |
|
547 | - } |
|
548 | - |
|
549 | - |
|
550 | - /** |
|
551 | - * event_tickets |
|
552 | - * |
|
553 | - * @access public |
|
554 | - * @param string $content |
|
555 | - * @return void |
|
556 | - */ |
|
557 | - public function event_tickets($content) |
|
558 | - { |
|
559 | - return $content |
|
560 | - . EEH_Template::display_template( |
|
561 | - EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-tickets.php', |
|
562 | - array(), |
|
563 | - true |
|
564 | - ); |
|
565 | - } |
|
566 | - |
|
567 | - /** |
|
568 | - * event_datetimes |
|
569 | - * |
|
570 | - * @access public |
|
571 | - * @param string $content |
|
572 | - * @return void |
|
573 | - */ |
|
574 | - public function event_datetimes($content) |
|
575 | - { |
|
576 | - return $content |
|
577 | - . EEH_Template::display_template( |
|
578 | - EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-datetimes.php', |
|
579 | - array(), |
|
580 | - true |
|
581 | - ); |
|
582 | - } |
|
583 | - |
|
584 | - /** |
|
585 | - * event_venues |
|
586 | - * |
|
587 | - * @access public |
|
588 | - * @param string $content |
|
589 | - * @return void |
|
590 | - */ |
|
591 | - public function event_venues($content) |
|
592 | - { |
|
593 | - return $content |
|
594 | - . EEH_Template::display_template( |
|
595 | - EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-venues.php', |
|
596 | - array(), |
|
597 | - true |
|
598 | - ); |
|
599 | - } |
|
600 | - |
|
601 | - |
|
602 | - /** |
|
603 | - * _initial_setup |
|
604 | - * |
|
605 | - * @access public |
|
606 | - * @return void |
|
607 | - */ |
|
608 | - private function _load_assests() |
|
609 | - { |
|
610 | - do_action('AHEE__EED_Events_Archive_Filters__before_load_assests'); |
|
611 | - wp_enqueue_style('espresso_default'); |
|
612 | - wp_enqueue_style('espresso_custom_css'); |
|
613 | - add_filter('FHEE_load_EE_Session', '__return_true'); |
|
614 | - add_action('wp_enqueue_scripts', array($this, 'wp_enqueue_scripts'), 10); |
|
615 | - if (EE_Registry::instance()->CFG->map_settings->use_google_maps) { |
|
616 | - add_action('wp_enqueue_scripts', array('EEH_Maps', 'espresso_google_map_js'), 11); |
|
617 | - } |
|
618 | - // add_filter( 'the_excerpt', array( $this, 'the_excerpt' ), 999 ); |
|
619 | - } |
|
620 | - |
|
621 | - |
|
622 | - /** |
|
623 | - * _get_template |
|
624 | - * |
|
625 | - * @access private |
|
626 | - * @return string |
|
627 | - */ |
|
628 | - private function _get_template($which = 'part') |
|
629 | - { |
|
630 | - return EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events.php'; |
|
631 | - } |
|
632 | - |
|
633 | - |
|
634 | - /** |
|
635 | - * excerpt_length |
|
636 | - * |
|
637 | - * @access public |
|
638 | - * @return void |
|
639 | - */ |
|
640 | - public function excerpt_length($length) |
|
641 | - { |
|
642 | - |
|
643 | - if (self::$_type == 'grid') { |
|
644 | - return 36; |
|
645 | - } |
|
646 | - |
|
647 | - switch (EE_Registry::instance()->CFG->template_settings->EED_Events_Archive_Filters->event_list_grid_size) { |
|
648 | - case 'tiny': |
|
649 | - return 12; |
|
650 | - break; |
|
651 | - case 'small': |
|
652 | - return 24; |
|
653 | - break; |
|
654 | - case 'large': |
|
655 | - return 48; |
|
656 | - break; |
|
657 | - case 'medium': |
|
658 | - default: |
|
659 | - return 36; |
|
660 | - } |
|
661 | - } |
|
662 | - |
|
663 | - |
|
664 | - /** |
|
665 | - * excerpt_more |
|
666 | - * |
|
667 | - * @access public |
|
668 | - * @return void |
|
669 | - */ |
|
670 | - public function excerpt_more($more) |
|
671 | - { |
|
672 | - return '…'; |
|
673 | - } |
|
674 | - |
|
675 | - |
|
676 | - |
|
677 | - |
|
678 | - /** |
|
679 | - * wp_enqueue_scripts |
|
680 | - * |
|
681 | - * @access public |
|
682 | - * @return void |
|
683 | - */ |
|
684 | - public function wp_enqueue_scripts() |
|
685 | - { |
|
686 | - // get some style |
|
687 | - if (apply_filters('FHEE_enable_default_espresso_css', false)) { |
|
688 | - // first check uploads folder |
|
689 | - if (is_readable( |
|
690 | - get_stylesheet_directory() . EE_Config::get_current_theme() . '/archive-espresso_events.css' |
|
691 | - )) { |
|
692 | - wp_register_style( |
|
693 | - 'archive-espresso_events', |
|
694 | - get_stylesheet_directory_uri() . EE_Config::get_current_theme( |
|
695 | - ) . '/archive-espresso_events.css', |
|
696 | - array('dashicons', 'espresso_default') |
|
697 | - ); |
|
698 | - } else { |
|
699 | - wp_register_style( |
|
700 | - 'archive-espresso_events', |
|
701 | - EE_TEMPLATES_URL . EE_Config::get_current_theme() . '/archive-espresso_events.css', |
|
702 | - array('dashicons', 'espresso_default') |
|
703 | - ); |
|
704 | - } |
|
705 | - if (is_readable( |
|
706 | - get_stylesheet_directory() . EE_Config::get_current_theme() . '/archive-espresso_events.js' |
|
707 | - )) { |
|
708 | - wp_register_script( |
|
709 | - 'archive-espresso_events', |
|
710 | - get_stylesheet_directory_uri() . EE_Config::get_current_theme() . '/archive-espresso_events.js', |
|
711 | - array('jquery-masonry'), |
|
712 | - '1.0', |
|
713 | - true |
|
714 | - ); |
|
715 | - } else { |
|
716 | - wp_register_script( |
|
717 | - 'archive-espresso_events', |
|
718 | - EVENTS_ARCHIVE_ASSETS_URL . 'archive-espresso_events.js', |
|
719 | - array('jquery-masonry'), |
|
720 | - '1.0', |
|
721 | - true |
|
722 | - ); |
|
723 | - } |
|
724 | - wp_enqueue_style('archive-espresso_events'); |
|
725 | - wp_enqueue_script('jquery-masonry'); |
|
726 | - wp_enqueue_script('archive-espresso_events'); |
|
727 | - add_action('wp_footer', array('EED_Events_Archive_Filters', 'localize_grid_event_lists'), 1); |
|
728 | - } |
|
729 | - } |
|
730 | - |
|
731 | - |
|
732 | - /** |
|
733 | - * template_settings_form |
|
734 | - * |
|
735 | - * @access public |
|
736 | - * @static |
|
737 | - * @return void |
|
738 | - */ |
|
739 | - public static function localize_grid_event_lists() |
|
740 | - { |
|
741 | - wp_localize_script( |
|
742 | - 'archive-espresso_events', |
|
743 | - 'espresso_grid_event_lists', |
|
744 | - EED_Events_Archive_Filters::$espresso_grid_event_lists |
|
745 | - ); |
|
746 | - } |
|
747 | - |
|
748 | - |
|
749 | - /** |
|
750 | - * template_settings_form |
|
751 | - * |
|
752 | - * @access public |
|
753 | - * @static |
|
754 | - * @return void |
|
755 | - */ |
|
756 | - public static function template_settings_form() |
|
757 | - { |
|
758 | - $EE = EE_Registry::instance(); |
|
759 | - $EE->CFG->template_settings->EED_Events_Archive_Filters = isset($EE->CFG->template_settings->EED_Events_Archive_Filters) |
|
760 | - ? $EE->CFG->template_settings->EED_Events_Archive_Filters : new EE_Events_Archive_Config(); |
|
761 | - $EE->CFG->template_settings->EED_Events_Archive_Filters = apply_filters( |
|
762 | - 'FHEE__Event_List__template_settings_form__event_list_config', |
|
763 | - $EE->CFG->template_settings->EED_Events_Archive_Filters |
|
764 | - ); |
|
765 | - EEH_Template::display_template( |
|
766 | - EVENTS_ARCHIVE_TEMPLATES_PATH . 'admin-event-list-settings.template.php', |
|
767 | - $EE->CFG->template_settings->EED_Events_Archive_Filters |
|
768 | - ); |
|
769 | - } |
|
770 | - |
|
771 | - |
|
772 | - /** |
|
773 | - * set_default_settings |
|
774 | - * |
|
775 | - * @access public |
|
776 | - * @static |
|
777 | - * @return void |
|
778 | - */ |
|
779 | - public static function set_default_settings($CFG) |
|
780 | - { |
|
781 | - // EEH_Debug_Tools::printr( $CFG, '$CFG <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' ); |
|
782 | - $CFG->display_description = isset($CFG->display_description) && ! empty($CFG->display_description) |
|
783 | - ? $CFG->display_description : 1; |
|
784 | - $CFG->display_address = isset($CFG->display_address) && ! empty($CFG->display_address) ? $CFG->display_address |
|
785 | - : true; |
|
786 | - $CFG->display_venue_details = isset($CFG->display_venue_details) && ! empty($CFG->display_venue_details) |
|
787 | - ? $CFG->display_venue_details : true; |
|
788 | - $CFG->display_expired_events = isset($CFG->display_expired_events) && ! empty($CFG->display_expired_events) |
|
789 | - ? $CFG->display_expired_events : false; |
|
790 | - $CFG->default_type = isset($CFG->default_type) && ! empty($CFG->default_type) ? $CFG->default_type : 'grid'; |
|
791 | - $CFG->event_list_grid_size = isset($CFG->event_list_grid_size) && ! empty($CFG->event_list_grid_size) |
|
792 | - ? $CFG->event_list_grid_size : 'medium'; |
|
793 | - $CFG->templates['full'] = isset($CFG->templates['full']) && ! empty($CFG->templates['full']) |
|
794 | - ? $CFG->templates['full'] |
|
795 | - : EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events.php'; |
|
796 | - $CFG->templates['part'] = isset($CFG->templates['part']) && ! empty($CFG->templates['part']) |
|
797 | - ? $CFG->templates['part'] |
|
798 | - : EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events-grid-view.php'; |
|
799 | - return $CFG; |
|
800 | - } |
|
801 | - |
|
802 | - |
|
803 | - /** |
|
804 | - * filter_config |
|
805 | - * |
|
806 | - * @access public |
|
807 | - * @return void |
|
808 | - */ |
|
809 | - public function filter_config($CFG) |
|
810 | - { |
|
811 | - return $CFG; |
|
812 | - } |
|
813 | - |
|
814 | - |
|
815 | - /** |
|
816 | - * filter_config |
|
817 | - * |
|
818 | - * @access public |
|
819 | - * @return void |
|
820 | - */ |
|
821 | - public static function update_template_settings($CFG, $REQ) |
|
822 | - { |
|
823 | - // $CFG->template_settings->EED_Events_Archive_Filters = new stdClass(); |
|
824 | - $CFG->EED_Events_Archive_Filters->display_description = isset($REQ['display_description_in_event_list']) |
|
825 | - ? absint($REQ['display_description_in_event_list']) : 1; |
|
826 | - $CFG->EED_Events_Archive_Filters->display_address = isset($REQ['display_address_in_event_list']) ? absint( |
|
827 | - $REQ['display_address_in_event_list'] |
|
828 | - ) : true; |
|
829 | - $CFG->EED_Events_Archive_Filters->display_venue_details = isset($REQ['display_venue_details_in_event_list']) |
|
830 | - ? absint($REQ['display_venue_details_in_event_list']) : true; |
|
831 | - $CFG->EED_Events_Archive_Filters->display_expired_events = isset($REQ['display_expired_events']) ? absint( |
|
832 | - $REQ['display_expired_events'] |
|
833 | - ) : false; |
|
834 | - $CFG->EED_Events_Archive_Filters->default_type = isset($REQ['default_type']) ? sanitize_text_field( |
|
835 | - $REQ['default_type'] |
|
836 | - ) : 'grid'; |
|
837 | - $CFG->EED_Events_Archive_Filters->event_list_grid_size = isset($REQ['event_list_grid_size']) |
|
838 | - ? sanitize_text_field($REQ['event_list_grid_size']) : 'medium'; |
|
839 | - $CFG->EED_Events_Archive_Filters->templates = array( |
|
840 | - 'full' => EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events.php', |
|
841 | - ); |
|
842 | - |
|
843 | - switch ($CFG->EED_Events_Archive_Filters->default_type) { |
|
844 | - case 'dates': |
|
845 | - $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES . EE_Config::get_current_theme() |
|
846 | - . '/archive-espresso_events-dates-view.php'; |
|
847 | - break; |
|
848 | - case 'text': |
|
849 | - $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES . EE_Config::get_current_theme() |
|
850 | - . '/archive-espresso_events-text-view.php'; |
|
851 | - break; |
|
852 | - default: |
|
853 | - $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES . EE_Config::get_current_theme() |
|
854 | - . '/archive-espresso_events-grid-view.php'; |
|
855 | - } |
|
856 | - |
|
857 | - $CFG->EED_Events_Archive_Filters = isset($REQ['reset_event_list_settings']) |
|
858 | - && absint($REQ['reset_event_list_settings']) == 1 |
|
859 | - ? new EE_Events_Archive_Config() |
|
860 | - : $CFG->EED_Events_Archive_Filters; |
|
861 | - return $CFG; |
|
862 | - } |
|
863 | - |
|
864 | - |
|
865 | - /** |
|
866 | - * get_template_part |
|
867 | - * |
|
868 | - * @access public |
|
869 | - * @return void |
|
870 | - */ |
|
871 | - public static function get_template_part() |
|
872 | - { |
|
873 | - switch (self::$_type) { |
|
874 | - case 'dates': |
|
875 | - return 'archive-espresso_events-dates-view.php'; |
|
876 | - break; |
|
877 | - case 'text': |
|
878 | - return 'archive-espresso_events-text-view.php'; |
|
879 | - break; |
|
880 | - default: |
|
881 | - return 'archive-espresso_events-grid-view.php'; |
|
882 | - } |
|
883 | - } |
|
884 | - |
|
885 | - |
|
886 | - /** |
|
887 | - * event_list_template_filters |
|
888 | - * |
|
889 | - * @access public |
|
890 | - * @return void |
|
891 | - */ |
|
892 | - public function event_list_template_filters() |
|
893 | - { |
|
894 | - $args = array( |
|
895 | - 'form_url' => get_post_type_archive_link('espresso_events'), |
|
896 | - // add_query_arg( array( 'post_type' => 'espresso_events' ), home_url() ), |
|
897 | - 'elf_month' => EED_Events_Archive_Filters::_display_month(), |
|
898 | - 'elf_category' => EED_Events_Archive_Filters::_event_category_slug(), |
|
899 | - 'elf_show_expired' => EED_Events_Archive_Filters::_show_expired(), |
|
900 | - 'elf_type' => self::$_type, |
|
901 | - ); |
|
902 | - EEH_Template::display_template( |
|
903 | - EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events-filters.php', |
|
904 | - $args |
|
905 | - ); |
|
906 | - } |
|
907 | - |
|
908 | - |
|
909 | - /** |
|
910 | - * event_list_css |
|
911 | - * |
|
912 | - * @access public |
|
913 | - * @return void |
|
914 | - */ |
|
915 | - public static function event_list_css($extra_class = '') |
|
916 | - { |
|
917 | - $EE = EE_Registry::instance(); |
|
918 | - $event_list_css = ! empty($extra_class) ? array($extra_class) : array(); |
|
919 | - $event_list_css[] = 'espresso-event-list-event'; |
|
920 | - if (self::$_type == 'grid') { |
|
921 | - $event_list_grid_size = isset($EE->CFG->template_settings->EED_Events_Archive_Filters->event_list_grid_size) |
|
922 | - ? $EE->CFG->template_settings->EED_Events_Archive_Filters->event_list_grid_size : 'medium'; |
|
923 | - $event_list_css[] = $event_list_grid_size . '-event-list-grid'; |
|
924 | - } |
|
925 | - $event_list_css = apply_filters( |
|
926 | - 'EED_Events_Archive_Filters__event_list_css__event_list_css_array', |
|
927 | - $event_list_css |
|
928 | - ); |
|
929 | - return implode(' ', $event_list_css); |
|
930 | - } |
|
931 | - |
|
932 | - |
|
933 | - /** |
|
934 | - * event_categories |
|
935 | - * |
|
936 | - * @access public |
|
937 | - * @return void |
|
938 | - */ |
|
939 | - public static function event_categories() |
|
940 | - { |
|
941 | - return EE_Registry::instance()->load_model('Term')->get_all_ee_categories(); |
|
942 | - } |
|
943 | - |
|
944 | - |
|
945 | - /** |
|
946 | - * display_description |
|
947 | - * |
|
948 | - * @access public |
|
949 | - * @return void |
|
950 | - */ |
|
951 | - public static function display_description($value) |
|
952 | - { |
|
953 | - $EE = EE_Registry::instance(); |
|
954 | - $display_description = isset($EE->CFG->template_settings->EED_Events_Archive_Filters->display_description) |
|
955 | - ? $EE->CFG->template_settings->EED_Events_Archive_Filters->display_description : 1; |
|
956 | - return $display_description === $value ? true : false; |
|
957 | - } |
|
958 | - |
|
959 | - |
|
960 | - /** |
|
961 | - * display_venue_details |
|
962 | - * |
|
963 | - * @access public |
|
964 | - * @return void |
|
965 | - */ |
|
966 | - public static function display_venue_details() |
|
967 | - { |
|
968 | - $EE = EE_Registry::instance(); |
|
969 | - $display_venue_details = isset($EE->CFG->template_settings->EED_Events_Archive_Filters->display_venue_details) |
|
970 | - ? $EE->CFG->template_settings->EED_Events_Archive_Filters->display_venue_details : true; |
|
971 | - $venue_name = EEH_Venue_View::venue_name(); |
|
972 | - return $display_venue_details && ! empty($venue_name) ? true : false; |
|
973 | - } |
|
974 | - |
|
975 | - |
|
976 | - /** |
|
977 | - * display_address |
|
978 | - * |
|
979 | - * @access public |
|
980 | - * @return void |
|
981 | - */ |
|
982 | - public static function display_address() |
|
983 | - { |
|
984 | - $EE = EE_Registry::instance(); |
|
985 | - $display_address = isset($EE->CFG->template_settings->EED_Events_Archive_Filters->display_address) |
|
986 | - ? $EE->CFG->template_settings->EED_Events_Archive_Filters->display_address : false; |
|
987 | - $venue_name = EEH_Venue_View::venue_name(); |
|
988 | - return $display_address && ! empty($venue_name) ? true : false; |
|
989 | - } |
|
990 | - |
|
991 | - |
|
992 | - /** |
|
993 | - * pagination |
|
994 | - * |
|
995 | - * @access public |
|
996 | - * @return void |
|
997 | - */ |
|
998 | - public static function pagination() |
|
999 | - { |
|
1000 | - global $wp_query; |
|
1001 | - $big = 999999999; // need an unlikely integer |
|
1002 | - $pagination = paginate_links( |
|
1003 | - array( |
|
1004 | - 'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), |
|
1005 | - 'format' => '?paged=%#%', |
|
1006 | - 'current' => max(1, get_query_var('paged')), |
|
1007 | - 'total' => $wp_query->max_num_pages, |
|
1008 | - 'show_all' => true, |
|
1009 | - 'end_size' => 10, |
|
1010 | - 'mid_size' => 6, |
|
1011 | - 'prev_next' => true, |
|
1012 | - 'prev_text' => __('‹ PREV', 'event_espresso'), |
|
1013 | - 'next_text' => __('NEXT ›', 'event_espresso'), |
|
1014 | - 'type' => 'plain', |
|
1015 | - 'add_args' => false, |
|
1016 | - 'add_fragment' => '', |
|
1017 | - ) |
|
1018 | - ); |
|
1019 | - return ! empty($pagination) ? '<div class="ee-pagination-dv clear">' . $pagination . '</div>' : ''; |
|
1020 | - } |
|
1021 | - |
|
1022 | - |
|
1023 | - /** |
|
1024 | - * event_list_title |
|
1025 | - * |
|
1026 | - * @access public |
|
1027 | - * @return void |
|
1028 | - */ |
|
1029 | - public static function event_list_title() |
|
1030 | - { |
|
1031 | - return apply_filters( |
|
1032 | - 'EED_Events_Archive_Filters__event_list_title__event_list_title', |
|
1033 | - __('Upcoming Events', 'event_espresso') |
|
1034 | - ); |
|
1035 | - } |
|
15 | + /** |
|
16 | + * @return EED_Events_Archive_Filters |
|
17 | + */ |
|
18 | + public static function instance() |
|
19 | + { |
|
20 | + return parent::get_instance(__CLASS__); |
|
21 | + } |
|
22 | + |
|
23 | + |
|
24 | + /** |
|
25 | + * Start Date |
|
26 | + * |
|
27 | + * @var $_elf_month |
|
28 | + * @access protected |
|
29 | + */ |
|
30 | + protected $_elf_month = null; |
|
31 | + |
|
32 | + |
|
33 | + /** |
|
34 | + * Category |
|
35 | + * |
|
36 | + * @var $_elf_category |
|
37 | + * @access protected |
|
38 | + */ |
|
39 | + protected $_elf_category = null; |
|
40 | + |
|
41 | + |
|
42 | + /** |
|
43 | + * whether to display expired events in the event list |
|
44 | + * |
|
45 | + * @var $_show_expired |
|
46 | + * @access protected |
|
47 | + */ |
|
48 | + protected $_show_expired = null; |
|
49 | + |
|
50 | + |
|
51 | + /** |
|
52 | + * whether to display the event list as a grid or list |
|
53 | + * |
|
54 | + * @var $_type |
|
55 | + * @access protected |
|
56 | + */ |
|
57 | + protected static $_type = null; |
|
58 | + |
|
59 | + |
|
60 | + /** |
|
61 | + * array of existing event list views |
|
62 | + * |
|
63 | + * @var $_types |
|
64 | + * @access protected |
|
65 | + */ |
|
66 | + protected static $_types = array('grid', 'text', 'dates'); |
|
67 | + |
|
68 | + |
|
69 | + |
|
70 | + /** |
|
71 | + * set_hooks - for hooking into EE Core, other modules, etc |
|
72 | + * |
|
73 | + * @access public |
|
74 | + * @return void |
|
75 | + */ |
|
76 | + public static function set_hooks() |
|
77 | + { |
|
78 | + } |
|
79 | + |
|
80 | + /** |
|
81 | + * set_hooks_admin - for hooking into EE Admin Core, other modules, etc |
|
82 | + * |
|
83 | + * @access public |
|
84 | + * @return void |
|
85 | + */ |
|
86 | + public static function set_hooks_admin() |
|
87 | + { |
|
88 | + } |
|
89 | + |
|
90 | + |
|
91 | + /** |
|
92 | + * set_definitions |
|
93 | + * |
|
94 | + * @access public |
|
95 | + * @return void |
|
96 | + */ |
|
97 | + public static function set_definitions() |
|
98 | + { |
|
99 | + } |
|
100 | + |
|
101 | + |
|
102 | + /** |
|
103 | + * run - initial module setup |
|
104 | + * |
|
105 | + * @access public |
|
106 | + * @return void |
|
107 | + */ |
|
108 | + public function run($WP) |
|
109 | + { |
|
110 | + } |
|
111 | + |
|
112 | + |
|
113 | + /** |
|
114 | + * event_list |
|
115 | + * |
|
116 | + * @access public |
|
117 | + * @return void |
|
118 | + */ |
|
119 | + public function event_list() |
|
120 | + { |
|
121 | + // load other required components |
|
122 | + $this->_load_assests(); |
|
123 | + } |
|
124 | + |
|
125 | + |
|
126 | + /** |
|
127 | + * _filter_query_parts |
|
128 | + * |
|
129 | + * @access public |
|
130 | + * @return void |
|
131 | + */ |
|
132 | + private function _filter_query_parts() |
|
133 | + { |
|
134 | + // build event list query |
|
135 | + add_filter('posts_join', array($this, 'posts_join'), 1, 2); |
|
136 | + add_filter('posts_where', array($this, 'posts_where'), 1, 2); |
|
137 | + add_filter('posts_orderby', array($this, 'posts_orderby'), 1, 2); |
|
138 | + } |
|
139 | + |
|
140 | + /** |
|
141 | + * _type - the type of event list : grid, text, dates |
|
142 | + * |
|
143 | + * @access public |
|
144 | + * @return string |
|
145 | + */ |
|
146 | + public static function set_type() |
|
147 | + { |
|
148 | + do_action('AHEE__EED_Events_Archive_Filters__before_set_type'); |
|
149 | + EED_Events_Archive_Filters::$_types = apply_filters( |
|
150 | + 'EED_Events_Archive_Filters__set_type__types', |
|
151 | + EED_Events_Archive_Filters::$_types |
|
152 | + ); |
|
153 | + $view = isset(EE_Registry::instance()->CFG->EED_Events_Archive_Filters['default_type']) ? EE_Registry::instance( |
|
154 | + )->CFG->EED_Events_Archive_Filters['default_type'] : 'grid'; |
|
155 | + $elf_type = EE_Registry::instance()->REQ->is_set('elf_type') ? sanitize_text_field( |
|
156 | + EE_Registry::instance()->REQ->get('elf_type') |
|
157 | + ) : ''; |
|
158 | + $view = ! empty($elf_type) ? $elf_type : $view; |
|
159 | + $view = apply_filters('EED_Events_Archive_Filters__set_type__type', $view); |
|
160 | + if (! empty($view) && in_array($view, EED_Events_Archive_Filters::$_types)) { |
|
161 | + self::$_type = $view; |
|
162 | + } |
|
163 | + } |
|
164 | + |
|
165 | + /** |
|
166 | + * _show_expired |
|
167 | + * |
|
168 | + * @access private |
|
169 | + * @param boolean $req_only if TRUE, then ignore defaults and only return $_POST value |
|
170 | + * @return boolean |
|
171 | + */ |
|
172 | + private static function _show_expired($req_only = false) |
|
173 | + { |
|
174 | + // get default value for "display_expired_events" as set in the EE General Settings > Templates > Event Listings |
|
175 | + $show_expired = ! $req_only && isset( |
|
176 | + EE_Registry::instance()->CFG->EED_Events_Archive_Filters['display_expired_events'] |
|
177 | + ) ? EE_Registry::instance()->CFG->EED_Events_Archive_Filters['display_expired_events'] : false; |
|
178 | + // override default expired option if set via filter |
|
179 | + $show_expired = EE_Registry::instance()->REQ->is_set('elf_expired_chk') ? absint( |
|
180 | + EE_Registry::instance()->REQ->get('elf_expired_chk') |
|
181 | + ) : $show_expired; |
|
182 | + return $show_expired ? true : false; |
|
183 | + } |
|
184 | + |
|
185 | + /** |
|
186 | + * _event_category_slug |
|
187 | + * |
|
188 | + * @access private |
|
189 | + * @return string |
|
190 | + */ |
|
191 | + private static function _event_category_slug() |
|
192 | + { |
|
193 | + return EE_Registry::instance()->REQ->is_set('elf_category_dd') ? sanitize_text_field( |
|
194 | + EE_Registry::instance()->REQ->get('elf_category_dd') |
|
195 | + ) : ''; |
|
196 | + } |
|
197 | + |
|
198 | + /** |
|
199 | + * _display_month - what month should the event list display events for? |
|
200 | + * |
|
201 | + * @access private |
|
202 | + * @return string |
|
203 | + */ |
|
204 | + private static function _display_month() |
|
205 | + { |
|
206 | + return EE_Registry::instance()->REQ->is_set('elf_month_dd') ? sanitize_text_field( |
|
207 | + EE_Registry::instance()->REQ->get('elf_month_dd') |
|
208 | + ) : ''; |
|
209 | + } |
|
210 | + |
|
211 | + |
|
212 | + /** |
|
213 | + * get_post_data |
|
214 | + * |
|
215 | + * @access public |
|
216 | + * @return void |
|
217 | + */ |
|
218 | + public function get_post_data() |
|
219 | + { |
|
220 | + $this->_elf_month = EED_Events_Archive_Filters::_display_month(); |
|
221 | + $this->_elf_category = EED_Events_Archive_Filters::_event_category_slug(); |
|
222 | + $this->_show_expired = EED_Events_Archive_Filters::_show_expired(true); |
|
223 | + } |
|
224 | + |
|
225 | + |
|
226 | + /** |
|
227 | + * posts_join |
|
228 | + * |
|
229 | + * @access public |
|
230 | + * @return void |
|
231 | + */ |
|
232 | + public function posts_join($SQL, WP_Query $wp_query) |
|
233 | + { |
|
234 | + if (isset($wp_query->query) && isset($wp_query->query['post_type']) && $wp_query->query['post_type'] == 'espresso_events') { |
|
235 | + // Category |
|
236 | + $SQL .= EED_Events_Archive_Filters::posts_join_sql_for_terms( |
|
237 | + EED_Events_Archive_Filters::_event_category_slug() |
|
238 | + ); |
|
239 | + } |
|
240 | + return $SQL; |
|
241 | + } |
|
242 | + |
|
243 | + |
|
244 | + /** |
|
245 | + * posts_join_sql_for_terms |
|
246 | + * |
|
247 | + * @access public |
|
248 | + * @param mixed boolean|string $join_terms pass TRUE or term string, doesn't really matter since this value |
|
249 | + * doesn't really get used for anything yet |
|
250 | + * @return string |
|
251 | + */ |
|
252 | + public static function posts_join_sql_for_terms($join_terms = null) |
|
253 | + { |
|
254 | + $SQL = ''; |
|
255 | + if (! empty($join_terms)) { |
|
256 | + global $wpdb; |
|
257 | + $SQL .= " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id)"; |
|
258 | + $SQL .= " LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)"; |
|
259 | + $SQL .= " LEFT JOIN $wpdb->terms ON ($wpdb->terms.term_id = $wpdb->term_taxonomy.term_id) "; |
|
260 | + } |
|
261 | + return $SQL; |
|
262 | + } |
|
263 | + |
|
264 | + |
|
265 | + /** |
|
266 | + * posts_join_for_orderby |
|
267 | + * usage: $SQL .= EED_Events_Archive_Filters::posts_join_for_orderby( $orderby_params ); |
|
268 | + * |
|
269 | + * @access public |
|
270 | + * @param array $orderby_params |
|
271 | + * @return string |
|
272 | + */ |
|
273 | + public static function posts_join_for_orderby($orderby_params = array()) |
|
274 | + { |
|
275 | + global $wpdb; |
|
276 | + $SQL = ''; |
|
277 | + $orderby_params = is_array($orderby_params) ? $orderby_params : array($orderby_params); |
|
278 | + foreach ($orderby_params as $orderby) { |
|
279 | + switch ($orderby) { |
|
280 | + case 'ticket_start': |
|
281 | + case 'ticket_end': |
|
282 | + $SQL .= ' LEFT JOIN ' . EEM_Datetime_Ticket::instance()->table() . ' ON (' |
|
283 | + . EEM_Datetime::instance()->table() . '.DTT_ID = ' |
|
284 | + . EEM_Datetime_Ticket::instance()->table() . '.DTT_ID )'; |
|
285 | + $SQL .= ' LEFT JOIN ' . EEM_Ticket::instance()->table() . ' ON (' |
|
286 | + . EEM_Datetime_Ticket::instance()->table() . '.TKT_ID = ' |
|
287 | + . EEM_Ticket::instance()->table() . '.TKT_ID )'; |
|
288 | + break; |
|
289 | + |
|
290 | + case 'venue_title': |
|
291 | + case 'city': |
|
292 | + $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->table() . ' ON (' . $wpdb->posts . '.ID = ' |
|
293 | + . EEM_Event_Venue::instance()->table() . '.EVT_ID )'; |
|
294 | + $SQL .= ' LEFT JOIN ' . EEM_Venue::instance()->table() . ' ON (' |
|
295 | + . EEM_Event_Venue::instance()->table() . '.VNU_ID = ' |
|
296 | + . EEM_Venue::instance()->table() . '.VNU_ID )'; |
|
297 | + break; |
|
298 | + |
|
299 | + case 'state': |
|
300 | + $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->table() . ' ON (' . $wpdb->posts . '.ID = ' |
|
301 | + . EEM_Event_Venue::instance()->table() . '.EVT_ID )'; |
|
302 | + $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->second_table() . ' ON (' |
|
303 | + . EEM_Event_Venue::instance()->table() . '.VNU_ID = ' |
|
304 | + . EEM_Event_Venue::instance()->second_table() . '.VNU_ID )'; |
|
305 | + break; |
|
306 | + } |
|
307 | + } |
|
308 | + return $SQL; |
|
309 | + } |
|
310 | + |
|
311 | + |
|
312 | + /** |
|
313 | + * posts_where |
|
314 | + * |
|
315 | + * @access public |
|
316 | + * @return void |
|
317 | + */ |
|
318 | + public function posts_where($SQL, WP_Query $wp_query) |
|
319 | + { |
|
320 | + if (isset($wp_query->query_vars) && isset($wp_query->query_vars['post_type']) && $wp_query->query_vars['post_type'] == 'espresso_events') { |
|
321 | + // Show Expired ? |
|
322 | + $SQL .= EED_Events_Archive_Filters::posts_where_sql_for_show_expired( |
|
323 | + EED_Events_Archive_Filters::_show_expired() |
|
324 | + ); |
|
325 | + // Category |
|
326 | + // $elf_category = EED_Events_Archive_Filters::_event_category_slug(); |
|
327 | + $SQL .= EED_Events_Archive_Filters::posts_where_sql_for_event_category_slug( |
|
328 | + EED_Events_Archive_Filters::_event_category_slug() |
|
329 | + ); |
|
330 | + // Start Date |
|
331 | + // $elf_month = EED_Events_Archive_Filters::_display_month(); |
|
332 | + $SQL .= EED_Events_Archive_Filters::posts_where_sql_for_event_list_month( |
|
333 | + EED_Events_Archive_Filters::_display_month() |
|
334 | + ); |
|
335 | + } |
|
336 | + return $SQL; |
|
337 | + } |
|
338 | + |
|
339 | + |
|
340 | + /** |
|
341 | + * posts_where_sql_for_show_expired |
|
342 | + * |
|
343 | + * @access public |
|
344 | + * @param boolean $show_expired if TRUE, then displayed past events |
|
345 | + * @return string |
|
346 | + */ |
|
347 | + public static function posts_where_sql_for_show_expired($show_expired = false) |
|
348 | + { |
|
349 | + return ! $show_expired |
|
350 | + ? ' AND ' . EEM_Datetime::instance()->table() . '.DTT_EVT_end > "' . date('Y-m-d H:s:i') . '" ' |
|
351 | + : ''; |
|
352 | + } |
|
353 | + |
|
354 | + |
|
355 | + /** |
|
356 | + * posts_where_sql_for_event_category_slug |
|
357 | + * |
|
358 | + * @access public |
|
359 | + * @param boolean $event_category_slug |
|
360 | + * @return string |
|
361 | + */ |
|
362 | + public static function posts_where_sql_for_event_category_slug($event_category_slug = null) |
|
363 | + { |
|
364 | + global $wpdb; |
|
365 | + return ! empty($event_category_slug) ? ' AND ' . $wpdb->terms . '.slug = "' . $event_category_slug . '" ' : ''; |
|
366 | + } |
|
367 | + |
|
368 | + /** |
|
369 | + * posts_where_sql_for_event_list_month |
|
370 | + * |
|
371 | + * @access public |
|
372 | + * @param boolean $month |
|
373 | + * @return string |
|
374 | + */ |
|
375 | + public static function posts_where_sql_for_event_list_month($month = null) |
|
376 | + { |
|
377 | + $SQL = ''; |
|
378 | + if (! empty($month)) { |
|
379 | + // event start date is LESS than the end of the month ( so nothing that doesn't start until next month ) |
|
380 | + $SQL = ' AND ' . EEM_Datetime::instance()->table() . '.DTT_EVT_start'; |
|
381 | + $SQL .= ' <= "' . date('Y-m-t 23:59:59', \EEH_DTT_Helper::first_of_month_timestamp($month)) . '"'; |
|
382 | + // event end date is GREATER than the start of the month ( so nothing that ended before this month ) |
|
383 | + $SQL .= ' AND ' . EEM_Datetime::instance()->table() . '.DTT_EVT_end'; |
|
384 | + $SQL .= ' >= "' . date('Y-m-d 0:0:00', \EEH_DTT_Helper::first_of_month_timestamp($month)) . '" '; |
|
385 | + } |
|
386 | + return $SQL; |
|
387 | + } |
|
388 | + |
|
389 | + |
|
390 | + /** |
|
391 | + * posts_orderby |
|
392 | + * |
|
393 | + * @access public |
|
394 | + * @return void |
|
395 | + */ |
|
396 | + public function posts_orderby($SQL, WP_Query $wp_query) |
|
397 | + { |
|
398 | + if (isset($wp_query->query) && isset($wp_query->query['post_type']) && $wp_query->query['post_type'] == 'espresso_events') { |
|
399 | + $SQL = EED_Events_Archive_Filters::posts_orderby_sql(array('start_date')); |
|
400 | + } |
|
401 | + return $SQL; |
|
402 | + } |
|
403 | + |
|
404 | + |
|
405 | + /** |
|
406 | + * posts_orderby_sql |
|
407 | + * |
|
408 | + * possible parameters: |
|
409 | + * ID |
|
410 | + * start_date |
|
411 | + * end_date |
|
412 | + * event_name |
|
413 | + * category_slug |
|
414 | + * ticket_start |
|
415 | + * ticket_end |
|
416 | + * venue_title |
|
417 | + * city |
|
418 | + * state |
|
419 | + * |
|
420 | + * **IMPORTANT** |
|
421 | + * make sure to also send the $orderby_params array to the posts_join_for_orderby() method |
|
422 | + * or else some of the table references below will result in MySQL errors |
|
423 | + * |
|
424 | + * @access public |
|
425 | + * @param boolean $orderby_params |
|
426 | + * @return string |
|
427 | + */ |
|
428 | + public static function posts_orderby_sql($orderby_params = array(), $sort = 'ASC') |
|
429 | + { |
|
430 | + global $wpdb; |
|
431 | + $SQL = ''; |
|
432 | + $cntr = 1; |
|
433 | + $orderby_params = is_array($orderby_params) ? $orderby_params : array($orderby_params); |
|
434 | + foreach ($orderby_params as $orderby) { |
|
435 | + $glue = $cntr == 1 || $cntr == count($orderby_params) ? ' ' : ', '; |
|
436 | + switch ($orderby) { |
|
437 | + case 'id': |
|
438 | + case 'ID': |
|
439 | + $SQL .= $glue . $wpdb->posts . '.ID ' . $sort; |
|
440 | + break; |
|
441 | + |
|
442 | + case 'start_date': |
|
443 | + $SQL .= $glue . EEM_Datetime::instance()->table() . '.DTT_EVT_start ' . $sort; |
|
444 | + break; |
|
445 | + |
|
446 | + case 'end_date': |
|
447 | + $SQL .= $glue . EEM_Datetime::instance()->table() . '.DTT_EVT_end ' . $sort; |
|
448 | + break; |
|
449 | + |
|
450 | + case 'event_name': |
|
451 | + $SQL .= $glue . $wpdb->posts . '.post_title ' . $sort; |
|
452 | + break; |
|
453 | + |
|
454 | + case 'category_slug': |
|
455 | + $SQL .= $glue . $wpdb->terms . '.slug ' . $sort; |
|
456 | + break; |
|
457 | + |
|
458 | + case 'ticket_start': |
|
459 | + $SQL .= $glue . EEM_Ticket::instance()->table() . '.TKT_start_date ' . $sort; |
|
460 | + break; |
|
461 | + |
|
462 | + case 'ticket_end': |
|
463 | + $SQL .= $glue . EEM_Ticket::instance()->table() . '.TKT_end_date ' . $sort; |
|
464 | + break; |
|
465 | + |
|
466 | + case 'venue_title': |
|
467 | + $SQL .= $glue . 'venue_title ' . $sort; |
|
468 | + break; |
|
469 | + |
|
470 | + case 'city': |
|
471 | + $SQL .= $glue . EEM_Venue::instance()->second_table() . '.VNU_city ' . $sort; |
|
472 | + break; |
|
473 | + |
|
474 | + case 'state': |
|
475 | + $SQL .= $glue . EEM_State::instance()->table() . '.STA_name ' . $sort; |
|
476 | + break; |
|
477 | + } |
|
478 | + $cntr++; |
|
479 | + } |
|
480 | + // echo '<h4>$SQL : ' . $SQL . ' <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>'; |
|
481 | + return $SQL; |
|
482 | + } |
|
483 | + |
|
484 | + |
|
485 | + /** |
|
486 | + * template_redirect |
|
487 | + * |
|
488 | + * @access public |
|
489 | + * @return void |
|
490 | + */ |
|
491 | + public function template_redirect() |
|
492 | + { |
|
493 | + // add event list filters |
|
494 | + add_action('loop_start', array($this, 'event_list_template_filters')); |
|
495 | + // and pagination |
|
496 | + add_action('loop_start', array($this, 'event_list_pagination')); |
|
497 | + add_action('loop_end', array($this, 'event_list_pagination')); |
|
498 | + // if NOT a custom template |
|
499 | + if (EE_Registry::instance() |
|
500 | + ->load_core('Front_Controller', array(), false, true) |
|
501 | + ->get_selected_template() != 'archive-espresso_events.php' |
|
502 | + ) { |
|
503 | + // don't know if theme uses the_excerpt |
|
504 | + add_filter('the_excerpt', array($this, 'event_details'), 100); |
|
505 | + add_filter('the_excerpt', array($this, 'event_tickets'), 110); |
|
506 | + add_filter('the_excerpt', array($this, 'event_datetimes'), 120); |
|
507 | + add_filter('the_excerpt', array($this, 'event_venues'), 130); |
|
508 | + // or the_content |
|
509 | + add_filter('the_content', array($this, 'event_details'), 100); |
|
510 | + add_filter('the_content', array($this, 'event_tickets'), 110); |
|
511 | + add_filter('the_content', array($this, 'event_datetimes'), 120); |
|
512 | + add_filter('the_content', array($this, 'event_venues'), 130); |
|
513 | + } else { |
|
514 | + remove_all_filters('excerpt_length'); |
|
515 | + add_filter('excerpt_length', array($this, 'excerpt_length'), 10); |
|
516 | + add_filter('excerpt_more', array($this, 'excerpt_more'), 10); |
|
517 | + } |
|
518 | + } |
|
519 | + |
|
520 | + |
|
521 | + /** |
|
522 | + * event_list_pagination |
|
523 | + * |
|
524 | + * @access public |
|
525 | + * @return void |
|
526 | + */ |
|
527 | + public function event_list_pagination() |
|
528 | + { |
|
529 | + echo '<div class="ee-pagination-dv ee-clear-float">' . espresso_event_list_pagination() . '</div>'; |
|
530 | + } |
|
531 | + |
|
532 | + |
|
533 | + /** |
|
534 | + * event_details |
|
535 | + * |
|
536 | + * @access public |
|
537 | + * @param string $content |
|
538 | + * @return void |
|
539 | + */ |
|
540 | + public function event_details($content) |
|
541 | + { |
|
542 | + return EEH_Template::display_template( |
|
543 | + EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-details.php', |
|
544 | + array('the_content' => $content), |
|
545 | + true |
|
546 | + ); |
|
547 | + } |
|
548 | + |
|
549 | + |
|
550 | + /** |
|
551 | + * event_tickets |
|
552 | + * |
|
553 | + * @access public |
|
554 | + * @param string $content |
|
555 | + * @return void |
|
556 | + */ |
|
557 | + public function event_tickets($content) |
|
558 | + { |
|
559 | + return $content |
|
560 | + . EEH_Template::display_template( |
|
561 | + EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-tickets.php', |
|
562 | + array(), |
|
563 | + true |
|
564 | + ); |
|
565 | + } |
|
566 | + |
|
567 | + /** |
|
568 | + * event_datetimes |
|
569 | + * |
|
570 | + * @access public |
|
571 | + * @param string $content |
|
572 | + * @return void |
|
573 | + */ |
|
574 | + public function event_datetimes($content) |
|
575 | + { |
|
576 | + return $content |
|
577 | + . EEH_Template::display_template( |
|
578 | + EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-datetimes.php', |
|
579 | + array(), |
|
580 | + true |
|
581 | + ); |
|
582 | + } |
|
583 | + |
|
584 | + /** |
|
585 | + * event_venues |
|
586 | + * |
|
587 | + * @access public |
|
588 | + * @param string $content |
|
589 | + * @return void |
|
590 | + */ |
|
591 | + public function event_venues($content) |
|
592 | + { |
|
593 | + return $content |
|
594 | + . EEH_Template::display_template( |
|
595 | + EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-venues.php', |
|
596 | + array(), |
|
597 | + true |
|
598 | + ); |
|
599 | + } |
|
600 | + |
|
601 | + |
|
602 | + /** |
|
603 | + * _initial_setup |
|
604 | + * |
|
605 | + * @access public |
|
606 | + * @return void |
|
607 | + */ |
|
608 | + private function _load_assests() |
|
609 | + { |
|
610 | + do_action('AHEE__EED_Events_Archive_Filters__before_load_assests'); |
|
611 | + wp_enqueue_style('espresso_default'); |
|
612 | + wp_enqueue_style('espresso_custom_css'); |
|
613 | + add_filter('FHEE_load_EE_Session', '__return_true'); |
|
614 | + add_action('wp_enqueue_scripts', array($this, 'wp_enqueue_scripts'), 10); |
|
615 | + if (EE_Registry::instance()->CFG->map_settings->use_google_maps) { |
|
616 | + add_action('wp_enqueue_scripts', array('EEH_Maps', 'espresso_google_map_js'), 11); |
|
617 | + } |
|
618 | + // add_filter( 'the_excerpt', array( $this, 'the_excerpt' ), 999 ); |
|
619 | + } |
|
620 | + |
|
621 | + |
|
622 | + /** |
|
623 | + * _get_template |
|
624 | + * |
|
625 | + * @access private |
|
626 | + * @return string |
|
627 | + */ |
|
628 | + private function _get_template($which = 'part') |
|
629 | + { |
|
630 | + return EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events.php'; |
|
631 | + } |
|
632 | + |
|
633 | + |
|
634 | + /** |
|
635 | + * excerpt_length |
|
636 | + * |
|
637 | + * @access public |
|
638 | + * @return void |
|
639 | + */ |
|
640 | + public function excerpt_length($length) |
|
641 | + { |
|
642 | + |
|
643 | + if (self::$_type == 'grid') { |
|
644 | + return 36; |
|
645 | + } |
|
646 | + |
|
647 | + switch (EE_Registry::instance()->CFG->template_settings->EED_Events_Archive_Filters->event_list_grid_size) { |
|
648 | + case 'tiny': |
|
649 | + return 12; |
|
650 | + break; |
|
651 | + case 'small': |
|
652 | + return 24; |
|
653 | + break; |
|
654 | + case 'large': |
|
655 | + return 48; |
|
656 | + break; |
|
657 | + case 'medium': |
|
658 | + default: |
|
659 | + return 36; |
|
660 | + } |
|
661 | + } |
|
662 | + |
|
663 | + |
|
664 | + /** |
|
665 | + * excerpt_more |
|
666 | + * |
|
667 | + * @access public |
|
668 | + * @return void |
|
669 | + */ |
|
670 | + public function excerpt_more($more) |
|
671 | + { |
|
672 | + return '…'; |
|
673 | + } |
|
674 | + |
|
675 | + |
|
676 | + |
|
677 | + |
|
678 | + /** |
|
679 | + * wp_enqueue_scripts |
|
680 | + * |
|
681 | + * @access public |
|
682 | + * @return void |
|
683 | + */ |
|
684 | + public function wp_enqueue_scripts() |
|
685 | + { |
|
686 | + // get some style |
|
687 | + if (apply_filters('FHEE_enable_default_espresso_css', false)) { |
|
688 | + // first check uploads folder |
|
689 | + if (is_readable( |
|
690 | + get_stylesheet_directory() . EE_Config::get_current_theme() . '/archive-espresso_events.css' |
|
691 | + )) { |
|
692 | + wp_register_style( |
|
693 | + 'archive-espresso_events', |
|
694 | + get_stylesheet_directory_uri() . EE_Config::get_current_theme( |
|
695 | + ) . '/archive-espresso_events.css', |
|
696 | + array('dashicons', 'espresso_default') |
|
697 | + ); |
|
698 | + } else { |
|
699 | + wp_register_style( |
|
700 | + 'archive-espresso_events', |
|
701 | + EE_TEMPLATES_URL . EE_Config::get_current_theme() . '/archive-espresso_events.css', |
|
702 | + array('dashicons', 'espresso_default') |
|
703 | + ); |
|
704 | + } |
|
705 | + if (is_readable( |
|
706 | + get_stylesheet_directory() . EE_Config::get_current_theme() . '/archive-espresso_events.js' |
|
707 | + )) { |
|
708 | + wp_register_script( |
|
709 | + 'archive-espresso_events', |
|
710 | + get_stylesheet_directory_uri() . EE_Config::get_current_theme() . '/archive-espresso_events.js', |
|
711 | + array('jquery-masonry'), |
|
712 | + '1.0', |
|
713 | + true |
|
714 | + ); |
|
715 | + } else { |
|
716 | + wp_register_script( |
|
717 | + 'archive-espresso_events', |
|
718 | + EVENTS_ARCHIVE_ASSETS_URL . 'archive-espresso_events.js', |
|
719 | + array('jquery-masonry'), |
|
720 | + '1.0', |
|
721 | + true |
|
722 | + ); |
|
723 | + } |
|
724 | + wp_enqueue_style('archive-espresso_events'); |
|
725 | + wp_enqueue_script('jquery-masonry'); |
|
726 | + wp_enqueue_script('archive-espresso_events'); |
|
727 | + add_action('wp_footer', array('EED_Events_Archive_Filters', 'localize_grid_event_lists'), 1); |
|
728 | + } |
|
729 | + } |
|
730 | + |
|
731 | + |
|
732 | + /** |
|
733 | + * template_settings_form |
|
734 | + * |
|
735 | + * @access public |
|
736 | + * @static |
|
737 | + * @return void |
|
738 | + */ |
|
739 | + public static function localize_grid_event_lists() |
|
740 | + { |
|
741 | + wp_localize_script( |
|
742 | + 'archive-espresso_events', |
|
743 | + 'espresso_grid_event_lists', |
|
744 | + EED_Events_Archive_Filters::$espresso_grid_event_lists |
|
745 | + ); |
|
746 | + } |
|
747 | + |
|
748 | + |
|
749 | + /** |
|
750 | + * template_settings_form |
|
751 | + * |
|
752 | + * @access public |
|
753 | + * @static |
|
754 | + * @return void |
|
755 | + */ |
|
756 | + public static function template_settings_form() |
|
757 | + { |
|
758 | + $EE = EE_Registry::instance(); |
|
759 | + $EE->CFG->template_settings->EED_Events_Archive_Filters = isset($EE->CFG->template_settings->EED_Events_Archive_Filters) |
|
760 | + ? $EE->CFG->template_settings->EED_Events_Archive_Filters : new EE_Events_Archive_Config(); |
|
761 | + $EE->CFG->template_settings->EED_Events_Archive_Filters = apply_filters( |
|
762 | + 'FHEE__Event_List__template_settings_form__event_list_config', |
|
763 | + $EE->CFG->template_settings->EED_Events_Archive_Filters |
|
764 | + ); |
|
765 | + EEH_Template::display_template( |
|
766 | + EVENTS_ARCHIVE_TEMPLATES_PATH . 'admin-event-list-settings.template.php', |
|
767 | + $EE->CFG->template_settings->EED_Events_Archive_Filters |
|
768 | + ); |
|
769 | + } |
|
770 | + |
|
771 | + |
|
772 | + /** |
|
773 | + * set_default_settings |
|
774 | + * |
|
775 | + * @access public |
|
776 | + * @static |
|
777 | + * @return void |
|
778 | + */ |
|
779 | + public static function set_default_settings($CFG) |
|
780 | + { |
|
781 | + // EEH_Debug_Tools::printr( $CFG, '$CFG <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' ); |
|
782 | + $CFG->display_description = isset($CFG->display_description) && ! empty($CFG->display_description) |
|
783 | + ? $CFG->display_description : 1; |
|
784 | + $CFG->display_address = isset($CFG->display_address) && ! empty($CFG->display_address) ? $CFG->display_address |
|
785 | + : true; |
|
786 | + $CFG->display_venue_details = isset($CFG->display_venue_details) && ! empty($CFG->display_venue_details) |
|
787 | + ? $CFG->display_venue_details : true; |
|
788 | + $CFG->display_expired_events = isset($CFG->display_expired_events) && ! empty($CFG->display_expired_events) |
|
789 | + ? $CFG->display_expired_events : false; |
|
790 | + $CFG->default_type = isset($CFG->default_type) && ! empty($CFG->default_type) ? $CFG->default_type : 'grid'; |
|
791 | + $CFG->event_list_grid_size = isset($CFG->event_list_grid_size) && ! empty($CFG->event_list_grid_size) |
|
792 | + ? $CFG->event_list_grid_size : 'medium'; |
|
793 | + $CFG->templates['full'] = isset($CFG->templates['full']) && ! empty($CFG->templates['full']) |
|
794 | + ? $CFG->templates['full'] |
|
795 | + : EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events.php'; |
|
796 | + $CFG->templates['part'] = isset($CFG->templates['part']) && ! empty($CFG->templates['part']) |
|
797 | + ? $CFG->templates['part'] |
|
798 | + : EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events-grid-view.php'; |
|
799 | + return $CFG; |
|
800 | + } |
|
801 | + |
|
802 | + |
|
803 | + /** |
|
804 | + * filter_config |
|
805 | + * |
|
806 | + * @access public |
|
807 | + * @return void |
|
808 | + */ |
|
809 | + public function filter_config($CFG) |
|
810 | + { |
|
811 | + return $CFG; |
|
812 | + } |
|
813 | + |
|
814 | + |
|
815 | + /** |
|
816 | + * filter_config |
|
817 | + * |
|
818 | + * @access public |
|
819 | + * @return void |
|
820 | + */ |
|
821 | + public static function update_template_settings($CFG, $REQ) |
|
822 | + { |
|
823 | + // $CFG->template_settings->EED_Events_Archive_Filters = new stdClass(); |
|
824 | + $CFG->EED_Events_Archive_Filters->display_description = isset($REQ['display_description_in_event_list']) |
|
825 | + ? absint($REQ['display_description_in_event_list']) : 1; |
|
826 | + $CFG->EED_Events_Archive_Filters->display_address = isset($REQ['display_address_in_event_list']) ? absint( |
|
827 | + $REQ['display_address_in_event_list'] |
|
828 | + ) : true; |
|
829 | + $CFG->EED_Events_Archive_Filters->display_venue_details = isset($REQ['display_venue_details_in_event_list']) |
|
830 | + ? absint($REQ['display_venue_details_in_event_list']) : true; |
|
831 | + $CFG->EED_Events_Archive_Filters->display_expired_events = isset($REQ['display_expired_events']) ? absint( |
|
832 | + $REQ['display_expired_events'] |
|
833 | + ) : false; |
|
834 | + $CFG->EED_Events_Archive_Filters->default_type = isset($REQ['default_type']) ? sanitize_text_field( |
|
835 | + $REQ['default_type'] |
|
836 | + ) : 'grid'; |
|
837 | + $CFG->EED_Events_Archive_Filters->event_list_grid_size = isset($REQ['event_list_grid_size']) |
|
838 | + ? sanitize_text_field($REQ['event_list_grid_size']) : 'medium'; |
|
839 | + $CFG->EED_Events_Archive_Filters->templates = array( |
|
840 | + 'full' => EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events.php', |
|
841 | + ); |
|
842 | + |
|
843 | + switch ($CFG->EED_Events_Archive_Filters->default_type) { |
|
844 | + case 'dates': |
|
845 | + $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES . EE_Config::get_current_theme() |
|
846 | + . '/archive-espresso_events-dates-view.php'; |
|
847 | + break; |
|
848 | + case 'text': |
|
849 | + $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES . EE_Config::get_current_theme() |
|
850 | + . '/archive-espresso_events-text-view.php'; |
|
851 | + break; |
|
852 | + default: |
|
853 | + $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES . EE_Config::get_current_theme() |
|
854 | + . '/archive-espresso_events-grid-view.php'; |
|
855 | + } |
|
856 | + |
|
857 | + $CFG->EED_Events_Archive_Filters = isset($REQ['reset_event_list_settings']) |
|
858 | + && absint($REQ['reset_event_list_settings']) == 1 |
|
859 | + ? new EE_Events_Archive_Config() |
|
860 | + : $CFG->EED_Events_Archive_Filters; |
|
861 | + return $CFG; |
|
862 | + } |
|
863 | + |
|
864 | + |
|
865 | + /** |
|
866 | + * get_template_part |
|
867 | + * |
|
868 | + * @access public |
|
869 | + * @return void |
|
870 | + */ |
|
871 | + public static function get_template_part() |
|
872 | + { |
|
873 | + switch (self::$_type) { |
|
874 | + case 'dates': |
|
875 | + return 'archive-espresso_events-dates-view.php'; |
|
876 | + break; |
|
877 | + case 'text': |
|
878 | + return 'archive-espresso_events-text-view.php'; |
|
879 | + break; |
|
880 | + default: |
|
881 | + return 'archive-espresso_events-grid-view.php'; |
|
882 | + } |
|
883 | + } |
|
884 | + |
|
885 | + |
|
886 | + /** |
|
887 | + * event_list_template_filters |
|
888 | + * |
|
889 | + * @access public |
|
890 | + * @return void |
|
891 | + */ |
|
892 | + public function event_list_template_filters() |
|
893 | + { |
|
894 | + $args = array( |
|
895 | + 'form_url' => get_post_type_archive_link('espresso_events'), |
|
896 | + // add_query_arg( array( 'post_type' => 'espresso_events' ), home_url() ), |
|
897 | + 'elf_month' => EED_Events_Archive_Filters::_display_month(), |
|
898 | + 'elf_category' => EED_Events_Archive_Filters::_event_category_slug(), |
|
899 | + 'elf_show_expired' => EED_Events_Archive_Filters::_show_expired(), |
|
900 | + 'elf_type' => self::$_type, |
|
901 | + ); |
|
902 | + EEH_Template::display_template( |
|
903 | + EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events-filters.php', |
|
904 | + $args |
|
905 | + ); |
|
906 | + } |
|
907 | + |
|
908 | + |
|
909 | + /** |
|
910 | + * event_list_css |
|
911 | + * |
|
912 | + * @access public |
|
913 | + * @return void |
|
914 | + */ |
|
915 | + public static function event_list_css($extra_class = '') |
|
916 | + { |
|
917 | + $EE = EE_Registry::instance(); |
|
918 | + $event_list_css = ! empty($extra_class) ? array($extra_class) : array(); |
|
919 | + $event_list_css[] = 'espresso-event-list-event'; |
|
920 | + if (self::$_type == 'grid') { |
|
921 | + $event_list_grid_size = isset($EE->CFG->template_settings->EED_Events_Archive_Filters->event_list_grid_size) |
|
922 | + ? $EE->CFG->template_settings->EED_Events_Archive_Filters->event_list_grid_size : 'medium'; |
|
923 | + $event_list_css[] = $event_list_grid_size . '-event-list-grid'; |
|
924 | + } |
|
925 | + $event_list_css = apply_filters( |
|
926 | + 'EED_Events_Archive_Filters__event_list_css__event_list_css_array', |
|
927 | + $event_list_css |
|
928 | + ); |
|
929 | + return implode(' ', $event_list_css); |
|
930 | + } |
|
931 | + |
|
932 | + |
|
933 | + /** |
|
934 | + * event_categories |
|
935 | + * |
|
936 | + * @access public |
|
937 | + * @return void |
|
938 | + */ |
|
939 | + public static function event_categories() |
|
940 | + { |
|
941 | + return EE_Registry::instance()->load_model('Term')->get_all_ee_categories(); |
|
942 | + } |
|
943 | + |
|
944 | + |
|
945 | + /** |
|
946 | + * display_description |
|
947 | + * |
|
948 | + * @access public |
|
949 | + * @return void |
|
950 | + */ |
|
951 | + public static function display_description($value) |
|
952 | + { |
|
953 | + $EE = EE_Registry::instance(); |
|
954 | + $display_description = isset($EE->CFG->template_settings->EED_Events_Archive_Filters->display_description) |
|
955 | + ? $EE->CFG->template_settings->EED_Events_Archive_Filters->display_description : 1; |
|
956 | + return $display_description === $value ? true : false; |
|
957 | + } |
|
958 | + |
|
959 | + |
|
960 | + /** |
|
961 | + * display_venue_details |
|
962 | + * |
|
963 | + * @access public |
|
964 | + * @return void |
|
965 | + */ |
|
966 | + public static function display_venue_details() |
|
967 | + { |
|
968 | + $EE = EE_Registry::instance(); |
|
969 | + $display_venue_details = isset($EE->CFG->template_settings->EED_Events_Archive_Filters->display_venue_details) |
|
970 | + ? $EE->CFG->template_settings->EED_Events_Archive_Filters->display_venue_details : true; |
|
971 | + $venue_name = EEH_Venue_View::venue_name(); |
|
972 | + return $display_venue_details && ! empty($venue_name) ? true : false; |
|
973 | + } |
|
974 | + |
|
975 | + |
|
976 | + /** |
|
977 | + * display_address |
|
978 | + * |
|
979 | + * @access public |
|
980 | + * @return void |
|
981 | + */ |
|
982 | + public static function display_address() |
|
983 | + { |
|
984 | + $EE = EE_Registry::instance(); |
|
985 | + $display_address = isset($EE->CFG->template_settings->EED_Events_Archive_Filters->display_address) |
|
986 | + ? $EE->CFG->template_settings->EED_Events_Archive_Filters->display_address : false; |
|
987 | + $venue_name = EEH_Venue_View::venue_name(); |
|
988 | + return $display_address && ! empty($venue_name) ? true : false; |
|
989 | + } |
|
990 | + |
|
991 | + |
|
992 | + /** |
|
993 | + * pagination |
|
994 | + * |
|
995 | + * @access public |
|
996 | + * @return void |
|
997 | + */ |
|
998 | + public static function pagination() |
|
999 | + { |
|
1000 | + global $wp_query; |
|
1001 | + $big = 999999999; // need an unlikely integer |
|
1002 | + $pagination = paginate_links( |
|
1003 | + array( |
|
1004 | + 'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), |
|
1005 | + 'format' => '?paged=%#%', |
|
1006 | + 'current' => max(1, get_query_var('paged')), |
|
1007 | + 'total' => $wp_query->max_num_pages, |
|
1008 | + 'show_all' => true, |
|
1009 | + 'end_size' => 10, |
|
1010 | + 'mid_size' => 6, |
|
1011 | + 'prev_next' => true, |
|
1012 | + 'prev_text' => __('‹ PREV', 'event_espresso'), |
|
1013 | + 'next_text' => __('NEXT ›', 'event_espresso'), |
|
1014 | + 'type' => 'plain', |
|
1015 | + 'add_args' => false, |
|
1016 | + 'add_fragment' => '', |
|
1017 | + ) |
|
1018 | + ); |
|
1019 | + return ! empty($pagination) ? '<div class="ee-pagination-dv clear">' . $pagination . '</div>' : ''; |
|
1020 | + } |
|
1021 | + |
|
1022 | + |
|
1023 | + /** |
|
1024 | + * event_list_title |
|
1025 | + * |
|
1026 | + * @access public |
|
1027 | + * @return void |
|
1028 | + */ |
|
1029 | + public static function event_list_title() |
|
1030 | + { |
|
1031 | + return apply_filters( |
|
1032 | + 'EED_Events_Archive_Filters__event_list_title__event_list_title', |
|
1033 | + __('Upcoming Events', 'event_espresso') |
|
1034 | + ); |
|
1035 | + } |
|
1036 | 1036 | } |
@@ -157,7 +157,7 @@ discard block |
||
157 | 157 | ) : ''; |
158 | 158 | $view = ! empty($elf_type) ? $elf_type : $view; |
159 | 159 | $view = apply_filters('EED_Events_Archive_Filters__set_type__type', $view); |
160 | - if (! empty($view) && in_array($view, EED_Events_Archive_Filters::$_types)) { |
|
160 | + if ( ! empty($view) && in_array($view, EED_Events_Archive_Filters::$_types)) { |
|
161 | 161 | self::$_type = $view; |
162 | 162 | } |
163 | 163 | } |
@@ -252,7 +252,7 @@ discard block |
||
252 | 252 | public static function posts_join_sql_for_terms($join_terms = null) |
253 | 253 | { |
254 | 254 | $SQL = ''; |
255 | - if (! empty($join_terms)) { |
|
255 | + if ( ! empty($join_terms)) { |
|
256 | 256 | global $wpdb; |
257 | 257 | $SQL .= " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id)"; |
258 | 258 | $SQL .= " LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)"; |
@@ -279,29 +279,29 @@ discard block |
||
279 | 279 | switch ($orderby) { |
280 | 280 | case 'ticket_start': |
281 | 281 | case 'ticket_end': |
282 | - $SQL .= ' LEFT JOIN ' . EEM_Datetime_Ticket::instance()->table() . ' ON (' |
|
283 | - . EEM_Datetime::instance()->table() . '.DTT_ID = ' |
|
284 | - . EEM_Datetime_Ticket::instance()->table() . '.DTT_ID )'; |
|
285 | - $SQL .= ' LEFT JOIN ' . EEM_Ticket::instance()->table() . ' ON (' |
|
286 | - . EEM_Datetime_Ticket::instance()->table() . '.TKT_ID = ' |
|
287 | - . EEM_Ticket::instance()->table() . '.TKT_ID )'; |
|
282 | + $SQL .= ' LEFT JOIN '.EEM_Datetime_Ticket::instance()->table().' ON (' |
|
283 | + . EEM_Datetime::instance()->table().'.DTT_ID = ' |
|
284 | + . EEM_Datetime_Ticket::instance()->table().'.DTT_ID )'; |
|
285 | + $SQL .= ' LEFT JOIN '.EEM_Ticket::instance()->table().' ON (' |
|
286 | + . EEM_Datetime_Ticket::instance()->table().'.TKT_ID = ' |
|
287 | + . EEM_Ticket::instance()->table().'.TKT_ID )'; |
|
288 | 288 | break; |
289 | 289 | |
290 | 290 | case 'venue_title': |
291 | 291 | case 'city': |
292 | - $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->table() . ' ON (' . $wpdb->posts . '.ID = ' |
|
293 | - . EEM_Event_Venue::instance()->table() . '.EVT_ID )'; |
|
294 | - $SQL .= ' LEFT JOIN ' . EEM_Venue::instance()->table() . ' ON (' |
|
295 | - . EEM_Event_Venue::instance()->table() . '.VNU_ID = ' |
|
296 | - . EEM_Venue::instance()->table() . '.VNU_ID )'; |
|
292 | + $SQL .= ' LEFT JOIN '.EEM_Event_Venue::instance()->table().' ON ('.$wpdb->posts.'.ID = ' |
|
293 | + . EEM_Event_Venue::instance()->table().'.EVT_ID )'; |
|
294 | + $SQL .= ' LEFT JOIN '.EEM_Venue::instance()->table().' ON (' |
|
295 | + . EEM_Event_Venue::instance()->table().'.VNU_ID = ' |
|
296 | + . EEM_Venue::instance()->table().'.VNU_ID )'; |
|
297 | 297 | break; |
298 | 298 | |
299 | 299 | case 'state': |
300 | - $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->table() . ' ON (' . $wpdb->posts . '.ID = ' |
|
301 | - . EEM_Event_Venue::instance()->table() . '.EVT_ID )'; |
|
302 | - $SQL .= ' LEFT JOIN ' . EEM_Event_Venue::instance()->second_table() . ' ON (' |
|
303 | - . EEM_Event_Venue::instance()->table() . '.VNU_ID = ' |
|
304 | - . EEM_Event_Venue::instance()->second_table() . '.VNU_ID )'; |
|
300 | + $SQL .= ' LEFT JOIN '.EEM_Event_Venue::instance()->table().' ON ('.$wpdb->posts.'.ID = ' |
|
301 | + . EEM_Event_Venue::instance()->table().'.EVT_ID )'; |
|
302 | + $SQL .= ' LEFT JOIN '.EEM_Event_Venue::instance()->second_table().' ON (' |
|
303 | + . EEM_Event_Venue::instance()->table().'.VNU_ID = ' |
|
304 | + . EEM_Event_Venue::instance()->second_table().'.VNU_ID )'; |
|
305 | 305 | break; |
306 | 306 | } |
307 | 307 | } |
@@ -347,7 +347,7 @@ discard block |
||
347 | 347 | public static function posts_where_sql_for_show_expired($show_expired = false) |
348 | 348 | { |
349 | 349 | return ! $show_expired |
350 | - ? ' AND ' . EEM_Datetime::instance()->table() . '.DTT_EVT_end > "' . date('Y-m-d H:s:i') . '" ' |
|
350 | + ? ' AND '.EEM_Datetime::instance()->table().'.DTT_EVT_end > "'.date('Y-m-d H:s:i').'" ' |
|
351 | 351 | : ''; |
352 | 352 | } |
353 | 353 | |
@@ -362,7 +362,7 @@ discard block |
||
362 | 362 | public static function posts_where_sql_for_event_category_slug($event_category_slug = null) |
363 | 363 | { |
364 | 364 | global $wpdb; |
365 | - return ! empty($event_category_slug) ? ' AND ' . $wpdb->terms . '.slug = "' . $event_category_slug . '" ' : ''; |
|
365 | + return ! empty($event_category_slug) ? ' AND '.$wpdb->terms.'.slug = "'.$event_category_slug.'" ' : ''; |
|
366 | 366 | } |
367 | 367 | |
368 | 368 | /** |
@@ -375,13 +375,13 @@ discard block |
||
375 | 375 | public static function posts_where_sql_for_event_list_month($month = null) |
376 | 376 | { |
377 | 377 | $SQL = ''; |
378 | - if (! empty($month)) { |
|
378 | + if ( ! empty($month)) { |
|
379 | 379 | // event start date is LESS than the end of the month ( so nothing that doesn't start until next month ) |
380 | - $SQL = ' AND ' . EEM_Datetime::instance()->table() . '.DTT_EVT_start'; |
|
381 | - $SQL .= ' <= "' . date('Y-m-t 23:59:59', \EEH_DTT_Helper::first_of_month_timestamp($month)) . '"'; |
|
380 | + $SQL = ' AND '.EEM_Datetime::instance()->table().'.DTT_EVT_start'; |
|
381 | + $SQL .= ' <= "'.date('Y-m-t 23:59:59', \EEH_DTT_Helper::first_of_month_timestamp($month)).'"'; |
|
382 | 382 | // event end date is GREATER than the start of the month ( so nothing that ended before this month ) |
383 | - $SQL .= ' AND ' . EEM_Datetime::instance()->table() . '.DTT_EVT_end'; |
|
384 | - $SQL .= ' >= "' . date('Y-m-d 0:0:00', \EEH_DTT_Helper::first_of_month_timestamp($month)) . '" '; |
|
383 | + $SQL .= ' AND '.EEM_Datetime::instance()->table().'.DTT_EVT_end'; |
|
384 | + $SQL .= ' >= "'.date('Y-m-d 0:0:00', \EEH_DTT_Helper::first_of_month_timestamp($month)).'" '; |
|
385 | 385 | } |
386 | 386 | return $SQL; |
387 | 387 | } |
@@ -436,43 +436,43 @@ discard block |
||
436 | 436 | switch ($orderby) { |
437 | 437 | case 'id': |
438 | 438 | case 'ID': |
439 | - $SQL .= $glue . $wpdb->posts . '.ID ' . $sort; |
|
439 | + $SQL .= $glue.$wpdb->posts.'.ID '.$sort; |
|
440 | 440 | break; |
441 | 441 | |
442 | 442 | case 'start_date': |
443 | - $SQL .= $glue . EEM_Datetime::instance()->table() . '.DTT_EVT_start ' . $sort; |
|
443 | + $SQL .= $glue.EEM_Datetime::instance()->table().'.DTT_EVT_start '.$sort; |
|
444 | 444 | break; |
445 | 445 | |
446 | 446 | case 'end_date': |
447 | - $SQL .= $glue . EEM_Datetime::instance()->table() . '.DTT_EVT_end ' . $sort; |
|
447 | + $SQL .= $glue.EEM_Datetime::instance()->table().'.DTT_EVT_end '.$sort; |
|
448 | 448 | break; |
449 | 449 | |
450 | 450 | case 'event_name': |
451 | - $SQL .= $glue . $wpdb->posts . '.post_title ' . $sort; |
|
451 | + $SQL .= $glue.$wpdb->posts.'.post_title '.$sort; |
|
452 | 452 | break; |
453 | 453 | |
454 | 454 | case 'category_slug': |
455 | - $SQL .= $glue . $wpdb->terms . '.slug ' . $sort; |
|
455 | + $SQL .= $glue.$wpdb->terms.'.slug '.$sort; |
|
456 | 456 | break; |
457 | 457 | |
458 | 458 | case 'ticket_start': |
459 | - $SQL .= $glue . EEM_Ticket::instance()->table() . '.TKT_start_date ' . $sort; |
|
459 | + $SQL .= $glue.EEM_Ticket::instance()->table().'.TKT_start_date '.$sort; |
|
460 | 460 | break; |
461 | 461 | |
462 | 462 | case 'ticket_end': |
463 | - $SQL .= $glue . EEM_Ticket::instance()->table() . '.TKT_end_date ' . $sort; |
|
463 | + $SQL .= $glue.EEM_Ticket::instance()->table().'.TKT_end_date '.$sort; |
|
464 | 464 | break; |
465 | 465 | |
466 | 466 | case 'venue_title': |
467 | - $SQL .= $glue . 'venue_title ' . $sort; |
|
467 | + $SQL .= $glue.'venue_title '.$sort; |
|
468 | 468 | break; |
469 | 469 | |
470 | 470 | case 'city': |
471 | - $SQL .= $glue . EEM_Venue::instance()->second_table() . '.VNU_city ' . $sort; |
|
471 | + $SQL .= $glue.EEM_Venue::instance()->second_table().'.VNU_city '.$sort; |
|
472 | 472 | break; |
473 | 473 | |
474 | 474 | case 'state': |
475 | - $SQL .= $glue . EEM_State::instance()->table() . '.STA_name ' . $sort; |
|
475 | + $SQL .= $glue.EEM_State::instance()->table().'.STA_name '.$sort; |
|
476 | 476 | break; |
477 | 477 | } |
478 | 478 | $cntr++; |
@@ -526,7 +526,7 @@ discard block |
||
526 | 526 | */ |
527 | 527 | public function event_list_pagination() |
528 | 528 | { |
529 | - echo '<div class="ee-pagination-dv ee-clear-float">' . espresso_event_list_pagination() . '</div>'; |
|
529 | + echo '<div class="ee-pagination-dv ee-clear-float">'.espresso_event_list_pagination().'</div>'; |
|
530 | 530 | } |
531 | 531 | |
532 | 532 | |
@@ -540,7 +540,7 @@ discard block |
||
540 | 540 | public function event_details($content) |
541 | 541 | { |
542 | 542 | return EEH_Template::display_template( |
543 | - EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-details.php', |
|
543 | + EE_TEMPLATES.EE_Config::get_current_theme().'/content-espresso_events-details.php', |
|
544 | 544 | array('the_content' => $content), |
545 | 545 | true |
546 | 546 | ); |
@@ -558,7 +558,7 @@ discard block |
||
558 | 558 | { |
559 | 559 | return $content |
560 | 560 | . EEH_Template::display_template( |
561 | - EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-tickets.php', |
|
561 | + EE_TEMPLATES.EE_Config::get_current_theme().'/content-espresso_events-tickets.php', |
|
562 | 562 | array(), |
563 | 563 | true |
564 | 564 | ); |
@@ -575,7 +575,7 @@ discard block |
||
575 | 575 | { |
576 | 576 | return $content |
577 | 577 | . EEH_Template::display_template( |
578 | - EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-datetimes.php', |
|
578 | + EE_TEMPLATES.EE_Config::get_current_theme().'/content-espresso_events-datetimes.php', |
|
579 | 579 | array(), |
580 | 580 | true |
581 | 581 | ); |
@@ -592,7 +592,7 @@ discard block |
||
592 | 592 | { |
593 | 593 | return $content |
594 | 594 | . EEH_Template::display_template( |
595 | - EE_TEMPLATES . EE_Config::get_current_theme() . '/content-espresso_events-venues.php', |
|
595 | + EE_TEMPLATES.EE_Config::get_current_theme().'/content-espresso_events-venues.php', |
|
596 | 596 | array(), |
597 | 597 | true |
598 | 598 | ); |
@@ -627,7 +627,7 @@ discard block |
||
627 | 627 | */ |
628 | 628 | private function _get_template($which = 'part') |
629 | 629 | { |
630 | - return EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events.php'; |
|
630 | + return EE_TEMPLATES.EE_Config::get_current_theme().'/archive-espresso_events.php'; |
|
631 | 631 | } |
632 | 632 | |
633 | 633 | |
@@ -687,27 +687,27 @@ discard block |
||
687 | 687 | if (apply_filters('FHEE_enable_default_espresso_css', false)) { |
688 | 688 | // first check uploads folder |
689 | 689 | if (is_readable( |
690 | - get_stylesheet_directory() . EE_Config::get_current_theme() . '/archive-espresso_events.css' |
|
690 | + get_stylesheet_directory().EE_Config::get_current_theme().'/archive-espresso_events.css' |
|
691 | 691 | )) { |
692 | 692 | wp_register_style( |
693 | 693 | 'archive-espresso_events', |
694 | - get_stylesheet_directory_uri() . EE_Config::get_current_theme( |
|
695 | - ) . '/archive-espresso_events.css', |
|
694 | + get_stylesheet_directory_uri().EE_Config::get_current_theme( |
|
695 | + ).'/archive-espresso_events.css', |
|
696 | 696 | array('dashicons', 'espresso_default') |
697 | 697 | ); |
698 | 698 | } else { |
699 | 699 | wp_register_style( |
700 | 700 | 'archive-espresso_events', |
701 | - EE_TEMPLATES_URL . EE_Config::get_current_theme() . '/archive-espresso_events.css', |
|
701 | + EE_TEMPLATES_URL.EE_Config::get_current_theme().'/archive-espresso_events.css', |
|
702 | 702 | array('dashicons', 'espresso_default') |
703 | 703 | ); |
704 | 704 | } |
705 | 705 | if (is_readable( |
706 | - get_stylesheet_directory() . EE_Config::get_current_theme() . '/archive-espresso_events.js' |
|
706 | + get_stylesheet_directory().EE_Config::get_current_theme().'/archive-espresso_events.js' |
|
707 | 707 | )) { |
708 | 708 | wp_register_script( |
709 | 709 | 'archive-espresso_events', |
710 | - get_stylesheet_directory_uri() . EE_Config::get_current_theme() . '/archive-espresso_events.js', |
|
710 | + get_stylesheet_directory_uri().EE_Config::get_current_theme().'/archive-espresso_events.js', |
|
711 | 711 | array('jquery-masonry'), |
712 | 712 | '1.0', |
713 | 713 | true |
@@ -715,7 +715,7 @@ discard block |
||
715 | 715 | } else { |
716 | 716 | wp_register_script( |
717 | 717 | 'archive-espresso_events', |
718 | - EVENTS_ARCHIVE_ASSETS_URL . 'archive-espresso_events.js', |
|
718 | + EVENTS_ARCHIVE_ASSETS_URL.'archive-espresso_events.js', |
|
719 | 719 | array('jquery-masonry'), |
720 | 720 | '1.0', |
721 | 721 | true |
@@ -763,7 +763,7 @@ discard block |
||
763 | 763 | $EE->CFG->template_settings->EED_Events_Archive_Filters |
764 | 764 | ); |
765 | 765 | EEH_Template::display_template( |
766 | - EVENTS_ARCHIVE_TEMPLATES_PATH . 'admin-event-list-settings.template.php', |
|
766 | + EVENTS_ARCHIVE_TEMPLATES_PATH.'admin-event-list-settings.template.php', |
|
767 | 767 | $EE->CFG->template_settings->EED_Events_Archive_Filters |
768 | 768 | ); |
769 | 769 | } |
@@ -792,10 +792,10 @@ discard block |
||
792 | 792 | ? $CFG->event_list_grid_size : 'medium'; |
793 | 793 | $CFG->templates['full'] = isset($CFG->templates['full']) && ! empty($CFG->templates['full']) |
794 | 794 | ? $CFG->templates['full'] |
795 | - : EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events.php'; |
|
795 | + : EE_TEMPLATES.EE_Config::get_current_theme().'/archive-espresso_events.php'; |
|
796 | 796 | $CFG->templates['part'] = isset($CFG->templates['part']) && ! empty($CFG->templates['part']) |
797 | 797 | ? $CFG->templates['part'] |
798 | - : EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events-grid-view.php'; |
|
798 | + : EE_TEMPLATES.EE_Config::get_current_theme().'/archive-espresso_events-grid-view.php'; |
|
799 | 799 | return $CFG; |
800 | 800 | } |
801 | 801 | |
@@ -837,20 +837,20 @@ discard block |
||
837 | 837 | $CFG->EED_Events_Archive_Filters->event_list_grid_size = isset($REQ['event_list_grid_size']) |
838 | 838 | ? sanitize_text_field($REQ['event_list_grid_size']) : 'medium'; |
839 | 839 | $CFG->EED_Events_Archive_Filters->templates = array( |
840 | - 'full' => EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events.php', |
|
840 | + 'full' => EE_TEMPLATES.EE_Config::get_current_theme().'/archive-espresso_events.php', |
|
841 | 841 | ); |
842 | 842 | |
843 | 843 | switch ($CFG->EED_Events_Archive_Filters->default_type) { |
844 | 844 | case 'dates': |
845 | - $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES . EE_Config::get_current_theme() |
|
845 | + $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES.EE_Config::get_current_theme() |
|
846 | 846 | . '/archive-espresso_events-dates-view.php'; |
847 | 847 | break; |
848 | 848 | case 'text': |
849 | - $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES . EE_Config::get_current_theme() |
|
849 | + $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES.EE_Config::get_current_theme() |
|
850 | 850 | . '/archive-espresso_events-text-view.php'; |
851 | 851 | break; |
852 | 852 | default: |
853 | - $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES . EE_Config::get_current_theme() |
|
853 | + $CFG->EED_Events_Archive_Filters->templates['part'] = EE_TEMPLATES.EE_Config::get_current_theme() |
|
854 | 854 | . '/archive-espresso_events-grid-view.php'; |
855 | 855 | } |
856 | 856 | |
@@ -900,7 +900,7 @@ discard block |
||
900 | 900 | 'elf_type' => self::$_type, |
901 | 901 | ); |
902 | 902 | EEH_Template::display_template( |
903 | - EE_TEMPLATES . EE_Config::get_current_theme() . '/archive-espresso_events-filters.php', |
|
903 | + EE_TEMPLATES.EE_Config::get_current_theme().'/archive-espresso_events-filters.php', |
|
904 | 904 | $args |
905 | 905 | ); |
906 | 906 | } |
@@ -920,7 +920,7 @@ discard block |
||
920 | 920 | if (self::$_type == 'grid') { |
921 | 921 | $event_list_grid_size = isset($EE->CFG->template_settings->EED_Events_Archive_Filters->event_list_grid_size) |
922 | 922 | ? $EE->CFG->template_settings->EED_Events_Archive_Filters->event_list_grid_size : 'medium'; |
923 | - $event_list_css[] = $event_list_grid_size . '-event-list-grid'; |
|
923 | + $event_list_css[] = $event_list_grid_size.'-event-list-grid'; |
|
924 | 924 | } |
925 | 925 | $event_list_css = apply_filters( |
926 | 926 | 'EED_Events_Archive_Filters__event_list_css__event_list_css_array', |
@@ -1016,7 +1016,7 @@ discard block |
||
1016 | 1016 | 'add_fragment' => '', |
1017 | 1017 | ) |
1018 | 1018 | ); |
1019 | - return ! empty($pagination) ? '<div class="ee-pagination-dv clear">' . $pagination . '</div>' : ''; |
|
1019 | + return ! empty($pagination) ? '<div class="ee-pagination-dv clear">'.$pagination.'</div>' : ''; |
|
1020 | 1020 | } |
1021 | 1021 | |
1022 | 1022 |
@@ -112,7 +112,7 @@ discard block |
||
112 | 112 | * |
113 | 113 | * @access public |
114 | 114 | * @param string $SQL the JOIN clause for the comment feed query |
115 | - * @return void |
|
115 | + * @return string |
|
116 | 116 | */ |
117 | 117 | public static function comment_feed_join($SQL) |
118 | 118 | { |
@@ -133,7 +133,7 @@ discard block |
||
133 | 133 | * |
134 | 134 | * @access public |
135 | 135 | * @param string $SQL the WHERE clause for the comment feed query |
136 | - * @return void |
|
136 | + * @return string |
|
137 | 137 | */ |
138 | 138 | public static function comment_feed_where($SQL) |
139 | 139 | { |
@@ -150,7 +150,7 @@ discard block |
||
150 | 150 | * |
151 | 151 | * @access public |
152 | 152 | * @param string $content |
153 | - * @return void |
|
153 | + * @return string |
|
154 | 154 | */ |
155 | 155 | public static function the_event_feed($content) |
156 | 156 | { |
@@ -191,7 +191,7 @@ discard block |
||
191 | 191 | * |
192 | 192 | * @access public |
193 | 193 | * @param string $content |
194 | - * @return void |
|
194 | + * @return string |
|
195 | 195 | */ |
196 | 196 | public static function the_venue_feed($content) |
197 | 197 | { |
@@ -12,217 +12,217 @@ |
||
12 | 12 | { |
13 | 13 | |
14 | 14 | |
15 | - /** |
|
16 | - * @return EED_Feeds |
|
17 | - */ |
|
18 | - public static function instance() |
|
19 | - { |
|
20 | - return parent::get_instance(__CLASS__); |
|
21 | - } |
|
22 | - |
|
23 | - |
|
24 | - /** |
|
25 | - * set_hooks - for hooking into EE Core, other modules, etc |
|
26 | - * |
|
27 | - * @access public |
|
28 | - * @return void |
|
29 | - */ |
|
30 | - public static function set_hooks() |
|
31 | - { |
|
32 | - add_action('parse_request', array('EED_Feeds', 'parse_request'), 10); |
|
33 | - add_filter('default_feed', array('EED_Feeds', 'default_feed'), 10, 1); |
|
34 | - add_filter('comment_feed_join', array('EED_Feeds', 'comment_feed_join'), 10, 2); |
|
35 | - add_filter('comment_feed_where', array('EED_Feeds', 'comment_feed_where'), 10, 2); |
|
36 | - } |
|
37 | - |
|
38 | - /** |
|
39 | - * set_hooks_admin - for hooking into EE Admin Core, other modules, etc |
|
40 | - * |
|
41 | - * @access public |
|
42 | - * @return void |
|
43 | - */ |
|
44 | - public static function set_hooks_admin() |
|
45 | - { |
|
46 | - } |
|
47 | - |
|
48 | - |
|
49 | - /** |
|
50 | - * run - initial module setup |
|
51 | - * |
|
52 | - * @access public |
|
53 | - * @return void |
|
54 | - */ |
|
55 | - public function run($WP) |
|
56 | - { |
|
57 | - } |
|
58 | - |
|
59 | - |
|
60 | - /** |
|
61 | - * default_feed |
|
62 | - * |
|
63 | - * @access public |
|
64 | - * @param type rss2, atom, rss, rdf, rssjs |
|
65 | - * @return string |
|
66 | - */ |
|
67 | - public static function default_feed($type = 'rss2') |
|
68 | - { |
|
69 | - // rss2, atom, rss, rdf, rssjs |
|
70 | - $type = 'rss2'; |
|
71 | - return $type; |
|
72 | - } |
|
73 | - |
|
74 | - |
|
75 | - /** |
|
76 | - * parse_request |
|
77 | - * |
|
78 | - * @access public |
|
79 | - * @return void |
|
80 | - */ |
|
81 | - public static function parse_request() |
|
82 | - { |
|
83 | - if (EE_Registry::instance()->REQ->is_set('post_type')) { |
|
84 | - // define path to templates |
|
85 | - define('RSS_FEEDS_TEMPLATES_PATH', str_replace('\\', '/', plugin_dir_path(__FILE__)) . 'templates/'); |
|
86 | - // what kinda post_type are we dealing with ? |
|
87 | - switch (EE_Registry::instance()->REQ->get('post_type')) { |
|
88 | - case 'espresso_events': |
|
89 | - // for rss2, atom, rss, rdf |
|
90 | - add_filter('the_excerpt_rss', array('EED_Feeds', 'the_event_feed'), 10, 1); |
|
91 | - add_filter('the_content_feed', array('EED_Feeds', 'the_event_feed'), 10, 1); |
|
92 | - // for json ( also uses the above filter ) |
|
93 | - add_filter('rssjs_feed_item', array('EED_Feeds', 'the_event_rssjs_feed'), 10, 1); |
|
94 | - break; |
|
95 | - case 'espresso_venues': |
|
96 | - // for rss2, atom, rss, rdf |
|
97 | - add_filter('the_excerpt_rss', array('EED_Feeds', 'the_venue_feed'), 10, 1); |
|
98 | - add_filter('the_content_feed', array('EED_Feeds', 'the_venue_feed'), 10, 1); |
|
99 | - // for json ( also uses the above filter ) |
|
100 | - add_filter('rssjs_feed_item', array('EED_Feeds', 'the_venue_rssjs_feed'), 10, 1); |
|
101 | - break; |
|
102 | - } |
|
103 | - } |
|
104 | - } |
|
105 | - |
|
106 | - |
|
107 | - /** |
|
108 | - * comment_feed_join - EVEN THOUGH... our espresso_attendees custom post type is set to NOT PUBLIC |
|
109 | - * WordPress thought it would be a good idea to display the comments for them in the RSS feeds... we think NOT |
|
110 | - * so this little snippet of SQL taps into the comment feed query and removes comments for the |
|
111 | - * espresso_attendees post_type |
|
112 | - * |
|
113 | - * @access public |
|
114 | - * @param string $SQL the JOIN clause for the comment feed query |
|
115 | - * @return void |
|
116 | - */ |
|
117 | - public static function comment_feed_join($SQL) |
|
118 | - { |
|
119 | - global $wpdb; |
|
120 | - // check for wp_posts table in JOIN clause |
|
121 | - if (strpos($SQL, $wpdb->posts) !== false) { |
|
122 | - add_filter('EED_Feeds__comment_feed_where__espresso_attendees', '__return_true'); |
|
123 | - } |
|
124 | - return $SQL; |
|
125 | - } |
|
126 | - |
|
127 | - |
|
128 | - /** |
|
129 | - * comment_feed_where - EVEN THOUGH... our espresso_attendees custom post type is set to NOT PUBLIC |
|
130 | - * WordPress thought it would be a good idea to display the comments for them in the RSS feeds... we think NOT |
|
131 | - * so this little snippet of SQL taps into the comment feed query and removes comments for the |
|
132 | - * espresso_attendees post_type |
|
133 | - * |
|
134 | - * @access public |
|
135 | - * @param string $SQL the WHERE clause for the comment feed query |
|
136 | - * @return void |
|
137 | - */ |
|
138 | - public static function comment_feed_where($SQL) |
|
139 | - { |
|
140 | - global $wp_query, $wpdb; |
|
141 | - if ($wp_query->is_comment_feed && apply_filters('EED_Feeds__comment_feed_where__espresso_attendees', false)) { |
|
142 | - $SQL .= " AND $wpdb->posts.post_type != 'espresso_attendees'"; |
|
143 | - } |
|
144 | - return $SQL; |
|
145 | - } |
|
146 | - |
|
147 | - |
|
148 | - /** |
|
149 | - * the_event_feed |
|
150 | - * |
|
151 | - * @access public |
|
152 | - * @param string $content |
|
153 | - * @return void |
|
154 | - */ |
|
155 | - public static function the_event_feed($content) |
|
156 | - { |
|
157 | - if (is_feed() && is_readable(RSS_FEEDS_TEMPLATES_PATH . 'espresso_events_feed.template.php')) { |
|
158 | - global $post; |
|
159 | - $template_args = array( |
|
160 | - 'EVT_ID' => $post->ID, |
|
161 | - 'event_description' => get_option('rss_use_excerpt') ? $post->post_excerpt : $post->post_content, |
|
162 | - ); |
|
163 | - $content = EEH_Template::display_template( |
|
164 | - RSS_FEEDS_TEMPLATES_PATH . 'espresso_events_feed.template.php', |
|
165 | - $template_args, |
|
166 | - true |
|
167 | - ); |
|
168 | - } |
|
169 | - return $content; |
|
170 | - } |
|
171 | - |
|
172 | - |
|
173 | - /** |
|
174 | - * the_event_rssjs_feed |
|
175 | - * |
|
176 | - * @access public |
|
177 | - * @param object $item |
|
178 | - * @return void |
|
179 | - */ |
|
180 | - public static function the_event_rssjs_feed($item) |
|
181 | - { |
|
182 | - if (is_feed() && isset($item->description)) { |
|
183 | - $item->description = EED_Feeds::the_event_feed($item->description); |
|
184 | - } |
|
185 | - return $item; |
|
186 | - } |
|
187 | - |
|
188 | - |
|
189 | - /** |
|
190 | - * the_venue_feed |
|
191 | - * |
|
192 | - * @access public |
|
193 | - * @param string $content |
|
194 | - * @return void |
|
195 | - */ |
|
196 | - public static function the_venue_feed($content) |
|
197 | - { |
|
198 | - if (is_feed() && is_readable(RSS_FEEDS_TEMPLATES_PATH . 'espresso_venues_feed.template.php')) { |
|
199 | - global $post; |
|
200 | - $template_args = array( |
|
201 | - 'VNU_ID' => $post->ID, |
|
202 | - 'venue_description' => get_option('rss_use_excerpt') ? $post->post_excerpt : $post->post_content, |
|
203 | - ); |
|
204 | - $content = EEH_Template::display_template( |
|
205 | - RSS_FEEDS_TEMPLATES_PATH . 'espresso_venues_feed.template.php', |
|
206 | - $template_args, |
|
207 | - true |
|
208 | - ); |
|
209 | - } |
|
210 | - return $content; |
|
211 | - } |
|
212 | - |
|
213 | - |
|
214 | - /** |
|
215 | - * the_venue_rssjs_feed |
|
216 | - * |
|
217 | - * @access public |
|
218 | - * @param object $item |
|
219 | - * @return void |
|
220 | - */ |
|
221 | - public static function the_venue_rssjs_feed($item) |
|
222 | - { |
|
223 | - if (is_feed() && isset($item->description)) { |
|
224 | - $item->description = EED_Feeds::the_venue_feed($item->description); |
|
225 | - } |
|
226 | - return $item; |
|
227 | - } |
|
15 | + /** |
|
16 | + * @return EED_Feeds |
|
17 | + */ |
|
18 | + public static function instance() |
|
19 | + { |
|
20 | + return parent::get_instance(__CLASS__); |
|
21 | + } |
|
22 | + |
|
23 | + |
|
24 | + /** |
|
25 | + * set_hooks - for hooking into EE Core, other modules, etc |
|
26 | + * |
|
27 | + * @access public |
|
28 | + * @return void |
|
29 | + */ |
|
30 | + public static function set_hooks() |
|
31 | + { |
|
32 | + add_action('parse_request', array('EED_Feeds', 'parse_request'), 10); |
|
33 | + add_filter('default_feed', array('EED_Feeds', 'default_feed'), 10, 1); |
|
34 | + add_filter('comment_feed_join', array('EED_Feeds', 'comment_feed_join'), 10, 2); |
|
35 | + add_filter('comment_feed_where', array('EED_Feeds', 'comment_feed_where'), 10, 2); |
|
36 | + } |
|
37 | + |
|
38 | + /** |
|
39 | + * set_hooks_admin - for hooking into EE Admin Core, other modules, etc |
|
40 | + * |
|
41 | + * @access public |
|
42 | + * @return void |
|
43 | + */ |
|
44 | + public static function set_hooks_admin() |
|
45 | + { |
|
46 | + } |
|
47 | + |
|
48 | + |
|
49 | + /** |
|
50 | + * run - initial module setup |
|
51 | + * |
|
52 | + * @access public |
|
53 | + * @return void |
|
54 | + */ |
|
55 | + public function run($WP) |
|
56 | + { |
|
57 | + } |
|
58 | + |
|
59 | + |
|
60 | + /** |
|
61 | + * default_feed |
|
62 | + * |
|
63 | + * @access public |
|
64 | + * @param type rss2, atom, rss, rdf, rssjs |
|
65 | + * @return string |
|
66 | + */ |
|
67 | + public static function default_feed($type = 'rss2') |
|
68 | + { |
|
69 | + // rss2, atom, rss, rdf, rssjs |
|
70 | + $type = 'rss2'; |
|
71 | + return $type; |
|
72 | + } |
|
73 | + |
|
74 | + |
|
75 | + /** |
|
76 | + * parse_request |
|
77 | + * |
|
78 | + * @access public |
|
79 | + * @return void |
|
80 | + */ |
|
81 | + public static function parse_request() |
|
82 | + { |
|
83 | + if (EE_Registry::instance()->REQ->is_set('post_type')) { |
|
84 | + // define path to templates |
|
85 | + define('RSS_FEEDS_TEMPLATES_PATH', str_replace('\\', '/', plugin_dir_path(__FILE__)) . 'templates/'); |
|
86 | + // what kinda post_type are we dealing with ? |
|
87 | + switch (EE_Registry::instance()->REQ->get('post_type')) { |
|
88 | + case 'espresso_events': |
|
89 | + // for rss2, atom, rss, rdf |
|
90 | + add_filter('the_excerpt_rss', array('EED_Feeds', 'the_event_feed'), 10, 1); |
|
91 | + add_filter('the_content_feed', array('EED_Feeds', 'the_event_feed'), 10, 1); |
|
92 | + // for json ( also uses the above filter ) |
|
93 | + add_filter('rssjs_feed_item', array('EED_Feeds', 'the_event_rssjs_feed'), 10, 1); |
|
94 | + break; |
|
95 | + case 'espresso_venues': |
|
96 | + // for rss2, atom, rss, rdf |
|
97 | + add_filter('the_excerpt_rss', array('EED_Feeds', 'the_venue_feed'), 10, 1); |
|
98 | + add_filter('the_content_feed', array('EED_Feeds', 'the_venue_feed'), 10, 1); |
|
99 | + // for json ( also uses the above filter ) |
|
100 | + add_filter('rssjs_feed_item', array('EED_Feeds', 'the_venue_rssjs_feed'), 10, 1); |
|
101 | + break; |
|
102 | + } |
|
103 | + } |
|
104 | + } |
|
105 | + |
|
106 | + |
|
107 | + /** |
|
108 | + * comment_feed_join - EVEN THOUGH... our espresso_attendees custom post type is set to NOT PUBLIC |
|
109 | + * WordPress thought it would be a good idea to display the comments for them in the RSS feeds... we think NOT |
|
110 | + * so this little snippet of SQL taps into the comment feed query and removes comments for the |
|
111 | + * espresso_attendees post_type |
|
112 | + * |
|
113 | + * @access public |
|
114 | + * @param string $SQL the JOIN clause for the comment feed query |
|
115 | + * @return void |
|
116 | + */ |
|
117 | + public static function comment_feed_join($SQL) |
|
118 | + { |
|
119 | + global $wpdb; |
|
120 | + // check for wp_posts table in JOIN clause |
|
121 | + if (strpos($SQL, $wpdb->posts) !== false) { |
|
122 | + add_filter('EED_Feeds__comment_feed_where__espresso_attendees', '__return_true'); |
|
123 | + } |
|
124 | + return $SQL; |
|
125 | + } |
|
126 | + |
|
127 | + |
|
128 | + /** |
|
129 | + * comment_feed_where - EVEN THOUGH... our espresso_attendees custom post type is set to NOT PUBLIC |
|
130 | + * WordPress thought it would be a good idea to display the comments for them in the RSS feeds... we think NOT |
|
131 | + * so this little snippet of SQL taps into the comment feed query and removes comments for the |
|
132 | + * espresso_attendees post_type |
|
133 | + * |
|
134 | + * @access public |
|
135 | + * @param string $SQL the WHERE clause for the comment feed query |
|
136 | + * @return void |
|
137 | + */ |
|
138 | + public static function comment_feed_where($SQL) |
|
139 | + { |
|
140 | + global $wp_query, $wpdb; |
|
141 | + if ($wp_query->is_comment_feed && apply_filters('EED_Feeds__comment_feed_where__espresso_attendees', false)) { |
|
142 | + $SQL .= " AND $wpdb->posts.post_type != 'espresso_attendees'"; |
|
143 | + } |
|
144 | + return $SQL; |
|
145 | + } |
|
146 | + |
|
147 | + |
|
148 | + /** |
|
149 | + * the_event_feed |
|
150 | + * |
|
151 | + * @access public |
|
152 | + * @param string $content |
|
153 | + * @return void |
|
154 | + */ |
|
155 | + public static function the_event_feed($content) |
|
156 | + { |
|
157 | + if (is_feed() && is_readable(RSS_FEEDS_TEMPLATES_PATH . 'espresso_events_feed.template.php')) { |
|
158 | + global $post; |
|
159 | + $template_args = array( |
|
160 | + 'EVT_ID' => $post->ID, |
|
161 | + 'event_description' => get_option('rss_use_excerpt') ? $post->post_excerpt : $post->post_content, |
|
162 | + ); |
|
163 | + $content = EEH_Template::display_template( |
|
164 | + RSS_FEEDS_TEMPLATES_PATH . 'espresso_events_feed.template.php', |
|
165 | + $template_args, |
|
166 | + true |
|
167 | + ); |
|
168 | + } |
|
169 | + return $content; |
|
170 | + } |
|
171 | + |
|
172 | + |
|
173 | + /** |
|
174 | + * the_event_rssjs_feed |
|
175 | + * |
|
176 | + * @access public |
|
177 | + * @param object $item |
|
178 | + * @return void |
|
179 | + */ |
|
180 | + public static function the_event_rssjs_feed($item) |
|
181 | + { |
|
182 | + if (is_feed() && isset($item->description)) { |
|
183 | + $item->description = EED_Feeds::the_event_feed($item->description); |
|
184 | + } |
|
185 | + return $item; |
|
186 | + } |
|
187 | + |
|
188 | + |
|
189 | + /** |
|
190 | + * the_venue_feed |
|
191 | + * |
|
192 | + * @access public |
|
193 | + * @param string $content |
|
194 | + * @return void |
|
195 | + */ |
|
196 | + public static function the_venue_feed($content) |
|
197 | + { |
|
198 | + if (is_feed() && is_readable(RSS_FEEDS_TEMPLATES_PATH . 'espresso_venues_feed.template.php')) { |
|
199 | + global $post; |
|
200 | + $template_args = array( |
|
201 | + 'VNU_ID' => $post->ID, |
|
202 | + 'venue_description' => get_option('rss_use_excerpt') ? $post->post_excerpt : $post->post_content, |
|
203 | + ); |
|
204 | + $content = EEH_Template::display_template( |
|
205 | + RSS_FEEDS_TEMPLATES_PATH . 'espresso_venues_feed.template.php', |
|
206 | + $template_args, |
|
207 | + true |
|
208 | + ); |
|
209 | + } |
|
210 | + return $content; |
|
211 | + } |
|
212 | + |
|
213 | + |
|
214 | + /** |
|
215 | + * the_venue_rssjs_feed |
|
216 | + * |
|
217 | + * @access public |
|
218 | + * @param object $item |
|
219 | + * @return void |
|
220 | + */ |
|
221 | + public static function the_venue_rssjs_feed($item) |
|
222 | + { |
|
223 | + if (is_feed() && isset($item->description)) { |
|
224 | + $item->description = EED_Feeds::the_venue_feed($item->description); |
|
225 | + } |
|
226 | + return $item; |
|
227 | + } |
|
228 | 228 | } |
@@ -82,7 +82,7 @@ discard block |
||
82 | 82 | { |
83 | 83 | if (EE_Registry::instance()->REQ->is_set('post_type')) { |
84 | 84 | // define path to templates |
85 | - define('RSS_FEEDS_TEMPLATES_PATH', str_replace('\\', '/', plugin_dir_path(__FILE__)) . 'templates/'); |
|
85 | + define('RSS_FEEDS_TEMPLATES_PATH', str_replace('\\', '/', plugin_dir_path(__FILE__)).'templates/'); |
|
86 | 86 | // what kinda post_type are we dealing with ? |
87 | 87 | switch (EE_Registry::instance()->REQ->get('post_type')) { |
88 | 88 | case 'espresso_events': |
@@ -154,14 +154,14 @@ discard block |
||
154 | 154 | */ |
155 | 155 | public static function the_event_feed($content) |
156 | 156 | { |
157 | - if (is_feed() && is_readable(RSS_FEEDS_TEMPLATES_PATH . 'espresso_events_feed.template.php')) { |
|
157 | + if (is_feed() && is_readable(RSS_FEEDS_TEMPLATES_PATH.'espresso_events_feed.template.php')) { |
|
158 | 158 | global $post; |
159 | 159 | $template_args = array( |
160 | 160 | 'EVT_ID' => $post->ID, |
161 | 161 | 'event_description' => get_option('rss_use_excerpt') ? $post->post_excerpt : $post->post_content, |
162 | 162 | ); |
163 | 163 | $content = EEH_Template::display_template( |
164 | - RSS_FEEDS_TEMPLATES_PATH . 'espresso_events_feed.template.php', |
|
164 | + RSS_FEEDS_TEMPLATES_PATH.'espresso_events_feed.template.php', |
|
165 | 165 | $template_args, |
166 | 166 | true |
167 | 167 | ); |
@@ -195,14 +195,14 @@ discard block |
||
195 | 195 | */ |
196 | 196 | public static function the_venue_feed($content) |
197 | 197 | { |
198 | - if (is_feed() && is_readable(RSS_FEEDS_TEMPLATES_PATH . 'espresso_venues_feed.template.php')) { |
|
198 | + if (is_feed() && is_readable(RSS_FEEDS_TEMPLATES_PATH.'espresso_venues_feed.template.php')) { |
|
199 | 199 | global $post; |
200 | 200 | $template_args = array( |
201 | 201 | 'VNU_ID' => $post->ID, |
202 | 202 | 'venue_description' => get_option('rss_use_excerpt') ? $post->post_excerpt : $post->post_content, |
203 | 203 | ); |
204 | 204 | $content = EEH_Template::display_template( |
205 | - RSS_FEEDS_TEMPLATES_PATH . 'espresso_venues_feed.template.php', |
|
205 | + RSS_FEEDS_TEMPLATES_PATH.'espresso_venues_feed.template.php', |
|
206 | 206 | $template_args, |
207 | 207 | true |
208 | 208 | ); |
@@ -16,36 +16,36 @@ |
||
16 | 16 | { |
17 | 17 | |
18 | 18 | |
19 | - public function __construct() |
|
20 | - { |
|
21 | - // define some help/support page related constants |
|
22 | - define('EE_SUPPORT_PG_SLUG', 'espresso_support'); |
|
23 | - define('EE_SUPPORT_ADMIN_URL', admin_url('admin.php?page=' . EE_SUPPORT_PG_SLUG)); |
|
24 | - define('EE_SUPPORT_ADMIN_TEMPLATE_PATH', EE_ADMIN_PAGES . 'support/templates/'); |
|
25 | - define('EE_SUPPORT_ADMIN', EE_ADMIN_PAGES . 'support/'); |
|
26 | - define('EE_SUPPORT_ASSETS_URL', EE_ADMIN_PAGES_URL . 'support/assets/'); |
|
27 | - parent::__construct(); |
|
28 | - } |
|
19 | + public function __construct() |
|
20 | + { |
|
21 | + // define some help/support page related constants |
|
22 | + define('EE_SUPPORT_PG_SLUG', 'espresso_support'); |
|
23 | + define('EE_SUPPORT_ADMIN_URL', admin_url('admin.php?page=' . EE_SUPPORT_PG_SLUG)); |
|
24 | + define('EE_SUPPORT_ADMIN_TEMPLATE_PATH', EE_ADMIN_PAGES . 'support/templates/'); |
|
25 | + define('EE_SUPPORT_ADMIN', EE_ADMIN_PAGES . 'support/'); |
|
26 | + define('EE_SUPPORT_ASSETS_URL', EE_ADMIN_PAGES_URL . 'support/assets/'); |
|
27 | + parent::__construct(); |
|
28 | + } |
|
29 | 29 | |
30 | - protected function _set_init_properties() |
|
31 | - { |
|
32 | - $this->label = __('Help & Support', 'event_espresso'); |
|
33 | - } |
|
30 | + protected function _set_init_properties() |
|
31 | + { |
|
32 | + $this->label = __('Help & Support', 'event_espresso'); |
|
33 | + } |
|
34 | 34 | |
35 | - protected function _set_menu_map() |
|
36 | - { |
|
37 | - $this->_menu_map = new EE_Admin_Page_Sub_Menu( |
|
38 | - array( |
|
39 | - 'menu_group' => 'extras', |
|
40 | - 'menu_order' => 30, |
|
41 | - 'show_on_menu' => EE_Admin_Page_Menu_Map::BLOG_AND_NETWORK_ADMIN, |
|
42 | - 'parent_slug' => 'espresso_events', |
|
43 | - 'menu_slug' => EE_SUPPORT_PG_SLUG, |
|
44 | - 'menu_label' => __('Help & Support', 'event_espresso'), |
|
45 | - 'capability' => 'ee_read_ee', |
|
46 | - 'maintenance_mode_parent' => 'espresso_maintenance_settings', |
|
47 | - 'admin_init_page' => $this, |
|
48 | - ) |
|
49 | - ); |
|
50 | - } |
|
35 | + protected function _set_menu_map() |
|
36 | + { |
|
37 | + $this->_menu_map = new EE_Admin_Page_Sub_Menu( |
|
38 | + array( |
|
39 | + 'menu_group' => 'extras', |
|
40 | + 'menu_order' => 30, |
|
41 | + 'show_on_menu' => EE_Admin_Page_Menu_Map::BLOG_AND_NETWORK_ADMIN, |
|
42 | + 'parent_slug' => 'espresso_events', |
|
43 | + 'menu_slug' => EE_SUPPORT_PG_SLUG, |
|
44 | + 'menu_label' => __('Help & Support', 'event_espresso'), |
|
45 | + 'capability' => 'ee_read_ee', |
|
46 | + 'maintenance_mode_parent' => 'espresso_maintenance_settings', |
|
47 | + 'admin_init_page' => $this, |
|
48 | + ) |
|
49 | + ); |
|
50 | + } |
|
51 | 51 | } |
@@ -20,10 +20,10 @@ |
||
20 | 20 | { |
21 | 21 | // define some help/support page related constants |
22 | 22 | define('EE_SUPPORT_PG_SLUG', 'espresso_support'); |
23 | - define('EE_SUPPORT_ADMIN_URL', admin_url('admin.php?page=' . EE_SUPPORT_PG_SLUG)); |
|
24 | - define('EE_SUPPORT_ADMIN_TEMPLATE_PATH', EE_ADMIN_PAGES . 'support/templates/'); |
|
25 | - define('EE_SUPPORT_ADMIN', EE_ADMIN_PAGES . 'support/'); |
|
26 | - define('EE_SUPPORT_ASSETS_URL', EE_ADMIN_PAGES_URL . 'support/assets/'); |
|
23 | + define('EE_SUPPORT_ADMIN_URL', admin_url('admin.php?page='.EE_SUPPORT_PG_SLUG)); |
|
24 | + define('EE_SUPPORT_ADMIN_TEMPLATE_PATH', EE_ADMIN_PAGES.'support/templates/'); |
|
25 | + define('EE_SUPPORT_ADMIN', EE_ADMIN_PAGES.'support/'); |
|
26 | + define('EE_SUPPORT_ASSETS_URL', EE_ADMIN_PAGES_URL.'support/assets/'); |
|
27 | 27 | parent::__construct(); |
28 | 28 | } |
29 | 29 |
@@ -13,242 +13,242 @@ |
||
13 | 13 | { |
14 | 14 | |
15 | 15 | |
16 | - protected function _init_page_props() |
|
17 | - { |
|
18 | - $this->page_slug = EE_SUPPORT_PG_SLUG; |
|
19 | - $this->page_label = esc_html__('Help & Support', 'event_espresso'); |
|
20 | - $this->_admin_base_url = EE_SUPPORT_ADMIN_URL; |
|
21 | - $this->_admin_base_path = EE_SUPPORT_ADMIN; |
|
22 | - } |
|
23 | - |
|
24 | - |
|
25 | - protected function _ajax_hooks() |
|
26 | - { |
|
27 | - } |
|
28 | - |
|
29 | - |
|
30 | - protected function _define_page_props() |
|
31 | - { |
|
32 | - $this->_labels = array(); |
|
33 | - $this->_admin_page_title = $this->page_label; |
|
34 | - } |
|
35 | - |
|
36 | - |
|
37 | - protected function _set_page_routes() |
|
38 | - { |
|
39 | - $this->_page_routes = array( |
|
40 | - 'default' => array( |
|
41 | - 'func' => '_contact_support', |
|
42 | - 'capability' => 'ee_read_ee', |
|
43 | - ), |
|
44 | - 'developers' => array( |
|
45 | - 'func' => '_developers', |
|
46 | - 'capability' => 'ee_read_ee', |
|
47 | - ), |
|
48 | - 'shortcodes' => array( |
|
49 | - 'func' => '_shortcodes', |
|
50 | - 'capability' => 'ee_read_ee', |
|
51 | - ), |
|
52 | - ); |
|
53 | - } |
|
54 | - |
|
55 | - |
|
56 | - protected function _set_page_config() |
|
57 | - { |
|
58 | - $this->_page_config = array( |
|
59 | - 'default' => array( |
|
60 | - 'nav' => array( |
|
61 | - 'label' => esc_html__('Support', 'event_espresso'), |
|
62 | - 'order' => 30, |
|
63 | - ), |
|
64 | - 'metaboxes' => array_merge($this->_default_espresso_metaboxes, array('_support_boxes')), |
|
65 | - 'require_nonce' => false, |
|
66 | - ), |
|
67 | - 'developers' => array( |
|
68 | - 'nav' => array( |
|
69 | - 'label' => esc_html__('Developers', 'event_espresso'), |
|
70 | - 'order' => 50, |
|
71 | - ), |
|
72 | - 'metaboxes' => $this->_default_espresso_metaboxes, |
|
73 | - 'require_nonce' => false, |
|
74 | - ), |
|
75 | - 'shortcodes' => array( |
|
76 | - 'nav' => array( |
|
77 | - 'label' => esc_html__('Shortcodes', 'event_espresso'), |
|
78 | - 'order' => 60, |
|
79 | - ), |
|
80 | - 'metaboxes' => array_merge($this->_default_espresso_metaboxes, array('_shortcodes_boxes')), |
|
81 | - 'require_nonce' => false, |
|
82 | - ), |
|
83 | - ); |
|
84 | - } |
|
85 | - |
|
86 | - |
|
87 | - // none of the below group are currently used for Support pages |
|
88 | - protected function _add_screen_options() |
|
89 | - { |
|
90 | - } |
|
91 | - |
|
92 | - |
|
93 | - protected function _add_feature_pointers() |
|
94 | - { |
|
95 | - } |
|
96 | - |
|
97 | - |
|
98 | - public function admin_init() |
|
99 | - { |
|
100 | - } |
|
101 | - |
|
102 | - |
|
103 | - public function admin_notices() |
|
104 | - { |
|
105 | - } |
|
106 | - |
|
107 | - |
|
108 | - public function admin_footer_scripts() |
|
109 | - { |
|
110 | - } |
|
111 | - |
|
112 | - |
|
113 | - public function load_scripts_styles() |
|
114 | - { |
|
115 | - } |
|
116 | - |
|
117 | - |
|
118 | - protected function _installation() |
|
119 | - { |
|
120 | - $template_path = EE_SUPPORT_ADMIN_TEMPLATE_PATH . 'support_admin_details_installation.template.php'; |
|
121 | - $this->_template_args['admin_page_content'] = EEH_Template::display_template( |
|
122 | - $template_path, |
|
123 | - '', |
|
124 | - true |
|
125 | - ); |
|
126 | - $this->display_admin_page_with_sidebar(); |
|
127 | - } |
|
128 | - |
|
129 | - |
|
130 | - protected function _resources() |
|
131 | - { |
|
132 | - $this->display_admin_page_with_sidebar(); |
|
133 | - } |
|
134 | - |
|
135 | - |
|
136 | - protected function _add_settings_metabox($box, $label, array $args) |
|
137 | - { |
|
138 | - add_meta_box( |
|
139 | - "espresso_{$box}_settings", |
|
140 | - $label, |
|
141 | - function ($post, $metabox) { |
|
142 | - echo EEH_Template::display_template( |
|
143 | - $metabox['args']['template_path'], |
|
144 | - $metabox['args']['template_args'], |
|
145 | - true |
|
146 | - ); |
|
147 | - }, |
|
148 | - $this->_current_screen->id, |
|
149 | - 'normal', |
|
150 | - 'high', |
|
151 | - apply_filters( |
|
152 | - "FHEE__Support_Admin_Page___add_settings_metabox__{$box}_args_array", |
|
153 | - $args |
|
154 | - ) |
|
155 | - ); |
|
156 | - } |
|
157 | - |
|
158 | - |
|
159 | - protected function _resources_boxes() |
|
160 | - { |
|
161 | - $boxes = apply_filters( |
|
162 | - 'FHEE__Support_Admin_Page___resources_boxes__boxes_array', |
|
163 | - array( |
|
164 | - 'favorite_theme_developers' => esc_html__('Favorite Theme Developers', 'event_espresso'), |
|
165 | - 'highly_recommended_themes' => esc_html__('Highly Recommended Themes', 'event_espresso'), |
|
166 | - 'hire_developer' => esc_html__('Hire a Developer', 'event_espresso'), |
|
167 | - 'partners' => esc_html__('Partners', 'event_espresso'), |
|
168 | - 'recommended_plugins' => esc_html__('Recommended Plugins', 'event_espresso'), |
|
169 | - 'other_resources' => esc_html__('Other Resources', 'event_espresso'), |
|
170 | - ) |
|
171 | - ); |
|
172 | - foreach ($boxes as $box => $label) { |
|
173 | - $this->_add_settings_metabox( |
|
174 | - $box, |
|
175 | - $label, |
|
176 | - array( |
|
177 | - 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH . "support_admin_details_{$box}.template.php", |
|
178 | - 'template_args' => $this->_template_args, |
|
179 | - ) |
|
180 | - ); |
|
181 | - } |
|
182 | - } |
|
183 | - |
|
184 | - |
|
185 | - protected function _shortcodes() |
|
186 | - { |
|
187 | - $this->display_admin_page_with_sidebar(); |
|
188 | - } |
|
189 | - |
|
190 | - |
|
191 | - protected function _shortcodes_boxes() |
|
192 | - { |
|
193 | - $boxes = apply_filters( |
|
194 | - 'FHEE__Support_Admin_Page___shortcodes_boxes__boxes_array', |
|
195 | - array( |
|
196 | - 'shortcodes_event_listings' => esc_html__('Event Listings', 'event_espresso'), |
|
197 | - 'shortcodes_ticket_selector' => esc_html__('Event Ticket Selector', 'event_espresso'), |
|
198 | - 'shortcodes_category' => esc_html__('Event Categories', 'event_espresso'), |
|
199 | - 'shortcodes_attendee' => esc_html__('Event Attendees', 'event_espresso') |
|
200 | - /*'shortcodes_single_events' => esc_html__('Single Events', 'event_espresso'),*/ |
|
201 | - /*'shortcodes_attendee_listings' => esc_html__('Attendee Listings', 'event_espresso'),*/ |
|
202 | - ) |
|
203 | - ); |
|
204 | - foreach ($boxes as $box => $label) { |
|
205 | - $this->_add_settings_metabox( |
|
206 | - $box, |
|
207 | - $label, |
|
208 | - array( |
|
209 | - 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH . "support_admin_details_{$box}.template.php", |
|
210 | - 'template_args' => $this->_template_args, |
|
211 | - ) |
|
212 | - ); |
|
213 | - } |
|
214 | - } |
|
215 | - |
|
216 | - |
|
217 | - protected function _contact_support() |
|
218 | - { |
|
219 | - $this->display_admin_page_with_sidebar(); |
|
220 | - } |
|
221 | - |
|
222 | - |
|
223 | - protected function _support_boxes() |
|
224 | - { |
|
225 | - $boxes = apply_filters( |
|
226 | - 'FHEE__Support_Admin_Page___support_boxes__boxes_array', |
|
227 | - array( |
|
228 | - 'contact_support' => esc_html__('Contact Support', 'event_espresso'), |
|
229 | - 'important_information' => esc_html__('Important Information', 'event_espresso'), |
|
230 | - ) |
|
231 | - ); |
|
232 | - foreach ($boxes as $box => $label) { |
|
233 | - $this->_add_settings_metabox( |
|
234 | - $box, |
|
235 | - $label, |
|
236 | - array( |
|
237 | - 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH . "support_admin_details_{$box}.template.php", |
|
238 | - 'template_args' => $this->_template_args, |
|
239 | - ) |
|
240 | - ); |
|
241 | - } |
|
242 | - } |
|
243 | - |
|
244 | - |
|
245 | - protected function _developers() |
|
246 | - { |
|
247 | - $this->_template_args['admin_page_content'] = EEH_Template::display_template( |
|
248 | - EE_SUPPORT_ADMIN_TEMPLATE_PATH . 'developers_admin_details.template.php', |
|
249 | - array(), |
|
250 | - true |
|
251 | - ); |
|
252 | - $this->display_admin_page_with_sidebar(); |
|
253 | - } |
|
16 | + protected function _init_page_props() |
|
17 | + { |
|
18 | + $this->page_slug = EE_SUPPORT_PG_SLUG; |
|
19 | + $this->page_label = esc_html__('Help & Support', 'event_espresso'); |
|
20 | + $this->_admin_base_url = EE_SUPPORT_ADMIN_URL; |
|
21 | + $this->_admin_base_path = EE_SUPPORT_ADMIN; |
|
22 | + } |
|
23 | + |
|
24 | + |
|
25 | + protected function _ajax_hooks() |
|
26 | + { |
|
27 | + } |
|
28 | + |
|
29 | + |
|
30 | + protected function _define_page_props() |
|
31 | + { |
|
32 | + $this->_labels = array(); |
|
33 | + $this->_admin_page_title = $this->page_label; |
|
34 | + } |
|
35 | + |
|
36 | + |
|
37 | + protected function _set_page_routes() |
|
38 | + { |
|
39 | + $this->_page_routes = array( |
|
40 | + 'default' => array( |
|
41 | + 'func' => '_contact_support', |
|
42 | + 'capability' => 'ee_read_ee', |
|
43 | + ), |
|
44 | + 'developers' => array( |
|
45 | + 'func' => '_developers', |
|
46 | + 'capability' => 'ee_read_ee', |
|
47 | + ), |
|
48 | + 'shortcodes' => array( |
|
49 | + 'func' => '_shortcodes', |
|
50 | + 'capability' => 'ee_read_ee', |
|
51 | + ), |
|
52 | + ); |
|
53 | + } |
|
54 | + |
|
55 | + |
|
56 | + protected function _set_page_config() |
|
57 | + { |
|
58 | + $this->_page_config = array( |
|
59 | + 'default' => array( |
|
60 | + 'nav' => array( |
|
61 | + 'label' => esc_html__('Support', 'event_espresso'), |
|
62 | + 'order' => 30, |
|
63 | + ), |
|
64 | + 'metaboxes' => array_merge($this->_default_espresso_metaboxes, array('_support_boxes')), |
|
65 | + 'require_nonce' => false, |
|
66 | + ), |
|
67 | + 'developers' => array( |
|
68 | + 'nav' => array( |
|
69 | + 'label' => esc_html__('Developers', 'event_espresso'), |
|
70 | + 'order' => 50, |
|
71 | + ), |
|
72 | + 'metaboxes' => $this->_default_espresso_metaboxes, |
|
73 | + 'require_nonce' => false, |
|
74 | + ), |
|
75 | + 'shortcodes' => array( |
|
76 | + 'nav' => array( |
|
77 | + 'label' => esc_html__('Shortcodes', 'event_espresso'), |
|
78 | + 'order' => 60, |
|
79 | + ), |
|
80 | + 'metaboxes' => array_merge($this->_default_espresso_metaboxes, array('_shortcodes_boxes')), |
|
81 | + 'require_nonce' => false, |
|
82 | + ), |
|
83 | + ); |
|
84 | + } |
|
85 | + |
|
86 | + |
|
87 | + // none of the below group are currently used for Support pages |
|
88 | + protected function _add_screen_options() |
|
89 | + { |
|
90 | + } |
|
91 | + |
|
92 | + |
|
93 | + protected function _add_feature_pointers() |
|
94 | + { |
|
95 | + } |
|
96 | + |
|
97 | + |
|
98 | + public function admin_init() |
|
99 | + { |
|
100 | + } |
|
101 | + |
|
102 | + |
|
103 | + public function admin_notices() |
|
104 | + { |
|
105 | + } |
|
106 | + |
|
107 | + |
|
108 | + public function admin_footer_scripts() |
|
109 | + { |
|
110 | + } |
|
111 | + |
|
112 | + |
|
113 | + public function load_scripts_styles() |
|
114 | + { |
|
115 | + } |
|
116 | + |
|
117 | + |
|
118 | + protected function _installation() |
|
119 | + { |
|
120 | + $template_path = EE_SUPPORT_ADMIN_TEMPLATE_PATH . 'support_admin_details_installation.template.php'; |
|
121 | + $this->_template_args['admin_page_content'] = EEH_Template::display_template( |
|
122 | + $template_path, |
|
123 | + '', |
|
124 | + true |
|
125 | + ); |
|
126 | + $this->display_admin_page_with_sidebar(); |
|
127 | + } |
|
128 | + |
|
129 | + |
|
130 | + protected function _resources() |
|
131 | + { |
|
132 | + $this->display_admin_page_with_sidebar(); |
|
133 | + } |
|
134 | + |
|
135 | + |
|
136 | + protected function _add_settings_metabox($box, $label, array $args) |
|
137 | + { |
|
138 | + add_meta_box( |
|
139 | + "espresso_{$box}_settings", |
|
140 | + $label, |
|
141 | + function ($post, $metabox) { |
|
142 | + echo EEH_Template::display_template( |
|
143 | + $metabox['args']['template_path'], |
|
144 | + $metabox['args']['template_args'], |
|
145 | + true |
|
146 | + ); |
|
147 | + }, |
|
148 | + $this->_current_screen->id, |
|
149 | + 'normal', |
|
150 | + 'high', |
|
151 | + apply_filters( |
|
152 | + "FHEE__Support_Admin_Page___add_settings_metabox__{$box}_args_array", |
|
153 | + $args |
|
154 | + ) |
|
155 | + ); |
|
156 | + } |
|
157 | + |
|
158 | + |
|
159 | + protected function _resources_boxes() |
|
160 | + { |
|
161 | + $boxes = apply_filters( |
|
162 | + 'FHEE__Support_Admin_Page___resources_boxes__boxes_array', |
|
163 | + array( |
|
164 | + 'favorite_theme_developers' => esc_html__('Favorite Theme Developers', 'event_espresso'), |
|
165 | + 'highly_recommended_themes' => esc_html__('Highly Recommended Themes', 'event_espresso'), |
|
166 | + 'hire_developer' => esc_html__('Hire a Developer', 'event_espresso'), |
|
167 | + 'partners' => esc_html__('Partners', 'event_espresso'), |
|
168 | + 'recommended_plugins' => esc_html__('Recommended Plugins', 'event_espresso'), |
|
169 | + 'other_resources' => esc_html__('Other Resources', 'event_espresso'), |
|
170 | + ) |
|
171 | + ); |
|
172 | + foreach ($boxes as $box => $label) { |
|
173 | + $this->_add_settings_metabox( |
|
174 | + $box, |
|
175 | + $label, |
|
176 | + array( |
|
177 | + 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH . "support_admin_details_{$box}.template.php", |
|
178 | + 'template_args' => $this->_template_args, |
|
179 | + ) |
|
180 | + ); |
|
181 | + } |
|
182 | + } |
|
183 | + |
|
184 | + |
|
185 | + protected function _shortcodes() |
|
186 | + { |
|
187 | + $this->display_admin_page_with_sidebar(); |
|
188 | + } |
|
189 | + |
|
190 | + |
|
191 | + protected function _shortcodes_boxes() |
|
192 | + { |
|
193 | + $boxes = apply_filters( |
|
194 | + 'FHEE__Support_Admin_Page___shortcodes_boxes__boxes_array', |
|
195 | + array( |
|
196 | + 'shortcodes_event_listings' => esc_html__('Event Listings', 'event_espresso'), |
|
197 | + 'shortcodes_ticket_selector' => esc_html__('Event Ticket Selector', 'event_espresso'), |
|
198 | + 'shortcodes_category' => esc_html__('Event Categories', 'event_espresso'), |
|
199 | + 'shortcodes_attendee' => esc_html__('Event Attendees', 'event_espresso') |
|
200 | + /*'shortcodes_single_events' => esc_html__('Single Events', 'event_espresso'),*/ |
|
201 | + /*'shortcodes_attendee_listings' => esc_html__('Attendee Listings', 'event_espresso'),*/ |
|
202 | + ) |
|
203 | + ); |
|
204 | + foreach ($boxes as $box => $label) { |
|
205 | + $this->_add_settings_metabox( |
|
206 | + $box, |
|
207 | + $label, |
|
208 | + array( |
|
209 | + 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH . "support_admin_details_{$box}.template.php", |
|
210 | + 'template_args' => $this->_template_args, |
|
211 | + ) |
|
212 | + ); |
|
213 | + } |
|
214 | + } |
|
215 | + |
|
216 | + |
|
217 | + protected function _contact_support() |
|
218 | + { |
|
219 | + $this->display_admin_page_with_sidebar(); |
|
220 | + } |
|
221 | + |
|
222 | + |
|
223 | + protected function _support_boxes() |
|
224 | + { |
|
225 | + $boxes = apply_filters( |
|
226 | + 'FHEE__Support_Admin_Page___support_boxes__boxes_array', |
|
227 | + array( |
|
228 | + 'contact_support' => esc_html__('Contact Support', 'event_espresso'), |
|
229 | + 'important_information' => esc_html__('Important Information', 'event_espresso'), |
|
230 | + ) |
|
231 | + ); |
|
232 | + foreach ($boxes as $box => $label) { |
|
233 | + $this->_add_settings_metabox( |
|
234 | + $box, |
|
235 | + $label, |
|
236 | + array( |
|
237 | + 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH . "support_admin_details_{$box}.template.php", |
|
238 | + 'template_args' => $this->_template_args, |
|
239 | + ) |
|
240 | + ); |
|
241 | + } |
|
242 | + } |
|
243 | + |
|
244 | + |
|
245 | + protected function _developers() |
|
246 | + { |
|
247 | + $this->_template_args['admin_page_content'] = EEH_Template::display_template( |
|
248 | + EE_SUPPORT_ADMIN_TEMPLATE_PATH . 'developers_admin_details.template.php', |
|
249 | + array(), |
|
250 | + true |
|
251 | + ); |
|
252 | + $this->display_admin_page_with_sidebar(); |
|
253 | + } |
|
254 | 254 | } |
@@ -117,7 +117,7 @@ discard block |
||
117 | 117 | |
118 | 118 | protected function _installation() |
119 | 119 | { |
120 | - $template_path = EE_SUPPORT_ADMIN_TEMPLATE_PATH . 'support_admin_details_installation.template.php'; |
|
120 | + $template_path = EE_SUPPORT_ADMIN_TEMPLATE_PATH.'support_admin_details_installation.template.php'; |
|
121 | 121 | $this->_template_args['admin_page_content'] = EEH_Template::display_template( |
122 | 122 | $template_path, |
123 | 123 | '', |
@@ -138,7 +138,7 @@ discard block |
||
138 | 138 | add_meta_box( |
139 | 139 | "espresso_{$box}_settings", |
140 | 140 | $label, |
141 | - function ($post, $metabox) { |
|
141 | + function($post, $metabox) { |
|
142 | 142 | echo EEH_Template::display_template( |
143 | 143 | $metabox['args']['template_path'], |
144 | 144 | $metabox['args']['template_args'], |
@@ -174,7 +174,7 @@ discard block |
||
174 | 174 | $box, |
175 | 175 | $label, |
176 | 176 | array( |
177 | - 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH . "support_admin_details_{$box}.template.php", |
|
177 | + 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH."support_admin_details_{$box}.template.php", |
|
178 | 178 | 'template_args' => $this->_template_args, |
179 | 179 | ) |
180 | 180 | ); |
@@ -206,7 +206,7 @@ discard block |
||
206 | 206 | $box, |
207 | 207 | $label, |
208 | 208 | array( |
209 | - 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH . "support_admin_details_{$box}.template.php", |
|
209 | + 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH."support_admin_details_{$box}.template.php", |
|
210 | 210 | 'template_args' => $this->_template_args, |
211 | 211 | ) |
212 | 212 | ); |
@@ -234,7 +234,7 @@ discard block |
||
234 | 234 | $box, |
235 | 235 | $label, |
236 | 236 | array( |
237 | - 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH . "support_admin_details_{$box}.template.php", |
|
237 | + 'template_path' => EE_SUPPORT_ADMIN_TEMPLATE_PATH."support_admin_details_{$box}.template.php", |
|
238 | 238 | 'template_args' => $this->_template_args, |
239 | 239 | ) |
240 | 240 | ); |
@@ -245,7 +245,7 @@ discard block |
||
245 | 245 | protected function _developers() |
246 | 246 | { |
247 | 247 | $this->_template_args['admin_page_content'] = EEH_Template::display_template( |
248 | - EE_SUPPORT_ADMIN_TEMPLATE_PATH . 'developers_admin_details.template.php', |
|
248 | + EE_SUPPORT_ADMIN_TEMPLATE_PATH.'developers_admin_details.template.php', |
|
249 | 249 | array(), |
250 | 250 | true |
251 | 251 | ); |