Version Description
= * New: GDPR compliance help * New: WD library updated * New: Use theme template for single event CPT * Improved: UX when editing calendar and choosing and adding event to calendar * Fixed: Event order on category/archive page by event date * Fixed: Other minor bugs * Fixed: Password protected events * Changed: Date inputs hidden from event quick edit params * Changed: Other optimizations under the hood
Download this release
Release Info
Developer | webdorado |
Plugin | Event Calendar WD – Responsive Event Calendar plugin |
Version | 1.1.16 |
Comparing to | |
See all releases |
Code changes from version 1.1.15 to 1.1.16
- changelog.txt +452 -0
- css/DataTables-1.10.16/images/sort_asc.png +0 -0
- css/DataTables-1.10.16/images/sort_asc_disabled.png +0 -0
- css/DataTables-1.10.16/images/sort_both.png +0 -0
- css/DataTables-1.10.16/images/sort_desc.png +0 -0
- css/DataTables-1.10.16/images/sort_desc_disabled.png +0 -0
- css/admin/admin.css +3 -0
- css/datatables.min.css +15 -0
- css/magnific-popup.css +351 -0
- css/style.css +21 -0
- ecwd.php +19 -2
- ecwd_admin_class.php +32 -2
- ecwd_class.php +18 -1
- includes/ecwd-cpt-class.php +28 -4
- includes/ecwd-functions.php +4 -10
- includes/ecwd_class-rest-api.php +311 -0
- includes/events/ecwd-events-controller.php +82 -0
- includes/events/ecwd-single-event.php +124 -0
- includes/register-settings.php +7 -0
- js/admin/admin.js +202 -3
- js/datatables.min.js +178 -0
- js/magnific-popup.min.js +4 -0
- readme.txt +332 -269
- views/admin/ecwd-calendar-meta.php +41 -8
- views/admin/ecwd-event-calendars-meta.php +1 -1
- views/ecwd-event-content.php +460 -168
- views/single-event.php +338 -355
- wd/README.md +1 -1
- wd/assets/css/deactivate_popup.css +22 -1
- wd/assets/css/img/close.svg +16 -0
- wd/assets/js/deactivate_popup.js +62 -10
- wd/config.php +5 -1
- wd/includes/deactivate.php +1 -1
- wd/includes/overview.php +3 -0
- wd/templates/display_deactivation_popup.php +3 -2
- wd/templates/display_overview_support.php +18 -2
- wd/templates/display_subscribe.php +4 -1
- wd/wd.php +1 -1
changelog.txt
ADDED
@@ -0,0 +1,452 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
= 1.1.16 ==
|
2 |
+
* New: GDPR compliance help
|
3 |
+
* New: WD library updated
|
4 |
+
* New: Use theme template for single event CPT
|
5 |
+
* Improved: UX when editing calendar and choosing and adding event to calendar
|
6 |
+
* Fixed: Event order on category/archive page by event date
|
7 |
+
* Fixed: Other minor bugs
|
8 |
+
* Fixed: Password protected events
|
9 |
+
* Changed: Date inputs hidden from event quick edit params
|
10 |
+
* Changed: Other optimizations under the hood
|
11 |
+
|
12 |
+
|
13 |
+
= 1.1.15 ==
|
14 |
+
* Improved: Fully translatable calendar plugin and extensions. Suggest your translations here: https://translate.wordpress.org/projects/wp-plugins/event-calendar-wd
|
15 |
+
* Improved: Frontend styles of single event, venue and organizer CPT
|
16 |
+
* Changed: Styles of filters extension (Premium)
|
17 |
+
* Changed: Some metaboxes moved to higher position
|
18 |
+
|
19 |
+
= 1.1.14 ==
|
20 |
+
* Changed: create_function is deprecated in PHP 7.2
|
21 |
+
* Changed: Sort organizers and venues by title not slug in post type archive
|
22 |
+
* Improved: Styles of Gutenberg block popup
|
23 |
+
* Fixed: Styles of free and premium versions synchronized
|
24 |
+
|
25 |
+
= 1.1.13 ==
|
26 |
+
* Added: Gutenberg integration
|
27 |
+
* Fixed: Google maps zoom
|
28 |
+
* Improved: Russian translation
|
29 |
+
|
30 |
+
= 1.1.12 ==
|
31 |
+
* Improved: Change default calendar using calendar list in dashboard
|
32 |
+
* Changed: Calendar add-ons and themes do not have separate menu anymore
|
33 |
+
* Changed: Updates and functionality removed (Premium)
|
34 |
+
|
35 |
+
= 1.1.11 ==
|
36 |
+
Fixed: Bug on PHP 5.3 version
|
37 |
+
|
38 |
+
= 1.1.10 =
|
39 |
+
* Changed: Introducing brand new free plugin: SEO by 10Web
|
40 |
+
|
41 |
+
= 1.1.9 =
|
42 |
+
* Changed: Deactivation popup.
|
43 |
+
* Fixed: Notice in single event page
|
44 |
+
* Fixed: Import/Integration of all day events from gcal
|
45 |
+
|
46 |
+
= 1.1.7 =
|
47 |
+
* New: Option to set zoom level in maps view (Pro)
|
48 |
+
* Fixed: Map displayed without any event for that month (Pro)
|
49 |
+
* Changed: Minor: WD library updated to version 1.0.12
|
50 |
+
|
51 |
+
= 1.1.6 =
|
52 |
+
* Fixed: Conflict with some plugins on calendar frontend
|
53 |
+
|
54 |
+
= 1.1.5 =
|
55 |
+
* Changed: Show notification to install Backup WD plugin only on plugin pages.
|
56 |
+
|
57 |
+
= 1.1.4 =
|
58 |
+
* Changed: Introducing Backup WD plugin
|
59 |
+
|
60 |
+
= 1.1.3 =
|
61 |
+
* Changed: Redirect after activation removed
|
62 |
+
* Changed: WD library updated to version 1.0.11
|
63 |
+
|
64 |
+
= 1.1.2 =
|
65 |
+
* New: Option to show event timezones on frontend
|
66 |
+
|
67 |
+
= 1.1.1 =
|
68 |
+
* Changed: Add "ecwd_hide_old_events"=1 as a custom meta field to calendar in order to hide past events and months
|
69 |
+
* Fixed: PHP notice in events category page when there is no event
|
70 |
+
* Fixed: JS error when trying to save event with no date
|
71 |
+
* Fixed: DB changes on silent activation
|
72 |
+
* Improved: Compatibility of templates for single event and event taxonomy with WooCommerce-compatible themes
|
73 |
+
|
74 |
+
= 1.1.0 =
|
75 |
+
* Changed: Improved UI of venue editor in event page
|
76 |
+
* Fixed: Displayed date and time for one day event
|
77 |
+
* Fixed: Fatal error if PHP Calendar module not loaded
|
78 |
+
* Fixed: Add new venue from event editor page
|
79 |
+
|
80 |
+
= 1.0.97 =
|
81 |
+
* Fixed: Remove duplicated post contents form venues and organizers
|
82 |
+
|
83 |
+
= 1.0.96 =
|
84 |
+
* Fixed: Description on event post
|
85 |
+
|
86 |
+
= 1.0.95 =
|
87 |
+
* Changed: Plugin interface
|
88 |
+
* Fixed: Minor bugs
|
89 |
+
|
90 |
+
= 1.0.94 =
|
91 |
+
* Fixed: Security issue
|
92 |
+
|
93 |
+
= 1.0.93 =
|
94 |
+
* Fixed: Bug on organizer view
|
95 |
+
|
96 |
+
= 1.0.91 =
|
97 |
+
* Added: Visible event count per day
|
98 |
+
* Fixed: Weekly repeating events
|
99 |
+
|
100 |
+
= 1.0.90 =
|
101 |
+
* Fixed: Helper bar
|
102 |
+
* Fixed: events archive page
|
103 |
+
* Fixed: events category archive page
|
104 |
+
|
105 |
+
= 1.0.89 =
|
106 |
+
* Fixed: Theme update issue
|
107 |
+
* Fixed: Notices
|
108 |
+
|
109 |
+
= 1.0.88 =
|
110 |
+
* Added: Helper bar
|
111 |
+
|
112 |
+
= 1.0.87 =
|
113 |
+
* Added: Overview page
|
114 |
+
* Changed: Deactivation
|
115 |
+
|
116 |
+
= 1.0.86 =
|
117 |
+
* Added: "Do not show past events" option
|
118 |
+
|
119 |
+
= 1.0.85 =
|
120 |
+
* Fixed: Minor bug
|
121 |
+
* Fixed: Bug on day view
|
122 |
+
|
123 |
+
= 1.0.84 =
|
124 |
+
* Added: Script keys
|
125 |
+
* Fixed: Bug on widget
|
126 |
+
* Fixed: Styles
|
127 |
+
* Fixed: Back link
|
128 |
+
|
129 |
+
= 1.0.83 =
|
130 |
+
* Fixed: Calendar search
|
131 |
+
|
132 |
+
= 1.0.82 =
|
133 |
+
* Changed: Featured plugins
|
134 |
+
|
135 |
+
= 1.0.81 =
|
136 |
+
* Fixed: Bug on widget list view
|
137 |
+
* Fixed: Styles
|
138 |
+
|
139 |
+
= 1.0.80 =
|
140 |
+
* Fixed: Clear cache option notice
|
141 |
+
* Added: Translations
|
142 |
+
|
143 |
+
= 1.0.79 =
|
144 |
+
* Added: Widget theme
|
145 |
+
|
146 |
+
= 1.0.78 =
|
147 |
+
* Added: Event description max length option
|
148 |
+
|
149 |
+
= 1.0.77 =
|
150 |
+
* Added: Google maps style option
|
151 |
+
* Added: Latitude,Longitude inputs in event-meta,venue-meta pages
|
152 |
+
|
153 |
+
= 1.0.76 =
|
154 |
+
* Fixed: Data structures
|
155 |
+
* Fixed: Bug on Repeating events
|
156 |
+
|
157 |
+
= 1.0.75 =
|
158 |
+
* Changed: Backend menu
|
159 |
+
|
160 |
+
= 1.0.74 =
|
161 |
+
* Changed: Organizers, venues cache
|
162 |
+
* Fixed: Venue edit in event
|
163 |
+
* Fixed: Gmap js issue
|
164 |
+
|
165 |
+
= 1.0.73 =
|
166 |
+
* Changed: Settings structure
|
167 |
+
* Fixed: Minor bug
|
168 |
+
|
169 |
+
= 1.0.72 =
|
170 |
+
* Fixed: Minor bug
|
171 |
+
|
172 |
+
= 1.0.71 =
|
173 |
+
* Added: Enable sidebar in event page option
|
174 |
+
|
175 |
+
= 1.0.70 =
|
176 |
+
* Fixed: Bug on Google Maps
|
177 |
+
|
178 |
+
= 1.0.69 =
|
179 |
+
* Fixed: Bug on Views add-on
|
180 |
+
* Changed: Featured themes, plugins pages
|
181 |
+
|
182 |
+
= 1.0.68 =
|
183 |
+
* Fixed: List view pagination
|
184 |
+
* Fixed: Week view start
|
185 |
+
|
186 |
+
= 1.0.67 =
|
187 |
+
* Added: Calendar start date option
|
188 |
+
|
189 |
+
= 1.0.65 =
|
190 |
+
* Added: Google Maps API Key
|
191 |
+
|
192 |
+
= 1.0.64 =
|
193 |
+
* Fixed: Translations
|
194 |
+
* Changed: Open Google map when Marker is clicked option
|
195 |
+
* Fixed: Mark all days of multi-day event
|
196 |
+
|
197 |
+
= 1.0.63 =
|
198 |
+
* Added: Show events detail on hover option
|
199 |
+
|
200 |
+
= 1.0.62 =
|
201 |
+
* Added: Grab the first post image option
|
202 |
+
|
203 |
+
= 1.0.61 =
|
204 |
+
* Fixed: Conflict with Page Builder by SiteOrigin
|
205 |
+
* Fixed: Bug on trashed events
|
206 |
+
|
207 |
+
= 1.0.60 =
|
208 |
+
* Added: Embed add-on
|
209 |
+
|
210 |
+
= 1.0.59 =
|
211 |
+
* Fixed: Bug on mini calendar
|
212 |
+
* Fixed: Bug on multi-day events
|
213 |
+
* Fixed: Bug on event pop-up
|
214 |
+
* Fixed: Bug on widget
|
215 |
+
|
216 |
+
= 1.0.58 =
|
217 |
+
* Added: Order of events archive page option
|
218 |
+
* Fixed: Minor bug
|
219 |
+
|
220 |
+
= 1.0.57 =
|
221 |
+
* Fixed: Translation
|
222 |
+
|
223 |
+
= 1.0.56 =
|
224 |
+
* Fixed: Minor bug
|
225 |
+
* Changed: Event popup position
|
226 |
+
|
227 |
+
= 1.0.55 =
|
228 |
+
* Fixed: List view events order
|
229 |
+
* Added: Organaizer on single event
|
230 |
+
* Added: Portuguese (Brazil) Translation
|
231 |
+
* Fixed: Description formatting
|
232 |
+
|
233 |
+
= 1.0.54 =
|
234 |
+
* New: Related events count option
|
235 |
+
|
236 |
+
= 1.0.53 =
|
237 |
+
* Added: Export to GCal/ICal add-on
|
238 |
+
|
239 |
+
= 1.0.52 =
|
240 |
+
* Added: Mark all days of multi-day event option
|
241 |
+
|
242 |
+
= 1.0.51 =
|
243 |
+
* Added: Config page
|
244 |
+
* Changed: Spanish Translation
|
245 |
+
* Changed: German Translation
|
246 |
+
* Changed: Featured plugins/themes page
|
247 |
+
* Changed: Event details popup direction for 4th day
|
248 |
+
* Fixed: Scroll issue in mobile
|
249 |
+
|
250 |
+
= 1.0.50 =
|
251 |
+
* Added: Event Subscribe add-on
|
252 |
+
|
253 |
+
= 1.0.49 =
|
254 |
+
* Added: Swedish translation by Marcel Króča and Slovak translation by Magnus Juven
|
255 |
+
* Fixed: Issue with featured image
|
256 |
+
* Fixed: Pointer bug
|
257 |
+
|
258 |
+
= 1.0.48 =
|
259 |
+
* Added: Wizard
|
260 |
+
* Added: Tour
|
261 |
+
* Added: Czech and Danish translation
|
262 |
+
|
263 |
+
= 1.0.47 =
|
264 |
+
* Added: Shortcode support on event description
|
265 |
+
|
266 |
+
= 1.0.46 =
|
267 |
+
* Added: Romanian translation (by Oana Tarce)
|
268 |
+
* Fixed: Bug for php version < 5.3
|
269 |
+
|
270 |
+
= 1.0.45 =
|
271 |
+
* Added: Latvian translation (by Intars G.)
|
272 |
+
* Fixed: Issue with venues dropdown in the back end
|
273 |
+
* Fixed: CSS issue in calendar views section for 'right to left' languages (e.g. arabic)
|
274 |
+
|
275 |
+
= 1.0.44 =
|
276 |
+
* Added: Croatian translation
|
277 |
+
* Added: Sample data
|
278 |
+
|
279 |
+
= 1.0.43 =
|
280 |
+
* Added: Option for no additional details text
|
281 |
+
|
282 |
+
= 1.0.42 =
|
283 |
+
* Fixed: Google structured data errors
|
284 |
+
* Changed: Event hover popup styles
|
285 |
+
|
286 |
+
= 1.0.41 =
|
287 |
+
* Added: New year promo notice
|
288 |
+
|
289 |
+
= 1.0.40 =
|
290 |
+
* Added: New theme
|
291 |
+
|
292 |
+
= 1.0.39 =
|
293 |
+
* Fixed: Date issue for php version < 5.3
|
294 |
+
* Fixed: German translations
|
295 |
+
|
296 |
+
= 1.0.38 =
|
297 |
+
* Added: Custom css option
|
298 |
+
|
299 |
+
= 1.0.37 =
|
300 |
+
* Added: Catalan language support(by Vicenc Huguet)
|
301 |
+
* Fixed: Views slider js issue
|
302 |
+
|
303 |
+
= 1.0.36 =
|
304 |
+
* Changed: Responsive pop-up styles
|
305 |
+
* Changed: Featured plugins
|
306 |
+
|
307 |
+
= 1.0.35 =
|
308 |
+
* Changed: Category page
|
309 |
+
* Added: Polish translation
|
310 |
+
|
311 |
+
= 1.0.34 =
|
312 |
+
* Fixed: Show events issue in list view
|
313 |
+
* Increased: Date range of events in venue and organizer pages
|
314 |
+
* Added: Event Tickets add-on
|
315 |
+
|
316 |
+
= 1.0.33 =
|
317 |
+
* Added: Date format option for list, week and day views
|
318 |
+
* Fixed: "Back" link in single event page
|
319 |
+
* Fixed: Shortcode default view issue
|
320 |
+
* Fixed: Norwegian language files
|
321 |
+
|
322 |
+
= 1.0.32 =
|
323 |
+
* Fixed: Dates translation issue in posterboard view
|
324 |
+
* Fixed: Venues show map issue for ajaxed themes
|
325 |
+
* Fixed: Views slider js issue
|
326 |
+
|
327 |
+
= 1.0.31 =
|
328 |
+
* Added: Day view option as default to widget
|
329 |
+
* Added: Close popup by escape
|
330 |
+
* Added: Finnish translation (by Håkan Mitts)
|
331 |
+
|
332 |
+
= 1.0.30 =
|
333 |
+
* Added: Mini calendar view for page
|
334 |
+
|
335 |
+
= 1.0.29 =
|
336 |
+
* Fixed: Norwegian language files name
|
337 |
+
|
338 |
+
= 1.0.28 =
|
339 |
+
* Added: ECWD Views add-on
|
340 |
+
* Added: Norwegian (Bokmål) and Norwegian (Nynorsk) languages support(by Vegard Innerdal)
|
341 |
+
|
342 |
+
= 1.0.27 =
|
343 |
+
* Changed: Added padding to event details for screens < 768
|
344 |
+
* Changed: Hide next/prev month names for screen < 768
|
345 |
+
* Fixed: More events popup bug
|
346 |
+
|
347 |
+
= 1.0.26 =
|
348 |
+
* New: Display Events in popup option
|
349 |
+
|
350 |
+
= 1.0.25 =
|
351 |
+
* Fixed: Sidebar css in event page for twentyfourteen theme
|
352 |
+
* Fixed: Calendar widget center css
|
353 |
+
* Changed: Notices show order
|
354 |
+
|
355 |
+
= 1.0.24 =
|
356 |
+
* Fixed: Events monthly repeat rate issue
|
357 |
+
* Added: Week view option to widget
|
358 |
+
* Added: Custom Fields add-on
|
359 |
+
|
360 |
+
= 1.0.23 =
|
361 |
+
* Added: Frontend events management add-on
|
362 |
+
* Fixed: Rewrite rules for custom permalinks structure
|
363 |
+
* Fixed: JS error in related events slider
|
364 |
+
* Added: Hungarian language support
|
365 |
+
* Added: Serbian language support
|
366 |
+
* Fixed: Translations for Dutch
|
367 |
+
|
368 |
+
= 1.0.22 =
|
369 |
+
* Added: Ajaxed themes support
|
370 |
+
* Fixed: Next month link issue
|
371 |
+
* Changed: More events dialog
|
372 |
+
* Added: Support/rate us messages
|
373 |
+
|
374 |
+
= 1.0.21 =
|
375 |
+
* Fixed: JS error in widgets page
|
376 |
+
|
377 |
+
= 1.0.20 =
|
378 |
+
* Fixed: Show event url issue
|
379 |
+
* Added: "noindex, nofollow" to calendar links
|
380 |
+
* Added: Open pop in new tab option
|
381 |
+
* Added: Japanese support
|
382 |
+
|
383 |
+
= 1.0.19 =
|
384 |
+
* Minor bug fixed
|
385 |
+
|
386 |
+
= 1.0.18 =
|
387 |
+
* Added: Themes folder
|
388 |
+
* Changed: Related events title style
|
389 |
+
* Added: Apply category color to event title in event page option
|
390 |
+
|
391 |
+
= 1.0.17 =
|
392 |
+
* Fixed: Time format issue
|
393 |
+
|
394 |
+
= 1.0.16 =
|
395 |
+
* Added: Show the repeat rate in event page option
|
396 |
+
|
397 |
+
= 1.0.15 =
|
398 |
+
* Added: Show AM/PM option
|
399 |
+
|
400 |
+
= 1.0.14 =
|
401 |
+
* Fixed: Conflict with Avada theme
|
402 |
+
* Added: Date to events link
|
403 |
+
|
404 |
+
= 1.0.13 =
|
405 |
+
* Changed: Calendar Add-ons page
|
406 |
+
|
407 |
+
= 1.0.11 =
|
408 |
+
* Changed: Calendar Add-ons page
|
409 |
+
|
410 |
+
= 1.0.10 =
|
411 |
+
* Added: Organizers and venues archive page order option
|
412 |
+
* Added: Show categories and tags in event page option
|
413 |
+
* Fixed: Featured image sizes in widget
|
414 |
+
|
415 |
+
= 1.0.9 =
|
416 |
+
* Fixed: Show google maps conflict with other plugins
|
417 |
+
* Fixed: Geolocation bug
|
418 |
+
* Fixed: Save organizer featured image issue
|
419 |
+
|
420 |
+
= 1.0.8 =
|
421 |
+
* Changed: Event page
|
422 |
+
* Added: Portuguese language
|
423 |
+
|
424 |
+
= 1.0.7 =
|
425 |
+
* New: Related events slider
|
426 |
+
* New: Enable/disable rewrite rule option
|
427 |
+
|
428 |
+
= 1.0.6 =
|
429 |
+
* Changed: Removed Add Venue link
|
430 |
+
* Fixed: Delete event from calendar page issue
|
431 |
+
|
432 |
+
= 1.0.5 =
|
433 |
+
* New: Events Filters in backend
|
434 |
+
* Fixed: Bug in shortcode
|
435 |
+
|
436 |
+
= 1.0.4 =
|
437 |
+
* Fixed: Bug in add/edit calendar
|
438 |
+
|
439 |
+
= 1.0.3 =
|
440 |
+
* New: Event template
|
441 |
+
* New: "Show map in event page" option
|
442 |
+
* Changed: "Repeat until" field is required
|
443 |
+
|
444 |
+
= 1.0.2 =
|
445 |
+
* Fixed: Minor bugs
|
446 |
+
|
447 |
+
= 1.0.1 =
|
448 |
+
* Fixed: Bug in Week view
|
449 |
+
* Fixed: Permalink bug
|
450 |
+
|
451 |
+
= 1.0.0 =
|
452 |
+
* Initial version
|
css/DataTables-1.10.16/images/sort_asc.png
ADDED
Binary file
|
css/DataTables-1.10.16/images/sort_asc_disabled.png
ADDED
Binary file
|
css/DataTables-1.10.16/images/sort_both.png
ADDED
Binary file
|
css/DataTables-1.10.16/images/sort_desc.png
ADDED
Binary file
|
css/DataTables-1.10.16/images/sort_desc_disabled.png
ADDED
Binary file
|
css/admin/admin.css
CHANGED
@@ -1019,4 +1019,7 @@ body.wp-admin.post-type-ecwd_event #posts-filter .alignleft.actions a.button {
|
|
1019 |
font-weight: bold;
|
1020 |
padding: 0 18px 0 18px;
|
1021 |
vertical-align: middle;
|
|
|
|
|
|
|
1022 |
}
|
1019 |
font-weight: bold;
|
1020 |
padding: 0 18px 0 18px;
|
1021 |
vertical-align: middle;
|
1022 |
+
}
|
1023 |
+
.post-type-ecwd_event fieldset.inline-edit-date {
|
1024 |
+
display: none;
|
1025 |
}
|
css/datatables.min.css
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* This combined file was created by the DataTables downloader builder:
|
3 |
+
* https://datatables.net/download
|
4 |
+
*
|
5 |
+
* To rebuild or modify this file with the latest versions of the included
|
6 |
+
* software please visit:
|
7 |
+
* https://datatables.net/download/#dt/dt-1.10.16
|
8 |
+
*
|
9 |
+
* Included libraries:
|
10 |
+
* DataTables 1.10.16
|
11 |
+
*/
|
12 |
+
|
13 |
+
table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;*cursor:hand;background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("DataTables-1.10.16/images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("DataTables-1.10.16/images/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("DataTables-1.10.16/images/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("DataTables-1.10.16/images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("DataTables-1.10.16/images/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#ffffff}table.dataTable tbody tr.selected{background-color:#B0BED9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody>table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}}
|
14 |
+
|
15 |
+
|
css/magnific-popup.css
ADDED
@@ -0,0 +1,351 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Magnific Popup CSS */
|
2 |
+
.mfp-bg {
|
3 |
+
top: 0;
|
4 |
+
left: 0;
|
5 |
+
width: 100%;
|
6 |
+
height: 100%;
|
7 |
+
z-index: 1042;
|
8 |
+
overflow: hidden;
|
9 |
+
position: fixed;
|
10 |
+
background: #0b0b0b;
|
11 |
+
opacity: 0.8; }
|
12 |
+
|
13 |
+
.mfp-wrap {
|
14 |
+
top: 0;
|
15 |
+
left: 0;
|
16 |
+
width: 100%;
|
17 |
+
height: 100%;
|
18 |
+
z-index: 1043;
|
19 |
+
position: fixed;
|
20 |
+
outline: none !important;
|
21 |
+
-webkit-backface-visibility: hidden; }
|
22 |
+
|
23 |
+
.mfp-container {
|
24 |
+
text-align: center;
|
25 |
+
position: absolute;
|
26 |
+
width: 100%;
|
27 |
+
height: 100%;
|
28 |
+
left: 0;
|
29 |
+
top: 0;
|
30 |
+
padding: 0 8px;
|
31 |
+
box-sizing: border-box; }
|
32 |
+
|
33 |
+
.mfp-container:before {
|
34 |
+
content: '';
|
35 |
+
display: inline-block;
|
36 |
+
height: 100%;
|
37 |
+
vertical-align: middle; }
|
38 |
+
|
39 |
+
.mfp-align-top .mfp-container:before {
|
40 |
+
display: none; }
|
41 |
+
|
42 |
+
.mfp-content {
|
43 |
+
position: relative;
|
44 |
+
display: inline-block;
|
45 |
+
vertical-align: middle;
|
46 |
+
margin: 0 auto;
|
47 |
+
text-align: left;
|
48 |
+
z-index: 1045; }
|
49 |
+
|
50 |
+
.mfp-inline-holder .mfp-content,
|
51 |
+
.mfp-ajax-holder .mfp-content {
|
52 |
+
width: 100%;
|
53 |
+
cursor: auto; }
|
54 |
+
|
55 |
+
.mfp-ajax-cur {
|
56 |
+
cursor: progress; }
|
57 |
+
|
58 |
+
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
|
59 |
+
cursor: -moz-zoom-out;
|
60 |
+
cursor: -webkit-zoom-out;
|
61 |
+
cursor: zoom-out; }
|
62 |
+
|
63 |
+
.mfp-zoom {
|
64 |
+
cursor: pointer;
|
65 |
+
cursor: -webkit-zoom-in;
|
66 |
+
cursor: -moz-zoom-in;
|
67 |
+
cursor: zoom-in; }
|
68 |
+
|
69 |
+
.mfp-auto-cursor .mfp-content {
|
70 |
+
cursor: auto; }
|
71 |
+
|
72 |
+
.mfp-close,
|
73 |
+
.mfp-arrow,
|
74 |
+
.mfp-preloader,
|
75 |
+
.mfp-counter {
|
76 |
+
-webkit-user-select: none;
|
77 |
+
-moz-user-select: none;
|
78 |
+
user-select: none; }
|
79 |
+
|
80 |
+
.mfp-loading.mfp-figure {
|
81 |
+
display: none; }
|
82 |
+
|
83 |
+
.mfp-hide {
|
84 |
+
display: none !important; }
|
85 |
+
|
86 |
+
.mfp-preloader {
|
87 |
+
color: #CCC;
|
88 |
+
position: absolute;
|
89 |
+
top: 50%;
|
90 |
+
width: auto;
|
91 |
+
text-align: center;
|
92 |
+
margin-top: -0.8em;
|
93 |
+
left: 8px;
|
94 |
+
right: 8px;
|
95 |
+
z-index: 1044; }
|
96 |
+
.mfp-preloader a {
|
97 |
+
color: #CCC; }
|
98 |
+
.mfp-preloader a:hover {
|
99 |
+
color: #FFF; }
|
100 |
+
|
101 |
+
.mfp-s-ready .mfp-preloader {
|
102 |
+
display: none; }
|
103 |
+
|
104 |
+
.mfp-s-error .mfp-content {
|
105 |
+
display: none; }
|
106 |
+
|
107 |
+
button.mfp-close,
|
108 |
+
button.mfp-arrow {
|
109 |
+
overflow: visible;
|
110 |
+
cursor: pointer;
|
111 |
+
background: transparent;
|
112 |
+
border: 0;
|
113 |
+
-webkit-appearance: none;
|
114 |
+
display: block;
|
115 |
+
outline: none;
|
116 |
+
padding: 0;
|
117 |
+
z-index: 1046;
|
118 |
+
box-shadow: none;
|
119 |
+
touch-action: manipulation; }
|
120 |
+
|
121 |
+
button::-moz-focus-inner {
|
122 |
+
padding: 0;
|
123 |
+
border: 0; }
|
124 |
+
|
125 |
+
.mfp-close {
|
126 |
+
width: 44px;
|
127 |
+
height: 44px;
|
128 |
+
line-height: 44px;
|
129 |
+
position: absolute;
|
130 |
+
right: 0;
|
131 |
+
top: 0;
|
132 |
+
text-decoration: none;
|
133 |
+
text-align: center;
|
134 |
+
opacity: 0.65;
|
135 |
+
padding: 0 0 18px 10px;
|
136 |
+
color: #FFF;
|
137 |
+
font-style: normal;
|
138 |
+
font-size: 28px;
|
139 |
+
font-family: Arial, Baskerville, monospace; }
|
140 |
+
.mfp-close:hover,
|
141 |
+
.mfp-close:focus {
|
142 |
+
opacity: 1; }
|
143 |
+
.mfp-close:active {
|
144 |
+
top: 1px; }
|
145 |
+
|
146 |
+
.mfp-close-btn-in .mfp-close {
|
147 |
+
color: #333; }
|
148 |
+
|
149 |
+
.mfp-image-holder .mfp-close,
|
150 |
+
.mfp-iframe-holder .mfp-close {
|
151 |
+
color: #FFF;
|
152 |
+
right: -6px;
|
153 |
+
text-align: right;
|
154 |
+
padding-right: 6px;
|
155 |
+
width: 100%; }
|
156 |
+
|
157 |
+
.mfp-counter {
|
158 |
+
position: absolute;
|
159 |
+
top: 0;
|
160 |
+
right: 0;
|
161 |
+
color: #CCC;
|
162 |
+
font-size: 12px;
|
163 |
+
line-height: 18px;
|
164 |
+
white-space: nowrap; }
|
165 |
+
|
166 |
+
.mfp-arrow {
|
167 |
+
position: absolute;
|
168 |
+
opacity: 0.65;
|
169 |
+
margin: 0;
|
170 |
+
top: 50%;
|
171 |
+
margin-top: -55px;
|
172 |
+
padding: 0;
|
173 |
+
width: 90px;
|
174 |
+
height: 110px;
|
175 |
+
-webkit-tap-highlight-color: transparent; }
|
176 |
+
.mfp-arrow:active {
|
177 |
+
margin-top: -54px; }
|
178 |
+
.mfp-arrow:hover,
|
179 |
+
.mfp-arrow:focus {
|
180 |
+
opacity: 1; }
|
181 |
+
.mfp-arrow:before,
|
182 |
+
.mfp-arrow:after {
|
183 |
+
content: '';
|
184 |
+
display: block;
|
185 |
+
width: 0;
|
186 |
+
height: 0;
|
187 |
+
position: absolute;
|
188 |
+
left: 0;
|
189 |
+
top: 0;
|
190 |
+
margin-top: 35px;
|
191 |
+
margin-left: 35px;
|
192 |
+
border: medium inset transparent; }
|
193 |
+
.mfp-arrow:after {
|
194 |
+
border-top-width: 13px;
|
195 |
+
border-bottom-width: 13px;
|
196 |
+
top: 8px; }
|
197 |
+
.mfp-arrow:before {
|
198 |
+
border-top-width: 21px;
|
199 |
+
border-bottom-width: 21px;
|
200 |
+
opacity: 0.7; }
|
201 |
+
|
202 |
+
.mfp-arrow-left {
|
203 |
+
left: 0; }
|
204 |
+
.mfp-arrow-left:after {
|
205 |
+
border-right: 17px solid #FFF;
|
206 |
+
margin-left: 31px; }
|
207 |
+
.mfp-arrow-left:before {
|
208 |
+
margin-left: 25px;
|
209 |
+
border-right: 27px solid #3F3F3F; }
|
210 |
+
|
211 |
+
.mfp-arrow-right {
|
212 |
+
right: 0; }
|
213 |
+
.mfp-arrow-right:after {
|
214 |
+
border-left: 17px solid #FFF;
|
215 |
+
margin-left: 39px; }
|
216 |
+
.mfp-arrow-right:before {
|
217 |
+
border-left: 27px solid #3F3F3F; }
|
218 |
+
|
219 |
+
.mfp-iframe-holder {
|
220 |
+
padding-top: 40px;
|
221 |
+
padding-bottom: 40px; }
|
222 |
+
.mfp-iframe-holder .mfp-content {
|
223 |
+
line-height: 0;
|
224 |
+
width: 100%;
|
225 |
+
max-width: 900px; }
|
226 |
+
.mfp-iframe-holder .mfp-close {
|
227 |
+
top: -40px; }
|
228 |
+
|
229 |
+
.mfp-iframe-scaler {
|
230 |
+
width: 100%;
|
231 |
+
height: 0;
|
232 |
+
overflow: hidden;
|
233 |
+
padding-top: 56.25%; }
|
234 |
+
.mfp-iframe-scaler iframe {
|
235 |
+
position: absolute;
|
236 |
+
display: block;
|
237 |
+
top: 0;
|
238 |
+
left: 0;
|
239 |
+
width: 100%;
|
240 |
+
height: 100%;
|
241 |
+
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
242 |
+
background: #000; }
|
243 |
+
|
244 |
+
/* Main image in popup */
|
245 |
+
img.mfp-img {
|
246 |
+
width: auto;
|
247 |
+
max-width: 100%;
|
248 |
+
height: auto;
|
249 |
+
display: block;
|
250 |
+
line-height: 0;
|
251 |
+
box-sizing: border-box;
|
252 |
+
padding: 40px 0 40px;
|
253 |
+
margin: 0 auto; }
|
254 |
+
|
255 |
+
/* The shadow behind the image */
|
256 |
+
.mfp-figure {
|
257 |
+
line-height: 0; }
|
258 |
+
.mfp-figure:after {
|
259 |
+
content: '';
|
260 |
+
position: absolute;
|
261 |
+
left: 0;
|
262 |
+
top: 40px;
|
263 |
+
bottom: 40px;
|
264 |
+
display: block;
|
265 |
+
right: 0;
|
266 |
+
width: auto;
|
267 |
+
height: auto;
|
268 |
+
z-index: -1;
|
269 |
+
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
270 |
+
background: #444; }
|
271 |
+
.mfp-figure small {
|
272 |
+
color: #BDBDBD;
|
273 |
+
display: block;
|
274 |
+
font-size: 12px;
|
275 |
+
line-height: 14px; }
|
276 |
+
.mfp-figure figure {
|
277 |
+
margin: 0; }
|
278 |
+
|
279 |
+
.mfp-bottom-bar {
|
280 |
+
margin-top: -36px;
|
281 |
+
position: absolute;
|
282 |
+
top: 100%;
|
283 |
+
left: 0;
|
284 |
+
width: 100%;
|
285 |
+
cursor: auto; }
|
286 |
+
|
287 |
+
.mfp-title {
|
288 |
+
text-align: left;
|
289 |
+
line-height: 18px;
|
290 |
+
color: #F3F3F3;
|
291 |
+
word-wrap: break-word;
|
292 |
+
padding-right: 36px; }
|
293 |
+
|
294 |
+
.mfp-image-holder .mfp-content {
|
295 |
+
max-width: 100%; }
|
296 |
+
|
297 |
+
.mfp-gallery .mfp-image-holder .mfp-figure {
|
298 |
+
cursor: pointer; }
|
299 |
+
|
300 |
+
@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
|
301 |
+
/**
|
302 |
+
* Remove all paddings around the image on small screen
|
303 |
+
*/
|
304 |
+
.mfp-img-mobile .mfp-image-holder {
|
305 |
+
padding-left: 0;
|
306 |
+
padding-right: 0; }
|
307 |
+
.mfp-img-mobile img.mfp-img {
|
308 |
+
padding: 0; }
|
309 |
+
.mfp-img-mobile .mfp-figure:after {
|
310 |
+
top: 0;
|
311 |
+
bottom: 0; }
|
312 |
+
.mfp-img-mobile .mfp-figure small {
|
313 |
+
display: inline;
|
314 |
+
margin-left: 5px; }
|
315 |
+
.mfp-img-mobile .mfp-bottom-bar {
|
316 |
+
background: rgba(0, 0, 0, 0.6);
|
317 |
+
bottom: 0;
|
318 |
+
margin: 0;
|
319 |
+
top: auto;
|
320 |
+
padding: 3px 5px;
|
321 |
+
position: fixed;
|
322 |
+
box-sizing: border-box; }
|
323 |
+
.mfp-img-mobile .mfp-bottom-bar:empty {
|
324 |
+
padding: 0; }
|
325 |
+
.mfp-img-mobile .mfp-counter {
|
326 |
+
right: 5px;
|
327 |
+
top: 3px; }
|
328 |
+
.mfp-img-mobile .mfp-close {
|
329 |
+
top: 0;
|
330 |
+
right: 0;
|
331 |
+
width: 35px;
|
332 |
+
height: 35px;
|
333 |
+
line-height: 35px;
|
334 |
+
background: rgba(0, 0, 0, 0.6);
|
335 |
+
position: fixed;
|
336 |
+
text-align: center;
|
337 |
+
padding: 0; } }
|
338 |
+
|
339 |
+
@media all and (max-width: 900px) {
|
340 |
+
.mfp-arrow {
|
341 |
+
-webkit-transform: scale(0.75);
|
342 |
+
transform: scale(0.75); }
|
343 |
+
.mfp-arrow-left {
|
344 |
+
-webkit-transform-origin: 0;
|
345 |
+
transform-origin: 0; }
|
346 |
+
.mfp-arrow-right {
|
347 |
+
-webkit-transform-origin: 100%;
|
348 |
+
transform-origin: 100%; }
|
349 |
+
.mfp-container {
|
350 |
+
padding-left: 6px;
|
351 |
+
padding-right: 6px; } }
|
css/style.css
CHANGED
@@ -2728,6 +2728,8 @@ table.ecwd_calendar_container > tbody > tr >td{
|
|
2728 |
|
2729 |
#ecwd-events-content .event-venue > div,
|
2730 |
#ecwd-events-content .event-detalis-org > div,
|
|
|
|
|
2731 |
.entry-content .ecwd-venue > div,
|
2732 |
.entry-content .ecwd-organizer .ecwd_organizer_phone,
|
2733 |
.entry-content .ecwd-organizer .ecwd_organizer_website{
|
@@ -2740,6 +2742,8 @@ table.ecwd_calendar_container > tbody > tr >td{
|
|
2740 |
|
2741 |
#ecwd-events-content .event-venue > div span:first-child,
|
2742 |
#ecwd-events-content .event-detalis-org > div span:first-child,
|
|
|
|
|
2743 |
.entry-content .ecwd-venue > div span:first-child,
|
2744 |
.entry-content .ecwd-organizer .ecwd_organizer_phone span:first-child,
|
2745 |
.entry-content .ecwd-organizer .ecwd_organizer_website span:first-child{
|
@@ -2761,3 +2765,20 @@ table.ecwd_calendar_container > tbody > tr >td{
|
|
2761 |
.ecwd_calendar td .day-number{
|
2762 |
padding: 2px 0 4px 2px;
|
2763 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2728 |
|
2729 |
#ecwd-events-content .event-venue > div,
|
2730 |
#ecwd-events-content .event-detalis-org > div,
|
2731 |
+
.ecwd-single-event .event-venue > div,
|
2732 |
+
.ecwd-single-event .event-detalis-org > div,
|
2733 |
.entry-content .ecwd-venue > div,
|
2734 |
.entry-content .ecwd-organizer .ecwd_organizer_phone,
|
2735 |
.entry-content .ecwd-organizer .ecwd_organizer_website{
|
2742 |
|
2743 |
#ecwd-events-content .event-venue > div span:first-child,
|
2744 |
#ecwd-events-content .event-detalis-org > div span:first-child,
|
2745 |
+
.ecwd-single-event .event-venue > div span:first-child,
|
2746 |
+
.ecwd-single-event .event-detalis-org > div span:first-child,
|
2747 |
.entry-content .ecwd-venue > div span:first-child,
|
2748 |
.entry-content .ecwd-organizer .ecwd_organizer_phone span:first-child,
|
2749 |
.entry-content .ecwd-organizer .ecwd_organizer_website span:first-child{
|
2765 |
.ecwd_calendar td .day-number{
|
2766 |
padding: 2px 0 4px 2px;
|
2767 |
}
|
2768 |
+
.ecwd-single-event a:not(.export_link):focus, .ecwd-single-event a:not(.export_link):hover, .ecwd-single-event a:not(.export_link){
|
2769 |
+
box-shadow:none !important;
|
2770 |
+
border-bottom:0 !important;
|
2771 |
+
}
|
2772 |
+
.ecwd-single-event .entry-content-event{
|
2773 |
+
margin:20px 0;
|
2774 |
+
}
|
2775 |
+
.ecwd-single-event.ecwd-event {
|
2776 |
+
padding: 10px 0;
|
2777 |
+
}
|
2778 |
+
.ecwd-single-event .event_cageory_and_tags ul {
|
2779 |
+
list-style:none;
|
2780 |
+
}
|
2781 |
+
.ecwd-single-event .event_cageory_and_tags ul li{
|
2782 |
+
display:inline-block;
|
2783 |
+
margin: 5px;
|
2784 |
+
}
|
ecwd.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Event Calendar WD
|
4 |
* Plugin URI: https://web-dorado.com/products/wordpress-event-calendar-wd.html
|
5 |
* Description: Event Calendar WD is an easy event management and planning tool with advanced features.
|
6 |
-
* Version: 1.1.
|
7 |
* Author: WebDorado
|
8 |
* Author URI: https://web-dorado.com/wordpress-plugins-bundle.html
|
9 |
* Text Domain: event-calendar-wd
|
@@ -25,7 +25,7 @@ if (!defined('ECWD_URL')) {
|
|
25 |
}
|
26 |
|
27 |
if (!defined('ECWD_VERSION')) {
|
28 |
-
define('ECWD_VERSION', "1.1.
|
29 |
}
|
30 |
|
31 |
if (!defined('ECWD_PLUGIN_MAIN_FILE')) {
|
@@ -35,6 +35,9 @@ if (!defined('ECWD_PLUGIN_MAIN_FILE')) {
|
|
35 |
if (!defined('ECWD_MENU_SLUG')) {
|
36 |
define('ECWD_MENU_SLUG', "edit.php?post_type=ecwd_event");
|
37 |
}
|
|
|
|
|
|
|
38 |
|
39 |
add_action('plugins_loaded', array('ECWD', 'get_instance'));
|
40 |
|
@@ -49,4 +52,18 @@ if (is_admin()) {
|
|
49 |
add_action('init', array('ECWD_Admin', 'ecwd_freemius'), 9);
|
50 |
}
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
|
3 |
* Plugin Name: Event Calendar WD
|
4 |
* Plugin URI: https://web-dorado.com/products/wordpress-event-calendar-wd.html
|
5 |
* Description: Event Calendar WD is an easy event management and planning tool with advanced features.
|
6 |
+
* Version: 1.1.16
|
7 |
* Author: WebDorado
|
8 |
* Author URI: https://web-dorado.com/wordpress-plugins-bundle.html
|
9 |
* Text Domain: event-calendar-wd
|
25 |
}
|
26 |
|
27 |
if (!defined('ECWD_VERSION')) {
|
28 |
+
define('ECWD_VERSION', "1.1.16");
|
29 |
}
|
30 |
|
31 |
if (!defined('ECWD_PLUGIN_MAIN_FILE')) {
|
35 |
if (!defined('ECWD_MENU_SLUG')) {
|
36 |
define('ECWD_MENU_SLUG', "edit.php?post_type=ecwd_event");
|
37 |
}
|
38 |
+
if (!defined('ECWD_REST_NAMESPACE')) {
|
39 |
+
define('ECWD_REST_NAMESPACE', 'ecwd/v1');
|
40 |
+
}
|
41 |
|
42 |
add_action('plugins_loaded', array('ECWD', 'get_instance'));
|
43 |
|
52 |
add_action('init', array('ECWD_Admin', 'ecwd_freemius'), 9);
|
53 |
}
|
54 |
|
55 |
+
add_filter('wp_get_default_privacy_policy_content', 'ecwd_privacy_policy');
|
56 |
+
function ecwd_privacy_policy($content){
|
57 |
+
$title = __('Event Calendar WD', "event-calendar-wd");
|
58 |
+
|
59 |
+
$pp_link = '<a target="_blank" href="https://policies.google.com/privacy">' . __('Privacy Policy', "event-calendar-wd") . '</a>';
|
60 |
+
$text = sprintf(__('Event Calendar WD plugin optionally embeds Google Maps on front end to display events on the map. Embedded Google Maps behave in the exact same way as if you has visited Google Maps site. Google may collect data about visitors, use cookies and tracking, included your logged-in experience interaction with Google platform. Google Maps are regulated under terms of Google %s.', "event-calendar-wd"), $pp_link);
|
61 |
+
$text .= "<br/>";
|
62 |
+
$text .= __('Web-Dorado Disclaimer: The above text is for informational purposes only and is not a legal advice. You must not rely on it as an alternative to legal advice. You should contact your legal counsel to obtain advice with respect to your particular case.', "event-calendar-wd");
|
63 |
+
$pp_text = '<h3>' . $title . '</h3>' . '<p class="wp-policy-help">' . $text . '</p>';
|
64 |
+
|
65 |
+
$content .= $pp_text;
|
66 |
+
return $content;
|
67 |
+
}
|
68 |
+
|
69 |
|
ecwd_admin_class.php
CHANGED
@@ -244,7 +244,13 @@ class ECWD_Admin {
|
|
244 |
self::update_to_95($calendars);
|
245 |
}
|
246 |
|
247 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
|
249 |
|
250 |
update_option('ecwd_version',ECWD_VERSION);
|
@@ -645,6 +651,8 @@ class ECWD_Admin {
|
|
645 |
//wp_enqueue_style($this->prefix . '-main', plugins_url('css/calendar.css', __FILE__), '', $styles_key);
|
646 |
wp_enqueue_style('ecwd-admin-css', plugins_url('css/admin/admin.css', __FILE__), array(), $styles_key, 'all');
|
647 |
wp_enqueue_style('ecwd-admin-datetimepicker-css', plugins_url('css/admin/jquery.datetimepicker.css', __FILE__), array(), $styles_key, 'all');
|
|
|
|
|
648 |
wp_enqueue_style('ecwd-admin-colorpicker-css', plugins_url('css/admin/evol.colorpicker.css', __FILE__), array(), $styles_key, 'all');
|
649 |
wp_enqueue_style($this->prefix . '-calendar-style', plugins_url('css/style.css', __FILE__), '', $styles_key, 'all');
|
650 |
wp_enqueue_style($this->prefix . '_font-awesome', plugins_url('/css/font-awesome/font-awesome.css', __FILE__), '', $styles_key, 'all');
|
@@ -678,10 +686,30 @@ class ECWD_Admin {
|
|
678 |
'jquery-ui-datepicker',
|
679 |
'jquery-ui-tabs',
|
680 |
'jquery-ui-selectable',
|
|
|
|
|
681 |
$this->prefix . '-public',
|
682 |
$this->prefix . '-admin-ecwd-popup'
|
683 |
), $scripts_key, true);
|
684 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
685 |
|
686 |
$params['ajaxurl'] = admin_url('admin-ajax.php');
|
687 |
$params['version'] = get_bloginfo('version');
|
@@ -712,6 +740,8 @@ class ECWD_Admin {
|
|
712 |
));
|
713 |
|
714 |
wp_enqueue_script($this->prefix . '-admin-scripts');
|
|
|
|
|
715 |
}
|
716 |
$screen = get_current_screen();
|
717 |
if (!$this->ecwd_page() || $screen->post_type == "ecwd_calendar") {
|
244 |
self::update_to_95($calendars);
|
245 |
}
|
246 |
|
247 |
+
if ($version_option == false || version_compare(substr($version_option, 2), '1.16', '<')) {
|
248 |
+
$events_opt = get_option('ecwd_settings_events');
|
249 |
+
if(!isset($events_opt["use_custom_template"])){
|
250 |
+
$events_opt["use_custom_template"] = ($version_option === false) ? "0" : "1";
|
251 |
+
update_option('ecwd_settings_events', $events_opt);
|
252 |
+
}
|
253 |
+
}
|
254 |
|
255 |
|
256 |
update_option('ecwd_version',ECWD_VERSION);
|
651 |
//wp_enqueue_style($this->prefix . '-main', plugins_url('css/calendar.css', __FILE__), '', $styles_key);
|
652 |
wp_enqueue_style('ecwd-admin-css', plugins_url('css/admin/admin.css', __FILE__), array(), $styles_key, 'all');
|
653 |
wp_enqueue_style('ecwd-admin-datetimepicker-css', plugins_url('css/admin/jquery.datetimepicker.css', __FILE__), array(), $styles_key, 'all');
|
654 |
+
wp_enqueue_style($this->prefix . '-magnific-popup_css', plugins_url('css/magnific-popup.css', __FILE__), array(), $styles_key, 'all');
|
655 |
+
wp_enqueue_style($this->prefix . '-datatables_css', plugins_url('css/datatables.min.css', __FILE__), array(), $styles_key, 'all');
|
656 |
wp_enqueue_style('ecwd-admin-colorpicker-css', plugins_url('css/admin/evol.colorpicker.css', __FILE__), array(), $styles_key, 'all');
|
657 |
wp_enqueue_style($this->prefix . '-calendar-style', plugins_url('css/style.css', __FILE__), '', $styles_key, 'all');
|
658 |
wp_enqueue_style($this->prefix . '_font-awesome', plugins_url('/css/font-awesome/font-awesome.css', __FILE__), '', $styles_key, 'all');
|
686 |
'jquery-ui-datepicker',
|
687 |
'jquery-ui-tabs',
|
688 |
'jquery-ui-selectable',
|
689 |
+
$this->prefix . '-magnific_popup_js',
|
690 |
+
$this->prefix . '-datatables_js',
|
691 |
$this->prefix . '-public',
|
692 |
$this->prefix . '-admin-ecwd-popup'
|
693 |
), $scripts_key, true);
|
694 |
+
$rest_route = add_query_arg(array(
|
695 |
+
'rest_route' => '/'.ECWD_REST_NAMESPACE . '/'
|
696 |
+
), get_home_url()."/");
|
697 |
+
wp_localize_script($this->prefix . '-admin-scripts', $this->prefix .'ServerVars', array(
|
698 |
+
'root' => esc_url_raw(rest_url()),
|
699 |
+
'pluginRestPath' => 'ecwd/v1/',
|
700 |
+
'rest_route' => $rest_route,
|
701 |
+
'includesUrl' => includes_url(),
|
702 |
+
'wpRestNonce' => wp_create_nonce('wp_rest'),
|
703 |
+
'ecwdRestNonce' => wp_create_nonce('ecwd_rest_nonce'),
|
704 |
+
'version' => ECWD_VERSION,
|
705 |
+
));
|
706 |
+
wp_register_script($this->prefix . '-magnific_popup_js', plugins_url('js/magnific-popup.min.js', __FILE__), array(
|
707 |
+
'jquery',
|
708 |
+
), $scripts_key, true);
|
709 |
+
wp_register_script($this->prefix . '-datatables_js', plugins_url('js/datatables.min.js', __FILE__), array(
|
710 |
+
'jquery',
|
711 |
+
), $scripts_key, true);
|
712 |
+
wp_enqueue_script($this->prefix . '-admin-datetimepicker-scripts', plugins_url('js/admin/datepicker.js', __FILE__), array('jquery'), $scripts_key, true);
|
713 |
|
714 |
$params['ajaxurl'] = admin_url('admin-ajax.php');
|
715 |
$params['version'] = get_bloginfo('version');
|
740 |
));
|
741 |
|
742 |
wp_enqueue_script($this->prefix . '-admin-scripts');
|
743 |
+
wp_enqueue_script($this->prefix . '-magnific_popup_js');
|
744 |
+
wp_enqueue_script($this->prefix . '-datatables_js');
|
745 |
}
|
746 |
$screen = get_current_screen();
|
747 |
if (!$this->ecwd_page() || $screen->post_type == "ecwd_calendar") {
|
ecwd_class.php
CHANGED
@@ -23,10 +23,20 @@ class ECWD {
|
|
23 |
add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 5);
|
24 |
add_action('wp_enqueue_scripts', array($this, 'enqueue_styles'));
|
25 |
add_action('ecwd_show_related_events', array($this, 'show_related_events'), 10, 2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
}
|
27 |
-
|
28 |
public function show_related_events($events, $upcoming_events = false) {
|
29 |
global $ecwd_options;
|
|
|
|
|
|
|
30 |
$today = date('Y-m-d');
|
31 |
$date_format = 'Y-m-d';
|
32 |
$time_format = 'H:i';
|
@@ -52,6 +62,13 @@ class ECWD {
|
|
52 |
include_once 'views/related_events.php';
|
53 |
}
|
54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
/**
|
56 |
* Setup constants
|
57 |
*/
|
23 |
add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 5);
|
24 |
add_action('wp_enqueue_scripts', array($this, 'enqueue_styles'));
|
25 |
add_action('ecwd_show_related_events', array($this, 'show_related_events'), 10, 2);
|
26 |
+
add_action('init', array($this, 'register_hooks'));
|
27 |
+
}
|
28 |
+
public function register_hooks(){
|
29 |
+
add_action('rest_api_init', array($this, 'init_rest_api'));
|
30 |
+
}
|
31 |
+
public function init_rest_api(){
|
32 |
+
require_once ECWD_DIR . '/includes/ecwd_class-rest-api.php';
|
33 |
+
EcwdRestApi::get_instance();
|
34 |
}
|
|
|
35 |
public function show_related_events($events, $upcoming_events = false) {
|
36 |
global $ecwd_options;
|
37 |
+
if(!empty($events)) {
|
38 |
+
usort($events, array($this, 'order_events'));
|
39 |
+
}
|
40 |
$today = date('Y-m-d');
|
41 |
$date_format = 'Y-m-d';
|
42 |
$time_format = 'H:i';
|
62 |
include_once 'views/related_events.php';
|
63 |
}
|
64 |
|
65 |
+
public function order_events($event1, $event2){
|
66 |
+
$sec_1 = strtotime($event1['from']);
|
67 |
+
$sec_2 = strtotime($event2['from']);
|
68 |
+
|
69 |
+
return strcmp($sec_1, $sec_2);
|
70 |
+
}
|
71 |
+
|
72 |
/**
|
73 |
* Setup constants
|
74 |
*/
|
includes/ecwd-cpt-class.php
CHANGED
@@ -964,7 +964,8 @@ class ECWD_Cpt {
|
|
964 |
$calendar_id = esc_attr($_POST[ECWD_PLUGIN_PREFIX . '_calendar_id']);
|
965 |
$new_event = array(
|
966 |
'post_type' => ECWD_PLUGIN_PREFIX . '_event',
|
967 |
-
'post_title' => esc_attr($_POST[ECWD_PLUGIN_PREFIX . '_event_name'])
|
|
|
968 |
);
|
969 |
$new_event_id = wp_insert_post($new_event);
|
970 |
if ($new_event_id) {
|
@@ -1171,7 +1172,9 @@ class ECWD_Cpt {
|
|
1171 |
$values = array();
|
1172 |
$data = json_encode($values);
|
1173 |
update_post_meta($post_id, $post_type . '_params', $data);
|
1174 |
-
}
|
|
|
|
|
1175 |
foreach ($ecwd_post_meta_fields[$post_type] as $pmf) {
|
1176 |
if (isset($_POST[$pmf]) && !empty($_POST[$pmf])) {
|
1177 |
if ($post_type == ECWD_PLUGIN_PREFIX . '_calendar') {
|
@@ -1205,6 +1208,26 @@ class ECWD_Cpt {
|
|
1205 |
return $post_id;
|
1206 |
}
|
1207 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1208 |
public function error_messages($m) {
|
1209 |
global $post;
|
1210 |
|
@@ -1436,8 +1459,9 @@ class ECWD_Cpt {
|
|
1436 |
}
|
1437 |
|
1438 |
public function ecwd_templates($template) {
|
|
|
1439 |
$post_types = array(self::EVENT_POST_TYPE);
|
1440 |
-
if (is_singular($post_types) && !file_exists(get_stylesheet_directory() . '/single-event.php')) {
|
1441 |
$template = ECWD_DIR . '/views/single-event.php';
|
1442 |
} elseif (is_tax('ecwd_event_category')) {
|
1443 |
global $ecwd_options;
|
@@ -1516,7 +1540,7 @@ class ECWD_Cpt {
|
|
1516 |
|
1517 |
public function events_archive_page_query($query) {
|
1518 |
if (is_archive() && !is_admin()) {
|
1519 |
-
|
1520 |
global $ecwd_options;
|
1521 |
$query->set('meta_key', 'ecwd_event_date_from');
|
1522 |
$query->set('orderby', 'meta_value');
|
964 |
$calendar_id = esc_attr($_POST[ECWD_PLUGIN_PREFIX . '_calendar_id']);
|
965 |
$new_event = array(
|
966 |
'post_type' => ECWD_PLUGIN_PREFIX . '_event',
|
967 |
+
'post_title' => esc_attr($_POST[ECWD_PLUGIN_PREFIX . '_event_name']),
|
968 |
+
'post_status' => 'publish'
|
969 |
);
|
970 |
$new_event_id = wp_insert_post($new_event);
|
971 |
if ($new_event_id) {
|
1172 |
$values = array();
|
1173 |
$data = json_encode($values);
|
1174 |
update_post_meta($post_id, $post_type . '_params', $data);
|
1175 |
+
} if ($post_type == ECWD_PLUGIN_PREFIX . '_event') {
|
1176 |
+
$this->save_event_metas($post_id);
|
1177 |
+
}else {
|
1178 |
foreach ($ecwd_post_meta_fields[$post_type] as $pmf) {
|
1179 |
if (isset($_POST[$pmf]) && !empty($_POST[$pmf])) {
|
1180 |
if ($post_type == ECWD_PLUGIN_PREFIX . '_calendar') {
|
1208 |
return $post_id;
|
1209 |
}
|
1210 |
|
1211 |
+
private function save_event_metas($post_id){
|
1212 |
+
include_once 'events/ecwd-single-event.php';
|
1213 |
+
include_once 'events/ecwd-events-controller.php';
|
1214 |
+
|
1215 |
+
$event = new ecwd_single_event($post_id);
|
1216 |
+
$event->start_date = $_POST['ecwd_event_date_from'];
|
1217 |
+
$event->end_date = $_POST['ecwd_event_date_to'];
|
1218 |
+
$event->all_day = ((isset($_POST['ecwd_all_day_event'])) && $_POST['ecwd_all_day_event'] === '1');
|
1219 |
+
$event->calendars = !empty($_POST['ecwd_event_calendars']) ? $_POST['ecwd_event_calendars'] : array();
|
1220 |
+
$event->set_venue($_POST['ecwd_event_venue']);
|
1221 |
+
$event->organizers = !empty($_POST['ecwd_event_organizers']) ? $_POST['ecwd_event_organizers'] : array();
|
1222 |
+
$event->event_url = $_POST['ecwd_event_url'];
|
1223 |
+
$event->video_url = $_POST['ecwd_event_video'];
|
1224 |
+
$event->set_repeat();
|
1225 |
+
|
1226 |
+
$event_controller = new ecwd_events_controller();
|
1227 |
+
$event_controller->update_meta_values($event);
|
1228 |
+
|
1229 |
+
}
|
1230 |
+
|
1231 |
public function error_messages($m) {
|
1232 |
global $post;
|
1233 |
|
1459 |
}
|
1460 |
|
1461 |
public function ecwd_templates($template) {
|
1462 |
+
global $ecwd_options;
|
1463 |
$post_types = array(self::EVENT_POST_TYPE);
|
1464 |
+
if (is_singular($post_types) && !file_exists(get_stylesheet_directory() . '/single-event.php') && (isset($ecwd_options['use_custom_template']) && $ecwd_options['use_custom_template'] == '1')) {
|
1465 |
$template = ECWD_DIR . '/views/single-event.php';
|
1466 |
} elseif (is_tax('ecwd_event_category')) {
|
1467 |
global $ecwd_options;
|
1540 |
|
1541 |
public function events_archive_page_query($query) {
|
1542 |
if (is_archive() && !is_admin()) {
|
1543 |
+
if ((isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == 'ecwd_event') || is_tax('ecwd_event_category') || is_tax('ecwd_event_tag')) {
|
1544 |
global $ecwd_options;
|
1545 |
$query->set('meta_key', 'ecwd_event_date_from');
|
1546 |
$query->set('orderby', 'meta_value');
|
includes/ecwd-functions.php
CHANGED
@@ -304,6 +304,10 @@ function ecwd_event_content($content) {
|
|
304 |
ob_start();
|
305 |
include(ECWD_DIR . '/views/ecwd-venue-content.php');
|
306 |
$content = ob_get_clean();
|
|
|
|
|
|
|
|
|
307 |
}
|
308 |
}
|
309 |
|
@@ -333,16 +337,6 @@ function getAndReplaceFirstImage($content) {
|
|
333 |
|
334 |
add_filter('the_content', ECWD_PLUGIN_PREFIX . '_event_content');
|
335 |
|
336 |
-
//add_filter('template_include', ECWD_PLUGIN_PREFIX . '_set_template');
|
337 |
-
|
338 |
-
function ecwd_set_template($template) {
|
339 |
-
if (is_singular(ECWD_PLUGIN_PREFIX . '_event') && ECWD_DIR . '/views/ecwd-event-content.php' != $template) {
|
340 |
-
$template = ECWD_DIR . '/views/ecwd-event-content.php';
|
341 |
-
}
|
342 |
-
|
343 |
-
return $template;
|
344 |
-
}
|
345 |
-
|
346 |
function ecwd_event_post($post) {
|
347 |
global $ecwd_options;
|
348 |
if (is_single() && isset($post->comment_status) && $post->post_type == ECWD_PLUGIN_PREFIX . '_event') {
|
304 |
ob_start();
|
305 |
include(ECWD_DIR . '/views/ecwd-venue-content.php');
|
306 |
$content = ob_get_clean();
|
307 |
+
} elseif ($post->post_type == ECWD_PLUGIN_PREFIX . '_event' && isset($ecwd_options['use_custom_template']) && $ecwd_options['use_custom_template'] == '0' && !isset($_GET['iframe'])) {
|
308 |
+
ob_start();
|
309 |
+
include(ECWD_DIR . '/views/ecwd-event-content.php');
|
310 |
+
$content = ob_get_clean();
|
311 |
}
|
312 |
}
|
313 |
|
337 |
|
338 |
add_filter('the_content', ECWD_PLUGIN_PREFIX . '_event_content');
|
339 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
function ecwd_event_post($post) {
|
341 |
global $ecwd_options;
|
342 |
if (is_single() && isset($post->comment_status) && $post->post_type == ECWD_PLUGIN_PREFIX . '_event') {
|
includes/ecwd_class-rest-api.php
ADDED
@@ -0,0 +1,311 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Created by PhpStorm.
|
4 |
+
* User: mher
|
5 |
+
* Date: 9/13/17
|
6 |
+
* Time: 4:33 PM
|
7 |
+
*/
|
8 |
+
|
9 |
+
class EcwdRestApi
|
10 |
+
{
|
11 |
+
|
12 |
+
private static $instance = null;
|
13 |
+
|
14 |
+
private $namespace = ECWD_REST_NAMESPACE;
|
15 |
+
|
16 |
+
private $bases = array(
|
17 |
+
'events' => array('/events', true, false, false),//get,post,delete
|
18 |
+
'add_event' => array('/add_event', false, true, false),//get,post,delete
|
19 |
+
);
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Register the routes for the objects of the controller.
|
23 |
+
*/
|
24 |
+
public function register_routes()
|
25 |
+
{
|
26 |
+
foreach ($this->bases as $key => $route_config) {
|
27 |
+
$endpoint = $this->get_endpoint($key);
|
28 |
+
|
29 |
+
// readable
|
30 |
+
if ($route_config[1]) {
|
31 |
+
|
32 |
+
register_rest_route($this->namespace, $endpoint,
|
33 |
+
array(
|
34 |
+
'methods' => \WP_REST_Server::READABLE,
|
35 |
+
'callback' => array($this, 'get_item'),
|
36 |
+
'permission_callback' => array($this, 'get_items_permissions_check'),
|
37 |
+
'args' => array(),
|
38 |
+
)
|
39 |
+
);
|
40 |
+
|
41 |
+
}
|
42 |
+
|
43 |
+
// writable
|
44 |
+
if ($route_config[2]) {
|
45 |
+
|
46 |
+
register_rest_route($this->namespace, $endpoint,
|
47 |
+
array(
|
48 |
+
'methods' => \WP_REST_Server::CREATABLE,
|
49 |
+
'callback' => array($this, 'update_item'),
|
50 |
+
'permission_callback' => array($this, 'create_item_permissions_check'),
|
51 |
+
'args' => array(),
|
52 |
+
)
|
53 |
+
);
|
54 |
+
|
55 |
+
}
|
56 |
+
|
57 |
+
// deletable
|
58 |
+
if ($route_config[3]) {
|
59 |
+
|
60 |
+
register_rest_route($this->namespace, $endpoint,
|
61 |
+
array(
|
62 |
+
'methods' => \WP_REST_Server::DELETABLE,
|
63 |
+
'callback' => array($this, 'delete_item'),
|
64 |
+
'permission_callback' => array($this, 'delete_item_permissions_check'),
|
65 |
+
'args' => array(),
|
66 |
+
)
|
67 |
+
);
|
68 |
+
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* get endpoint route by its key(string identificator )
|
76 |
+
*
|
77 |
+
*/
|
78 |
+
private function get_endpoint($key)
|
79 |
+
{
|
80 |
+
if (array_key_exists($key, $this->bases)) {
|
81 |
+
return $this->bases[$key][0];
|
82 |
+
}
|
83 |
+
return false;
|
84 |
+
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* get endpoint key by its route
|
89 |
+
*
|
90 |
+
*/
|
91 |
+
private function parse_endpoint($route)
|
92 |
+
{
|
93 |
+
$route_url = substr($route, 6);
|
94 |
+
|
95 |
+
foreach ($this->bases as $key => $value) {
|
96 |
+
$route_regex = '/' . substr($value[0], 1) . '/';
|
97 |
+
|
98 |
+
if (preg_match($route_regex, substr($route_url, 1))) {
|
99 |
+
return $key;
|
100 |
+
}
|
101 |
+
}
|
102 |
+
|
103 |
+
return null;
|
104 |
+
|
105 |
+
}
|
106 |
+
/**
|
107 |
+
* Get a collection of items
|
108 |
+
*
|
109 |
+
* @param \WP_REST_Request $request Full data about the request.
|
110 |
+
* @return \WP_Error|\WP_REST_Response
|
111 |
+
*/
|
112 |
+
public function get_item($request)
|
113 |
+
{
|
114 |
+
$parameters = self::wp_unslash_conditional($request->get_query_params());
|
115 |
+
if(wp_verify_nonce($parameters["nonce"] , 'ecwd_rest_nonce')){
|
116 |
+
$route = $request->get_route();
|
117 |
+
$endpoint = $this->parse_endpoint($route);
|
118 |
+
switch ($endpoint) {
|
119 |
+
case 'events':
|
120 |
+
$status = 200;
|
121 |
+
$data_for_response = array(
|
122 |
+
"code" => "ok",
|
123 |
+
"data" => self::all_events()
|
124 |
+
);
|
125 |
+
return new \WP_REST_Response($data_for_response, $status);
|
126 |
+
break;
|
127 |
+
}
|
128 |
+
}
|
129 |
+
}
|
130 |
+
|
131 |
+
public function update_item($request) {
|
132 |
+
$parameters = self::wp_unslash_conditional($request->get_body_params());
|
133 |
+
if(wp_verify_nonce($parameters["nonce"] , 'ecwd_rest_nonce')) {
|
134 |
+
$route = $request->get_route();
|
135 |
+
$endpoint = $this->parse_endpoint($route);
|
136 |
+
switch ($endpoint) {
|
137 |
+
case 'add_event':
|
138 |
+
$status = 200;
|
139 |
+
$data_for_response = array(
|
140 |
+
"success" => self::add_events($parameters)
|
141 |
+
);
|
142 |
+
|
143 |
+
return new \WP_REST_Response($data_for_response, $status);
|
144 |
+
break;
|
145 |
+
}
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
+
private static function all_events(){
|
150 |
+
$args = array(
|
151 |
+
'numberposts' => - 1,
|
152 |
+
'post_type' => 'ecwd_event',
|
153 |
+
);
|
154 |
+
$events = get_posts($args);
|
155 |
+
self::add_private_posts($events,$args);
|
156 |
+
|
157 |
+
foreach ($events as $key=>$val){
|
158 |
+
$ecwd_event_date_from = get_post_meta($val->ID, 'ecwd_event_date_from',true);
|
159 |
+
$ecwd_event_date_to = get_post_meta($val->ID, 'ecwd_event_date_to',true);
|
160 |
+
$events[$key]->ecwd_event_date_from = $ecwd_event_date_from;
|
161 |
+
$events[$key]->ecwd_event_date_to = $ecwd_event_date_to;
|
162 |
+
}
|
163 |
+
return $events;
|
164 |
+
}
|
165 |
+
private static function add_private_posts(&$posts, $args){
|
166 |
+
if(!current_user_can('read_private_posts')) {
|
167 |
+
return;
|
168 |
+
}
|
169 |
+
|
170 |
+
$args['post_status'] = 'private';
|
171 |
+
$private_posts = get_posts($args);
|
172 |
+
if(!empty($private_posts)) {
|
173 |
+
foreach($private_posts as $private_post) {
|
174 |
+
$posts[] = $private_post;
|
175 |
+
}
|
176 |
+
}
|
177 |
+
|
178 |
+
}
|
179 |
+
private static function add_events($parameters){
|
180 |
+
$status = false;
|
181 |
+
if (isset($parameters["ecwd_data"])) {
|
182 |
+
$ecwd_events_list = $parameters["ecwd_data"];
|
183 |
+
foreach ($ecwd_events_list as $val){
|
184 |
+
if(isset($val['event_id']) && isset($val['calendar_id'])){
|
185 |
+
$event_id = esc_attr($val['event_id']);
|
186 |
+
$calendar_id = esc_attr($val['calendar_id']);
|
187 |
+
$event_calendars = get_post_meta($event_id, ECWD_PLUGIN_PREFIX . '_event_calendars', true);
|
188 |
+
if (!$event_calendars) {
|
189 |
+
$event_calendars = array();
|
190 |
+
}
|
191 |
+
|
192 |
+
if (is_array($event_calendars) && !in_array($calendar_id, $event_calendars)) {
|
193 |
+
$event_calendars[] = $calendar_id;
|
194 |
+
$status = true;
|
195 |
+
}
|
196 |
+
update_post_meta($event_id, ECWD_PLUGIN_PREFIX . '_event_calendars', $event_calendars);
|
197 |
+
}
|
198 |
+
}
|
199 |
+
|
200 |
+
|
201 |
+
}
|
202 |
+
return $status;
|
203 |
+
}
|
204 |
+
|
205 |
+
/**
|
206 |
+
* Check if a given request has access to get items
|
207 |
+
*
|
208 |
+
* @param WP_REST_Request $request Full data about the request.
|
209 |
+
* @return WP_Error|bool
|
210 |
+
*/
|
211 |
+
public function get_items_permissions_check($request)
|
212 |
+
{
|
213 |
+
//return true; <--use to make readable by all
|
214 |
+
return true; //current_user_can( 'edit_something' );
|
215 |
+
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
* Check if a given request has access to get a specific item
|
219 |
+
*
|
220 |
+
* @param WP_REST_Request $request Full data about the request.
|
221 |
+
* @return WP_Error|bool
|
222 |
+
*/
|
223 |
+
public function get_item_permissions_check($request)
|
224 |
+
{
|
225 |
+
return $this->get_items_permissions_check($request);
|
226 |
+
}
|
227 |
+
|
228 |
+
/**
|
229 |
+
* Check if a given request has access to create items
|
230 |
+
*
|
231 |
+
* @param WP_REST_Request $request Full data about the request.
|
232 |
+
* @return WP_Error|bool
|
233 |
+
*/
|
234 |
+
public function create_item_permissions_check($request)
|
235 |
+
{
|
236 |
+
return true; //current_user_can( 'edit_something' );
|
237 |
+
}
|
238 |
+
|
239 |
+
/**
|
240 |
+
* Check if a given request has access to update a specific item
|
241 |
+
*
|
242 |
+
* @param WP_REST_Request $request Full data about the request.
|
243 |
+
* @return WP_Error|bool
|
244 |
+
*/
|
245 |
+
public function update_item_permissions_check($request)
|
246 |
+
{
|
247 |
+
return $this->create_item_permissions_check($request);
|
248 |
+
}
|
249 |
+
|
250 |
+
/**
|
251 |
+
* Check if a given request has access to delete a specific item
|
252 |
+
*
|
253 |
+
* @param WP_REST_Request $request Full data about the request.
|
254 |
+
* @return WP_Error|bool
|
255 |
+
*/
|
256 |
+
public function delete_item_permissions_check($request)
|
257 |
+
{
|
258 |
+
return true;
|
259 |
+
}
|
260 |
+
|
261 |
+
/**
|
262 |
+
* Prepare the item for create or update operation
|
263 |
+
*
|
264 |
+
* @param WP_REST_Request $request Request object
|
265 |
+
* @return WP_Error|object $prepared_item
|
266 |
+
*/
|
267 |
+
protected function prepare_item_for_database($request)
|
268 |
+
{
|
269 |
+
return array();
|
270 |
+
}
|
271 |
+
|
272 |
+
/**
|
273 |
+
* Prepare the item for the REST response
|
274 |
+
*
|
275 |
+
* @param mixed $item WordPress representation of the item.
|
276 |
+
* @param WP_REST_Request $request Request object.
|
277 |
+
* @return mixed
|
278 |
+
*/
|
279 |
+
public function prepare_item_for_response($item, $request)
|
280 |
+
{
|
281 |
+
return array();
|
282 |
+
}
|
283 |
+
|
284 |
+
|
285 |
+
|
286 |
+
/*
|
287 |
+
* wp 4.4 adds slashes, removes them
|
288 |
+
*
|
289 |
+
* https://core.trac.wordpress.org/ticket/36419
|
290 |
+
**/
|
291 |
+
private static function wp_unslash_conditional($data)
|
292 |
+
{
|
293 |
+
|
294 |
+
global $wp_version;
|
295 |
+
if ($wp_version < 4.5) {
|
296 |
+
$data = wp_unslash($data);
|
297 |
+
}
|
298 |
+
|
299 |
+
return $data;
|
300 |
+
}
|
301 |
+
|
302 |
+
public static function get_instance()
|
303 |
+
{
|
304 |
+
if (null == self::$instance) {
|
305 |
+
self::$instance = new self;
|
306 |
+
self::$instance->register_routes();
|
307 |
+
}
|
308 |
+
return self::$instance;
|
309 |
+
}
|
310 |
+
|
311 |
+
}
|
includes/events/ecwd-events-controller.php
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Created by PhpStorm.
|
4 |
+
* User: mher
|
5 |
+
* Date: 5/14/18
|
6 |
+
* Time: 4:26 PM
|
7 |
+
*/
|
8 |
+
|
9 |
+
class ecwd_events_controller {
|
10 |
+
|
11 |
+
|
12 |
+
public function create_event(){
|
13 |
+
//insert post
|
14 |
+
}
|
15 |
+
|
16 |
+
public function update_post(){
|
17 |
+
//title, contet, etc
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @param $ev ecwd_single_event
|
22 |
+
* */
|
23 |
+
public function update_meta_values($ev){
|
24 |
+
|
25 |
+
update_post_meta($ev->id, 'ecwd_event_date_from', $this->sanitize_text($ev->start_date));
|
26 |
+
update_post_meta($ev->id, 'ecwd_event_date_to', $this->sanitize_text($ev->end_date));
|
27 |
+
if($ev->all_day === true) {
|
28 |
+
update_post_meta($ev->id, 'ecwd_all_day_event', '1');
|
29 |
+
} else {
|
30 |
+
delete_post_meta($ev->id, 'ecwd_all_day_event');
|
31 |
+
}
|
32 |
+
update_post_meta($ev->id, 'ecwd_event_calendars', $this->sanitize_text($ev->calendars));
|
33 |
+
//venue and venue data
|
34 |
+
$location_info = $ev->get_location_info();
|
35 |
+
if($location_info['complete_data'] === false) {
|
36 |
+
|
37 |
+
delete_post_meta($ev->id, 'ecwd_event_venue');
|
38 |
+
delete_post_meta($ev->id, 'ecwd_event_location');
|
39 |
+
delete_post_meta($ev->id, 'ecwd_lat_long');
|
40 |
+
delete_post_meta($ev->id, 'ecwd_event_show_map');
|
41 |
+
delete_post_meta($ev->id, 'ecwd_map_zoom');
|
42 |
+
|
43 |
+
} else {
|
44 |
+
|
45 |
+
update_post_meta($ev->id, 'ecwd_event_venue', $this->sanitize_text($ev->venue['post']->ID));
|
46 |
+
update_post_meta($ev->id, 'ecwd_event_location', $this->sanitize_text($location_info['location']));
|
47 |
+
update_post_meta($ev->id, 'ecwd_lat_long', $this->sanitize_text($location_info['lat_long']));
|
48 |
+
update_post_meta($ev->id, 'ecwd_event_show_map', $this->sanitize_text($location_info['show_map']));
|
49 |
+
update_post_meta($ev->id, 'ecwd_map_zoom', $this->sanitize_text($location_info['zoom']));
|
50 |
+
|
51 |
+
}
|
52 |
+
|
53 |
+
update_post_meta($ev->id, 'ecwd_event_organizers', $this->sanitize_text($ev->organizers));
|
54 |
+
update_post_meta($ev->id, 'ecwd_event_url', $this->sanitize_text($ev->event_url));
|
55 |
+
update_post_meta($ev->id, 'ecwd_event_video', $this->sanitize_text($ev->video_url));
|
56 |
+
|
57 |
+
foreach($ev->repeat as $meta_key => $value) {
|
58 |
+
|
59 |
+
if($value !== null) {
|
60 |
+
update_post_meta($ev->id, $meta_key, $this->sanitize_text($value));
|
61 |
+
} else {
|
62 |
+
delete_post_meta($ev->id, $meta_key);
|
63 |
+
}
|
64 |
+
|
65 |
+
}
|
66 |
+
|
67 |
+
}
|
68 |
+
|
69 |
+
public function sanitize_text($str){
|
70 |
+
if(!is_array($str)) {
|
71 |
+
return sanitize_text_field($str);
|
72 |
+
} else {
|
73 |
+
foreach($str as $key => $value) {
|
74 |
+
$str[$key] = $this->sanitize_text($value);
|
75 |
+
}
|
76 |
+
return $str;
|
77 |
+
}
|
78 |
+
|
79 |
+
}
|
80 |
+
|
81 |
+
|
82 |
+
}
|
includes/events/ecwd-single-event.php
ADDED
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Created by PhpStorm.
|
4 |
+
* User: mher
|
5 |
+
* Date: 5/14/18
|
6 |
+
* Time: 3:55 PM
|
7 |
+
*/
|
8 |
+
|
9 |
+
class ecwd_single_event {
|
10 |
+
|
11 |
+
public $id;// null|int
|
12 |
+
public $title;
|
13 |
+
public $content;
|
14 |
+
public $featured_image_id;
|
15 |
+
public $featured_image_url;
|
16 |
+
public $permalink;
|
17 |
+
public $start_date;
|
18 |
+
public $end_date;
|
19 |
+
public $all_day;//boolean
|
20 |
+
public $calendars = array();//array calendar ids
|
21 |
+
public $organizers = array();//array organizers list (id, title, description, metas)
|
22 |
+
public $venue = null;//null|array('post'=> WP_Post, 'metas' => array)
|
23 |
+
public $tags = array();//tags list
|
24 |
+
public $categories = array();//categories list
|
25 |
+
public $post;//wp_post
|
26 |
+
public $repeat = array(
|
27 |
+
'ecwd_event_repeat_event' => "no_repeat",//no_repeat,daily,weekly,monthly,yearly
|
28 |
+
'ecwd_event_day' => array(),//[monday,tuesday,wednesday,thursday,friday,saturday,sunday]
|
29 |
+
'ecwd_event_repeat_how' => "",//number|""
|
30 |
+
'ecwd_event_repeat_month_on_days' => "1",//number
|
31 |
+
'ecwd_event_repeat_year_on_days' => "1",//number
|
32 |
+
'ecwd_event_repeat_on_the_m' => null,
|
33 |
+
'ecwd_event_repeat_on_the_y' => null,
|
34 |
+
'ecwd_monthly_list_monthly' => null,
|
35 |
+
'ecwd_monthly_week_monthly' => null,
|
36 |
+
'ecwd_monthly_list_yearly' => null,
|
37 |
+
'ecwd_monthly_week_yearly' => null,
|
38 |
+
'ecwd_event_repeat_repeat_until' => "",
|
39 |
+
'ecwd_event_year_month' => null,
|
40 |
+
); //array
|
41 |
+
public $event_url;
|
42 |
+
public $video_url;
|
43 |
+
public $other_metas = array();//array meta_key:meta_value
|
44 |
+
|
45 |
+
public function __construct($id = null, $title = "", $content = ""){
|
46 |
+
$this->id = $id;
|
47 |
+
$this->title = $title;
|
48 |
+
$this->content = $content;
|
49 |
+
}
|
50 |
+
|
51 |
+
public function set_venue($venue_id){
|
52 |
+
|
53 |
+
$venue_id = intval($venue_id);
|
54 |
+
if($venue_id === 0) {
|
55 |
+
return;
|
56 |
+
}
|
57 |
+
|
58 |
+
$venue = get_post($venue_id);
|
59 |
+
$metas = get_post_meta($venue_id, "", true);
|
60 |
+
|
61 |
+
$this->venue = array(
|
62 |
+
'post' => $venue,
|
63 |
+
'metas' => $metas
|
64 |
+
);
|
65 |
+
|
66 |
+
}
|
67 |
+
|
68 |
+
public function set_repeat(){
|
69 |
+
|
70 |
+
foreach($this->repeat as $meta_key => $default_value) {
|
71 |
+
if(isset($_POST[$meta_key])) {
|
72 |
+
$this->repeat[$meta_key] = $_POST[$meta_key];
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
}
|
77 |
+
|
78 |
+
public function get_location_info(){
|
79 |
+
|
80 |
+
$location_info = array(
|
81 |
+
'location' => '',
|
82 |
+
'show_map' => '',
|
83 |
+
'lat_long' => '',
|
84 |
+
'zoom' => '',
|
85 |
+
'complete_data' => false
|
86 |
+
);
|
87 |
+
|
88 |
+
|
89 |
+
if($this->venue === null || $this->venue['post'] === null) {
|
90 |
+
return $location_info;
|
91 |
+
}
|
92 |
+
|
93 |
+
$location_info = array();
|
94 |
+
$complete_data = true;
|
95 |
+
|
96 |
+
if(!empty($this->venue['metas']['ecwd_venue_location'][0])) {
|
97 |
+
$location_info['location'] = $this->venue['metas']['ecwd_venue_location'][0];
|
98 |
+
} else {
|
99 |
+
$complete_data = false;
|
100 |
+
}
|
101 |
+
|
102 |
+
if(!empty($this->venue['metas']['ecwd_venue_show_map'][0])) {
|
103 |
+
$location_info['show_map'] = $this->venue['metas']['ecwd_venue_show_map'][0];
|
104 |
+
} else {
|
105 |
+
$complete_data = false;
|
106 |
+
}
|
107 |
+
|
108 |
+
if(!empty($this->venue['metas']['ecwd_venue_lat_long'][0])) {
|
109 |
+
$location_info['lat_long'] = $this->venue['metas']['ecwd_venue_lat_long'][0];
|
110 |
+
} else {
|
111 |
+
$complete_data = false;
|
112 |
+
}
|
113 |
+
|
114 |
+
if(!empty($this->venue['metas']['ecwd_map_zoom'][0])) {
|
115 |
+
$location_info['zoom'] = $this->venue['metas']['ecwd_map_zoom'][0];
|
116 |
+
} else {
|
117 |
+
$complete_data = false;
|
118 |
+
}
|
119 |
+
|
120 |
+
$location_info['complete_data'] = $complete_data;
|
121 |
+
return $location_info;
|
122 |
+
}
|
123 |
+
|
124 |
+
}
|
includes/register-settings.php
CHANGED
@@ -303,6 +303,13 @@ function ecwd_register_settings() {
|
|
303 |
'type' => 'radio',
|
304 |
'default' => 0
|
305 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
306 |
),
|
307 |
'category_archive' => array(
|
308 |
'category_archive_slug' => array(
|
303 |
'type' => 'radio',
|
304 |
'default' => 0
|
305 |
),
|
306 |
+
'use_custom_template' => array(
|
307 |
+
'id' => 'use_custom_template',
|
308 |
+
'name' => __('Use custom template', 'event-calendar-wd'),
|
309 |
+
'desc' => '',
|
310 |
+
'type' => 'radio',
|
311 |
+
'default' => 0
|
312 |
+
),
|
313 |
),
|
314 |
'category_archive' => array(
|
315 |
'category_archive_slug' => array(
|
js/admin/admin.js
CHANGED
@@ -252,6 +252,20 @@
|
|
252 |
{
|
253 |
res = JSON.parse(data);
|
254 |
if (res.status == 'ok') {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
255 |
$(clicked_el).removeClass('ecwd-calendar-event-delete');
|
256 |
$(clicked_el).addClass('ecwd-calendar-event-add');
|
257 |
$(clicked_el).text('+');
|
@@ -371,7 +385,7 @@
|
|
371 |
res = JSON.parse(data);
|
372 |
if (res.status == 'success') {
|
373 |
$('#add_event_to_cal').hide();
|
374 |
-
$('.ecwd_notification').html('Event \'' + name + '\' has been saved
|
375 |
}
|
376 |
});
|
377 |
} else {
|
@@ -409,11 +423,11 @@
|
|
409 |
});
|
410 |
|
411 |
|
412 |
-
$('.ecwd_add_event_to_calendar').ecwd_popup({
|
413 |
button: $('.ecwd_events_popup_button'),
|
414 |
title: ecwd_admin_translation.event_list,
|
415 |
container_class: 'ecwd_add_event_calendar'
|
416 |
-
})
|
417 |
$('#ecwd_preview_add_event_popup').ecwd_popup({
|
418 |
button: $('#ecwd_preview_add_event'),
|
419 |
title: ecwd_admin_translation.calendar,
|
@@ -1147,3 +1161,188 @@ function loadScript()
|
|
1147 |
'&callback=initialize&libraries=places&key=' + ecwd.gmap_key;
|
1148 |
document.body.appendChild(script);
|
1149 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
{
|
253 |
res = JSON.parse(data);
|
254 |
if (res.status == 'ok') {
|
255 |
+
if($(".ecwd_events_popup_button").length === 0){
|
256 |
+
var data_new_event_url = $(clicked_el).closest(".ecwd-events").data("new_event_url");
|
257 |
+
$(".ecwd_events_popup_button").remove();
|
258 |
+
$(".ecwd-calendar-event-add").html('<a class="ecwd_events_popup_button" data-new_event_url="'+data_new_event_url+'" href="#ecwd_event_list_popup">Select Events from the list</a><a class="ecwd_events_popup_button" data-new_event_url="\'+data_new_event_url+\'" href="#ecwd_event_list_popup"><span class="add_event_plus">+</span></a>');
|
259 |
+
var ecwd_events_popup_button = $('.ecwd_events_popup_button');
|
260 |
+
if(ecwd_events_popup_button.length>0){
|
261 |
+
ecwd_events_popup_button.magnificPopup({
|
262 |
+
type:'inline',
|
263 |
+
callbacks: {
|
264 |
+
|
265 |
+
}
|
266 |
+
});
|
267 |
+
}
|
268 |
+
}
|
269 |
$(clicked_el).removeClass('ecwd-calendar-event-delete');
|
270 |
$(clicked_el).addClass('ecwd-calendar-event-add');
|
271 |
$(clicked_el).text('+');
|
385 |
res = JSON.parse(data);
|
386 |
if (res.status == 'success') {
|
387 |
$('#add_event_to_cal').hide();
|
388 |
+
$('.ecwd_notification').html('Event \'' + name + '\' has been saved. <a href="?post=' + res.data.event_id + '&action=edit" target="_blank">Edit details</a>');
|
389 |
}
|
390 |
});
|
391 |
} else {
|
423 |
});
|
424 |
|
425 |
|
426 |
+
/* $('.ecwd_add_event_to_calendar').ecwd_popup({
|
427 |
button: $('.ecwd_events_popup_button'),
|
428 |
title: ecwd_admin_translation.event_list,
|
429 |
container_class: 'ecwd_add_event_calendar'
|
430 |
+
});*/
|
431 |
$('#ecwd_preview_add_event_popup').ecwd_popup({
|
432 |
button: $('#ecwd_preview_add_event'),
|
433 |
title: ecwd_admin_translation.calendar,
|
1161 |
'&callback=initialize&libraries=places&key=' + ecwd.gmap_key;
|
1162 |
document.body.appendChild(script);
|
1163 |
}
|
1164 |
+
|
1165 |
+
|
1166 |
+
var ecwd_table;
|
1167 |
+
|
1168 |
+
|
1169 |
+
$(document).ready(function(){
|
1170 |
+
var ecwd_events_popup_button = $('.ecwd_events_popup_button');
|
1171 |
+
if(ecwd_events_popup_button.length>0){
|
1172 |
+
ecwd_events_popup_button.magnificPopup({
|
1173 |
+
type:'inline',
|
1174 |
+
callbacks: {
|
1175 |
+
|
1176 |
+
}
|
1177 |
+
});
|
1178 |
+
}
|
1179 |
+
});
|
1180 |
+
|
1181 |
+
|
1182 |
+
$('body').on('click', '.ecwd_events_popup_button', function (){
|
1183 |
+
if(typeof ecwd_table !== "undefined"){
|
1184 |
+
ecwd_table.destroy();
|
1185 |
+
}
|
1186 |
+
$(".ecwd_event_table").remove();
|
1187 |
+
ecwd_get_events();
|
1188 |
+
});
|
1189 |
+
var ecwd_all_events_count;
|
1190 |
+
function ecwd_get_events() {
|
1191 |
+
var url = ecwdServerVars.rest_route+'events';
|
1192 |
+
var request_url = ecwd_updateQueryStringParameter(url, 'nonce', ecwdServerVars.ecwdRestNonce);
|
1193 |
+
$(".ecwd_event_list_popup_loader").css({
|
1194 |
+
'display':'block'
|
1195 |
+
});
|
1196 |
+
$(".ecwd_add_events").addClass('ecwd_add_events_button');
|
1197 |
+
$.ajax({
|
1198 |
+
url: request_url,
|
1199 |
+
type: 'GET',
|
1200 |
+
dataType: 'json',
|
1201 |
+
success: function(data) {
|
1202 |
+
$(".ecwd_event_list_popup_loader").css({
|
1203 |
+
'display':'none'
|
1204 |
+
});
|
1205 |
+
$(".ecwd_add_events").removeClass('ecwd_add_events_button');
|
1206 |
+
var ecwd_event_list = "";
|
1207 |
+
var calendar_event_list = $("#ecwd_calendar_meta table .ecwd-events .ecwd-calendar-event input");
|
1208 |
+
ecwd_all_events_count = data.data.length;
|
1209 |
+
$.each(data.data, function (key, value ) {
|
1210 |
+
var flag = true;
|
1211 |
+
$.each(calendar_event_list, function (num,val) {
|
1212 |
+
var event_ides = parseInt(value.ID);
|
1213 |
+
var calendar_event_ides = parseInt($(val).val());
|
1214 |
+
|
1215 |
+
if(event_ides===calendar_event_ides){
|
1216 |
+
flag = false;
|
1217 |
+
}
|
1218 |
+
});
|
1219 |
+
if(flag){
|
1220 |
+
ecwd_event_list+="<tr data-id='"+value.ID+"' data-title='"+value.post_title+"'><td></td><td>"+value.post_title+"</td><td>"+value.ecwd_event_date_from+"</td><td>"+value.ecwd_event_date_to+"</td></tr>";
|
1221 |
+
}
|
1222 |
+
});
|
1223 |
+
var ecwd_event_table = '' +
|
1224 |
+
'<table class="ecwd_event_table display" style="width:100%">' +
|
1225 |
+
'<thead>' +
|
1226 |
+
'<th><input type="checkbox" name="select_all" value="1" id="ecwd-select-all"></th>'+
|
1227 |
+
'<th>Title</th>' +
|
1228 |
+
'<th>Start date</th>' +
|
1229 |
+
'<th>End date</th>' +
|
1230 |
+
'</thead>' +
|
1231 |
+
'<tbody>' +
|
1232 |
+
ecwd_event_list+
|
1233 |
+
'</tbody>' +
|
1234 |
+
'<tfoot>' +
|
1235 |
+
|
1236 |
+
'</tfoot>' +
|
1237 |
+
'<th></th>'+
|
1238 |
+
'<th>Title</th>' +
|
1239 |
+
'<th>Start date</th>' +
|
1240 |
+
'<th>End date</th>' +
|
1241 |
+
'</tfoot>' +
|
1242 |
+
'</table>';
|
1243 |
+
|
1244 |
+
|
1245 |
+
|
1246 |
+
$(".ecwd_event_table").remove();
|
1247 |
+
$("#ecwd_event_list_popup").prepend(ecwd_event_table);
|
1248 |
+
ecwd_table = $('.ecwd_event_table').DataTable({
|
1249 |
+
'columnDefs': [{
|
1250 |
+
'targets': 0,
|
1251 |
+
'searchable':false,
|
1252 |
+
'orderable':false,
|
1253 |
+
'className': 'dt-body-center',
|
1254 |
+
'render': function (data, type, full, meta){
|
1255 |
+
return '<input type="checkbox" name="id[]" value="">';
|
1256 |
+
}
|
1257 |
+
}],
|
1258 |
+
'order': [[1, 'asc']]
|
1259 |
+
});
|
1260 |
+
|
1261 |
+
$('body').on('click', '#ecwd-select-all', function (){
|
1262 |
+
var rows = ecwd_table.rows({ 'search': 'applied' }).nodes();
|
1263 |
+
$('input[type="checkbox"]', rows).prop('checked', this.checked);
|
1264 |
+
});
|
1265 |
+
|
1266 |
+
|
1267 |
+
$('.ecwd_event_table tbody').on('change', 'input[type="checkbox"]', function(){
|
1268 |
+
if(!this.checked){
|
1269 |
+
$('#ecwd-select-all').attr('checked', false);
|
1270 |
+
}
|
1271 |
+
});
|
1272 |
+
},
|
1273 |
+
error: function() {
|
1274 |
+
|
1275 |
+
},
|
1276 |
+
beforeSend: setHeader
|
1277 |
+
});
|
1278 |
+
|
1279 |
+
function setHeader(xhr) {
|
1280 |
+
xhr.setRequestHeader('X-WP-Nonce', ecwdServerVars.wpRestNonce);
|
1281 |
+
}
|
1282 |
+
}
|
1283 |
+
|
1284 |
+
$('body').on('click','.ecwd_add_events',function (e) {
|
1285 |
+
e.preventDefault();
|
1286 |
+
$('#ecwd_event_list_popup').magnificPopup('close');
|
1287 |
+
var ecwd_event_data = [];
|
1288 |
+
|
1289 |
+
|
1290 |
+
ecwd_table.$('input[type="checkbox"]').each(function(){
|
1291 |
+
if(this.checked){
|
1292 |
+
var main_tr = this.closest("tr");
|
1293 |
+
var event_id = $(main_tr).data("id");
|
1294 |
+
var event_title = $(main_tr).data("title");
|
1295 |
+
var calendar_id = $('#post_ID').val();
|
1296 |
+
|
1297 |
+
ecwd_event_data.push({
|
1298 |
+
event_id:event_id,
|
1299 |
+
calendar_id:calendar_id,
|
1300 |
+
});
|
1301 |
+
var ecwd_added_event = '<span class="ecwd-calendar-event"> <span>'+event_title+'</span>\n' +
|
1302 |
+
' <input type="hidden" name="ecwd-calendar-event-id[]" value="'+event_id+'">\n' +
|
1303 |
+
' <span class="ecwd-calendar-event-edit"><a href="post.php?post=21&action=edit" target="_blank">e</a></span>\n' +
|
1304 |
+
' <span class="ecwd-calendar-event-delete">x</span>\n' +
|
1305 |
+
' </span>';
|
1306 |
+
$("#ecwd_calendar_meta table .ecwd-events").append(ecwd_added_event);
|
1307 |
+
}
|
1308 |
+
});
|
1309 |
+
ecwd_ajax_add_events(ecwd_event_data);
|
1310 |
+
});
|
1311 |
+
|
1312 |
+
function ecwd_ajax_add_events(ecwd_event_data ) {
|
1313 |
+
var url = ecwdServerVars.rest_route+'add_event';
|
1314 |
+
var request_url = ecwd_updateQueryStringParameter(url, 'nonce', ecwdServerVars.ecwdRestNonce);
|
1315 |
+
$.ajax({
|
1316 |
+
url: request_url,
|
1317 |
+
type: 'POST',
|
1318 |
+
dataType: 'json',
|
1319 |
+
data: { ecwd_data:ecwd_event_data ,nonce: ecwdServerVars.ecwdRestNonce },
|
1320 |
+
success: function(data) {
|
1321 |
+
if(data.success){
|
1322 |
+
ecwd_table.destroy();
|
1323 |
+
var calendar_event_list = $("#ecwd_calendar_meta table .ecwd-events .ecwd-calendar-event input");
|
1324 |
+
var calendar_event_list_length = calendar_event_list.length;
|
1325 |
+
if(ecwd_all_events_count === calendar_event_list_length){
|
1326 |
+
var new_post_url = $(".ecwd_events_popup_button").data('new_event_url');
|
1327 |
+
$(".ecwd_events_popup_button").remove();
|
1328 |
+
$(".ecwd-calendar-event-add").html('<a href="'+new_post_url+'" target="_blank">Create more events</a><a href="\'+new_post_url+\'" target="_blank"><span class="add_event_plus">+</span></a></span>');
|
1329 |
+
}
|
1330 |
+
}
|
1331 |
+
},
|
1332 |
+
error: function() {},
|
1333 |
+
beforeSend: setHeader
|
1334 |
+
});
|
1335 |
+
function setHeader(xhr) {
|
1336 |
+
xhr.setRequestHeader('X-WP-Nonce', ecwdServerVars.wpRestNonce);
|
1337 |
+
}
|
1338 |
+
}
|
1339 |
+
function ecwd_updateQueryStringParameter(uri, key, value) {
|
1340 |
+
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
|
1341 |
+
var separator = uri.indexOf('?') !== -1 ? "&" : "?";
|
1342 |
+
if (uri.match(re)) {
|
1343 |
+
return uri.replace(re, '$1' + key + "=" + value + '$2');
|
1344 |
+
}
|
1345 |
+
else {
|
1346 |
+
return uri + separator + key + "=" + value;
|
1347 |
+
}
|
1348 |
+
}
|
js/datatables.min.js
ADDED
@@ -0,0 +1,178 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* This combined file was created by the DataTables downloader builder:
|
3 |
+
* https://datatables.net/download
|
4 |
+
*
|
5 |
+
* To rebuild or modify this file with the latest versions of the included
|
6 |
+
* software please visit:
|
7 |
+
* https://datatables.net/download/#dt/dt-1.10.16
|
8 |
+
*
|
9 |
+
* Included libraries:
|
10 |
+
* DataTables 1.10.16
|
11 |
+
*/
|
12 |
+
|
13 |
+
/*!
|
14 |
+
DataTables 1.10.16
|
15 |
+
©2008-2017 SpryMedia Ltd - datatables.net/license
|
16 |
+
*/
|
17 |
+
(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,G){E||(E=window);G||(G="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(G,E,E.document)}:h(jQuery,window,document)})(function(h,E,G,k){function X(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
|
18 |
+
d[c]=e,"o"===b[1]&&X(a[e])});a._hungarianMap=d}function I(a,b,c){a._hungarianMap||X(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),I(a[d],b[d],c)):b[d]=b[e]})}function Ca(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&F(a,a,"sZeroRecords","sLoadingRecords");
|
19 |
+
a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&cb(a)}function db(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX=
|
20 |
+
a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&I(m.models.oSearch,a[b])}function eb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"===typeof b&&!h.isArray(b)&&(a.aDataSort=[b])}function fb(a){if(!m.__browser){var b={};m.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:-1*h(E).scrollLeft(),height:1,width:1,overflow:"hidden"}).append(h("<div/>").css({position:"absolute",
|
21 |
+
top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function gb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==
|
22 |
+
e;)a.hasOwnProperty(d)&&(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Da(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:G.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);ja(a,d,h(b).data())}function ja(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=
|
23 |
+
e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(eb(c),I(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=Q(g),i=b.mRender?Q(b.mRender):null,c=function(a){return"string"===
|
24 |
+
typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return R(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=
|
25 |
+
d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function Y(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ea(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&ka(a);r(a,null,"column-sizing",[a])}function Z(a,b){var c=la(a,"bVisible");return"number"===typeof c[b]?c[b]:null}function $(a,b){var c=
|
26 |
+
la(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function aa(a){var b=0;h.each(a.aoColumns,function(a,d){d.bVisible&&"none"!==h(d.nTh).css("display")&&b++});return b}function la(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Fa(a){var b=a.aoColumns,c=a.aoData,d=m.ext.type.detect,e,f,g,j,i,h,l,q,t;e=0;for(f=b.length;e<f;e++)if(l=b[e],t=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<j;g++){i=0;for(h=c.length;i<h;i++){t[i]===
|
27 |
+
k&&(t[i]=B(a,i,e,"type"));q=d[g](t[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function hb(a,b,c,d){var e,f,g,j,i,n,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){n=b[e];var q=n.targets!==k?n.targets:n.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Da(a);d(q[f],n)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],n);else if("string"===typeof q[f]){j=0;for(i=l.length;j<
|
28 |
+
i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&&d(j,n)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function M(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},m.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ga(a,e,c,d);return e}function ma(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,e){c=Ha(a,e);return M(a,
|
29 |
+
c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent,i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(J(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function ib(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,
|
30 |
+
d,{settings:a,row:b,col:c})}function Ia(a){return h.map(a.match(/(\\.|[^\.])+/g)||[""],function(a){return a.replace(/\\\./g,".")})}function Q(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=Q(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var c=function(a,
|
31 |
+
b,f){var g,j;if(""!==f){j=Ia(f);for(var i=0,n=j.length;i<n;i++){f=j[i].match(ba);g=j[i].match(U);if(f){j[i]=j[i].replace(ba,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(n=a.length;i<n;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(U,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}function R(a){if(h.isPlainObject(a))return R(a._);
|
32 |
+
if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=Ia(e),f;f=e[e.length-1];for(var g,j,i=0,n=e.length-1;i<n;i++){g=e[i].match(ba);j=e[i].match(U);if(g){e[i]=e[i].replace(ba,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(n=d.length;j<n;j++)f={},b(f,d[j],g),a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(U,
|
33 |
+
""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(U))a[f.replace(U,"")](d);else a[f.replace(ba,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ja(a){return D(a.aoData,"_aData")}function na(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function oa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function ca(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);
|
34 |
+
c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ha(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;Ka(a,e)}}function Ha(a,b,c,d){var e=[],f=b.firstChild,g,j,i=0,n,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],t=function(a,b){if("string"===typeof a){var c=a.indexOf("@");
|
35 |
+
-1!==c&&(c=a.substring(c+1),R(a)(d,b.getAttribute(c)))}},m=function(a){if(c===k||c===i)j=l[i],n=h.trim(a.innerHTML),j&&j._bAttrSrc?(R(j.mData._)(d,n),t(j.mData.sort,a),t(j.mData.type,a),t(j.mData.filter,a)):q?(j._setter||(j._setter=R(j.mData)),j._setter(d,n)):d[i]=n;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)m(f),e.push(f);f=f.nextSibling}else{e=b.anCells;f=0;for(g=e.length;f<g;f++)m(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&R(a.rowId)(d,b);return{data:d,cells:e}}
|
36 |
+
function Ga(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,n,l,q;if(null===e.nTr){j=c||G.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;Ka(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){n=a.aoColumns[l];i=c?d[l]:G.createElement(n.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||n.mRender||n.mData!==l)&&(!h.isPlainObject(n.mData)||n.mData._!==l+".display"))i.innerHTML=B(a,b,l,"display");n.sClass&&(i.className+=" "+n.sClass);n.bVisible&&!c?j.appendChild(i):!n.bVisible&&c&&i.parentNode.removeChild(i);
|
37 |
+
n.fnCreatedCell&&n.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}r(a,"aoRowCreatedCallback",null,[j,f,b])}e.nTr.setAttribute("role","row")}function Ka(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?qa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function jb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0===
|
38 |
+
h("th, td",g).length,n=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),La(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Ma(a,"header")(a,d,f,n);i&&da(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(n.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(n.sFooterTH);
|
39 |
+
if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function ea(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,n;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=0;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(n=i=1,j[d][f]===k){a.appendChild(g[d][f].cell);
|
40 |
+
for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+n]!==k&&g[d][f].cell==g[d][f+n].cell;){for(c=0;c<i;c++)j[d+c][f+n]=1;n++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",n)}}}}function N(a){var b=r(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=
|
41 |
+
-1);var g=a._iDisplayStart,n=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!kb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:n;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ga(a,l);l=q.nTr;if(0!==e){var t=d[c%e];q._sRowStripe!=t&&(h(l).removeClass(q._sRowStripe).addClass(t),q._sRowStripe=t)}r(a,"aoRowCallback",null,[l,q._aData,c,j]);b.push(l);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords:
|
42 |
+
f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:aa(a),"class":a.oClasses.sRowEmpty}).html(c))[0];r(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ja(a),g,n,i]);r(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ja(a),g,n,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));r(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function S(a,b){var c=a.oFeatures,d=c.bFilter;
|
43 |
+
c.bSort&&lb(a);d?fa(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;N(a);a._drawHold=!1}function mb(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,n,l,q,k=0;k<f.length;k++){g=null;j=f[k];if("<"==j){i=h("<div/>")[0];
|
44 |
+
n=f[k+1];if("'"==n||'"'==n){l="";for(q=2;f[k+q]!=n;)l+=f[k+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(n=l.split("."),i.id=n[0].substr(1,n[0].length-1),i.className=n[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;k+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=nb(a);else if("f"==j&&d.bFilter)g=ob(a);else if("r"==j&&d.bProcessing)g=pb(a);else if("t"==j)g=qb(a);else if("i"==j&&d.bInfo)g=rb(a);else if("p"==
|
45 |
+
j&&d.bPaginate)g=sb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(n=i.length;q<n;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function da(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,n,l,q,k;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan");
|
46 |
+
q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;n=g;k=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][n+j]={cell:e,unique:k},a[f+g].nTr=d}e=e.nextSibling}}}function ra(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],da(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function sa(a,b,c){r(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={},
|
47 |
+
e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){r(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var n=h.isFunction(f)?f(b,a):f,b=h.isFunction(f)&&n?n:h.extend(!0,b,n);delete g.data}n={data:b,success:function(b){var c=b.error||b.sError;c&&J(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=r(a,null,"xhr",
|
48 |
+
[a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?J(a,0,"Invalid JSON response",1):4===b.readyState&&J(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;r(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(n,{url:g||a.sAjaxSource})):h.isFunction(g)?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(n,g)),g.data=f)}function kb(a){return a.bAjaxDataGet?(a.iDraw++,C(a,
|
49 |
+
!0),sa(a,tb(a),function(b){ub(a,b)}),!1):!0}function tb(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,n,l,k=V(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var t=function(a,b){j.push({name:a,value:b})};t("sEcho",a.iDraw);t("iColumns",c);t("sColumns",D(b,"sName").join(","));t("iDisplayStart",g);t("iDisplayLength",i);var pa={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)n=b[g],
|
50 |
+
l=f[g],i="function"==typeof n.mData?"function":n.mData,pa.columns.push({data:i,name:n.sName,searchable:n.bSearchable,orderable:n.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),t("mDataProp_"+g,i),d.bFilter&&(t("sSearch_"+g,l.sSearch),t("bRegex_"+g,l.bRegex),t("bSearchable_"+g,n.bSearchable)),d.bSort&&t("bSortable_"+g,n.bSortable);d.bFilter&&(t("sSearch",e.sSearch),t("bRegex",e.bRegex));d.bSort&&(h.each(k,function(a,b){pa.order.push({column:b.col,dir:b.dir});t("iSortCol_"+a,b.col);t("sSortDir_"+
|
51 |
+
a,b.dir)}),t("iSortingCols",k.length));b=m.ext.legacy.ajax;return null===b?a.sAjaxSource?j:pa:b?j:pa}function ub(a,b){var c=ta(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}na(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,10);d=0;for(e=c.length;d<e;d++)M(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;N(a);a._bInitComplete||
|
52 |
+
ua(a,b);a.bAjaxDataGet=!0;C(a,!1)}function ta(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?Q(c)(b):b}function ob(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value?
|
53 |
+
"":this.value;b!=e.sSearch&&(fa(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,N(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",g?Na(f,g):f).on("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==G.activeElement&&i.val(e.sSearch)}catch(d){}});
|
54 |
+
return b[0]}function fa(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Fa(a);if("ssp"!=y(a)){vb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)wb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,e[b].bSmart,e[b].bCaseInsensitive);xb(a)}else f(b);a.bFiltered=!0;r(a,null,"search",[a])}function xb(a){for(var b=
|
55 |
+
m.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,n=c.length;i<n;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function wb(a,b,c,d,e,f){if(""!==b){for(var g=[],j=a.aiDisplay,d=Oa(b,d,e,f),e=0;e<j.length;e++)b=a.aoData[j[e]]._aFilterData[c],d.test(b)&&g.push(j[e]);a.aiDisplay=g}}function vb(a,b,c,d,e,f){var d=Oa(b,d,e,f),f=a.oPreviousSearch.sSearch,g=a.aiDisplayMaster,j,e=[];0!==m.ext.search.length&&(c=!0);j=yb(a);if(0>=b.length)a.aiDisplay=
|
56 |
+
g.slice();else{if(j||c||f.length>b.length||0!==b.indexOf(f)||a.bSorted)a.aiDisplay=g.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)d.test(a.aoData[b[c]]._sFilterRow)&&e.push(b[c]);a.aiDisplay=e}}function Oa(a,b,c,d){a=b?a:Pa(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function yb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=m.ext.type.search;c=!1;
|
57 |
+
d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(va.innerHTML=i,i=Wb?va.textContent:va.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);h._aFilterData=j;h._sFilterRow=j.join(" ");c=!0}return c}function zb(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,
|
58 |
+
caseInsensitive:a.bCaseInsensitive}}function Ab(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function rb(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Bb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Bb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+
|
59 |
+
1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Cb(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Cb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,
|
60 |
+
f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ga(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){mb(a);jb(a);ea(a,a.aoHeader);ea(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ea(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=v(f.sWidth));r(a,null,"preInit",[a]);S(a);e=y(a);if("ssp"!=e||g)"ajax"==e?sa(a,[],function(c){var f=ta(a,c);for(b=0;b<f.length;b++)M(a,f[b]);a.iInitDisplayStart=
|
61 |
+
d;S(a);C(a,!1);ua(a,c)},a):(C(a,!1),ua(a))}else setTimeout(function(){ga(a)},200)}function ua(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&Y(a);r(a,null,"plugin-init",[a,b]);r(a,"aoInitComplete","init",[a,b])}function Qa(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Ra(a);r(a,null,"length",[a,c])}function nb(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g<j;g++)e[0][g]=
|
62 |
+
new Option("number"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).on("change.DT",function(){Qa(a,h(this).val());N(a)});h(a.nTable).on("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function sb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){N(a)},
|
63 |
+
b=h("<div/>").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Ma(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,e)},sName:"pagination"}));return b}function Sa(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===
|
64 |
+
e?d=0:"number"===typeof b?(d=b*e,d>f&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:J(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(r(a,null,"page",[a]),c&&N(a));return b}function pb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",
|
65 |
+
b?"block":"none");r(a,null,"processing",[a,b])}function qb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),n=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",
|
66 |
+
{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:v(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",{"class":f.sScrollFootInner}).append(n.removeAttr("id").css("margin-left",
|
67 |
+
0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],t=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(t.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:ka,sName:"scrolling"});return i[0]}function ka(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,n=j.children("table"),
|
68 |
+
j=a.nScrollBody,l=h(j),q=j.style,t=h(a.nScrollFoot).children("div"),m=t.children("table"),o=h(a.nTHead),p=h(a.nTable),s=p[0],r=s.style,u=a.nTFoot?h(a.nTFoot):null,x=a.oBrowser,T=x.bScrollOversize,Xb=D(a.aoColumns,"nTh"),O,K,P,w,Ta=[],y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};K=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==K&&a.scrollBarVis!==k)a.scrollBarVis=K,Y(a);else{a.scrollBarVis=K;p.children("thead, tfoot").remove();
|
69 |
+
u&&(P=u.clone().prependTo(p),O=u.find("tr"),P=P.find("tr"));w=o.clone().prependTo(p);o=o.find("tr");K=w.find("tr");w.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(ra(a,w),function(b,c){B=Z(a,b);c.style.width=a.aoColumns[B].sWidth});u&&H(function(a){a.style.width=""},P);f=p.outerWidth();if(""===c){r.width="100%";if(T&&(p.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(r.width=
|
70 |
+
v(d),f=p.outerWidth());H(C,K);H(function(a){z.push(a.innerHTML);Ta.push(v(h(a).css("width")))},K);H(function(a,b){if(h.inArray(a,Xb)!==-1)a.style.width=Ta[b]},o);h(K).height(0);u&&(H(C,P),H(function(a){A.push(a.innerHTML);y.push(v(h(a).css("width")))},P),H(function(a,b){a.style.width=y[b]},O),h(P).height(0));H(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+z[b]+"</div>";a.style.width=Ta[b]},K);u&&H(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+
|
71 |
+
A[b]+"</div>";a.style.width=y[b]},P);if(p.outerWidth()<f){O=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(T&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(O-b);(""===c||""!==d)&&J(a,1,"Possible column misalignment",6)}else O="100%";q.width=v(O);g.width=v(O);u&&(a.nScrollFoot.style.width=v(O));!e&&T&&(q.height=v(s.offsetHeight+b));c=p.outerWidth();n[0].style.width=v(c);i.width=v(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+
|
72 |
+
(x.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";u&&(m[0].style.width=v(c),t[0].style.width=v(c),t[0].style[e]=d?b+"px":"0px");p.children("colgroup").insertBefore(p.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function H(a,b,c){for(var d=0,e=0,f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;e++}}function Ea(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll,
|
73 |
+
e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=la(a,"bVisible"),n=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,t=!1,m,o,p=a.oBrowser,d=p.bScrollOversize;(m=b.style.width)&&-1!==m.indexOf("%")&&(l=m);for(m=0;m<i.length;m++)o=c[i[m]],null!==o.sWidth&&(o.sWidth=Db(o.sWidthOrig,k),t=!0);if(d||!t&&!f&&!e&&j==aa(a)&&j==n.length)for(m=0;m<j;m++)i=Z(a,m),null!==i&&(c[i].sWidth=v(n.eq(m).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var s=h("<tr/>").appendTo(j.find("tbody"));
|
74 |
+
j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");n=ra(a,j.find("thead")[0]);for(m=0;m<i.length;m++)o=c[i[m]],n[m].style.width=null!==o.sWidthOrig&&""!==o.sWidthOrig?v(o.sWidthOrig):"",o.sWidthOrig&&f&&h(n[m]).append(h("<div/>").css({width:o.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m<i.length;m++)t=i[m],o=c[t],h(Eb(a,t)).clone(!1).append(o.sContentPadding).appendTo(s);h("[name]",
|
75 |
+
j).removeAttr("name");o=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):l&&j.width(l);for(m=e=0;m<i.length;m++)k=h(n[m]),g=k.outerWidth()-k.width(),k=p.bBounding?Math.ceil(n[m].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[m]].sWidth=v(k-g);b.style.width=v(e);o.remove()}l&&(b.style.width=
|
76 |
+
v(l));if((l||f)&&!a._reszEvt)b=function(){h(E).on("resize.DT-"+a.sInstance,Na(function(){Y(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function Db(a,b){if(!a)return 0;var c=h("<div/>").css("width",v(a)).appendTo(b||G.body),d=c[0].offsetWidth;c.remove();return d}function Eb(a,b){var c=Fb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Fb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(Yb,
|
77 |
+
""),c=c.replace(/ /g," "),c.length>d&&(d=c.length,e=f);return e}function v(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function V(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var n=[];f=function(a){a.length&&!h.isArray(a[0])?n.push(a):h.merge(n,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<n.length;a++){i=n[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType||
|
78 |
+
"string",n[a]._idx===k&&(n[a]._idx=h.inArray(n[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:n[a][1],index:n[a]._idx,type:j,formatter:m.ext.type.order[j+"-pre"]})}return d}function lb(a){var b,c,d=[],e=m.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Fa(a);h=V(a);b=0;for(c=h.length;b<c;b++)j=h[b],j.formatter&&g++,Gb(a,j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,m=f[b]._aSortData;for(g=
|
79 |
+
0;g<i;g++)if(j=h[g],c=k[j.col],e=m[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,o=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=m[i.col],g=o[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],c=i(c,g),0!==c)return c;c=d[a];g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Hb(a){for(var b,c,d=a.aoColumns,e=V(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g,
|
80 |
+
"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Ua(a,b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b,
|
81 |
+
D(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);S(a);"function"==typeof d&&d(a)}function La(a,b,c,d){var e=a.aoColumns[c];Va(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Ua(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Ua(a,c,b.shiftKey,d))})}
|
82 |
+
function wa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=V(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(D(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(D(a.aoData,"anCells",g)).addClass(c+(2>e?e+1:3))}a.aLastSort=d}function Gb(a,b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,$(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j],
|
83 |
+
c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function xa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:zb(a.oPreviousSearch),columns:h.map(a.aoColumns,function(b,d){return{visible:b.bVisible,search:zb(a.aoPreSearchCols[d])}})};r(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,
|
84 |
+
b)}}function Ib(a,b,c){var d,e,f=a.aoColumns,b=function(b){if(b&&b.time){var g=r(a,"aoStateLoadParams","stateLoadParams",[a,b]);if(-1===h.inArray(!1,g)&&(g=a.iStateDuration,!(0<g&&b.time<+new Date-1E3*g)&&!(b.columns&&f.length!==b.columns.length))){a.oLoadedState=h.extend(!0,{},b);b.start!==k&&(a._iDisplayStart=b.start,a.iInitDisplayStart=b.start);b.length!==k&&(a._iDisplayLength=b.length);b.order!==k&&(a.aaSorting=[],h.each(b.order,function(b,c){a.aaSorting.push(c[0]>=f.length?[0,c[1]]:c)}));b.search!==
|
85 |
+
k&&h.extend(a.oPreviousSearch,Ab(b.search));if(b.columns){d=0;for(e=b.columns.length;d<e;d++)g=b.columns[d],g.visible!==k&&(f[d].bVisible=g.visible),g.search!==k&&h.extend(a.aoPreSearchCols[d],Ab(g.search))}r(a,"aoStateLoaded","stateLoaded",[a,b])}}c()};if(a.oFeatures.bStateSave){var g=a.fnStateLoadCallback.call(a.oInstance,a,b);g!==k&&b(g)}else c()}function ya(a){var b=m.settings,a=h.inArray(a,D(b,"nTable"));return-1!==a?b[a]:null}function J(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+
|
86 |
+
" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)E.console&&console.log&&console.log(c);else if(b=m.ext,b=b.sErrMode||b.errMode,a&&r(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==typeof b&&b(a,d,c)}}function F(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?F(a,b,d[0],d[1]):F(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Jb(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e],
|
87 |
+
h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Va(a,b,c){h(a).on("click.DT",b,function(b){a.blur();c(b)}).on("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).on("selectstart.DT",function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function r(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+
|
88 |
+
".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Ra(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Ma(a,b){var c=a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ha(a,b){var c=[],c=Kb.numbers_length,d=Math.floor(c/2);b<=c?c=W(0,b):a<=d?(c=W(0,
|
89 |
+
c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=W(b-(c-2),b):(c=W(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function cb(a){h.each({num:function(b){return za(b,a)},"num-fmt":function(b){return za(b,a,Wa)},"html-num":function(b){return za(b,a,Aa)},"html-num-fmt":function(b){return za(b,a,Aa,Wa)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Lb(a){return function(){var b=
|
90 |
+
[ya(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this,b)}}var m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new s(ya(this[x.iApiIndex])):new s(this)};this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=
|
91 |
+
function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&ka(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};
|
92 |
+
this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();
|
93 |
+
return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return ya(this[x.iApiIndex])};
|
94 |
+
this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var e in m.ext.internal)e&&(this[e]=Lb(e));this.each(function(){var e={},g=1<d?Jb(e,a,!0):
|
95 |
+
a,j=0,i,e=this.getAttribute("id"),n=!1,l=m.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())J(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{db(l);eb(l.column);I(l,l,!0);I(l.column,l.column,!0);I(l,h.extend(g,q.data()));var t=m.settings,j=0;for(i=t.length;j<i;j++){var o=t[j];if(o.nTable==this||o.nTHead.parentNode==this||o.nTFoot&&o.nTFoot.parentNode==this){var s=g.bRetrieve!==k?g.bRetrieve:l.bRetrieve;if(c||s)return o.oInstance;if(g.bDestroy!==k?g.bDestroy:l.bDestroy){o.oInstance.fnDestroy();
|
96 |
+
break}else{J(o,0,"Cannot reinitialise DataTable",3);return}}if(o.sTableId==this.id){t.splice(j,1);break}}if(null===e||""===e)this.id=e="DataTables_Table_"+m.ext._unique++;var p=h.extend(!0,{},m.models.oSettings,{sDestroyWidth:q[0].style.width,sInstance:e,sTableId:e});p.nTable=this;p.oApi=b.internal;p.oInit=g;t.push(p);p.oInstance=1===b.length?b:q.dataTable();db(g);g.oLanguage&&Ca(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=h.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);
|
97 |
+
g=Jb(h.extend(!0,{},l),g);F(p.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));F(p,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod","aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],
|
98 |
+
["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"]]);F(p.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);F(p.oLanguage,g,"fnInfoCallback");z(p,"aoDrawCallback",g.fnDrawCallback,"user");z(p,"aoServerParams",g.fnServerParams,"user");z(p,"aoStateSaveParams",g.fnStateSaveParams,"user");z(p,"aoStateLoadParams",g.fnStateLoadParams,"user");z(p,"aoStateLoaded",g.fnStateLoaded,"user");z(p,"aoRowCallback",
|
99 |
+
g.fnRowCallback,"user");z(p,"aoRowCreatedCallback",g.fnCreatedRow,"user");z(p,"aoHeaderCallback",g.fnHeaderCallback,"user");z(p,"aoFooterCallback",g.fnFooterCallback,"user");z(p,"aoInitComplete",g.fnInitComplete,"user");z(p,"aoPreDrawCallback",g.fnPreDrawCallback,"user");p.rowIdFn=Q(g.rowId);fb(p);var u=p.oClasses;h.extend(u,m.ext.classes,g.oClasses);q.addClass(u.sTable);p.iInitDisplayStart===k&&(p.iInitDisplayStart=g.iDisplayStart,p._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(p.bDeferLoading=
|
100 |
+
!0,e=h.isArray(g.iDeferLoading),p._iRecordsDisplay=e?g.iDeferLoading[0]:g.iDeferLoading,p._iRecordsTotal=e?g.iDeferLoading[1]:g.iDeferLoading);var v=p.oLanguage;h.extend(!0,v,g.oLanguage);v.sUrl&&(h.ajax({dataType:"json",url:v.sUrl,success:function(a){Ca(a);I(l.oLanguage,a);h.extend(true,v,a);ga(p)},error:function(){ga(p)}}),n=!0);null===g.asStripeClasses&&(p.asStripeClasses=[u.sStripeOdd,u.sStripeEven]);var e=p.asStripeClasses,x=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(e,function(a){return x.hasClass(a)}))&&
|
101 |
+
(h("tbody tr",this).removeClass(e.join(" ")),p.asDestroyStripes=e.slice());e=[];t=this.getElementsByTagName("thead");0!==t.length&&(da(p.aoHeader,t[0]),e=ra(p));if(null===g.aoColumns){t=[];j=0;for(i=e.length;j<i;j++)t.push(null)}else t=g.aoColumns;j=0;for(i=t.length;j<i;j++)Da(p,e?e[j]:null);hb(p,g.aoColumnDefs,t,function(a,b){ja(p,a,b)});if(x.length){var w=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(x[0]).children("th, td").each(function(a,b){var c=p.aoColumns[a];if(c.mData===
|
102 |
+
a){var d=w(b,"sort")||w(b,"order"),e=w(b,"filter")||w(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!==null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};ja(p,a)}}})}var T=p.oFeatures,e=function(){if(g.aaSorting===k){var a=p.aaSorting;j=0;for(i=a.length;j<i;j++)a[j][1]=p.aoColumns[j].asSorting[0]}wa(p);T.bSort&&z(p,"aoDrawCallback",function(){if(p.bSorted){var a=V(p),b={};h.each(a,function(a,c){b[c.src]=c.dir});r(p,null,"order",[p,a,b]);Hb(p)}});
|
103 |
+
z(p,"aoDrawCallback",function(){(p.bSorted||y(p)==="ssp"||T.bDeferRender)&&wa(p)},"sc");var a=q.children("caption").each(function(){this._captionSide=h(this).css("caption-side")}),b=q.children("thead");b.length===0&&(b=h("<thead/>").appendTo(q));p.nTHead=b[0];b=q.children("tbody");b.length===0&&(b=h("<tbody/>").appendTo(q));p.nTBody=b[0];b=q.children("tfoot");if(b.length===0&&a.length>0&&(p.oScroll.sX!==""||p.oScroll.sY!==""))b=h("<tfoot/>").appendTo(q);if(b.length===0||b.children().length===0)q.addClass(u.sNoFooter);
|
104 |
+
else if(b.length>0){p.nTFoot=b[0];da(p.aoFooter,p.nTFoot)}if(g.aaData)for(j=0;j<g.aaData.length;j++)M(p,g.aaData[j]);else(p.bDeferLoading||y(p)=="dom")&&ma(p,h(p.nTBody).children("tr"));p.aiDisplay=p.aiDisplayMaster.slice();p.bInitialised=true;n===false&&ga(p)};g.bStateSave?(T.bStateSave=!0,z(p,"aoDrawCallback",xa,"state_save"),Ib(p,g,e)):e()}});b=null;return this},x,s,o,u,Xa={},Mb=/[\r\n]/g,Aa=/<.*?>/g,Zb=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,$b=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)",
|
105 |
+
"g"),Wa=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,L=function(a){return!a||!0===a||"-"===a?!0:!1},Nb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Ob=function(a,b){Xa[b]||(Xa[b]=RegExp(Pa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Xa[b],"."):a},Ya=function(a,b,c){var d="string"===typeof a;if(L(a))return!0;b&&d&&(a=Ob(a,b));c&&d&&(a=a.replace(Wa,""));return!isNaN(parseFloat(a))&&isFinite(a)},Pb=function(a,b,c){return L(a)?!0:!(L(a)||"string"===
|
106 |
+
typeof a)?null:Ya(a.replace(Aa,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<f;e++)a[e]&&d.push(a[e][b]);return d},ia=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},W=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Qb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);
|
107 |
+
return b},qa=function(a){var b;a:{if(!(2>a.length)){b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();b=[];var e=a.length,f,g=0,d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b};m.util={throttle:function(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,j=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,j)},c)):(d=g,a.apply(b,j))}},escapeRegex:function(a){return a.replace($b,
|
108 |
+
"\\$1")}};var A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ba=/\[.*?\]$/,U=/\(\)$/,Pa=m.util.escapeRegex,va=h("<div>")[0],Wb=va.textContent!==k,Yb=/<.*?>/g,Na=m.util.throttle,Rb=[],w=Array.prototype,ac=function(a){var b,c,d=m.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof
|
109 |
+
h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};s=function(a,b){if(!(this instanceof s))return new s(a,b);var c=[],d=function(a){(a=ac(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=qa(c);b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};s.extend(this,this,Rb)};m.Api=s;h.extend(s.prototype,{any:function(){return 0!==this.count()},concat:w.concat,context:[],count:function(){return this.flatten().length},
|
110 |
+
each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=this.context;return b.length>a?new s(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new s(this.context,b)},flatten:function(){var a=[];return new s(this.context,a.concat.apply(a,this.toArray()))},join:w.join,indexOf:w.indexOf||function(a,b){for(var c=b||0,
|
111 |
+
d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,j,h,n,l=this.context,m,o,u=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(j=l.length;g<j;g++){var r=new s(l[g]);if("table"===b)f=c.call(r,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(r,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){o=this[g];"column-rows"===b&&(m=Ba(l[g],u.opts));h=0;for(n=o.length;h<n;h++)f=o[h],f=
|
112 |
+
"cell"===b?c.call(r,l[g],f.row,f.column,g,h):c.call(r,l[g],f,g,h,m),f!==k&&e.push(f)}}return e.length||d?(a=new s(l,a?e.concat.apply([],e):e),b=a.selector,b.rows=u.rows,b.cols=u.cols,b.opts=u.opts,a):this},lastIndexOf:w.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new s(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},
|
113 |
+
pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return gb(this,a,b,0,this.length,1)},reduceRight:w.reduceRight||function(a,b){return gb(this,a,b,this.length-1,-1,-1)},reverse:w.reverse,selector:null,shift:w.shift,slice:function(){return new s(this.context,this)},sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new s(this.context,qa(this))},unshift:w.unshift});s.extend=function(a,
|
114 |
+
b,c){if(c.length&&b&&(b instanceof s||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=b.apply(a,arguments);s.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)?{}:f.val,b[f.name].__dt_wrapper=!0,s.extend(a,b[f.name],f.propExt)}};s.register=o=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)s.register(a[c],b);else for(var e=a.split("."),f=Rb,g,j,c=0,d=e.length;c<d;c++){g=(j=-1!==
|
115 |
+
e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var n=f.length;i<n;i++)if(f[i].name===g){i=f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};s.registerPlural=u=function(a,b,c){s.register(a,c);s.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof s?a.length?h.isArray(a[0])?new s(a.context,a[0]):a[0]:k:a})};o("tables()",function(a){var b;if(a){b=s;var c=this.context;if("number"===
|
116 |
+
typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,d);return c[a]}).toArray();b=new b(a)}else b=this;return b});o("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new s(b[0]):a});u("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});u("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});u("tables().header()",
|
117 |
+
"table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});u("tables().footer()","table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});u("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});o("draw()",function(a){return this.iterator("table",function(b){"page"===a?N(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),S(b,!1===a))})});o("page()",function(a){return a===
|
118 |
+
k?this.page.info().page:this.iterator("table",function(b){Sa(b,a)})});o("page.info()",function(){if(0===this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});o("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength:
|
119 |
+
k:this.iterator("table",function(b){Qa(b,a)})});var Sb=function(a,b,c){if(c){var d=new s(a);d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))S(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();sa(a,[],function(c){na(a);for(var c=ta(a,c),d=0,e=c.length;d<e;d++)M(a,c[d]);S(a,b);C(a,!1)})}};o("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});o("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});o("ajax.reload()",function(a,
|
120 |
+
b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});o("ajax.url()",function(a){var b=this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)?b.ajax.url=a:b.ajax=a})});o("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});var Za=function(a,b,c,d,e){var f=[],g,j,i,n,l,m;i=typeof b;if(!b||"string"===i||"function"===
|
121 |
+
i||b.length===k)b=[b];i=0;for(n=b.length;i<n;i++){j=b[i]&&b[i].split&&!b[i].match(/[\[\(:]/)?b[i].split(","):[b[i]];l=0;for(m=j.length;l<m;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=x.selector[a];if(a.length){i=0;for(n=a.length;i<n;i++)f=a[i](d,e,f)}return qa(f)},$a=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},ab=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=
|
122 |
+
a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Ba=function(a,b){var c,d,e,f=[],g=a.aiDisplay;c=a.aiDisplayMaster;var j=b.search;d=b.order;e=b.page;if("ssp"==y(a))return"removed"===j?[]:W(0,c.length);if("current"==e){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"==d||"applied"==d)f="none"==j?c.slice():"applied"==j?g.slice():h.map(c,function(a){return-1===h.inArray(a,g)?a:null});else if("index"==d||"original"==d){c=0;for(d=a.aoData.length;c<
|
123 |
+
d;c++)"none"==j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};o("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=$a(b),c=this.iterator("table",function(c){var e=b,f;return Za("row",a,function(a){var b=Nb(a);if(b!==null&&!e)return[b];f||(f=Ba(c,e));if(b!==null&&h.inArray(b,f)!==-1)return[b];if(a===null||a===k||a==="")return f;if(typeof a==="function")return h.map(f,function(b){var e=c.aoData[b];return a(b,e._aData,e.nTr)?b:null});
|
124 |
+
b=Qb(ia(c.aoData,f,"nTr"));if(a.nodeName){if(a._DT_RowIndex!==k)return[a._DT_RowIndex];if(a._DT_CellIndex)return[a._DT_CellIndex.row];b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){var i=c.aIds[a.replace(/^#/,"")];if(i!==k)return[i.idx]}return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()},c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});o("rows().nodes()",function(){return this.iterator("row",function(a,
|
125 |
+
b){return a.aoData[b].nTr||k},1)});o("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return ia(a.aoData,b,"_aData")},1)});u("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});u("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){ca(b,c,a)})});u("rows().indexes()","row().index()",function(){return this.iterator("row",function(a,
|
126 |
+
b){return b},1)});u("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new s(c,b)});u("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,n,l;e.splice(c,1);g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(n=l.length;i<
|
127 |
+
n;i++)l[i]._DT_CellIndex.row=g}oa(b.aiDisplayMaster,c);oa(b.aiDisplay,c);oa(a[d],c,!1);0<b._iRecordsDisplay&&b._iRecordsDisplay--;Ra(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});o("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()?h.push(ma(b,c)[0]):h.push(M(b,c));return h},1),c=this.rows(-1);
|
128 |
+
c.pop();h.merge(c,b);return c});o("row()",function(a,b){return ab(this.rows(a,b))});o("row().data()",function(a){var b=this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:k;b[0].aoData[this[0]]._aData=a;ca(b[0],this[0],"data");return this});o("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});o("row.add()",function(a){a instanceof h&&a.length&&(a=a[0]);var b=this.iterator("table",function(b){return a.nodeName&&
|
129 |
+
"TR"===a.nodeName.toUpperCase()?ma(b,a)[0]:M(b,a)});return this.row(b[0])});var bb=function(a,b){var c=a.context;if(c.length&&(c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=k,c._details=k},Tb=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new s(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");0<D(g,
|
130 |
+
"_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a];a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",function(a,b){if(e===b)for(var c,d=aa(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&bb(f,c)}))}}};o("row().child()",function(a,b){var c=this.context;
|
131 |
+
if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1===a)bb(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=aa(d),e.push(c[0]))};f(a,b);c._details&&c._details.detach();c._details=h(e);c._detailsShow&&
|
132 |
+
c._details.insertAfter(c.nTr)}return this});o(["row().child.show()","row().child().show()"],function(){Tb(this,!0);return this});o(["row().child.hide()","row().child().hide()"],function(){Tb(this,!1);return this});o(["row().child.remove()","row().child().remove()"],function(){bb(this);return this});o("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var bc=/^([^:]+):(name|visIdx|visible)$/,Ub=function(a,b,c,d,e){for(var c=
|
133 |
+
[],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};o("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=$a(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,j=D(g,"sName"),i=D(g,"nTh");return Za("column",e,function(a){var b=Nb(a);if(a==="")return W(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Ba(c,f);return h.map(g,function(b,f){return a(f,Ub(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(bc):"";if(k)switch(k[2]){case "visIdx":case "visible":b=
|
134 |
+
parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});return[m[m.length+b]]}return[Z(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},1);c.selector.cols=a;c.selector.opts=b;return c});u("columns().header()",
|
135 |
+
"column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});u("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});u("columns().data()","column().data()",function(){return this.iterator("column-rows",Ub,1)});u("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});u("columns().cache()","column().cache()",
|
136 |
+
function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ia(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});u("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ia(a.aoData,e,"anCells",b)},1)});u("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData,i,n,l;if(a!==k&&g.bVisible!==a){if(a){var m=
|
137 |
+
h.inArray(!0,D(f,"bVisible"),c+1);i=0;for(n=j.length;i<n;i++)l=j[i].nTr,f=j[i].anCells,l&&l.insertBefore(f[c],f[m]||null)}else h(D(b.aoData,"anCells",c)).detach();g.bVisible=a;ea(b,b.aoHeader);ea(b,b.aoFooter);xa(b)}});a!==k&&(this.iterator("column",function(c,e){r(c,null,"column-visibility",[c,e,a,b])}),(b===k||b)&&this.columns.adjust());return c});u("columns().indexes()","column().index()",function(a){return this.iterator("column",function(b,c){return"visible"===a?$(b,c):c},1)});o("columns.adjust()",
|
138 |
+
function(){return this.iterator("table",function(a){Y(a)},1)});o("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return Z(c,b);if("fromData"===a||"toVisible"===a)return $(c,b)}});o("column()",function(a,b){return ab(this.columns(a,b))});o("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table",function(b){var d=a,e=$a(c),f=
|
139 |
+
b.aoData,g=Ba(b,e),j=Qb(ia(f,g,"anCells")),i=h([].concat.apply([],j)),l,n=b.aoColumns.length,m,o,u,s,r,v;return Za("cell",d,function(a){var c=typeof a==="function";if(a===null||a===k||c){m=[];o=0;for(u=g.length;o<u;o++){l=g[o];for(s=0;s<n;s++){r={row:l,column:s};if(c){v=f[l];a(r,B(b,l,s),v.anCells?v.anCells[s]:null)&&m.push(r)}else m.push(r)}}return m}if(h.isPlainObject(a))return[a];c=i.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray();if(c.length||
|
140 |
+
!a.nodeName)return c;v=h(a).closest("*[data-dt-row]");return v.length?[{row:v.data("dt-row"),column:v.data("dt-column")}]:[]},b,e)});var d=this.columns(b,c),e=this.rows(a,c),f,g,j,i,n,l=this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(n=d[b].length;i<n;i++)f.push({row:e[b][g],column:d[b][i]})}return f},1);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});u("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&
|
141 |
+
a.anCells?a.anCells[c]:k},1)});o("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});u("cells().cache()","cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});u("cells().render()","cell().render()",function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});u("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,
|
142 |
+
b,c){return{row:b,column:c,columnVisible:$(a,c)}},1)});u("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){ca(b,c,a,d)})});o("cell()",function(a,b,c){return ab(this.cells(a,b,c))});o("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],c[0].row,c[0].column):k;ib(b[0],c[0].row,c[0].column,a);ca(b[0],c[0].row,"data",c[0].column);return this});o("order()",function(a,b){var c=this.context;if(a===k)return 0!==
|
143 |
+
c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:a.length&&!h.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting=a.slice()})});o("order.listener()",function(a,b,c){return this.iterator("table",function(d){La(d,a,b,c)})});o("order.fixed()",function(a){if(!a){var b=this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});o(["columns().order()",
|
144 |
+
"column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});o("search()",function(a,b,c,d){var e=this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&fa(e,h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});u("columns().search()","column().search()",function(a,
|
145 |
+
b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),fa(e,e.oPreviousSearch,1))})});o("state()",function(){return this.context.length?this.context[0].oSavedState:null});o("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});o("state.loaded()",function(){return this.context.length?
|
146 |
+
this.context[0].oLoadedState:null});o("state.save()",function(){return this.iterator("table",function(a){xa(a)})});m.versionCheck=m.fnVersionCheck=function(a){for(var b=m.version.split("."),a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;if(a instanceof m.Api)return!0;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?
|
147 |
+
h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new s(c):c};m.camelToHungarian=I;o("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){o(b+"()",function(){var a=Array.prototype.slice.call(arguments);
|
148 |
+
a[0]=h.map(a[0].split(/\s/),function(a){return!a.match(/\.dt\b/)?a+".dt":a}).join(" ");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});o("clear()",function(){return this.iterator("table",function(a){na(a)})});o("settings()",function(){return new s(this.context,this.context)});o("init()",function(){var a=this.context;return a.length?a[0].oInit:null});o("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});o("destroy()",function(a){a=a||
|
149 |
+
!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),o;b.bDestroying=!0;r(b,"aoDestroyCallback","destroy",[b]);a||(new s(b)).columns().visible(!0);k.off(".DT").find(":not(tbody *)").off(".DT");h(E).off(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));
|
150 |
+
b.aaSorting=[];b.aaSortingFixed=[];wa(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),(o=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%o])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,
|
151 |
+
1)})});h.each(["column","row","cell"],function(a,b){o(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,n){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,n)})})});o("i18n()",function(a,b,c){var d=this.context[0],a=Q(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);return a.replace("%d",c)});m.version="1.10.16";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow=
|
152 |
+
{nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,
|
153 |
+
sWidthOrig:null};m.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,
|
154 |
+
this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+
|
155 |
+
"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",
|
156 |
+
sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};
|
157 |
+
X(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};X(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,
|
158 |
+
bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],
|
159 |
+
aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,
|
160 |
+
aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,
|
161 |
+
b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};m.ext=x={buttons:{},classes:{},build:"dt/dt-1.10.16",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},
|
162 |
+
order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature,oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",
|
163 |
+
sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",
|
164 |
+
sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var Kb=m.ext.pager;h.extend(Kb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ha(a,
|
165 |
+
b)]},simple_numbers:function(a,b){return["previous",ha(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ha(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ha(a,b),"last"]},_numbers:ha,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},n,l,m=0,o=function(b,d){var k,s,u,r,v=function(b){Sa(a,b.data.action,true)};k=0;for(s=d.length;k<s;k++){r=d[k];if(h.isArray(r)){u=
|
166 |
+
h("<"+(r.DT_el||"div")+"/>").appendTo(b);o(u,r)}else{n=null;l="";switch(r){case "ellipsis":b.append('<span class="ellipsis">…</span>');break;case "first":n=j.sFirst;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":n=j.sPrevious;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":n=j.sNext;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":n=j.sLast;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:n=r+1;l=e===r?g.sPageButtonActive:""}if(n!==null){u=h("<a>",{"class":g.sPageButton+
|
167 |
+
" "+l,"aria-controls":a.sTableId,"aria-label":i[r],"data-dt-idx":m,tabindex:a.iTabIndex,id:c===0&&typeof r==="string"?a.sTableId+"_"+r:null}).html(n).appendTo(b);Va(u,{action:r},v);m++}}}},s;try{s=h(b).find(G.activeElement).data("dt-idx")}catch(u){}o(h(b).empty(),d);s!==k&&h(b).find("[data-dt-idx="+s+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return Ya(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&!Zb.test(a))return null;var b=Date.parse(a);
|
168 |
+
return null!==b&&!isNaN(b)||L(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return Ya(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c,!0)?"html-num-fmt"+c:null},function(a){return L(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(m.ext.type.search,{html:function(a){return L(a)?a:"string"===typeof a?a.replace(Mb," ").replace(Aa,""):""},string:function(a){return L(a)?
|
169 |
+
a:"string"===typeof a?a.replace(Mb," "):a}});var za=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Ob(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){return Date.parse(a)||-Infinity},"html-pre":function(a){return L(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return L(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<
|
170 |
+
b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});cb("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);
|
171 |
+
h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var Vb=function(a){return"string"===typeof a?a.replace(/</g,"<").replace(/>/g,">").replace(/"/g,
|
172 |
+
"""):a};m.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return Vb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:Vb}}};h.extend(m.ext.internal,{_fnExternApiFunc:Lb,_fnBuildAjax:sa,_fnAjaxUpdate:kb,_fnAjaxParameters:tb,_fnAjaxUpdateDraw:ub,
|
173 |
+
_fnAjaxDataSrc:ta,_fnAddColumn:Da,_fnColumnOptions:ja,_fnAdjustColumnSizing:Y,_fnVisibleToColumnIndex:Z,_fnColumnIndexToVisible:$,_fnVisbleColumns:aa,_fnGetColumns:la,_fnColumnTypes:Fa,_fnApplyColumnDefs:hb,_fnHungarianMap:X,_fnCamelToHungarian:I,_fnLanguageCompat:Ca,_fnBrowserDetect:fb,_fnAddData:M,_fnAddTr:ma,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:ib,
|
174 |
+
_fnSplitObjNotation:Ia,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:R,_fnGetDataMaster:Ja,_fnClearTable:na,_fnDeleteIndex:oa,_fnInvalidate:ca,_fnGetRowElements:Ha,_fnCreateTr:Ga,_fnBuildHead:jb,_fnDrawHead:ea,_fnDraw:N,_fnReDraw:S,_fnAddOptionsHtml:mb,_fnDetectHeader:da,_fnGetUniqueThs:ra,_fnFeatureHtmlFilter:ob,_fnFilterComplete:fa,_fnFilterCustom:xb,_fnFilterColumn:wb,_fnFilter:vb,_fnFilterCreateSearch:Oa,_fnEscapeRegex:Pa,_fnFilterData:yb,_fnFeatureHtmlInfo:rb,_fnUpdateInfo:Bb,_fnInfoMacros:Cb,_fnInitialise:ga,
|
175 |
+
_fnInitComplete:ua,_fnLengthChange:Qa,_fnFeatureHtmlLength:nb,_fnFeatureHtmlPaginate:sb,_fnPageChange:Sa,_fnFeatureHtmlProcessing:pb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:qb,_fnScrollDraw:ka,_fnApplyToChildren:H,_fnCalculateColumnWidths:Ea,_fnThrottle:Na,_fnConvertToWidth:Db,_fnGetWidestNode:Eb,_fnGetMaxLenString:Fb,_fnStringToCss:v,_fnSortFlatten:V,_fnSort:lb,_fnSortAria:Hb,_fnSortListener:Ua,_fnSortAttachListener:La,_fnSortingClasses:wa,_fnSortData:Gb,_fnSaveState:xa,_fnLoadState:Ib,_fnSettingsFromNode:ya,
|
176 |
+
_fnLog:J,_fnMap:F,_fnBindAction:Va,_fnCallbackReg:z,_fnCallbackFire:r,_fnLengthOverflow:Ra,_fnRenderer:Ma,_fnDataSource:y,_fnRowAttributes:Ka,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
|
177 |
+
|
178 |
+
|
js/magnific-popup.min.js
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
/*! Magnific Popup - v1.1.0 - 2016-02-20
|
2 |
+
* http://dimsemenov.com/plugins/magnific-popup/
|
3 |
+
* Copyright (c) 2016 Dmitry Semenov; */
|
4 |
+
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">×</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: calendar, date, event, event calendar, events, events calendar, meeting, o
|
|
4 |
Requires at least: 3.9
|
5 |
Tested up to: 4.9
|
6 |
Requires PHP: 5.2
|
7 |
-
Stable tag: 1.1.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -18,11 +18,11 @@ Event Calendar WD is a responsive calendar plugin for organizing events. This Wo
|
|
18 |
|
19 |
= Event Calendar WD =
|
20 |
|
21 |
-
[Special Offer for all Premium Plugins](https://web-dorado.com/wordpress-plugins-bundle.html)
|
22 |
-
[WordPress Event Calendar WD](http://web-dorado.com/products/wordpress-event-calendar-wd.html)
|
23 |
-
[Demo](http://wpdemo.web-dorado.com/event-calendar-wd/)
|
24 |
-
[User Guide](https://web-dorado.com/wordpress-event-calendar-wd/installing.html)
|
25 |
-
[Support Forum](https://wordpress.org/support/plugin/event-calendar-wd)
|
26 |
|
27 |
|
28 |
https://www.youtube.com/watch?v=htmdAkRuIzw
|
@@ -32,23 +32,23 @@ Event Calendar WD is a user friendly plugin to create an event promotion website
|
|
32 |
|
33 |
|
34 |
== Benefits ==
|
35 |
-
* **Organize as many events as you wish** - With Event Calendar WD you can add unlimited number of events and calendars to your website. Whether you want to go for a one-time event, or add calendars to multiple posts and pages, that’s absolutely doable.
|
36 |
-
* **Events are easier to find** - Event Calendar WD is SEO-friendly, which means every event you add to your website is optimized for better visibility in search results.
|
37 |
-
* **Leverage power of social networks** - Don’t let your events go unnoticed. Enable social sharing buttons option on the calendar, and spread a word about your events across the major social platforms. Also, you can sell event tickets directly from your website if you get the Event Tickets Add-on available for the Premium version users.
|
38 |
* **Attract with detailed descriptions** - Give your visitors the most important information they need to know about any event. Provide event venue, mention the hosts and organizers, include images, relevant videos, event link, and mark up the event location on the Google Map.
|
39 |
-
* **Distinct appearance** - With the available view options, themes and the extensive list of the customization settings, you can fully personalize your calendars and give them a distinct look.
|
40 |
-
* **Full Control and flexibility** - Event Calendar WD is highly configurable, meaning you’ll get full control over how you display the events and calendars on your site. The user-friendly interface of the plugin, will make it easy to manage and customize your calendars.
|
41 |
-
* **Support** - The team provides timely and effective support to all its users. We keep standards high and response time low.
|
42 |
|
43 |
|
44 |
== What’s in it ==
|
45 |
-
|
46 |
= RESPONSIVE LAYOUT =
|
47 |
-
Event Calendar WD is responsive, designed to provide flawless calendar display across various devices and screen sizes.
|
48 |
|
49 |
= UNLIMITED EVENTS AND CALENDARS =
|
50 |
|
51 |
-
The number of the events as well as the calendars you can add to your website has no limit. Go ahead and fill your website with as many calendars as you want.
|
52 |
|
53 |
= EVENT CATEGORIES AND TAGS =
|
54 |
|
@@ -56,23 +56,23 @@ Organizing events on your calendars is super easy. You can assign categories to
|
|
56 |
|
57 |
= MULTIPLE EVENT DISPLAY VIEWS =
|
58 |
|
59 |
-
With Event Calendar WD you can have your calendars displayed in a number of cool views. Currently Month, Week, Day and List views are available in the free option of the plugin, whereas Posterboard, 4-Days and Map views come with the premium option.
|
60 |
|
61 |
= RECURRING EVENTS =
|
62 |
|
63 |
-
If you want to display repeating events on your calendar which are held on a regular basis recurring events option will save you a great deal of time (Premium version). Just specify the event repeating rate under the evet settings and it will automatically be displayed on the calendar.
|
64 |
|
65 |
-
= SOCIAL SHARING =
|
66 |
|
67 |
-
You can display social sharing buttons on the calendars and let your visitors share your events on Facebook, Google Plus, and Twitter with just a click.
|
68 |
|
69 |
= CALENDAR WIDGET =
|
70 |
|
71 |
-
The calendars are added to the posts and pages with a shortcode, but if you want to display a nice calendar widget on the sidebar areas of your site, you can publish the calendar as a widget.
|
72 |
|
73 |
= CUSTOMIZABLE THEMES =
|
74 |
|
75 |
-
The Premium version of the plugin comes with five customizable calendar themes, that let you personalize the design of you calendars. You can set custom settings for almost every part of the calendar, including overall calendar colors, header, views,pagination, and events. Moreover, you can add new calendar themes with your own styling features.
|
76 |
|
77 |
= GOOGLE MAPS INTEGRATION =
|
78 |
|
@@ -82,49 +82,49 @@ The plugin is integrated with Google Maps to help you display event locations. S
|
|
82 |
|
83 |
If you want some additional functionality, like displaying upcoming events, selling online tickets, showing countdown for the events, and let your visitors add events on the calendar from the frontend, there are 14 available add-ons to choose from. Please note that calendar add-ons work with Premium version only. Find the full list of the add-on below.
|
84 |
|
85 |
-
[Event Tickets](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/event-tickets.html)
|
86 |
-
[Frontend Event Management](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/frontend-event-management.html)
|
87 |
-
[Upcoming Events Widget](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/upcoming-events.html)
|
88 |
-
[Filter](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/filter.html)
|
89 |
-
[Subscribe](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/subscribe.html)
|
90 |
-
[Countdown](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/countdown.html)
|
91 |
-
[Google Calendar Integration](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/google-calendar-integration.html)
|
92 |
-
[iCal Integration](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/ical-integration.html)
|
93 |
-
[Facebook Integration](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/facebook-integration.html)
|
94 |
-
[Import/Export](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/import-export.html)
|
95 |
-
[Custom Fields](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/custom-fields.html)
|
96 |
-
[Views](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/views.html)
|
97 |
-
[Export to GCal/ICal](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/export.html)
|
98 |
-
[Embed](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/embed.html)
|
99 |
|
100 |
= SETTINGS/CUSTOMIZATION =
|
101 |
*Some customizations described here are available in Premium version. Please refer to feature summary for additional info.
|
102 |
|
103 |
-
You can add calendars to your website either by inserting the generated shortcode into your posts and pages, or display it as a widget on the sidebar areas of your site. The admin panel of the plugin is pretty straightforward and user-friendly. To add a new calendar you just have to go to the admin panel, click on the “Add a new Calendar” tab and it will open up a new page. Afterwards you need to give a title to the calendar and choose a theme for it. Once you’re done you can preview the calendar, save it as a draft, or publish it right away. You can add events to the calendar either from the admin panel and later assign them to the selected calendars, or by clicking on the date on the calendar itself. To have your event added to the calendar , you need to specify the event name,choose the dates, select the event venue,provide a URL and a relevant video URL if available.For recurring events, you just need to specify the event repeating cycles, such as daily, weekly, monthly, or yearly. Under the settings tab you’ll find an extensive list of the general settings for the calendars that you can adjust to your needs. Here you can select the date display format, enable comments for the events, choose how the events will be organized, enable social icons, and a lot more. You can create new event categories and tags by giving them a title, adding a slug and a description. You can apply the tags and categories to multiple events at ones. For more information about the customization of the calendar settings, please refer to the plugin installation instructions below.
|
104 |
|
105 |
|
106 |
-
[Premium version adds](http://web-dorado.com/products/wordpress-event-calendar-wd.html)
|
107 |
|
108 |
-
* Recurring events
|
109 |
-
* 5 beautiful customizable themes
|
110 |
-
* 3 premium views: Posterboard, 4-days and Map
|
111 |
-
* 14 add-ons to expand default functionality
|
112 |
|
113 |
|
114 |
-
###IMPORTANT:
|
115 |
If you think you found a bug in Event Calendar WD, or have a problem/question concerning the plugin, please check out [Support Forum](https://wordpress.org/support/plugin/event-calendar-wd) . In case you do not find a solution here, feel free to contact us using [this form](https://web-dorado.com/support/contact-us.html).
|
116 |
|
117 |
|
118 |
-
|
119 |
== Screenshots ==
|
120 |
|
121 |
-
1. WordPress Event Calendar WD - Grey theme
|
122 |
-
2. WordPress Event Calendar WD - Calendar
|
123 |
-
3. WordPress Event Calendar WD - Calendar With Filter
|
124 |
-
4. WordPress Event Calendar WD - Week View
|
125 |
-
5. WordPress Event Calendar WD - Event
|
126 |
-
6. WordPress Event Calendar WD - Theme Settings
|
127 |
-
7. WordPress Event Calendar WD - Create Event
|
128 |
8. WordPress Event Calendar WD - Edit Venue
|
129 |
|
130 |
== Frequently Asked Questions ==
|
@@ -269,367 +269,430 @@ This add-on comes handy, when you require meeting scheduling and appointment boo
|
|
269 |
|
270 |
Tune up Event Calendar WD Pro with Frontend Event Management add-on, and set up a powerful online reservation calendar on your WordPress website!
|
271 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
|
273 |
|
274 |
== Installation ==
|
275 |
|
276 |
-
#### Thank you for your interest in Event Calendar WD.
|
277 |
|
278 |
-
### Minimum requirements.
|
279 |
-
* Wordpress 3.9+
|
280 |
-
* PHP 5.x
|
281 |
-
* MySQL 5.x
|
282 |
|
283 |
-
### Perform a new installation
|
284 |
|
285 |
-
After downloading the ZIP file of the Event Calendar WD plugin,
|
286 |
|
287 |
-
1. Log in to the administrator panel.
|
288 |
-
2. Go to Plugins Add > New > Upload.
|
289 |
-
3. Click "Choose file" ("Browse") and select the downloaded zip file of the event calendar.
|
290 |
-
*For Mac Users*
|
291 |
-
*Go to your Downloads folder and locate the folder with the Event Calendar WD. Right-click on the folder and select Compress. Now you have a newly created .zip file which can be installed as described here.*
|
292 |
-
4. Click "Install Now" button.
|
293 |
-
5. Click "Activate Plugin" button for activating the Event Calendar WD.
|
294 |
6. If the installation does not succeed, please [click here to contact us](https://web-dorado.com/support/contact-us.html).
|
295 |
|
|
|
|
|
|
|
296 |
== Changelog ==
|
297 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
298 |
= 1.1.15 ==
|
299 |
-
* Improved: Fully translatable calendar plugin and extensions. Suggest your translations here: https://translate.wordpress.org/projects/wp-plugins/event-calendar-wd
|
300 |
-
* Improved: Frontend styles of single event, venue and organizer CPT
|
301 |
-
* Changed: Styles of filters extension (Premium)
|
302 |
-
* Changed: Some metaboxes moved to higher position
|
303 |
|
304 |
= 1.1.14 =
|
305 |
-
* Changed: create_function is deprecated in PHP 7.2
|
306 |
-
* Changed: Sort organizers and venues by title not slug in post type archive
|
307 |
-
* Improved: Styles of Gutenberg block popup
|
308 |
-
* Fixed: Styles of free and premium versions synchronized
|
309 |
|
310 |
= 1.1.13 =
|
311 |
-
* Added: Gutenberg integration
|
312 |
-
* Fixed: Google Maps zoom
|
313 |
-
* Improved: Russian translation
|
314 |
|
315 |
= 1.1.12 =
|
316 |
-
* Improved: Change default calendar using calendar list in dashboard
|
317 |
-
* Changed: Calendar add-ons and themes do not have separate menu anymore
|
318 |
-
* Changed: Updates and functionality removed (Premium)
|
319 |
|
320 |
= 1.1.11 =
|
321 |
-
* Fixed: Bug on PHP 5.3 version
|
322 |
|
323 |
= 1.1.10 =
|
324 |
-
* Changed: Introducing brand new free plugin: SEO by 10Web
|
325 |
|
326 |
= 1.1.9 =
|
327 |
-
* Changed: Deactivation popup.
|
328 |
-
* Fixed: Notice in single event page.
|
329 |
|
330 |
= 1.1.8 =
|
331 |
-
* Changed: Web-Dorado links
|
332 |
|
333 |
= 1.1.7 =
|
334 |
-
* New: Option to set zoom level in maps view (Pro)
|
335 |
-
* Fixed: Map displayed without any event for that month (Pro)
|
336 |
-
* Changed: Minor: WD library updated to version 1.0.12
|
337 |
|
338 |
= 1.1.6 =
|
339 |
-
* Fixed: Conflict with some plugins on calendar frontend
|
340 |
|
341 |
= 1.1.5 =
|
342 |
-
* Changed: Show notification to install Backup WD plugin only on plugin pages.
|
343 |
|
344 |
= 1.1.4 =
|
345 |
-
* Changed: Introducing Backup WD plugin
|
346 |
|
347 |
= 1.1.3 =
|
348 |
* Changed: Redirect after activation removed
|
349 |
* Changed: WD library updated to version 1.0.11
|
350 |
|
351 |
= 1.1.2 =
|
352 |
-
* New: Option to show event timezones on frontend
|
353 |
|
354 |
= 1.1.1 =
|
355 |
-
* Changed: Add "ecwd_hide_old_events"=1 as a custom meta field to calendar in order to hide past events and months
|
356 |
-
* Fixed: PHP notice in events category page when there is no event
|
357 |
-
* Fixed: JS error when trying to save event with no date
|
358 |
-
* Fixed: DB changes on silent activation
|
359 |
-
* Improved: Compatibility of templates for single event and event taxonomy with WooCommerce-compatible themes
|
360 |
|
361 |
= 1.1.0 =
|
362 |
-
* Changed: Improved UI of venue editor in event page
|
363 |
-
* Fixed: Displayed date and time for one day event
|
364 |
-
* Fixed: Fatal error if PHP Calendar module not loaded
|
365 |
-
* Fixed: Add new venue from event editor page
|
366 |
|
367 |
= 1.0.97 =
|
368 |
-
* Fixed: Remove duplicated post contents form venues and organizers
|
369 |
|
370 |
= 1.0.96 =
|
371 |
-
* Fixed: Description on event post
|
372 |
|
373 |
= 1.0.95 =
|
374 |
-
* Changed: Plugin interface
|
375 |
-
* Fixed: Minor bugs
|
376 |
|
377 |
= 1.0.94 =
|
378 |
-
* Fixed: Security issue
|
379 |
|
380 |
= 1.0.93 =
|
381 |
-
* Fixed: Bug on organizer view
|
382 |
|
383 |
= 1.0.91 =
|
384 |
-
* Added: Visible event count per day
|
385 |
-
* Fixed: Weekly repeating events
|
386 |
|
387 |
= 1.0.90 =
|
388 |
-
* Fixed: Helper bar
|
389 |
-
* Fixed: events archive page
|
390 |
-
* Fixed: events category archive page
|
391 |
|
392 |
= 1.0.89 =
|
393 |
-
* Fixed: Theme update issue
|
394 |
-
* Fixed: Notices
|
395 |
|
396 |
= 1.0.88 =
|
397 |
-
* Added: Helper bar
|
398 |
|
399 |
= 1.0.87 =
|
400 |
-
* Added: Overview page
|
401 |
-
* Changed: Deactivation
|
402 |
|
403 |
= 1.0.86 =
|
404 |
-
* Added: "Do not show past events" option
|
405 |
|
406 |
= 1.0.85 =
|
407 |
-
* Fixed: Minor bug
|
408 |
-
* Fixed: Bug on day view
|
409 |
|
410 |
= 1.0.84 =
|
411 |
-
* Added: Script keys
|
412 |
-
* Fixed: Bug on widget
|
413 |
-
* Fixed: Styles
|
414 |
-
* Fixed: Back link
|
415 |
|
416 |
= 1.0.83 =
|
417 |
-
* Fixed: Calendar search
|
418 |
|
419 |
= 1.0.82 =
|
420 |
-
* Changed: Featured plugins
|
421 |
|
422 |
= 1.0.81 =
|
423 |
-
* Fixed: Bug on widget list view
|
424 |
-
* Fixed: Styles
|
425 |
|
426 |
= 1.0.80 =
|
427 |
-
* Fixed: Clear cache option notice
|
428 |
-
* Added: Translations
|
429 |
|
430 |
= 1.0.79 =
|
431 |
-
* Added: Widget theme
|
432 |
|
433 |
= 1.0.78 =
|
434 |
-
* Added: Event description max length option
|
435 |
|
436 |
= 1.0.77 =
|
437 |
-
* Added: Google maps style option
|
438 |
-
* Added: Latitude,Longitude inputs in event-meta,venue-meta pages
|
439 |
|
440 |
= 1.0.76 =
|
441 |
-
* Fixed: Data structures
|
442 |
-
* Fixed: Bug on Repeating events
|
443 |
|
444 |
= 1.0.75 =
|
445 |
-
* Changed: Backend menu
|
446 |
|
447 |
= 1.0.74 =
|
448 |
-
* Changed: Organizers, venues cache
|
449 |
-
* Fixed: Venue edit in event
|
450 |
-
* Fixed: Gmap js issue
|
451 |
|
452 |
= 1.0.73 =
|
453 |
-
* Changed: Settings structure
|
454 |
-
* Fixed: Minor bug
|
455 |
|
456 |
= 1.0.72 =
|
457 |
-
* Fixed: Minor bug
|
458 |
|
459 |
= 1.0.71 =
|
460 |
-
* Added: Enable sidebar in event page option
|
461 |
|
462 |
= 1.0.70 =
|
463 |
-
* Fixed: Bug on Google Maps
|
464 |
|
465 |
= 1.0.69 =
|
466 |
-
* Fixed: Bug on Views add-on
|
467 |
-
* Changed: Featured themes, plugins pages
|
468 |
|
469 |
= 1.0.68 =
|
470 |
-
* Fixed: List view pagination
|
471 |
-
* Fixed: Week view start
|
472 |
|
473 |
= 1.0.67 =
|
474 |
-
* Added: Calendar start date option
|
475 |
|
476 |
-
= 1.0.65 =
|
477 |
* Added: Google Maps API Key
|
478 |
|
479 |
-
= 1.0.64 =
|
480 |
-
* Fixed: Translations
|
481 |
-
* Changed: Open Google map when Marker is clicked option
|
482 |
-
* Fixed: Mark all days of multi-day event
|
483 |
|
484 |
-
= 1.0.63 =
|
485 |
-
* Added: Show events detail on hover option
|
486 |
|
487 |
-
= 1.0.62 =
|
488 |
-
* Added: Grab the first post image option
|
489 |
|
490 |
= 1.0.61 =
|
491 |
-
* Fixed: Conflict with Page Builder by SiteOrigin
|
492 |
-
* Fixed: Bug on trashed events
|
493 |
|
494 |
= 1.0.60 =
|
495 |
-
* Added: Embed add-on
|
496 |
|
497 |
= 1.0.59 =
|
498 |
-
* Fixed: Bug on mini calendar
|
499 |
-
* Fixed: Bug on multi-day events
|
500 |
-
* Fixed: Bug on event pop-up
|
501 |
-
* Fixed: Bug on widget
|
502 |
|
503 |
= 1.0.58 =
|
504 |
-
* Added: Order of events archive page option
|
505 |
-
* Fixed: Minor bug
|
506 |
|
507 |
= 1.0.57 =
|
508 |
-
* Fixed: Translation
|
509 |
|
510 |
= 1.0.56 =
|
511 |
-
* Fixed: Minor bug
|
512 |
-
* Changed: Event popup position
|
513 |
|
514 |
= 1.0.55 =
|
515 |
-
* Fixed: List view events order
|
516 |
-
* Added: Organaizer on single event
|
517 |
-
* Added: Portuguese (Brazil) Translation
|
518 |
-
* Fixed: Description formatting
|
519 |
|
520 |
= 1.0.54 =
|
521 |
-
* New: Related events count option
|
522 |
|
523 |
= 1.0.53 =
|
524 |
-
* Added: Export to GCal/ICal add-on
|
525 |
|
526 |
= 1.0.52 =
|
527 |
-
* Added: Mark all days of multi-day event option
|
528 |
|
529 |
= 1.0.51 =
|
530 |
-
* Added: Config page
|
531 |
-
* Changed: Spanish Translation
|
532 |
-
* Changed: German Translation
|
533 |
-
* Changed: Featured plugins/themes page
|
534 |
-
* Changed: Event details popup direction for 4th day
|
535 |
-
* Fixed: Scroll issue in mobile
|
536 |
|
537 |
= 1.0.50 =
|
538 |
-
* Added: Event Subscribe add-on
|
539 |
|
540 |
= 1.0.49 =
|
541 |
-
* Added: Swedish translation by Marcel Króča and Slovak translation by Magnus Juven
|
542 |
-
* Fixed: Issue with featured image
|
543 |
-
* Fixed: Pointer bug
|
544 |
|
545 |
= 1.0.48 =
|
546 |
-
* Added: Wizard
|
547 |
-
* Added: Tour
|
548 |
-
* Added: Czech and Danish translation
|
549 |
|
550 |
= 1.0.47 =
|
551 |
-
* Added: Shortcode support on event description
|
552 |
|
553 |
= 1.0.46 =
|
554 |
* Added: Romanian translation (by Oana Tarce)
|
555 |
-
* Fixed: Bug for php version < 5.3
|
556 |
|
557 |
= 1.0.45 =
|
558 |
-
* Added: Latvian translation (by Intars G.)
|
559 |
-
* Fixed: Issue with venues dropdown in the back end
|
560 |
-
* Fixed: CSS issue in calendar views section for 'right to left' languages (e.g. arabic)
|
561 |
|
562 |
= 1.0.44 =
|
563 |
-
* Added: Croatian translation
|
564 |
-
* Added: Sample data
|
565 |
|
566 |
= 1.0.43 =
|
567 |
-
* Added: Option for no additional details text
|
568 |
|
569 |
= 1.0.42 =
|
570 |
-
* Fixed: Google structured data errors
|
571 |
-
* Changed: Event hover popup styles
|
572 |
|
573 |
= 1.0.41 =
|
574 |
-
* Added: New year promo notice
|
575 |
|
576 |
= 1.0.40 =
|
577 |
-
* Added: New theme
|
578 |
|
579 |
= 1.0.39 =
|
580 |
-
* Fixed: Date issue for php version < 5.3
|
581 |
-
* Fixed: German translations
|
582 |
|
583 |
= 1.0.38 =
|
584 |
-
* Added: Custom css option
|
585 |
|
586 |
= 1.0.37 =
|
587 |
-
* Added: Catalan language support(by Vicenc Huguet)
|
588 |
-
* Fixed: Views slider js issue
|
589 |
|
590 |
= 1.0.36 =
|
591 |
* Changed: Responsive pop-up styles
|
592 |
* Changed: Featured plugins
|
593 |
|
594 |
= 1.0.35 =
|
595 |
-
* Changed: Category page
|
596 |
* Added: Polish translation
|
597 |
|
598 |
= 1.0.34 =
|
599 |
-
* Fixed: Show events issue in list view
|
600 |
-
* Increased: Date range of events in venue and organizer pages
|
601 |
-
* Added: Event Tickets add-on
|
602 |
|
603 |
= 1.0.33 =
|
604 |
-
* Added: Date format option for list, week and day views
|
605 |
-
* Fixed: "Back" link in single event page
|
606 |
-
* Fixed: Shortcode default view issue
|
607 |
-
* Fixed: Norwegian language files
|
608 |
|
609 |
= 1.0.32 =
|
610 |
-
* Fixed: Dates translation issue in posterboard view
|
611 |
-
* Fixed: Venues show map issue for ajaxed themes
|
612 |
-
* Fixed: Views slider js issue
|
613 |
|
614 |
= 1.0.31 =
|
615 |
-
* Added: Day view option as default to widget
|
616 |
-
* Added: Close popup by escape
|
617 |
-
* Added: Finnish translation (by Håkan Mitts)
|
618 |
|
619 |
= 1.0.30 =
|
620 |
-
* Added: Mini calendar view for page
|
621 |
|
622 |
= 1.0.29 =
|
623 |
-
* Fixed: Norwegian language files name
|
624 |
|
625 |
= 1.0.28 =
|
626 |
-
* Added: ECWD Views add-on
|
627 |
-
* Added: Norwegian (Bokmål) and Norwegian (Nynorsk) languages support(by Vegard Innerdal)
|
628 |
|
629 |
= 1.0.27 =
|
630 |
-
* Changed: Added padding to event details for screens < 768
|
631 |
-
* Changed: Hide next/prev month names for screen < 768
|
632 |
-
* Fixed: More events popup bug
|
633 |
|
634 |
= 1.0.26 =
|
635 |
* New: Display Events in popup option
|
@@ -640,40 +703,40 @@ After downloading the ZIP file of the Event Calendar WD plugin,
|
|
640 |
* Changed: Notices show order
|
641 |
|
642 |
= 1.0.24 =
|
643 |
-
* Fixed: Events monthly repeat rate issue
|
644 |
-
* Added: Week view option to widget
|
645 |
-
* Added: Custom Fields add-on
|
646 |
|
647 |
= 1.0.23 =
|
648 |
-
* Added: Frontend events management add-on
|
649 |
-
* Fixed: Rewrite rules for custom permalinks structure
|
650 |
-
* Fixed: JS error in related events slider
|
651 |
-
* Added: Hungarian language support
|
652 |
-
* Added: Serbian language support
|
653 |
-
* Fixed: Translations for Dutch
|
654 |
|
655 |
= 1.0.22 =
|
656 |
-
* Added: Ajaxed themes support
|
657 |
-
* Fixed: Next month link issue
|
658 |
-
* Changed: More events dialog
|
659 |
-
* Added: Support/rate us messages
|
660 |
|
661 |
= 1.0.21 =
|
662 |
-
* Fixed: JS error in widgets page
|
663 |
|
664 |
= 1.0.20 =
|
665 |
-
* Fixed: Show event url issue
|
666 |
-
* Added: "noindex, nofollow" to calendar links
|
667 |
-
* Added: Open pop in new tab option
|
668 |
-
* Added: Japanese support
|
669 |
|
670 |
= 1.0.19 =
|
671 |
* Minor bug fixed
|
672 |
|
673 |
= 1.0.18 =
|
674 |
-
* Added: Themes folder
|
675 |
-
* Changed: Related events title style
|
676 |
-
* Added: Apply category color to event title in event page option
|
677 |
|
678 |
= 1.0.17 =
|
679 |
* Fixed: Time format issue
|
@@ -685,7 +748,7 @@ After downloading the ZIP file of the Event Calendar WD plugin,
|
|
685 |
* Added: Show AM/PM option
|
686 |
|
687 |
= 1.0.14 =
|
688 |
-
* Fixed: Conflict with Avada theme
|
689 |
* Added: Date to events link
|
690 |
|
691 |
= 1.0.13 =
|
@@ -695,45 +758,45 @@ After downloading the ZIP file of the Event Calendar WD plugin,
|
|
695 |
* Changed: Calendar Add-ons page
|
696 |
|
697 |
= 1.0.10 =
|
698 |
-
* Added: Organizers and venues archive page order option
|
699 |
-
* Added: Show categories and tags in event page option
|
700 |
* Fixed: Featured image sizes in widget
|
701 |
|
702 |
= 1.0.9 =
|
703 |
-
* Fixed: Show google maps conflict with other plugins
|
704 |
-
* Fixed: Geolocation bug
|
705 |
-
* Fixed: Save organizer featured image issue
|
706 |
|
707 |
= 1.0.8 =
|
708 |
-
* Changed: Event page
|
709 |
-
* Added: Portuguese language
|
710 |
|
711 |
= 1.0.7 =
|
712 |
-
* New: Related events slider
|
713 |
-
* New: Enable/disable rewrite rule option
|
714 |
|
715 |
= 1.0.6 =
|
716 |
-
* Changed: Removed Add Venue link
|
717 |
-
* Fixed: Delete event from calendar page issue
|
718 |
|
719 |
= 1.0.5 =
|
720 |
-
* New: Events Filters in backend
|
721 |
-
* Fixed: Bug in shortcode
|
722 |
|
723 |
= 1.0.4 =
|
724 |
-
* Fixed: Bug in add/edit calendar
|
725 |
|
726 |
= 1.0.3 =
|
727 |
-
* New: Event template
|
728 |
-
* New: "Show map in event page" option
|
729 |
-
* Changed: "Repeat until" field is required
|
730 |
|
731 |
= 1.0.2 =
|
732 |
-
* Fixed: Minor bugs
|
733 |
|
734 |
= 1.0.1 =
|
735 |
-
* Fixed: Bug in Week view
|
736 |
-
* Fixed: Permalink bug
|
737 |
|
738 |
= 1.0.0 =
|
739 |
* Initial version
|
4 |
Requires at least: 3.9
|
5 |
Tested up to: 4.9
|
6 |
Requires PHP: 5.2
|
7 |
+
Stable tag: 1.1.16
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
18 |
|
19 |
= Event Calendar WD =
|
20 |
|
21 |
+
[Special Offer for all Premium Plugins](https://web-dorado.com/wordpress-plugins-bundle.html)
|
22 |
+
[WordPress Event Calendar WD](http://web-dorado.com/products/wordpress-event-calendar-wd.html)
|
23 |
+
[Demo](http://wpdemo.web-dorado.com/event-calendar-wd/)
|
24 |
+
[User Guide](https://web-dorado.com/wordpress-event-calendar-wd/installing.html)
|
25 |
+
[Support Forum](https://wordpress.org/support/plugin/event-calendar-wd)
|
26 |
|
27 |
|
28 |
https://www.youtube.com/watch?v=htmdAkRuIzw
|
32 |
|
33 |
|
34 |
== Benefits ==
|
35 |
+
* **Organize as many events as you wish** - With Event Calendar WD you can add unlimited number of events and calendars to your website. Whether you want to go for a one-time event, or add calendars to multiple posts and pages, that’s absolutely doable.
|
36 |
+
* **Events are easier to find** - Event Calendar WD is SEO-friendly, which means every event you add to your website is optimized for better visibility in search results.
|
37 |
+
* **Leverage power of social networks** - Don’t let your events go unnoticed. Enable social sharing buttons option on the calendar, and spread a word about your events across the major social platforms. Also, you can sell event tickets directly from your website if you get the Event Tickets Add-on available for the Premium version users.
|
38 |
* **Attract with detailed descriptions** - Give your visitors the most important information they need to know about any event. Provide event venue, mention the hosts and organizers, include images, relevant videos, event link, and mark up the event location on the Google Map.
|
39 |
+
* **Distinct appearance** - With the available view options, themes and the extensive list of the customization settings, you can fully personalize your calendars and give them a distinct look.
|
40 |
+
* **Full Control and flexibility** - Event Calendar WD is highly configurable, meaning you’ll get full control over how you display the events and calendars on your site. The user-friendly interface of the plugin, will make it easy to manage and customize your calendars.
|
41 |
+
* **Support** - The team provides timely and effective support to all its users. We keep standards high and response time low.
|
42 |
|
43 |
|
44 |
== What’s in it ==
|
45 |
+
|
46 |
= RESPONSIVE LAYOUT =
|
47 |
+
Event Calendar WD is responsive, designed to provide flawless calendar display across various devices and screen sizes.
|
48 |
|
49 |
= UNLIMITED EVENTS AND CALENDARS =
|
50 |
|
51 |
+
The number of the events as well as the calendars you can add to your website has no limit. Go ahead and fill your website with as many calendars as you want.
|
52 |
|
53 |
= EVENT CATEGORIES AND TAGS =
|
54 |
|
56 |
|
57 |
= MULTIPLE EVENT DISPLAY VIEWS =
|
58 |
|
59 |
+
With Event Calendar WD you can have your calendars displayed in a number of cool views. Currently Month, Week, Day and List views are available in the free option of the plugin, whereas Posterboard, 4-Days and Map views come with the premium option.
|
60 |
|
61 |
= RECURRING EVENTS =
|
62 |
|
63 |
+
If you want to display repeating events on your calendar which are held on a regular basis recurring events option will save you a great deal of time (Premium version). Just specify the event repeating rate under the evet settings and it will automatically be displayed on the calendar.
|
64 |
|
65 |
+
= SOCIAL SHARING =
|
66 |
|
67 |
+
You can display social sharing buttons on the calendars and let your visitors share your events on Facebook, Google Plus, and Twitter with just a click.
|
68 |
|
69 |
= CALENDAR WIDGET =
|
70 |
|
71 |
+
The calendars are added to the posts and pages with a shortcode, but if you want to display a nice calendar widget on the sidebar areas of your site, you can publish the calendar as a widget.
|
72 |
|
73 |
= CUSTOMIZABLE THEMES =
|
74 |
|
75 |
+
The Premium version of the plugin comes with five customizable calendar themes, that let you personalize the design of you calendars. You can set custom settings for almost every part of the calendar, including overall calendar colors, header, views,pagination, and events. Moreover, you can add new calendar themes with your own styling features.
|
76 |
|
77 |
= GOOGLE MAPS INTEGRATION =
|
78 |
|
82 |
|
83 |
If you want some additional functionality, like displaying upcoming events, selling online tickets, showing countdown for the events, and let your visitors add events on the calendar from the frontend, there are 14 available add-ons to choose from. Please note that calendar add-ons work with Premium version only. Find the full list of the add-on below.
|
84 |
|
85 |
+
[Event Tickets](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/event-tickets.html)
|
86 |
+
[Frontend Event Management](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/frontend-event-management.html)
|
87 |
+
[Upcoming Events Widget](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/upcoming-events.html)
|
88 |
+
[Filter](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/filter.html)
|
89 |
+
[Subscribe](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/subscribe.html)
|
90 |
+
[Countdown](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/countdown.html)
|
91 |
+
[Google Calendar Integration](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/google-calendar-integration.html)
|
92 |
+
[iCal Integration](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/ical-integration.html)
|
93 |
+
[Facebook Integration](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/facebook-integration.html)
|
94 |
+
[Import/Export](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/import-export.html)
|
95 |
+
[Custom Fields](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/custom-fields.html)
|
96 |
+
[Views](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/views.html)
|
97 |
+
[Export to GCal/ICal](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/export.html)
|
98 |
+
[Embed](https://web-dorado.com/products/wordpress-event-calendar-wd/add-ons/embed.html)
|
99 |
|
100 |
= SETTINGS/CUSTOMIZATION =
|
101 |
*Some customizations described here are available in Premium version. Please refer to feature summary for additional info.
|
102 |
|
103 |
+
You can add calendars to your website either by inserting the generated shortcode into your posts and pages, or display it as a widget on the sidebar areas of your site. The admin panel of the plugin is pretty straightforward and user-friendly. To add a new calendar you just have to go to the admin panel, click on the “Add a new Calendar” tab and it will open up a new page. Afterwards you need to give a title to the calendar and choose a theme for it. Once you’re done you can preview the calendar, save it as a draft, or publish it right away. You can add events to the calendar either from the admin panel and later assign them to the selected calendars, or by clicking on the date on the calendar itself. To have your event added to the calendar , you need to specify the event name,choose the dates, select the event venue,provide a URL and a relevant video URL if available.For recurring events, you just need to specify the event repeating cycles, such as daily, weekly, monthly, or yearly. Under the settings tab you’ll find an extensive list of the general settings for the calendars that you can adjust to your needs. Here you can select the date display format, enable comments for the events, choose how the events will be organized, enable social icons, and a lot more. You can create new event categories and tags by giving them a title, adding a slug and a description. You can apply the tags and categories to multiple events at ones. For more information about the customization of the calendar settings, please refer to the plugin installation instructions below.
|
104 |
|
105 |
|
106 |
+
[Premium version adds](http://web-dorado.com/products/wordpress-event-calendar-wd.html)
|
107 |
|
108 |
+
* Recurring events
|
109 |
+
* 5 beautiful customizable themes
|
110 |
+
* 3 premium views: Posterboard, 4-days and Map
|
111 |
+
* 14 add-ons to expand default functionality
|
112 |
|
113 |
|
114 |
+
###IMPORTANT:
|
115 |
If you think you found a bug in Event Calendar WD, or have a problem/question concerning the plugin, please check out [Support Forum](https://wordpress.org/support/plugin/event-calendar-wd) . In case you do not find a solution here, feel free to contact us using [this form](https://web-dorado.com/support/contact-us.html).
|
116 |
|
117 |
|
118 |
+
|
119 |
== Screenshots ==
|
120 |
|
121 |
+
1. WordPress Event Calendar WD - Grey theme
|
122 |
+
2. WordPress Event Calendar WD - Calendar
|
123 |
+
3. WordPress Event Calendar WD - Calendar With Filter
|
124 |
+
4. WordPress Event Calendar WD - Week View
|
125 |
+
5. WordPress Event Calendar WD - Event
|
126 |
+
6. WordPress Event Calendar WD - Theme Settings
|
127 |
+
7. WordPress Event Calendar WD - Create Event
|
128 |
8. WordPress Event Calendar WD - Edit Venue
|
129 |
|
130 |
== Frequently Asked Questions ==
|
269 |
|
270 |
Tune up Event Calendar WD Pro with Frontend Event Management add-on, and set up a powerful online reservation calendar on your WordPress website!
|
271 |
|
272 |
+
= 12. Is it possible to bring iCalendar events into Event Calendar? =
|
273 |
+
|
274 |
+
You can retrieve iCal events lists into the Premium version of this events management plugin using its iCal Integration add-on. Start importing iCal event list to your website calendar in a simple and practical way.
|
275 |
+
|
276 |
+
The iCal Integration add-on allows you to incorporate the events with the following ways:
|
277 |
+
* Fetch them from iCalendar, without physically having the events in Event Calendar plugin.
|
278 |
+
* Import the events and bring them to your WordPress site.
|
279 |
+
|
280 |
+
By importing the iCal events, you will bring their descriptions, details, location and settings. You can also choose the category from which you wish to import the events.
|
281 |
+
|
282 |
+
**Note:** Make sure the iCalendar you are trying to incorporate is shared publicly.
|
283 |
+
|
284 |
+
= 13. Can I allow users to buy tickets of events from my calendar? =
|
285 |
+
|
286 |
+
Sell the event subscription through Premium version of this WordPress events manager plugin and its Event Ticketing add-on. It allows you to organize event tickets and reservation easily.
|
287 |
+
|
288 |
+
This add-on is the solution for event ticketing feature, incorporating Event Calendar WD with WooCommerce. The tickets manager tool is easy-to-use. The integration between the add-on and WooCommerce plugin is automatic. With just a few clicks, users are able to buy tickets and make reservation for your event.
|
289 |
+
|
290 |
+
You can set the available dates for ticket sales, price, and stock on the event page. While the tickets are created within Event Calendar WD plugin, the payment of event ticketing is processed by WooCommerce. As the tickets are sold out, visitors will get notified about it with "Sold Out" banner.
|
291 |
+
|
292 |
+
**Note:** Make sure to install/activate WooCommerce plugin to your site in order to use Event Ticketing add-on.
|
293 |
+
|
294 |
+
= 14. How can I show a map of my event location? =
|
295 |
+
|
296 |
+
You can incorporate Google Maps with this event subscription plugin the following way. Edit the venue of your event, then mark **Show Google Maps** checkbox.
|
297 |
+
|
298 |
+
This WordPress events manager plugin will allow you to fill in **Address** of your venue, and Google Maps marker will be placed on the pointed location. You can also specify **Latitude** and **Longitude** of your address. This will make the event reservation process for your users easier.
|
299 |
+
|
300 |
+
Note, that Google Maps API key is required for the maps to display correctly on your events management plugin. To get it, visit [Google API Console](https://console.cloud.google.com/apis/).
|
301 |
+
|
302 |
+
= 15. Can I design the events lists on Month view with colored backgrounds? =
|
303 |
+
|
304 |
+
Using Event Calendar WD WordPress reservation plugin, you can add different background colors to events of each category. To do that, edit the category of your event list, and use **Category color** option to set the background.
|
305 |
+
|
306 |
+
Additionally, you can use **Image** option to place an icon for your event category.
|
307 |
+
|
308 |
+
= 16. How can I have separate event organizers for my events? =
|
309 |
+
|
310 |
+
Event Calendar WD plugin allows you to indicate organizers for each of your events. To begin creating organizers, visit Events > Organizers page, or use Add Organizer link at the bottom of event editor dashboard. Fill in the following information first:
|
311 |
+
|
312 |
+
* Title,
|
313 |
+
* Description,
|
314 |
+
* Phone,
|
315 |
+
* Website.
|
316 |
+
|
317 |
+
Press Save Organizer button. All created organizers will display here as a list.
|
318 |
+
|
319 |
+
In addition to simply showing the host of the event, organizers can contribute to event subscription feature of Subscribe add-on. Users are able to subscribe to events that belong to a selected organizer.
|
320 |
+
|
321 |
|
322 |
|
323 |
== Installation ==
|
324 |
|
325 |
+
#### Thank you for your interest in Event Calendar WD.
|
326 |
|
327 |
+
### Minimum requirements.
|
328 |
+
* Wordpress 3.9+
|
329 |
+
* PHP 5.x
|
330 |
+
* MySQL 5.x
|
331 |
|
332 |
+
### Perform a new installation
|
333 |
|
334 |
+
After downloading the ZIP file of the Event Calendar WD plugin,
|
335 |
|
336 |
+
1. Log in to the administrator panel.
|
337 |
+
2. Go to Plugins Add > New > Upload.
|
338 |
+
3. Click "Choose file" ("Browse") and select the downloaded zip file of the event calendar.
|
339 |
+
*For Mac Users*
|
340 |
+
*Go to your Downloads folder and locate the folder with the Event Calendar WD. Right-click on the folder and select Compress. Now you have a newly created .zip file which can be installed as described here.*
|
341 |
+
4. Click "Install Now" button.
|
342 |
+
5. Click "Activate Plugin" button for activating the Event Calendar WD.
|
343 |
6. If the installation does not succeed, please [click here to contact us](https://web-dorado.com/support/contact-us.html).
|
344 |
|
345 |
+
== Privacy Policy ==
|
346 |
+
Event Calendar WD plugin optionally embeds Google Maps on front end to display events on the map. Embedded Google Maps behave in the exact same way as if visitor has opened Google Maps site. Google may collect data about visitors, use cookies and tracking, included their logged-in experience interaction with Google platform. Google Maps are regulated under terms of Google privacy policy https://policies.google.com/privacy. The plugin asks for your consent to collect site administrator’s email address and site URL to offer customer support, deals and discounts on premium products and more.
|
347 |
+
|
348 |
== Changelog ==
|
349 |
|
350 |
+
= 1.1.16 ==
|
351 |
+
* New: GDPR compliance help
|
352 |
+
* New: WD library updated
|
353 |
+
* New: Use theme template for single event CPT
|
354 |
+
* Improved: UX when editing calendar and choosing and adding event to calendar
|
355 |
+
* Fixed: Event order on category/archive page by event date
|
356 |
+
* Fixed: Other minor bugs
|
357 |
+
* Fixed: Password protected events
|
358 |
+
* Changed: Date inputs hidden from event quick edit params
|
359 |
+
* Changed: Other optimizations under the hood
|
360 |
+
|
361 |
= 1.1.15 ==
|
362 |
+
* Improved: Fully translatable calendar plugin and extensions. Suggest your translations here: https://translate.wordpress.org/projects/wp-plugins/event-calendar-wd
|
363 |
+
* Improved: Frontend styles of single event, venue and organizer CPT
|
364 |
+
* Changed: Styles of filters extension (Premium)
|
365 |
+
* Changed: Some metaboxes moved to higher position
|
366 |
|
367 |
= 1.1.14 =
|
368 |
+
* Changed: create_function is deprecated in PHP 7.2
|
369 |
+
* Changed: Sort organizers and venues by title not slug in post type archive
|
370 |
+
* Improved: Styles of Gutenberg block popup
|
371 |
+
* Fixed: Styles of free and premium versions synchronized
|
372 |
|
373 |
= 1.1.13 =
|
374 |
+
* Added: Gutenberg integration
|
375 |
+
* Fixed: Google Maps zoom
|
376 |
+
* Improved: Russian translation
|
377 |
|
378 |
= 1.1.12 =
|
379 |
+
* Improved: Change default calendar using calendar list in dashboard
|
380 |
+
* Changed: Calendar add-ons and themes do not have separate menu anymore
|
381 |
+
* Changed: Updates and functionality removed (Premium)
|
382 |
|
383 |
= 1.1.11 =
|
384 |
+
* Fixed: Bug on PHP 5.3 version
|
385 |
|
386 |
= 1.1.10 =
|
387 |
+
* Changed: Introducing brand new free plugin: SEO by 10Web
|
388 |
|
389 |
= 1.1.9 =
|
390 |
+
* Changed: Deactivation popup.
|
391 |
+
* Fixed: Notice in single event page.
|
392 |
|
393 |
= 1.1.8 =
|
394 |
+
* Changed: Web-Dorado links
|
395 |
|
396 |
= 1.1.7 =
|
397 |
+
* New: Option to set zoom level in maps view (Pro)
|
398 |
+
* Fixed: Map displayed without any event for that month (Pro)
|
399 |
+
* Changed: Minor: WD library updated to version 1.0.12
|
400 |
|
401 |
= 1.1.6 =
|
402 |
+
* Fixed: Conflict with some plugins on calendar frontend
|
403 |
|
404 |
= 1.1.5 =
|
405 |
+
* Changed: Show notification to install Backup WD plugin only on plugin pages.
|
406 |
|
407 |
= 1.1.4 =
|
408 |
+
* Changed: Introducing Backup WD plugin
|
409 |
|
410 |
= 1.1.3 =
|
411 |
* Changed: Redirect after activation removed
|
412 |
* Changed: WD library updated to version 1.0.11
|
413 |
|
414 |
= 1.1.2 =
|
415 |
+
* New: Option to show event timezones on frontend
|
416 |
|
417 |
= 1.1.1 =
|
418 |
+
* Changed: Add "ecwd_hide_old_events"=1 as a custom meta field to calendar in order to hide past events and months
|
419 |
+
* Fixed: PHP notice in events category page when there is no event
|
420 |
+
* Fixed: JS error when trying to save event with no date
|
421 |
+
* Fixed: DB changes on silent activation
|
422 |
+
* Improved: Compatibility of templates for single event and event taxonomy with WooCommerce-compatible themes
|
423 |
|
424 |
= 1.1.0 =
|
425 |
+
* Changed: Improved UI of venue editor in event page
|
426 |
+
* Fixed: Displayed date and time for one day event
|
427 |
+
* Fixed: Fatal error if PHP Calendar module not loaded
|
428 |
+
* Fixed: Add new venue from event editor page
|
429 |
|
430 |
= 1.0.97 =
|
431 |
+
* Fixed: Remove duplicated post contents form venues and organizers
|
432 |
|
433 |
= 1.0.96 =
|
434 |
+
* Fixed: Description on event post
|
435 |
|
436 |
= 1.0.95 =
|
437 |
+
* Changed: Plugin interface
|
438 |
+
* Fixed: Minor bugs
|
439 |
|
440 |
= 1.0.94 =
|
441 |
+
* Fixed: Security issue
|
442 |
|
443 |
= 1.0.93 =
|
444 |
+
* Fixed: Bug on organizer view
|
445 |
|
446 |
= 1.0.91 =
|
447 |
+
* Added: Visible event count per day
|
448 |
+
* Fixed: Weekly repeating events
|
449 |
|
450 |
= 1.0.90 =
|
451 |
+
* Fixed: Helper bar
|
452 |
+
* Fixed: events archive page
|
453 |
+
* Fixed: events category archive page
|
454 |
|
455 |
= 1.0.89 =
|
456 |
+
* Fixed: Theme update issue
|
457 |
+
* Fixed: Notices
|
458 |
|
459 |
= 1.0.88 =
|
460 |
+
* Added: Helper bar
|
461 |
|
462 |
= 1.0.87 =
|
463 |
+
* Added: Overview page
|
464 |
+
* Changed: Deactivation
|
465 |
|
466 |
= 1.0.86 =
|
467 |
+
* Added: "Do not show past events" option
|
468 |
|
469 |
= 1.0.85 =
|
470 |
+
* Fixed: Minor bug
|
471 |
+
* Fixed: Bug on day view
|
472 |
|
473 |
= 1.0.84 =
|
474 |
+
* Added: Script keys
|
475 |
+
* Fixed: Bug on widget
|
476 |
+
* Fixed: Styles
|
477 |
+
* Fixed: Back link
|
478 |
|
479 |
= 1.0.83 =
|
480 |
+
* Fixed: Calendar search
|
481 |
|
482 |
= 1.0.82 =
|
483 |
+
* Changed: Featured plugins
|
484 |
|
485 |
= 1.0.81 =
|
486 |
+
* Fixed: Bug on widget list view
|
487 |
+
* Fixed: Styles
|
488 |
|
489 |
= 1.0.80 =
|
490 |
+
* Fixed: Clear cache option notice
|
491 |
+
* Added: Translations
|
492 |
|
493 |
= 1.0.79 =
|
494 |
+
* Added: Widget theme
|
495 |
|
496 |
= 1.0.78 =
|
497 |
+
* Added: Event description max length option
|
498 |
|
499 |
= 1.0.77 =
|
500 |
+
* Added: Google maps style option
|
501 |
+
* Added: Latitude,Longitude inputs in event-meta,venue-meta pages
|
502 |
|
503 |
= 1.0.76 =
|
504 |
+
* Fixed: Data structures
|
505 |
+
* Fixed: Bug on Repeating events
|
506 |
|
507 |
= 1.0.75 =
|
508 |
+
* Changed: Backend menu
|
509 |
|
510 |
= 1.0.74 =
|
511 |
+
* Changed: Organizers, venues cache
|
512 |
+
* Fixed: Venue edit in event
|
513 |
+
* Fixed: Gmap js issue
|
514 |
|
515 |
= 1.0.73 =
|
516 |
+
* Changed: Settings structure
|
517 |
+
* Fixed: Minor bug
|
518 |
|
519 |
= 1.0.72 =
|
520 |
+
* Fixed: Minor bug
|
521 |
|
522 |
= 1.0.71 =
|
523 |
+
* Added: Enable sidebar in event page option
|
524 |
|
525 |
= 1.0.70 =
|
526 |
+
* Fixed: Bug on Google Maps
|
527 |
|
528 |
= 1.0.69 =
|
529 |
+
* Fixed: Bug on Views add-on
|
530 |
+
* Changed: Featured themes, plugins pages
|
531 |
|
532 |
= 1.0.68 =
|
533 |
+
* Fixed: List view pagination
|
534 |
+
* Fixed: Week view start
|
535 |
|
536 |
= 1.0.67 =
|
537 |
+
* Added: Calendar start date option
|
538 |
|
539 |
+
= 1.0.65 =
|
540 |
* Added: Google Maps API Key
|
541 |
|
542 |
+
= 1.0.64 =
|
543 |
+
* Fixed: Translations
|
544 |
+
* Changed: Open Google map when Marker is clicked option
|
545 |
+
* Fixed: Mark all days of multi-day event
|
546 |
|
547 |
+
= 1.0.63 =
|
548 |
+
* Added: Show events detail on hover option
|
549 |
|
550 |
+
= 1.0.62 =
|
551 |
+
* Added: Grab the first post image option
|
552 |
|
553 |
= 1.0.61 =
|
554 |
+
* Fixed: Conflict with Page Builder by SiteOrigin
|
555 |
+
* Fixed: Bug on trashed events
|
556 |
|
557 |
= 1.0.60 =
|
558 |
+
* Added: Embed add-on
|
559 |
|
560 |
= 1.0.59 =
|
561 |
+
* Fixed: Bug on mini calendar
|
562 |
+
* Fixed: Bug on multi-day events
|
563 |
+
* Fixed: Bug on event pop-up
|
564 |
+
* Fixed: Bug on widget
|
565 |
|
566 |
= 1.0.58 =
|
567 |
+
* Added: Order of events archive page option
|
568 |
+
* Fixed: Minor bug
|
569 |
|
570 |
= 1.0.57 =
|
571 |
+
* Fixed: Translation
|
572 |
|
573 |
= 1.0.56 =
|
574 |
+
* Fixed: Minor bug
|
575 |
+
* Changed: Event popup position
|
576 |
|
577 |
= 1.0.55 =
|
578 |
+
* Fixed: List view events order
|
579 |
+
* Added: Organaizer on single event
|
580 |
+
* Added: Portuguese (Brazil) Translation
|
581 |
+
* Fixed: Description formatting
|
582 |
|
583 |
= 1.0.54 =
|
584 |
+
* New: Related events count option
|
585 |
|
586 |
= 1.0.53 =
|
587 |
+
* Added: Export to GCal/ICal add-on
|
588 |
|
589 |
= 1.0.52 =
|
590 |
+
* Added: Mark all days of multi-day event option
|
591 |
|
592 |
= 1.0.51 =
|
593 |
+
* Added: Config page
|
594 |
+
* Changed: Spanish Translation
|
595 |
+
* Changed: German Translation
|
596 |
+
* Changed: Featured plugins/themes page
|
597 |
+
* Changed: Event details popup direction for 4th day
|
598 |
+
* Fixed: Scroll issue in mobile
|
599 |
|
600 |
= 1.0.50 =
|
601 |
+
* Added: Event Subscribe add-on
|
602 |
|
603 |
= 1.0.49 =
|
604 |
+
* Added: Swedish translation by Marcel Króča and Slovak translation by Magnus Juven
|
605 |
+
* Fixed: Issue with featured image
|
606 |
+
* Fixed: Pointer bug
|
607 |
|
608 |
= 1.0.48 =
|
609 |
+
* Added: Wizard
|
610 |
+
* Added: Tour
|
611 |
+
* Added: Czech and Danish translation
|
612 |
|
613 |
= 1.0.47 =
|
614 |
+
* Added: Shortcode support on event description
|
615 |
|
616 |
= 1.0.46 =
|
617 |
* Added: Romanian translation (by Oana Tarce)
|
618 |
+
* Fixed: Bug for php version < 5.3
|
619 |
|
620 |
= 1.0.45 =
|
621 |
+
* Added: Latvian translation (by Intars G.)
|
622 |
+
* Fixed: Issue with venues dropdown in the back end
|
623 |
+
* Fixed: CSS issue in calendar views section for 'right to left' languages (e.g. arabic)
|
624 |
|
625 |
= 1.0.44 =
|
626 |
+
* Added: Croatian translation
|
627 |
+
* Added: Sample data
|
628 |
|
629 |
= 1.0.43 =
|
630 |
+
* Added: Option for no additional details text
|
631 |
|
632 |
= 1.0.42 =
|
633 |
+
* Fixed: Google structured data errors
|
634 |
+
* Changed: Event hover popup styles
|
635 |
|
636 |
= 1.0.41 =
|
637 |
+
* Added: New year promo notice
|
638 |
|
639 |
= 1.0.40 =
|
640 |
+
* Added: New theme
|
641 |
|
642 |
= 1.0.39 =
|
643 |
+
* Fixed: Date issue for php version < 5.3
|
644 |
+
* Fixed: German translations
|
645 |
|
646 |
= 1.0.38 =
|
647 |
+
* Added: Custom css option
|
648 |
|
649 |
= 1.0.37 =
|
650 |
+
* Added: Catalan language support(by Vicenc Huguet)
|
651 |
+
* Fixed: Views slider js issue
|
652 |
|
653 |
= 1.0.36 =
|
654 |
* Changed: Responsive pop-up styles
|
655 |
* Changed: Featured plugins
|
656 |
|
657 |
= 1.0.35 =
|
658 |
+
* Changed: Category page
|
659 |
* Added: Polish translation
|
660 |
|
661 |
= 1.0.34 =
|
662 |
+
* Fixed: Show events issue in list view
|
663 |
+
* Increased: Date range of events in venue and organizer pages
|
664 |
+
* Added: Event Tickets add-on
|
665 |
|
666 |
= 1.0.33 =
|
667 |
+
* Added: Date format option for list, week and day views
|
668 |
+
* Fixed: "Back" link in single event page
|
669 |
+
* Fixed: Shortcode default view issue
|
670 |
+
* Fixed: Norwegian language files
|
671 |
|
672 |
= 1.0.32 =
|
673 |
+
* Fixed: Dates translation issue in posterboard view
|
674 |
+
* Fixed: Venues show map issue for ajaxed themes
|
675 |
+
* Fixed: Views slider js issue
|
676 |
|
677 |
= 1.0.31 =
|
678 |
+
* Added: Day view option as default to widget
|
679 |
+
* Added: Close popup by escape
|
680 |
+
* Added: Finnish translation (by Håkan Mitts)
|
681 |
|
682 |
= 1.0.30 =
|
683 |
+
* Added: Mini calendar view for page
|
684 |
|
685 |
= 1.0.29 =
|
686 |
+
* Fixed: Norwegian language files name
|
687 |
|
688 |
= 1.0.28 =
|
689 |
+
* Added: ECWD Views add-on
|
690 |
+
* Added: Norwegian (Bokmål) and Norwegian (Nynorsk) languages support(by Vegard Innerdal)
|
691 |
|
692 |
= 1.0.27 =
|
693 |
+
* Changed: Added padding to event details for screens < 768
|
694 |
+
* Changed: Hide next/prev month names for screen < 768
|
695 |
+
* Fixed: More events popup bug
|
696 |
|
697 |
= 1.0.26 =
|
698 |
* New: Display Events in popup option
|
703 |
* Changed: Notices show order
|
704 |
|
705 |
= 1.0.24 =
|
706 |
+
* Fixed: Events monthly repeat rate issue
|
707 |
+
* Added: Week view option to widget
|
708 |
+
* Added: Custom Fields add-on
|
709 |
|
710 |
= 1.0.23 =
|
711 |
+
* Added: Frontend events management add-on
|
712 |
+
* Fixed: Rewrite rules for custom permalinks structure
|
713 |
+
* Fixed: JS error in related events slider
|
714 |
+
* Added: Hungarian language support
|
715 |
+
* Added: Serbian language support
|
716 |
+
* Fixed: Translations for Dutch
|
717 |
|
718 |
= 1.0.22 =
|
719 |
+
* Added: Ajaxed themes support
|
720 |
+
* Fixed: Next month link issue
|
721 |
+
* Changed: More events dialog
|
722 |
+
* Added: Support/rate us messages
|
723 |
|
724 |
= 1.0.21 =
|
725 |
+
* Fixed: JS error in widgets page
|
726 |
|
727 |
= 1.0.20 =
|
728 |
+
* Fixed: Show event url issue
|
729 |
+
* Added: "noindex, nofollow" to calendar links
|
730 |
+
* Added: Open pop in new tab option
|
731 |
+
* Added: Japanese support
|
732 |
|
733 |
= 1.0.19 =
|
734 |
* Minor bug fixed
|
735 |
|
736 |
= 1.0.18 =
|
737 |
+
* Added: Themes folder
|
738 |
+
* Changed: Related events title style
|
739 |
+
* Added: Apply category color to event title in event page option
|
740 |
|
741 |
= 1.0.17 =
|
742 |
* Fixed: Time format issue
|
748 |
* Added: Show AM/PM option
|
749 |
|
750 |
= 1.0.14 =
|
751 |
+
* Fixed: Conflict with Avada theme
|
752 |
* Added: Date to events link
|
753 |
|
754 |
= 1.0.13 =
|
758 |
* Changed: Calendar Add-ons page
|
759 |
|
760 |
= 1.0.10 =
|
761 |
+
* Added: Organizers and venues archive page order option
|
762 |
+
* Added: Show categories and tags in event page option
|
763 |
* Fixed: Featured image sizes in widget
|
764 |
|
765 |
= 1.0.9 =
|
766 |
+
* Fixed: Show google maps conflict with other plugins
|
767 |
+
* Fixed: Geolocation bug
|
768 |
+
* Fixed: Save organizer featured image issue
|
769 |
|
770 |
= 1.0.8 =
|
771 |
+
* Changed: Event page
|
772 |
+
* Added: Portuguese language
|
773 |
|
774 |
= 1.0.7 =
|
775 |
+
* New: Related events slider
|
776 |
+
* New: Enable/disable rewrite rule option
|
777 |
|
778 |
= 1.0.6 =
|
779 |
+
* Changed: Removed Add Venue link
|
780 |
+
* Fixed: Delete event from calendar page issue
|
781 |
|
782 |
= 1.0.5 =
|
783 |
+
* New: Events Filters in backend
|
784 |
+
* Fixed: Bug in shortcode
|
785 |
|
786 |
= 1.0.4 =
|
787 |
+
* Fixed: Bug in add/edit calendar
|
788 |
|
789 |
= 1.0.3 =
|
790 |
+
* New: Event template
|
791 |
+
* New: "Show map in event page" option
|
792 |
+
* Changed: "Repeat until" field is required
|
793 |
|
794 |
= 1.0.2 =
|
795 |
+
* Fixed: Minor bugs
|
796 |
|
797 |
= 1.0.1 =
|
798 |
+
* Fixed: Bug in Week view
|
799 |
+
* Fixed: Permalink bug
|
800 |
|
801 |
= 1.0.0 =
|
802 |
* Initial version
|
views/admin/ecwd-calendar-meta.php
CHANGED
@@ -60,7 +60,7 @@ $ecwd_calendar_default_theme_color = (isset($ecwd_calendar_theme) && $ecwd_calen
|
|
60 |
<tr>
|
61 |
<th scope="row"><?php _e('Events', 'event-calendar-wd'); ?></th>
|
62 |
<td>
|
63 |
-
|
64 |
<?php if ($events) { ?>
|
65 |
<?php foreach ($events as $event) { ?>
|
66 |
<span class="ecwd-calendar-event"> <span><?php echo $event->post_title; ?></span>
|
@@ -72,14 +72,16 @@ $ecwd_calendar_default_theme_color = (isset($ecwd_calendar_theme) && $ecwd_calen
|
|
72 |
<?php } ?>
|
73 |
</div>
|
74 |
|
75 |
-
|
76 |
<?php if ($excluded_events) { ?>
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
<?php
|
|
|
|
|
83 |
|
84 |
<div id="ecwd_add_event_to_calendar" class="ecwd_add_event_to_calendar" style="display: none">
|
85 |
<?php if ($excluded_events) { ?>
|
@@ -114,4 +116,35 @@ $ecwd_calendar_default_theme_color = (isset($ecwd_calendar_theme) && $ecwd_calen
|
|
114 |
<!--<a href="<?php //echo admin_url('admin.php?page=ecwd_themes');?>"><?php //_e('Default', 'ecwd');?></a> <sup style="color: #ba281e;">pro</sup>-->
|
115 |
</td>
|
116 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
</table>
|
60 |
<tr>
|
61 |
<th scope="row"><?php _e('Events', 'event-calendar-wd'); ?></th>
|
62 |
<td>
|
63 |
+
<div data-new_event_url="<?php echo get_admin_url() ?>post-new.php?post_type=ecwd_event&cal_id=<?php echo $post_id; ?>" class="ecwd-events">
|
64 |
<?php if ($events) { ?>
|
65 |
<?php foreach ($events as $event) { ?>
|
66 |
<span class="ecwd-calendar-event"> <span><?php echo $event->post_title; ?></span>
|
72 |
<?php } ?>
|
73 |
</div>
|
74 |
|
75 |
+
<span class="ecwd-calendar-event-add">
|
76 |
<?php if ($excluded_events) { ?>
|
77 |
+
|
78 |
+
<a class="ecwd_events_popup_button" data-new_event_url="<?php echo get_admin_url() ?>post-new.php?post_type=ecwd_event&cal_id=<?php echo $post_id; ?>" href="#ecwd_event_list_popup"><?php _e('Select Events from the list', 'event-calendar-wd'); ?></a>
|
79 |
+
<a class="ecwd_events_popup_button" data-new_event_url="<?php echo get_admin_url() ?>post-new.php?post_type=ecwd_event&cal_id=<?php echo $post_id; ?>" href="#ecwd_event_list_popup"><span class="add_event_plus">+</span></a>
|
80 |
+
</span>
|
81 |
+
<?php } else { ?>
|
82 |
+
<a href="<?php echo get_admin_url() ?>post-new.php?post_type=ecwd_event&cal_id=<?php echo $post_id; ?>" target="_blank"><?php _e('Create more events', 'event-calendar-wd'); ?></a>
|
83 |
+
<a href="<?php echo get_admin_url() ?>post-new.php?post_type=ecwd_event&cal_id=<?php echo $post_id; ?>" target="_blank"><span class="add_event_plus">+</span></a></span>
|
84 |
+
<?php } ?>
|
85 |
|
86 |
<div id="ecwd_add_event_to_calendar" class="ecwd_add_event_to_calendar" style="display: none">
|
87 |
<?php if ($excluded_events) { ?>
|
116 |
<!--<a href="<?php //echo admin_url('admin.php?page=ecwd_themes');?>"><?php //_e('Default', 'ecwd');?></a> <sup style="color: #ba281e;">pro</sup>-->
|
117 |
</td>
|
118 |
</tr>
|
119 |
+
|
120 |
+
<div id="ecwd_event_list_popup" class="ecwd_event_list_popup mfp-hide">
|
121 |
+
|
122 |
+
<img class="ecwd_event_list_popup_loader" src="<?php echo ECWD_URL;?>/assets/loading.gif">
|
123 |
+
<button class="button button-primary button-large ecwd_add_events ecwd_add_events_button">Add</button>
|
124 |
+
</div>
|
125 |
+
<style>
|
126 |
+
.ecwd_event_list_popup_loader{
|
127 |
+
display: none;
|
128 |
+
margin: 0 auto;
|
129 |
+
width: 70px;
|
130 |
+
margin-top: calc(100px - 35px);
|
131 |
+
}
|
132 |
+
.ecwd_add_events_button{
|
133 |
+
display: none !important;
|
134 |
+
}
|
135 |
+
.ecwd_add_events{
|
136 |
+
float: left;
|
137 |
+
}
|
138 |
+
#open-popup {padding:20px}
|
139 |
+
.ecwd_event_list_popup {
|
140 |
+
position: relative;
|
141 |
+
background: #FFF;
|
142 |
+
padding: 40px;
|
143 |
+
width: auto;
|
144 |
+
max-width: 800px;
|
145 |
+
margin: 20px auto;
|
146 |
+
text-align: center;
|
147 |
+
min-height: 200px;
|
148 |
+
}
|
149 |
+
</style>
|
150 |
</table>
|
views/admin/ecwd-event-calendars-meta.php
CHANGED
@@ -34,7 +34,7 @@ if(isset($_GET['cal_id']) && $_GET['cal_id']){
|
|
34 |
}
|
35 |
|
36 |
global $pagenow;
|
37 |
-
if ($pagenow == "post-new.php") {
|
38 |
$ecwd_default_calendar = get_option('ecwd_default_calendar');
|
39 |
if ($ecwd_default_calendar !== false && $ecwd_default_calendar !== null) {
|
40 |
$event_calendars[] = $ecwd_default_calendar;
|
34 |
}
|
35 |
|
36 |
global $pagenow;
|
37 |
+
if ($pagenow == "post-new.php" && empty($event_calendars)) {
|
38 |
$ecwd_default_calendar = get_option('ecwd_default_calendar');
|
39 |
if ($ecwd_default_calendar !== false && $ecwd_default_calendar !== null) {
|
40 |
$event_calendars[] = $ecwd_default_calendar;
|
views/ecwd-event-content.php
CHANGED
@@ -2,215 +2,507 @@
|
|
2 |
/**
|
3 |
* Display for Event Custom Post Types
|
4 |
*/
|
|
|
|
|
|
|
|
|
5 |
global $post;
|
6 |
global $wp;
|
7 |
global $ecwd_options;
|
|
|
8 |
|
9 |
$post_id = $post->ID;
|
10 |
-
$meta
|
11 |
|
12 |
-
$date_format
|
13 |
-
$time_format
|
14 |
$ecwd_social_icons = false;
|
15 |
-
if (
|
16 |
-
|
17 |
}
|
18 |
-
if (
|
19 |
-
|
20 |
}
|
21 |
-
$time_format .= (isset(
|
22 |
-
if(isset($ecwd_options['time_type']) && $ecwd_options['time_type'] !=''){
|
23 |
-
|
24 |
-
|
25 |
}
|
26 |
-
if (
|
27 |
-
|
28 |
}
|
29 |
// Load up all post meta data
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
$
|
34 |
-
$ecwd_event_date_from
|
35 |
-
$ecwd_event_date_to
|
36 |
-
|
37 |
-
$
|
38 |
-
|
39 |
-
$
|
40 |
-
$
|
41 |
-
|
42 |
-
$
|
43 |
-
|
44 |
-
$venue_post = get_post( $venue_post_id );
|
45 |
-
if ( $venue_post ) {
|
46 |
-
$venue = $venue_post->post_title;
|
47 |
-
$venue_permalink = get_permalink( $venue_post->ID );
|
48 |
-
$ecwd_event_zoom = get_post_meta($venue_post_id, 'ecwd_map_zoom', true);
|
49 |
-
}
|
50 |
-
}
|
51 |
-
|
52 |
-
if(!$ecwd_event_zoom){
|
53 |
-
$ecwd_event_zoom = 17;
|
54 |
-
}
|
55 |
-
|
56 |
-
$this_event_url = get_permalink( $post->ID );
|
57 |
-
$organizers = array();
|
58 |
-
if ( is_array( $ecwd_event_organizers ) || is_object( $ecwd_event_organizers ) ) {
|
59 |
-
foreach ( $ecwd_event_organizers as $ecwd_event_organizer ) {
|
60 |
-
$organizers[] = get_post( $ecwd_event_organizer, ARRAY_A );
|
61 |
-
}
|
62 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
?>
|
64 |
|
65 |
-
<div class="ecwd-event" itemscope itemtype="http://schema.org/Event">
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
<label class="ecwd-event-date-info" title="<?php _e(
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
} ?>
|
91 |
-
</span>
|
92 |
-
</div>
|
93 |
-
<?php if ( $ecwd_event_url ) { ?>
|
94 |
-
<div class="ecwd-url">
|
95 |
|
96 |
-
|
97 |
-
|
98 |
-
|
|
|
|
|
|
|
99 |
</div>
|
100 |
-
|
101 |
-
|
|
|
|
|
102 |
<div class="event-detalis-org">
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
<?php
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
</div>
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
|
124 |
-
|
125 |
-
|
126 |
<div class="address" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
|
127 |
-
|
|
|
128 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
<?php } ?>
|
|
|
|
|
130 |
</div>
|
131 |
-
|
132 |
-
|
133 |
-
?>
|
134 |
<div class="ecwd-social">
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
|
|
|
|
|
|
146 |
</div>
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
$map_events
|
151 |
-
$
|
152 |
-
|
153 |
-
|
|
|
|
|
|
|
|
|
|
|
154 |
}
|
155 |
-
|
|
|
|
|
156 |
$map_events[0]['infow'] = '<div class="ecwd_map_event">';
|
157 |
$map_events[0]['infow'] .= '<span class="location">' . $ecwd_event_location . '</span>';
|
158 |
$map_events[0]['infow'] .= '</div>';
|
159 |
$map_events[0]['infow'] .= '<div class="event-detalis-date">
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
$map_events[0]['infow'] .= date( $date_format, strtotime( $ecwd_event_date_from ) );
|
164 |
-
if ( $ecwd_event_date_to ) {
|
165 |
-
$map_events[0]['infow'] .= ' - ' . date( $date_format, strtotime( $ecwd_event_date_to ) ) . ' ' . __( 'All day', 'event-calendar-wd' );
|
166 |
-
}
|
167 |
-
} else {
|
168 |
-
$map_events[0]['infow'] .= date( $date_format, strtotime( $ecwd_event_date_from ) ) . ' ' . date( $time_format, strtotime( $ecwd_event_date_from ) );
|
169 |
-
|
170 |
-
if ( $ecwd_event_date_to ) {
|
171 |
-
$map_events[0]['infow'] .= date( $date_format, strtotime( $ecwd_event_date_to ) ) . ' ' . date( $time_format, strtotime( $ecwd_event_date_to ) );
|
172 |
-
}
|
173 |
-
}
|
174 |
$map_events[0]['infow'] .= ' </span>
|
175 |
-
|
|
|
176 |
|
177 |
-
$markers = json_encode(
|
178 |
?>
|
179 |
<div class="ecwd-show-map">
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
</div>
|
184 |
-
|
185 |
-
|
186 |
-
</div>
|
187 |
-
|
188 |
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
|
|
|
|
207 |
src="http://player.vimeo.com/video/<?php echo $videoID; ?>?title=0&byline=0&portrait=0&badge=0&color=ffffff"
|
208 |
width="" height="" frameborder="0" webkitAllowFullScreen mozallowfullscreen
|
209 |
allowFullScreen></iframe>
|
210 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
211 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
|
213 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
214 |
|
215 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
2 |
/**
|
3 |
* Display for Event Custom Post Types
|
4 |
*/
|
5 |
+
if (!defined('ABSPATH')) {
|
6 |
+
die('-1');
|
7 |
+
}
|
8 |
+
|
9 |
global $post;
|
10 |
global $wp;
|
11 |
global $ecwd_options;
|
12 |
+
global $wp_query;
|
13 |
|
14 |
$post_id = $post->ID;
|
15 |
+
$meta = get_post_meta($post_id);
|
16 |
|
17 |
+
$date_format = 'Y-m-d';
|
18 |
+
$time_format = 'H:i';
|
19 |
$ecwd_social_icons = false;
|
20 |
+
if (isset($ecwd_options['date_format']) && $ecwd_options['date_format'] != '') {
|
21 |
+
$date_format = $ecwd_options['date_format'];
|
22 |
}
|
23 |
+
if (isset($ecwd_options['time_format']) && $ecwd_options['time_format'] != '') {
|
24 |
+
$time_format = $ecwd_options['time_format'];
|
25 |
}
|
26 |
+
$time_format .= (isset($ecwd_options['time_type']) ? ' ' . $ecwd_options['time_type'] : '');
|
27 |
+
if (isset($ecwd_options['time_type']) && $ecwd_options['time_type'] != '') {
|
28 |
+
$time_format = str_replace('H', 'g', $time_format);
|
29 |
+
$time_format = str_replace('h', 'g', $time_format);
|
30 |
}
|
31 |
+
if (isset($ecwd_options['social_icons']) && $ecwd_options['social_icons'] != '') {
|
32 |
+
$ecwd_social_icons = $ecwd_options['social_icons'];
|
33 |
}
|
34 |
// Load up all post meta data
|
35 |
+
|
36 |
+
|
37 |
+
$ecwd_event = $post;
|
38 |
+
$ecwd_event_metas = get_post_meta($ecwd_event->ID, '', true);
|
39 |
+
$ecwd_event_date_from = $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_from'][0];
|
40 |
+
$ecwd_event_date_to = $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_to'][0];
|
41 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_url'])) {
|
42 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_url'] = array(0 => '');
|
43 |
+
}
|
44 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_location'])) {
|
45 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_location'] = array(0 => '');
|
46 |
+
}
|
47 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_lat_long'])) {
|
48 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_lat_long'] = array(0 => '');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_to'])) {
|
51 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_to'] = array(0 => '');
|
52 |
+
}
|
53 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_from'])) {
|
54 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_from'] = array(0 => '');
|
55 |
+
}
|
56 |
+
|
57 |
+
$permalink = get_the_permalink($ecwd_event->ID);
|
58 |
+
$this_event = $events[$ecwd_event->ID] = new ECWD_Event($ecwd_event->ID, '', $ecwd_event->post_title, $ecwd_event->post_content, $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_location'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_from'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_to'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_url'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_lat_long'][0], $permalink, $ecwd_event, '', $ecwd_event_metas);
|
59 |
+
$d = new ECWD_Display('');
|
60 |
+
if (isset($_GET['eventDate']) || isset($wp_query->query_vars['eventDate'])) {
|
61 |
+
$start_time = date('H:i', strtotime($ecwd_event_date_from));
|
62 |
+
$end_time = date('H:i', strtotime($ecwd_event_date_to));
|
63 |
+
|
64 |
+
|
65 |
+
$ecwd_event_date_from = isset($_GET['eventDate']) ? sanitize_text_field($_GET['eventDate']) : $wp_query->query_vars['eventDate'];
|
66 |
+
$eventdayslong = $d->dateDiff($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_from'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_to'][0]);
|
67 |
+
$ecwd_event_date_to = date('Y-m-d', strtotime((date("Y-m-d", (strtotime($ecwd_event_date_from))) . " +" . ($eventdayslong) . " days")));
|
68 |
+
$ecwd_event_date_from .= ' ' . $start_time;
|
69 |
+
$ecwd_event_date_to .= ' ' . $end_time;
|
70 |
+
}
|
71 |
+
|
72 |
+
|
73 |
+
$ecwd_event_location = isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_location'][0]) ? $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_location'][0] : '';
|
74 |
+
$ecwd_event_latlong = isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_lat_long'][0]) ? $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_lat_long'][0] : '';
|
75 |
+
//$ecwd_event_zoom = isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_map_zoom'][0]) ? $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_map_zoom'][0] : '';
|
76 |
+
$ecwd_event_show_map = isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_show_map'][0]) ? $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_show_map'][0] : 0;
|
77 |
+
if ($ecwd_event_show_map == '') {
|
78 |
+
$ecwd_event_show_map = 1;
|
79 |
+
}
|
80 |
+
|
81 |
+
$ecwd_event_organizers = isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_organizers'][0]) ? $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_organizers'][0] : '';
|
82 |
+
|
83 |
+
|
84 |
+
$ecwd_event_url = isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_url'][0]) ? $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_url'][0] : '';
|
85 |
+
$ecwd_event_url = ECWD::add_http($ecwd_event_url);
|
86 |
+
$ecwd_event_video = isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_video'][0]) ? $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_video'][0] : '';
|
87 |
+
$ecwd_all_day_event = isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_all_day_event'][0]) ? $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_all_day_event'][0] : 0;
|
88 |
+
$venue = '';
|
89 |
+
$venue_permalink = '';
|
90 |
+
$venue_post_id = isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_venue'][0]) ? $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_venue'][0] : 0;
|
91 |
+
if ($venue_post_id) {
|
92 |
+
$venue_post = get_post($venue_post_id);
|
93 |
+
if ($venue_post) {
|
94 |
+
$venue = $venue_post->post_title;
|
95 |
+
$venue_permalink = get_permalink($venue_post->ID);
|
96 |
+
}
|
97 |
+
}
|
98 |
+
|
99 |
+
$venue_meta_template = '<div class="%s"><span>%s:</span><span>%s</span></div>';
|
100 |
+
$venue_meta_link_template = '<div class="%s"><span>%s:</span><a href="%s">%s</a></div>';
|
101 |
+
|
102 |
+
if (is_numeric($venue_post_id)) {
|
103 |
+
$ecwd_venue_phone = get_post_meta($venue_post_id, 'ecwd_venue_meta_phone', true);
|
104 |
+
$ecwd_venue_website = get_post_meta($venue_post_id, 'ecwd_venue_meta_website', true);
|
105 |
+
$ecwd_event_zoom = get_post_meta($venue_post_id, 'ecwd_map_zoom', true);
|
106 |
+
$ecwd_venue_website = ECWD::add_http($ecwd_venue_website);
|
107 |
+
} else {
|
108 |
+
$ecwd_venue_phone = $ecwd_venue_website = "";
|
109 |
+
$ecwd_event_zoom = "";
|
110 |
+
}
|
111 |
+
|
112 |
+
if (!$ecwd_event_zoom) {
|
113 |
+
$ecwd_event_zoom = (isset($ecwd_options['gmap_zoom'])) ? $ecwd_options['gmap_zoom'] : 17;
|
114 |
+
}
|
115 |
+
|
116 |
+
$organizers = array();
|
117 |
+
$ecwd_event_organizers = maybe_unserialize($ecwd_event_organizers);
|
118 |
+
if (is_array($ecwd_event_organizers) || is_object($ecwd_event_organizers)) {
|
119 |
+
foreach ($ecwd_event_organizers as $ecwd_event_organizer) {
|
120 |
+
$temp = get_post($ecwd_event_organizer, ARRAY_A);
|
121 |
+
if ($temp !== null) {
|
122 |
+
$organizers[] = $temp;
|
123 |
+
}
|
124 |
+
}
|
125 |
+
}
|
126 |
+
|
127 |
+
$category_and_tags = false;
|
128 |
+
|
129 |
+
if (isset($ecwd_options['category_and_tags']) && $ecwd_options['category_and_tags'] != '') {
|
130 |
+
$category_and_tags = $ecwd_options['category_and_tags'];
|
131 |
+
}
|
132 |
+
$args = array('orderby' => 'name', 'order' => 'ASC', 'fields' => 'all');
|
133 |
+
$event_tags = wp_get_post_terms($post->ID, 'ecwd_event_tag', $args);
|
134 |
+
$event_categories = wp_get_post_terms($post->ID, 'ecwd_event_category', $args);
|
135 |
+
|
136 |
+
$default_calendar = get_option('ecwd_default_calendar');
|
137 |
+
$calendars_id = get_post_meta($post_id, 'ecwd_event_calendars', true);
|
138 |
+
|
139 |
+
$back_link = null;
|
140 |
+
$back_link_text = __('View Calendar', 'event-calendar-wd');
|
141 |
+
if (!empty($calendars_id)) {
|
142 |
+
if ($default_calendar !== false && in_array($default_calendar, $calendars_id)) {
|
143 |
+
$back_link = get_permalink($default_calendar);
|
144 |
+
} else {
|
145 |
+
$back_link = get_permalink(array_shift($calendars_id));
|
146 |
+
}
|
147 |
+
} else {
|
148 |
+
if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']) {
|
149 |
+
if (parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) == parse_url(site_url(), PHP_URL_HOST)) {
|
150 |
+
$back_link = $_SERVER['HTTP_REFERER'];
|
151 |
+
$back_link_text = __('Back', 'event-calendar-wd');
|
152 |
+
}
|
153 |
+
}
|
154 |
+
}
|
155 |
+
|
156 |
?>
|
157 |
|
158 |
+
<div class="ecwd-event ecwd-single-event" itemscope itemtype="http://schema.org/Event">
|
159 |
+
<?php if ( ! post_password_required( $post ) ) { ?>
|
160 |
+
<?php if ($back_link !== null) { ?>
|
161 |
+
<a id="ecwd_back_link" href="<?php echo $back_link; ?>"><?php echo $back_link_text; ?></a>
|
162 |
+
<?php } ?>
|
163 |
+
<div class="event-detalis">
|
164 |
+
<div class="ecwd-event-details">
|
165 |
+
<div class="event-detalis-date">
|
166 |
+
<label class="ecwd-event-date-info" title="<?php _e('Date', 'event-calendar-wd'); ?>"></label>
|
167 |
+
<span
|
168 |
+
class="ecwd-event-date"
|
169 |
+
itemprop="startDate"
|
170 |
+
content="<?php echo date('Y-m-d', strtotime($ecwd_event_date_from)) . 'T' . date('H:i', strtotime($ecwd_event_date_from)) ?>">
|
171 |
+
<?php echo ECWD::get_ecwd_event_date_view($ecwd_event_date_from, $ecwd_event_date_to, $ecwd_all_day_event); ?>
|
172 |
+
</span>
|
173 |
+
</div>
|
174 |
+
<?php
|
175 |
+
if (isset($ecwd_options['show_repeat_rate'])) {
|
176 |
+
$repeat_rate_text = $d->get_repeat_rate($post_id, '', $date_format);
|
177 |
+
if ($repeat_rate_text != ''): ?>
|
178 |
+
<div class="ecwd_repeat_rate_text">
|
179 |
+
<span><?php echo $d->get_repeat_rate($post_id, '', $date_format); ?></span>
|
180 |
+
</div>
|
181 |
+
<?php endif;
|
182 |
+
}
|
|
|
|
|
|
|
|
|
|
|
183 |
|
184 |
+
if ($ecwd_event_url) { ?>
|
185 |
+
<div class="ecwd-url">
|
186 |
+
<a href="<?php echo $ecwd_event_url; ?>" target="_blank">
|
187 |
+
<label class="ecwd-event-url-info" title="<?php _e('Url', 'event-calendar-wd'); ?>"></label>
|
188 |
+
<?php echo $ecwd_event_url; ?>
|
189 |
+
</a>
|
190 |
</div>
|
191 |
+
<?php }
|
192 |
+
|
193 |
+
|
194 |
+
if (count($organizers) > 0) { ?>
|
195 |
<div class="event-detalis-org">
|
196 |
+
<label class="ecwd-event-org-info" title="<?php _e('Organizers', 'event-calendar-wd'); ?>"></label>
|
197 |
+
|
198 |
+
<?php if (count($organizers) > 1) { ?>
|
199 |
+
<?php foreach ($organizers as $organizer) { ?>
|
200 |
+
<span itemprop="organizer">
|
201 |
+
<a href="<?php echo get_permalink($organizer['ID']) ?>">
|
202 |
+
<?php echo $organizer['post_title'] ?>
|
203 |
+
</a>
|
204 |
+
</span>
|
205 |
+
|
206 |
+
<?php }
|
207 |
+
} else {
|
208 |
+
$organizer = $organizers[0];
|
209 |
+
?>
|
210 |
+
|
211 |
+
<span itemprop="organizer">
|
212 |
+
<a href="<?php echo get_permalink($organizer['ID']) ?>">
|
213 |
+
<?php echo $organizer['post_title'] ?>
|
214 |
+
</a>
|
215 |
+
</span>
|
216 |
+
|
217 |
+
<?php
|
218 |
+
$organizer_phone = get_post_meta($organizer['ID'], 'ecwd_organizer_meta_phone', true);
|
219 |
+
$organizer_website = get_post_meta($organizer['ID'], 'ecwd_organizer_meta_website', true);
|
220 |
+
$organizer_website = ECWD::add_http($organizer_website);
|
221 |
+
if (!empty($organizer_phone)) { ?>
|
222 |
+
<div class="ecwd_organizer_phone">
|
223 |
+
<span><?php _e('Phone', 'event-calendar-wd'); ?>:</span>
|
224 |
+
<span><?php echo $organizer_phone; ?></span>
|
225 |
+
</div>
|
226 |
+
<?php }
|
227 |
+
if (!empty($organizer_website)) { ?>
|
228 |
+
<div class="ecwd_organizer_website">
|
229 |
+
<span><?php _e('Website', 'event-calendar-wd'); ?>:</span>
|
230 |
+
<a href="<?php echo $organizer_website; ?>">
|
231 |
+
<?php echo $organizer_website; ?>
|
232 |
+
</a>
|
233 |
+
</div>
|
234 |
+
<?php }
|
235 |
+
} ?>
|
236 |
</div>
|
237 |
+
<?php } ?>
|
238 |
+
|
239 |
+
|
240 |
+
<div class="event-venue" itemprop="location" itemscope itemtype="http://schema.org/Place">
|
241 |
+
<?php if ($venue_post_id) { ?>
|
242 |
+
<label class="ecwd-venue-info" title="<?php _e('Venue', 'event-calendar-wd'); ?>"></label>
|
243 |
+
<span itemprop="name">
|
244 |
+
<a
|
245 |
+
<?php
|
246 |
+
if (isset($_GET['iframe']) && intval($_GET['iframe']) == 1) {
|
247 |
+
$venue_permalink = add_query_arg('venue', '1', $venue_permalink);
|
248 |
+
}
|
249 |
+
?>
|
250 |
+
href="<?php echo $venue_permalink ?>"><?php echo $venue; ?></a>
|
251 |
+
</span>
|
252 |
+
|
253 |
+
<?php
|
254 |
+
|
255 |
+
if (!empty($ecwd_venue_phone)) {
|
256 |
+
echo sprintf($venue_meta_template, "ecwd_venue_phone", __('Phone', 'event-calendar-wd'), $ecwd_venue_phone);
|
257 |
+
}
|
258 |
+
|
259 |
+
if (!empty($ecwd_venue_website)) {
|
260 |
+
echo sprintf($venue_meta_link_template, "ecwd_venue_website", __('Website', 'event-calendar-wd'), $ecwd_venue_website, $ecwd_venue_website);
|
261 |
+
}
|
262 |
|
263 |
+
if (!empty($ecwd_event_location)) {
|
264 |
+
?>
|
265 |
<div class="address" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
|
266 |
+
<span><?php _e('Address:', 'event-calendar-wd'); ?></span>
|
267 |
+
<span><?php echo $ecwd_event_location; ?></span>
|
268 |
</div>
|
269 |
+
<?php
|
270 |
+
}
|
271 |
+
?>
|
272 |
+
|
273 |
+
<?php } elseif ($ecwd_event_location) { ?>
|
274 |
+
<span class="ecwd_hidden" itemprop="name"><?php echo $ecwd_event_location; ?></span>
|
275 |
+
<label class="ecwd-venue-info"
|
276 |
+
title="<?php _e('Location', 'event-calendar-wd'); ?>"></label>
|
277 |
+
<span class="address" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
|
278 |
+
<?php echo $ecwd_event_location; ?>
|
279 |
+
</span>
|
280 |
<?php } ?>
|
281 |
+
</div>
|
282 |
+
<?php do_action('ecwd_view_ext'); ?>
|
283 |
</div>
|
284 |
+
</div>
|
285 |
+
<?php if ($ecwd_social_icons) { ?>
|
|
|
286 |
<div class="ecwd-social">
|
287 |
+
<span class="share-links">
|
288 |
+
<a href="http://twitter.com/home?status=<?php echo get_permalink($post_id) ?>"
|
289 |
+
class="ecwd-twitter"
|
290 |
+
target="_blank" data-original-title="Tweet It">
|
291 |
+
<span class="visuallyhidden">Twitter</span></a>
|
292 |
+
<a href="http://www.facebook.com/sharer.php?u=<?php echo get_permalink($post_id) ?>"
|
293 |
+
class="ecwd-facebook"
|
294 |
+
target="_blank" data-original-title="Share on Facebook">
|
295 |
+
<span class="visuallyhidden">Facebook</span></a>
|
296 |
+
<a href="http://plus.google.com/share?url=<?php echo get_permalink($post_id) ?>"
|
297 |
+
class="ecwd-google-plus"
|
298 |
+
target="_blank" data-original-title="Share on Google+">
|
299 |
+
<span class="visuallyhidden">Google+</span></a>
|
300 |
+
</span>
|
301 |
</div>
|
302 |
+
<?php }
|
303 |
+
|
304 |
+
if ($ecwd_event_show_map == 1 && $ecwd_event_latlong) {
|
305 |
+
$map_events = array();
|
306 |
+
$url_for_google_map = '';
|
307 |
+
$map_events[0]['latlong'] = explode(',', $ecwd_event_latlong);
|
308 |
+
if ($ecwd_event_location != '') {
|
309 |
+
$map_events[0]['location'] = $ecwd_event_location;
|
310 |
+
|
311 |
+
$url_for_google_map .= 'https://www.google.com/maps/place/';
|
312 |
+
$url_for_google_map .= urlencode($ecwd_event_location) . '/';
|
313 |
+
$url_for_google_map .= '@' . $ecwd_event_latlong;;
|
314 |
}
|
315 |
+
|
316 |
+
|
317 |
+
$map_events[0]['zoom'] = $ecwd_event_zoom;
|
318 |
$map_events[0]['infow'] = '<div class="ecwd_map_event">';
|
319 |
$map_events[0]['infow'] .= '<span class="location">' . $ecwd_event_location . '</span>';
|
320 |
$map_events[0]['infow'] .= '</div>';
|
321 |
$map_events[0]['infow'] .= '<div class="event-detalis-date">
|
322 |
+
<label class="ecwd-event-date-info" title="' . __('Date', 'event-calendar-wd') . '"></label>
|
323 |
+
<span class="ecwd-event-date" itemprop="startDate" content="' . date('Y-m-d', strtotime($ecwd_event_date_from)) . 'T' . date('H:i', strtotime($ecwd_event_date_from)) . '">';
|
324 |
+
$map_events[0]['infow'] .= ECWD::get_ecwd_event_date_view($ecwd_event_date_from, $ecwd_event_date_to, $ecwd_all_day_event);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
325 |
$map_events[0]['infow'] .= ' </span>
|
326 |
+
</div>';
|
327 |
+
$map_events[0]['google_map_url'] = $url_for_google_map;
|
328 |
|
329 |
+
$markers = json_encode($map_events);
|
330 |
?>
|
331 |
<div class="ecwd-show-map">
|
332 |
+
<div class="ecwd_map_div">
|
333 |
+
</div>
|
334 |
+
<textarea class="hidden ecwd_markers" style="display: none;"><?php echo $markers; ?></textarea>
|
335 |
</div>
|
336 |
+
<?php } ?>
|
337 |
+
<div class="clear"></div>
|
|
|
|
|
338 |
|
339 |
+
<?php if (!empty($ecwd_event_video)) { ?>
|
340 |
+
<div class="ecwd-event-video">
|
341 |
+
<?php
|
342 |
+
if (strpos($ecwd_event_video, 'youtube') > 0) {
|
343 |
+
parse_str(parse_url($ecwd_event_video, PHP_URL_QUERY), $video_array_of_vars);
|
344 |
+
if (isset($video_array_of_vars['v']) && $video_array_of_vars['v']) {
|
345 |
+
?>
|
346 |
+
<object data="http://www.youtube.com/v/<?php echo $video_array_of_vars['v'] ?>"
|
347 |
+
type="application/x-shockwave-flash" width="400" height="300">
|
348 |
+
<param name="src"
|
349 |
+
value="http://www.youtube.com/v/<?php echo $video_array_of_vars['v'] ?>"/>
|
350 |
+
</object>
|
351 |
+
<?php
|
352 |
+
}
|
353 |
+
} elseif (strpos($ecwd_event_video, 'vimeo') > 0) {
|
354 |
+
$videoID = explode('/', $ecwd_event_video);
|
355 |
+
$videoID = $videoID[count($videoID) - 1];
|
356 |
+
if ($videoID) {
|
357 |
+
?>
|
358 |
+
<iframe
|
359 |
src="http://player.vimeo.com/video/<?php echo $videoID; ?>?title=0&byline=0&portrait=0&badge=0&color=ffffff"
|
360 |
width="" height="" frameborder="0" webkitAllowFullScreen mozallowfullscreen
|
361 |
allowFullScreen></iframe>
|
362 |
+
<?php
|
363 |
+
}
|
364 |
+
}
|
365 |
+
?>
|
366 |
+
</div>
|
367 |
+
<?php } ?>
|
368 |
+
<div class="entry-content-event"><?php echo wpautop($post->post_content); ?></div>
|
369 |
+
<!-- Categories and tags -->
|
370 |
+
<?php if ($category_and_tags == 1) { ?>
|
371 |
+
<div class="event_cageory_and_tags">
|
372 |
+
|
373 |
+
<?php if (!empty($event_categories)) { ?>
|
374 |
+
<ul class="event_categories">
|
375 |
+
<?php foreach ($event_categories as $category) {
|
376 |
+
$metas = get_option("ecwd_event_category_$category->term_id");
|
377 |
+
?>
|
378 |
+
<li class="event_category event-details-title">
|
379 |
+
<?php if ($metas['color']) { ?>
|
380 |
+
<span class="event-metalabel" style="background:<?php echo $metas['color']; ?>"></span>
|
381 |
+
<span class="event_catgeory_name">
|
382 |
+
<a href="<?php echo get_category_link($category); ?>"
|
383 |
+
style="color:<?php echo $metas['color']; ?>">
|
384 |
+
<?php echo $category->name; ?>
|
385 |
+
</a></span>
|
386 |
+
<?php } else { ?>
|
387 |
+
<span class="event_catgeory_name">
|
388 |
+
<a href="<?php echo get_category_link($category); ?>">
|
389 |
+
<?php echo $category->name; ?>
|
390 |
+
</a>
|
391 |
+
</span>
|
392 |
+
<?php } ?>
|
393 |
+
</li>
|
394 |
+
<?php } ?>
|
395 |
+
</ul>
|
396 |
+
<?php }
|
397 |
+
|
398 |
+
if (!empty($event_tags)) { ?>
|
399 |
+
<ul class="event_tags">
|
400 |
+
<?php foreach ($event_tags as $tag) { ?>
|
401 |
+
<li class="event_tag">
|
402 |
+
<span class="event_tag_name">
|
403 |
+
<a href="<?php echo get_tag_link($tag); ?>">#<?php echo $tag->name; ?> </a>
|
404 |
+
</span>
|
405 |
+
</li>
|
406 |
+
<?php
|
407 |
+
} ?>
|
408 |
+
</ul>
|
409 |
+
<?php } ?>
|
410 |
+
</div>
|
411 |
+
<?php } ?>
|
412 |
+
<!-- END Categories and tags -->
|
413 |
|
414 |
+
<?php
|
415 |
+
do_action('ecwd_tickets_events_single_meta', '', $ecwd_event_date_to);
|
416 |
+
do_action('ecwd_single_event_page_links', $ecwd_event, $ecwd_event_metas, array('start_date' => $ecwd_event_date_from, 'end_date' => $ecwd_event_date_to));
|
417 |
+
?>
|
418 |
+
<?php
|
419 |
+
if (!isset($ecwd_options['related_events']) || $ecwd_options['related_events'] == 1) {
|
420 |
+
$post_cats = wp_get_post_terms($post_id, ECWD_PLUGIN_PREFIX . '_event_category');
|
421 |
+
$cat_ids = wp_list_pluck($post_cats, 'term_id');
|
422 |
+
$post_tags = wp_get_post_terms($post_id, ECWD_PLUGIN_PREFIX . '_event_tag');
|
423 |
+
$tag_ids = wp_list_pluck($post_tags, 'term_id');
|
424 |
+
$events = array();
|
425 |
+
$today = date('Y-m-d');
|
426 |
|
427 |
+
$args = array(
|
428 |
+
'numberposts' => -1,
|
429 |
+
'post_type' => ECWD_PLUGIN_PREFIX . '_event',
|
430 |
+
'tax_query' => array(
|
431 |
+
array(
|
432 |
+
'taxonomy' => ECWD_PLUGIN_PREFIX . '_event_category',
|
433 |
+
'terms' => $cat_ids,
|
434 |
+
'field' => 'term_id',
|
435 |
+
)
|
436 |
+
),
|
437 |
+
'orderby' => 'meta_value',
|
438 |
+
'order' => 'ASC'
|
439 |
+
);
|
440 |
+
$ecwd_events_by_cats = get_posts($args);
|
441 |
+
$args = array(
|
442 |
+
'numberposts' => -1,
|
443 |
+
'post_type' => ECWD_PLUGIN_PREFIX . '_event',
|
444 |
+
'tax_query' => array(
|
445 |
+
array(
|
446 |
+
'taxonomy' => ECWD_PLUGIN_PREFIX . '_event_tag',
|
447 |
+
'terms' => $tag_ids,
|
448 |
+
'field' => 'term_id',
|
449 |
+
),
|
450 |
+
),
|
451 |
+
'orderby' => 'meta_value',
|
452 |
+
'order' => 'ASC'
|
453 |
+
);
|
454 |
|
455 |
+
$ecwd_events_by_tags = get_posts($args);
|
456 |
+
$ecwd_events = array_merge($ecwd_events_by_tags, $ecwd_events_by_cats);
|
457 |
+
$ecwd_events = array_map("unserialize", array_unique(array_map("serialize", $ecwd_events)));
|
458 |
+
wp_reset_postdata();
|
459 |
+
wp_reset_query();
|
460 |
+
|
461 |
+
foreach ($ecwd_events as $ecwd_event) {
|
462 |
+
if ($ecwd_event->ID != $post_id) {
|
463 |
+
$term_metas = '';
|
464 |
+
$categories = get_the_terms($ecwd_event->ID, ECWD_PLUGIN_PREFIX . '_event_category');
|
465 |
+
if (is_array($categories)) {
|
466 |
+
foreach ($categories as $category) {
|
467 |
+
$term_metas = get_option("ecwd_event_category_$category->term_id");
|
468 |
+
$term_metas['id'] = $category->term_id;
|
469 |
+
$term_metas['name'] = $category->name;
|
470 |
+
$term_metas['slug'] = $category->slug;
|
471 |
+
}
|
472 |
+
}
|
473 |
+
$ecwd_event_metas = get_post_meta($ecwd_event->ID, '', true);
|
474 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_url'] = array(0 => '');
|
475 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_location'])) {
|
476 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_location'] = array(0 => '');
|
477 |
+
}
|
478 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_lat_long'])) {
|
479 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_lat_long'] = array(0 => '');
|
480 |
+
}
|
481 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_to'])) {
|
482 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_to'] = array(0 => '');
|
483 |
+
}
|
484 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_from'])) {
|
485 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_from'] = array(0 => '');
|
486 |
+
}
|
487 |
+
|
488 |
+
$permalink = get_permalink($ecwd_event->ID);
|
489 |
+
$events[$ecwd_event->ID] = new ECWD_Event($ecwd_event->ID, 0, $ecwd_event->post_title, $ecwd_event->post_content, $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_location'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_from'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_to'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_url'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_lat_long'][0], $permalink, $ecwd_event, $term_metas, $ecwd_event_metas);
|
490 |
+
}
|
491 |
+
}
|
492 |
+
$d = new ECWD_Display(0, '', '', $today);
|
493 |
+
$start_date = date('Y-m-d');
|
494 |
+
$end_date = date('Y-m-d', strtotime("+1 year", strtotime($start_date)));
|
495 |
+
$events = $d->get_event_days($events, 1, $start_date, $end_date);
|
496 |
+
$events = $d->events_unique($events);
|
497 |
+
do_action('ecwd_show_related_events', $events, true);
|
498 |
+
}
|
499 |
+
} else {
|
500 |
+
echo get_the_password_form();
|
501 |
+
} ?>
|
502 |
</div>
|
503 |
+
|
504 |
+
|
505 |
+
<script id="ecwd_script_handler" type="text/javascript">if (typeof ecwd_js_init_call == "object") {
|
506 |
+
ecwd_js_init_call = new ecwd_js_init();
|
507 |
+
ecwd_js_init_call.showMap();
|
508 |
+
}</script>
|
views/single-event.php
CHANGED
@@ -157,22 +157,6 @@ if (isset($ecwd_options['cat_title_color']) && $ecwd_options['cat_title_color']
|
|
157 |
|
158 |
$default_calendar = get_option('ecwd_default_calendar');
|
159 |
$calendars_id = get_post_meta($post_id, 'ecwd_event_calendars', true);
|
160 |
-
$back_link = null;
|
161 |
-
$back_link_text = __('View Calendar', 'event-calendar-wd');
|
162 |
-
if (!empty($calendars_id)) {
|
163 |
-
if ($default_calendar !== false && in_array($default_calendar, $calendars_id)) {
|
164 |
-
$back_link = get_permalink($default_calendar);
|
165 |
-
} else {
|
166 |
-
$back_link = get_permalink(array_shift($calendars_id));
|
167 |
-
}
|
168 |
-
} else {
|
169 |
-
if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']) {
|
170 |
-
if (parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) == parse_url(site_url(), PHP_URL_HOST)) {
|
171 |
-
$back_link = $_SERVER['HTTP_REFERER'];
|
172 |
-
$back_link_text = __('Back', 'event-calendar-wd');
|
173 |
-
}
|
174 |
-
}
|
175 |
-
}
|
176 |
|
177 |
get_header();
|
178 |
if ( class_exists( 'WooCommerce' ) ) {
|
@@ -190,214 +174,213 @@ if ( class_exists( 'WooCommerce' ) ) {
|
|
190 |
<header class="entry-header">
|
191 |
<?php the_title('<h1 itemprop="name" class="ecwd-events-single-event-title summary entry-title" ' . $event_title_style . '>', '</h1>'); ?>
|
192 |
</header>
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
<?php
|
401 |
|
402 |
$event_content = get_the_content();
|
403 |
if (!empty($event_content)) { ?>
|
@@ -405,141 +388,141 @@ if ( class_exists( 'WooCommerce' ) ) {
|
|
405 |
<?php } ?>
|
406 |
<!-- End Content -->
|
407 |
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
</div>
|
539 |
<!-- #Related Events-->
|
540 |
</article>
|
541 |
</div> <!-- #post-x -->
|
542 |
-
<?php if (comments_open() && $post->comment_status == 'open') { ?>
|
543 |
<div class="ecwd-comments"><?php echo comments_template(); ?></div>
|
544 |
<?php } endwhile; ?>
|
545 |
</div>
|
157 |
|
158 |
$default_calendar = get_option('ecwd_default_calendar');
|
159 |
$calendars_id = get_post_meta($post_id, 'ecwd_event_calendars', true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
|
161 |
get_header();
|
162 |
if ( class_exists( 'WooCommerce' ) ) {
|
174 |
<header class="entry-header">
|
175 |
<?php the_title('<h1 itemprop="name" class="ecwd-events-single-event-title summary entry-title" ' . $event_title_style . '>', '</h1>'); ?>
|
176 |
</header>
|
177 |
+
<?php if ( ! post_password_required() ) ?>
|
178 |
+
<div class="event-detalis">
|
179 |
+
<?php if ($featured_image && $featured_image !== '') { ?>
|
180 |
+
<div class="event-featured-image">
|
181 |
+
<img src="<?php echo $featured_image; ?>"/>
|
182 |
+
</div>
|
183 |
+
<?php } ?>
|
184 |
+
<div class="ecwd-event-details">
|
185 |
+
<div class="event-detalis-date">
|
186 |
+
<label class="ecwd-event-date-info" title="<?php _e('Date', 'event-calendar-wd'); ?>"></label>
|
187 |
+
<span
|
188 |
+
class="ecwd-event-date"
|
189 |
+
itemprop="startDate"
|
190 |
+
content="<?php echo date('Y-m-d', strtotime($ecwd_event_date_from)) . 'T' . date('H:i', strtotime($ecwd_event_date_from)) ?>">
|
191 |
+
<?php echo ECWD::get_ecwd_event_date_view($ecwd_event_date_from, $ecwd_event_date_to, $ecwd_all_day_event); ?>
|
192 |
+
</span>
|
193 |
+
</div>
|
194 |
+
|
195 |
+
<?php
|
196 |
+
if (isset($ecwd_options['show_repeat_rate'])) {
|
197 |
+
$repeat_rate_text = $d->get_repeat_rate($post_id, '', $date_format);
|
198 |
+
if ($repeat_rate_text != ''):
|
199 |
+
?>
|
200 |
+
<div class="ecwd_repeat_rate_text">
|
201 |
+
<span><?php echo $d->get_repeat_rate($post_id, '', $date_format); ?></span>
|
202 |
+
</div>
|
203 |
+
<?php
|
204 |
+
endif;
|
205 |
+
} ?>
|
206 |
+
|
207 |
+
<?php if ($ecwd_event_url) { ?>
|
208 |
+
<div class="ecwd-url">
|
209 |
+
<a href="<?php echo $ecwd_event_url; ?>" target="_blank">
|
210 |
+
<label class="ecwd-event-url-info" title="<?php _e('Url', 'event-calendar-wd'); ?>"></label>
|
211 |
+
<?php echo $ecwd_event_url; ?>
|
212 |
+
</a>
|
213 |
+
</div>
|
214 |
+
<?php }
|
215 |
+
|
216 |
+
if (count($organizers) > 0) { ?>
|
217 |
+
<div class="event-detalis-org">
|
218 |
+
<label class="ecwd-event-org-info" title="<?php _e('Organizers', 'event-calendar-wd'); ?>"></label>
|
219 |
+
|
220 |
+
<?php if (count($organizers) > 1) { ?>
|
221 |
+
<?php foreach ($organizers as $organizer) { ?>
|
222 |
+
<span itemprop="organizer">
|
223 |
+
<a href="<?php echo get_permalink($organizer['ID']) ?>">
|
224 |
+
<?php echo $organizer['post_title'] ?>
|
225 |
+
</a>
|
226 |
+
</span>
|
227 |
+
|
228 |
+
<?php }
|
229 |
+
} else {
|
230 |
+
$organizer = $organizers[0];
|
231 |
+
?>
|
232 |
+
|
233 |
+
<span itemprop="organizer">
|
234 |
+
<a href="<?php echo get_permalink($organizer['ID']) ?>">
|
235 |
+
<?php echo $organizer['post_title'] ?>
|
236 |
+
</a>
|
237 |
+
</span>
|
238 |
+
|
239 |
+
<?php
|
240 |
+
$organizer_phone = get_post_meta($organizer['ID'], 'ecwd_organizer_meta_phone', true);
|
241 |
+
$organizer_website = get_post_meta($organizer['ID'], 'ecwd_organizer_meta_website', true);
|
242 |
+
$organizer_website = ECWD::add_http($organizer_website);
|
243 |
+
|
244 |
+
if (!empty($organizer_phone)) { ?>
|
245 |
+
<div class="ecwd_organizer_phone">
|
246 |
+
<span><?php _e('Phone', 'event-calendar-wd'); ?>:</span>
|
247 |
+
<span><?php echo $organizer_phone; ?></span>
|
248 |
+
</div>
|
249 |
+
<?php }
|
250 |
+
if (!empty($organizer_website)) { ?>
|
251 |
+
<div class="ecwd_organizer_website">
|
252 |
+
<span><?php _e('Website', 'event-calendar-wd'); ?>:</span>
|
253 |
+
<a href="<?php echo $organizer_website; ?>">
|
254 |
+
<?php echo $organizer_website; ?>
|
255 |
+
</a>
|
256 |
+
</div>
|
257 |
+
<?php }
|
258 |
+
} ?>
|
259 |
+
</div>
|
260 |
+
<?php } ?>
|
261 |
+
|
262 |
+
<div class="event-venue" itemprop="location" itemscope itemtype="http://schema.org/Place">
|
263 |
+
<?php if ($venue_post_id) { ?>
|
264 |
+
<label class="ecwd-venue-info" title="<?php _e('Venue', 'event-calendar-wd'); ?>"></label>
|
265 |
+
<span itemprop="name">
|
266 |
+
<a
|
267 |
+
<?php
|
268 |
+
if (isset($_GET['iframe']) && intval($_GET['iframe']) == 1) {
|
269 |
+
$venue_permalink = add_query_arg('venue', '1', $venue_permalink);
|
270 |
+
}
|
271 |
+
?>
|
272 |
+
href="<?php echo $venue_permalink ?>"><?php echo $venue; ?></a>
|
273 |
+
</span>
|
274 |
+
|
275 |
+
<?php
|
276 |
+
|
277 |
+
if (!empty($ecwd_venue_phone)) {
|
278 |
+
echo sprintf($venue_meta_template, "ecwd_venue_phone", __('Phone', 'event-calendar-wd'), $ecwd_venue_phone);
|
279 |
+
}
|
280 |
+
|
281 |
+
if (!empty($ecwd_venue_website)) {
|
282 |
+
echo sprintf($venue_meta_link_template, "ecwd_venue_website", __('Website', 'event-calendar-wd'), $ecwd_venue_website, $ecwd_venue_website);
|
283 |
+
}
|
284 |
+
|
285 |
+
if (!empty($ecwd_event_location)) {
|
286 |
+
?>
|
287 |
+
<div class="address" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
|
288 |
+
<span><?php _e('Address:', 'event-calendar-wd'); ?></span>
|
289 |
+
<span><?php echo $ecwd_event_location; ?></span>
|
290 |
+
</div>
|
291 |
+
<?php
|
292 |
+
}
|
293 |
+
?>
|
294 |
+
|
295 |
+
<?php } elseif ($ecwd_event_location) { ?>
|
296 |
+
<span class="ecwd_hidden" itemprop="name"><?php echo $ecwd_event_location; ?></span>
|
297 |
+
<label class="ecwd-venue-info"
|
298 |
+
title="<?php _e('Location', 'event-calendar-wd'); ?>"></label>
|
299 |
+
<span class="address" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
|
300 |
+
<?php echo $ecwd_event_location; ?>
|
301 |
+
</span>
|
302 |
+
<?php } ?>
|
303 |
+
</div>
|
304 |
+
|
305 |
+
<?php do_action('ecwd_view_ext'); ?>
|
306 |
+
</div>
|
307 |
+
</div>
|
308 |
+
<?php if ($ecwd_social_icons) { ?>
|
309 |
+
|
310 |
+
<div class="ecwd-social">
|
311 |
+
<span class="share-links">
|
312 |
+
<a href="http://twitter.com/home?status=<?php echo get_permalink($post_id) ?>"
|
313 |
+
class="ecwd-twitter"
|
314 |
+
target="_blank" data-original-title="Tweet It">
|
315 |
+
<span class="visuallyhidden">Twitter</span></a>
|
316 |
+
<a href="http://www.facebook.com/sharer.php?u=<?php echo get_permalink($post_id) ?>"
|
317 |
+
class="ecwd-facebook"
|
318 |
+
target="_blank" data-original-title="Share on Facebook">
|
319 |
+
<span class="visuallyhidden">Facebook</span></a>
|
320 |
+
<a href="http://plus.google.com/share?url=<?php echo get_permalink($post_id) ?>"
|
321 |
+
class="ecwd-google-plus"
|
322 |
+
target="_blank" data-original-title="Share on Google+">
|
323 |
+
<span class="visuallyhidden">Google+</span></a>
|
324 |
+
</span>
|
325 |
+
</div>
|
326 |
+
<?php }
|
327 |
+
if ($ecwd_event_show_map == 1 && $ecwd_event_latlong) {
|
328 |
+
$map_events = array();
|
329 |
+
$map_events[0]['latlong'] = explode(',', $ecwd_event_latlong);
|
330 |
+
if ($ecwd_event_location != '') {
|
331 |
+
$map_events[0]['location'] = $ecwd_event_location;
|
332 |
+
}
|
333 |
+
$map_events[0]['zoom'] = $ecwd_event_zoom;
|
334 |
+
$map_events[0]['infow'] = '<div class="ecwd_map_event">';
|
335 |
+
$map_events[0]['infow'] .= '<span class="location">' . $ecwd_event_location . '</span>';
|
336 |
+
$map_events[0]['infow'] .= '</div>';
|
337 |
+
$map_events[0]['infow'] .= '<div class="event-detalis-date">
|
338 |
+
<label class="ecwd-event-date-info" title="' . __('Date', 'event-calendar-wd') . '"></label>
|
339 |
+
<span class="ecwd-event-date" itemprop="startDate" content="' . date('Y-m-d', strtotime($ecwd_event_date_from)) . 'T' . date('H:i', strtotime($ecwd_event_date_from)) . '">';
|
340 |
+
$map_events[0]['infow'] .= ECWD::get_ecwd_event_date_view($ecwd_event_date_from, $ecwd_event_date_to, $ecwd_all_day_event);
|
341 |
+
|
342 |
+
$map_events[0]['infow'] .= '</span></div>';
|
343 |
+
$markers = json_encode($map_events);
|
344 |
+
?>
|
345 |
+
<div class="ecwd-show-map">
|
346 |
+
<div class="ecwd_map_div"></div>
|
347 |
+
<textarea class="hidden ecwd_markers" style="display: none;"><?php echo $markers; ?></textarea>
|
348 |
+
</div>
|
349 |
+
<?php } ?>
|
350 |
+
<div class="clear"></div>
|
351 |
+
|
352 |
+
<?php if (!empty($ecwd_event_video)) { ?>
|
353 |
+
<div class="ecwd-event-video">
|
354 |
+
<?php
|
355 |
+
if (strpos($ecwd_event_video, 'youtube') > 0) {
|
356 |
+
parse_str(parse_url($ecwd_event_video, PHP_URL_QUERY), $video_array_of_vars);
|
357 |
+
if (isset($video_array_of_vars['v']) && $video_array_of_vars['v']) {
|
358 |
+
?>
|
359 |
+
<object data="http://www.youtube.com/v/<?php echo $video_array_of_vars['v'] ?>"
|
360 |
+
type="application/x-shockwave-flash" width="400" height="300">
|
361 |
+
<param name="src"
|
362 |
+
value="http://www.youtube.com/v/<?php echo $video_array_of_vars['v'] ?>"/>
|
363 |
+
</object>
|
364 |
+
<?php
|
365 |
+
}
|
366 |
+
} elseif (strpos($ecwd_event_video, 'vimeo') > 0) {
|
367 |
+
$videoID = explode('/', $ecwd_event_video);
|
368 |
+
$videoID = $videoID[count($videoID) - 1];
|
369 |
+
if ($videoID) { ?>
|
370 |
+
<iframe
|
371 |
+
src="http://player.vimeo.com/video/<?php echo $videoID; ?>?title=0&byline=0&portrait=0&badge=0&color=ffffff"
|
372 |
+
width="" height="" frameborder="0" webkitAllowFullScreen mozallowfullscreen
|
373 |
+
allowFullScreen></iframe>
|
374 |
+
<?php
|
375 |
+
}
|
376 |
+
}
|
377 |
+
?>
|
378 |
+
</div>
|
379 |
+
<?php } ?>
|
380 |
+
<!-- Content -->
|
381 |
+
|
382 |
+
<?php
|
383 |
+
|
|
|
384 |
|
385 |
$event_content = get_the_content();
|
386 |
if (!empty($event_content)) { ?>
|
388 |
<?php } ?>
|
389 |
<!-- End Content -->
|
390 |
|
391 |
+
<?php if ( ! post_password_required() ) { ?>
|
392 |
+
<!-- Categories and tags -->
|
393 |
+
<?php if ($category_and_tags == 1) { ?>
|
394 |
+
<div class="event_cageory_and_tags">
|
395 |
+
|
396 |
+
<?php if (!empty($event_categories)) { ?>
|
397 |
+
<ul class="event_categories">
|
398 |
+
<?php
|
399 |
+
foreach ($event_categories as $category) {
|
400 |
+
$metas = get_option("ecwd_event_category_$category->term_id");
|
401 |
+
?>
|
402 |
+
<li class="event_category event-details-title">
|
403 |
+
<?php if ($metas['color']) { ?>
|
404 |
+
<span class="event-metalabel" style="background:<?php echo $metas['color']; ?>"></span>
|
405 |
+
<span class="event_catgeory_name">
|
406 |
+
<a href="<?php echo get_category_link($category); ?>"
|
407 |
+
style="color:<?php echo $metas['color']; ?>">
|
408 |
+
<?php echo $category->name; ?>
|
409 |
+
</a>
|
410 |
+
</span>
|
411 |
+
<?php } else { ?>
|
412 |
+
<span class="event_catgeory_name">
|
413 |
+
<a href="<?php echo get_category_link($category); ?>">
|
414 |
+
<?php echo $category->name; ?>
|
415 |
+
</a>
|
416 |
+
</span>
|
417 |
+
<?php } ?>
|
418 |
+
</li>
|
419 |
+
<?php } ?>
|
420 |
+
</ul>
|
421 |
+
<?php }
|
422 |
+
|
423 |
+
if (!empty($event_tags)) { ?>
|
424 |
+
<ul class="event_tags">
|
425 |
+
<?php foreach ($event_tags as $tag) { ?>
|
426 |
+
<li class="event_tag">
|
427 |
+
<span class="event_tag_name">
|
428 |
+
<a href="<?php echo get_tag_link($tag); ?>">#<?php echo $tag->name; ?> </a>
|
429 |
+
</span>
|
430 |
+
</li>
|
431 |
+
<?php } ?>
|
432 |
+
</ul>
|
433 |
+
<?php } ?>
|
434 |
+
</div>
|
435 |
+
<?php } ?>
|
436 |
+
<!-- END Categories and tags -->
|
437 |
+
<?php
|
438 |
+
if (!isset($ecwd_options['related_events']) || $ecwd_options['related_events'] == 1) {
|
439 |
+
$post_cats = wp_get_post_terms($post_id, ECWD_PLUGIN_PREFIX . '_event_category');
|
440 |
+
$cat_ids = wp_list_pluck($post_cats, 'term_id');
|
441 |
+
$post_tags = wp_get_post_terms($post_id, ECWD_PLUGIN_PREFIX . '_event_tag');
|
442 |
+
$tag_ids = wp_list_pluck($post_tags, 'term_id');
|
443 |
+
$events = array();
|
444 |
+
$today = date('Y-m-d');
|
445 |
+
|
446 |
+
$args = array(
|
447 |
+
'numberposts' => -1,
|
448 |
+
'post_type' => ECWD_PLUGIN_PREFIX . '_event',
|
449 |
+
'tax_query' => array(
|
450 |
+
array(
|
451 |
+
'taxonomy' => ECWD_PLUGIN_PREFIX . '_event_category',
|
452 |
+
'terms' => $cat_ids,
|
453 |
+
'field' => 'term_id',
|
454 |
+
)
|
455 |
+
),
|
456 |
+
'orderby' => 'meta_value',
|
457 |
+
'order' => 'ASC'
|
458 |
+
);
|
459 |
+
$ecwd_events_by_cats = get_posts($args);
|
460 |
+
$args = array(
|
461 |
+
'numberposts' => -1,
|
462 |
+
'post_type' => ECWD_PLUGIN_PREFIX . '_event',
|
463 |
+
'tax_query' => array(
|
464 |
+
array(
|
465 |
+
'taxonomy' => ECWD_PLUGIN_PREFIX . '_event_tag',
|
466 |
+
'terms' => $tag_ids,
|
467 |
+
'field' => 'term_id',
|
468 |
+
),
|
469 |
+
),
|
470 |
+
'orderby' => 'meta_value',
|
471 |
+
'order' => 'ASC'
|
472 |
+
);
|
473 |
+
$ecwd_events_by_tags = get_posts($args);
|
474 |
+
$ecwd_events = array_merge($ecwd_events_by_tags, $ecwd_events_by_cats);
|
475 |
+
$ecwd_events = array_map("unserialize", array_unique(array_map("serialize", $ecwd_events)));
|
476 |
+
wp_reset_postdata();
|
477 |
+
wp_reset_query();
|
478 |
+
|
479 |
+
foreach ($ecwd_events as $ecwd_event) {
|
480 |
+
if ($ecwd_event->ID != $post_id) {
|
481 |
+
$term_metas = '';
|
482 |
+
$categories = get_the_terms($ecwd_event->ID, ECWD_PLUGIN_PREFIX . '_event_category');
|
483 |
+
if (is_array($categories)) {
|
484 |
+
foreach ($categories as $category) {
|
485 |
+
$term_metas = get_option("ecwd_event_category_$category->term_id");
|
486 |
+
$term_metas['id'] = $category->term_id;
|
487 |
+
$term_metas['name'] = $category->name;
|
488 |
+
$term_metas['slug'] = $category->slug;
|
489 |
+
}
|
490 |
+
}
|
491 |
+
$ecwd_event_metas = get_post_meta($ecwd_event->ID, '', true);
|
492 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_url'] = array(0 => '');
|
493 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_location'])) {
|
494 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_location'] = array(0 => '');
|
495 |
+
}
|
496 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_lat_long'])) {
|
497 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_lat_long'] = array(0 => '');
|
498 |
+
}
|
499 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_to'])) {
|
500 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_to'] = array(0 => '');
|
501 |
+
}
|
502 |
+
if (!isset($ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_from'])) {
|
503 |
+
$ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_from'] = array(0 => '');
|
504 |
+
}
|
505 |
+
|
506 |
+
$permalink = get_permalink($ecwd_event->ID);
|
507 |
+
$events[$ecwd_event->ID] = new ECWD_Event($ecwd_event->ID, 0, $ecwd_event->post_title, $ecwd_event->post_content, $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_location'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_from'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_date_to'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_event_url'][0], $ecwd_event_metas[ECWD_PLUGIN_PREFIX . '_lat_long'][0], $permalink, $ecwd_event, $term_metas, $ecwd_event_metas);
|
508 |
+
}
|
509 |
+
}
|
510 |
+
$d = new ECWD_Display(0, '', '', $today);
|
511 |
+
$start_date = date('Y-m-d');
|
512 |
+
$end_date = date('Y-m-d', strtotime("+1 year", strtotime($start_date)));
|
513 |
+
$events = $d->get_event_days($events, 1, $start_date, $end_date);
|
514 |
+
?>
|
515 |
+
|
516 |
+
<?php
|
517 |
+
$events = $d->events_unique($events);
|
518 |
+
do_action('ecwd_show_related_events', $events, true);
|
519 |
+
}
|
520 |
+
} ?>
|
521 |
</div>
|
522 |
<!-- #Related Events-->
|
523 |
</article>
|
524 |
</div> <!-- #post-x -->
|
525 |
+
<?php if (comments_open() && $post->comment_status == 'open' && !post_password_required()) { ?>
|
526 |
<div class="ecwd-comments"><?php echo comments_template(); ?></div>
|
527 |
<?php } endwhile; ?>
|
528 |
</div>
|
wd/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
Version: 1.0.
|
2 |
|
3 |
|
4 |
|
1 |
+
Version: 1.0.15
|
2 |
|
3 |
|
4 |
|
wd/assets/css/deactivate_popup.css
CHANGED
@@ -63,12 +63,20 @@
|
|
63 |
margin: 14px 0px 5px;
|
64 |
}
|
65 |
.wd-popup-active1{
|
66 |
-
height:
|
67 |
}
|
68 |
|
69 |
.wd-popup-active2{
|
70 |
height: 426px !important
|
71 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
.wd-deactivate-popup-opacity{
|
73 |
width: 100%;
|
74 |
height: 100%;
|
@@ -87,4 +95,17 @@
|
|
87 |
bottom: 0;
|
88 |
margin: auto;
|
89 |
z-index: 63;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
}
|
63 |
margin: 14px 0px 5px;
|
64 |
}
|
65 |
.wd-popup-active1{
|
66 |
+
height: 583px !important;
|
67 |
}
|
68 |
|
69 |
.wd-popup-active2{
|
70 |
height: 426px !important
|
71 |
}
|
72 |
+
|
73 |
+
.wd-popup-active3{
|
74 |
+
height: 479px !important
|
75 |
+
}
|
76 |
+
|
77 |
+
.wd-popup-active4{
|
78 |
+
height: 340px !important
|
79 |
+
}
|
80 |
.wd-deactivate-popup-opacity{
|
81 |
width: 100%;
|
82 |
height: 100%;
|
95 |
bottom: 0;
|
96 |
margin: auto;
|
97 |
z-index: 63;
|
98 |
+
}
|
99 |
+
|
100 |
+
.wd-deactivate-popup-close-btn{
|
101 |
+
background-image: url(img/close.svg);
|
102 |
+
background-repeat: no-repeat;
|
103 |
+
background-size: 16px;
|
104 |
+
display: inline-block;
|
105 |
+
width: 16px;
|
106 |
+
height: 16px;
|
107 |
+
position: absolute;
|
108 |
+
top: 7px;
|
109 |
+
right: 8px;
|
110 |
+
cursor: pointer;
|
111 |
}
|
wd/assets/css/img/close.svg
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="6917.521 490.293 11.414 11.414">
|
2 |
+
<defs>
|
3 |
+
<style>
|
4 |
+
.cls-1 {
|
5 |
+
fill: none;
|
6 |
+
stroke: #cbcbcb;
|
7 |
+
stroke-linecap: round;
|
8 |
+
stroke-linejoin: round;
|
9 |
+
}
|
10 |
+
</style>
|
11 |
+
</defs>
|
12 |
+
<g id="if_misc-_close__1276877_3_" data-name="if_misc-_close__1276877 (3)" transform="translate(6917.229 490)">
|
13 |
+
<line id="Line_262" data-name="Line 262" class="cls-1" y1="10" x2="10" transform="translate(1 1)"/>
|
14 |
+
<line id="Line_263" data-name="Line 263" class="cls-1" x2="10" y2="10" transform="translate(1 1)"/>
|
15 |
+
</g>
|
16 |
+
</svg>
|
wd/assets/js/deactivate_popup.js
CHANGED
@@ -21,7 +21,13 @@ var btnVal = 3;
|
|
21 |
////////////////////////////////////////////////////////////////////////////////////////
|
22 |
function wdReady(prefix){
|
23 |
|
|
|
|
|
24 |
jQuery(document).on("click", "." + window[prefix + "WDDeactivateVars"].deactivate_class, function(){
|
|
|
|
|
|
|
|
|
25 |
jQuery(".wd-" + prefix + "-opacity").show();
|
26 |
jQuery(".wd-" + prefix + "-deactivate-popup").show();
|
27 |
if(jQuery(this).attr("data-uninstall") == "1"){
|
@@ -30,17 +36,19 @@ function wdReady(prefix){
|
|
30 |
|
31 |
return false;
|
32 |
});
|
33 |
-
|
34 |
-
jQuery(document).on("change", "[name=" + prefix + "_reasons]", function(){
|
35 |
|
36 |
-
|
37 |
-
|
|
|
|
|
|
|
|
|
38 |
if(jQuery(this).val() == "reason_plugin_is_hard_to_use_technical_problems"){
|
39 |
|
40 |
additionalInfo = '<div class="wd-additional-active"><div><strong>Please describe your issue.</strong></div><br>' +
|
41 |
'<textarea name="' + prefix + '_additional_details" rows = "4"></textarea><br>' +
|
42 |
'<div>Our support will contact <input type="text" name="' + prefix + '_email" value="' + window[prefix + "WDDeactivateVars"].email + '"> shortly.</div>'+
|
43 |
-
'<br><div><button class="button button-primary wd-' + prefix + '-deactivate" data-val="' + btnVal + '">Submit support ticket</button></div></div>';
|
44 |
jQuery("." + prefix + "_additional_details_wrap").append(additionalInfo);
|
45 |
jQuery(".wd-" + prefix + "-deactivate-popup").addClass("wd-popup-active1");
|
46 |
|
@@ -57,11 +65,22 @@ function wdReady(prefix){
|
|
57 |
additionalInfo = '<div class="wd-additional-active">' +
|
58 |
'<div><strong>We have a special offer for you.</strong></div>' +
|
59 |
'<div>Submit this form to get the offer to <input type="text" name="' + prefix + '_email" value="' + window[prefix + "WDDeactivateVars"].email + '"></div>' +
|
60 |
-
'<br><div><button class="button button-primary wd-' + prefix + '-deactivate" data-val="' + btnVal + '">Submit</button></div></div>';
|
61 |
|
62 |
jQuery("." + prefix + "_additional_details_wrap").append(additionalInfo);
|
63 |
-
jQuery(".wd-" + prefix + "-deactivate-popup").addClass("wd-popup-
|
64 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
|
66 |
jQuery("#wd-" + prefix + "-deactivate").hide();
|
67 |
jQuery("#wd-" + prefix + "-submit-and-deactivate").show();
|
@@ -78,7 +97,27 @@ function wdReady(prefix){
|
|
78 |
}
|
79 |
|
80 |
});
|
81 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
jQuery(".wd-deactivate-popup-opacity-" + prefix).show();
|
83 |
if(jQuery(this).hasClass("wd-clicked") == false){
|
84 |
jQuery(this).addClass("wd-clicked");
|
@@ -88,12 +127,25 @@ function wdReady(prefix){
|
|
88 |
return false;
|
89 |
});
|
90 |
|
91 |
-
jQuery(document).on("click", ".wd-" + prefix + "-cancel, .wd-opacity", function(){
|
92 |
jQuery(".wd-" + prefix + "-opacity").hide();
|
93 |
jQuery(".wd-" + prefix + "-deactivate-popup").hide();
|
|
|
|
|
94 |
return false;
|
95 |
});
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
}
|
98 |
|
99 |
////////////////////////////////////////////////////////////////////////////////////////
|
21 |
////////////////////////////////////////////////////////////////////////////////////////
|
22 |
function wdReady(prefix){
|
23 |
|
24 |
+
var agree_with_pp = false;
|
25 |
+
|
26 |
jQuery(document).on("click", "." + window[prefix + "WDDeactivateVars"].deactivate_class, function(){
|
27 |
+
agree_with_pp = false;
|
28 |
+
if (!jQuery('#wd-' + prefix + '-submit-and-deactivate').hasClass('button-primary-disabled')) {
|
29 |
+
jQuery('#wd-' + prefix + '-submit-and-deactivate').addClass('button-primary-disabled')
|
30 |
+
}
|
31 |
jQuery(".wd-" + prefix + "-opacity").show();
|
32 |
jQuery(".wd-" + prefix + "-deactivate-popup").show();
|
33 |
if(jQuery(this).attr("data-uninstall") == "1"){
|
36 |
|
37 |
return false;
|
38 |
});
|
|
|
|
|
39 |
|
40 |
+
jQuery(document).on("change", "[name=" + prefix + "_reasons]", function(){
|
41 |
+
|
42 |
+
var disabled_class = (agree_with_pp === false) ? "button-primary-disabled" : "";
|
43 |
+
|
44 |
+
jQuery("." + prefix + "_additional_details_wrap").html("");
|
45 |
+
jQuery(".wd-" + prefix + "-deactivate-popup").removeClass("wd-popup-active1 wd-popup-active2 wd-popup-active3 wd-popup-active4");
|
46 |
if(jQuery(this).val() == "reason_plugin_is_hard_to_use_technical_problems"){
|
47 |
|
48 |
additionalInfo = '<div class="wd-additional-active"><div><strong>Please describe your issue.</strong></div><br>' +
|
49 |
'<textarea name="' + prefix + '_additional_details" rows = "4"></textarea><br>' +
|
50 |
'<div>Our support will contact <input type="text" name="' + prefix + '_email" value="' + window[prefix + "WDDeactivateVars"].email + '"> shortly.</div>'+
|
51 |
+
'<br><div><button class="button button-primary ' + disabled_class + ' wd-' + prefix + '-deactivate" data-val="' + btnVal + '">Submit support ticket</button></div></div>';
|
52 |
jQuery("." + prefix + "_additional_details_wrap").append(additionalInfo);
|
53 |
jQuery(".wd-" + prefix + "-deactivate-popup").addClass("wd-popup-active1");
|
54 |
|
65 |
additionalInfo = '<div class="wd-additional-active">' +
|
66 |
'<div><strong>We have a special offer for you.</strong></div>' +
|
67 |
'<div>Submit this form to get the offer to <input type="text" name="' + prefix + '_email" value="' + window[prefix + "WDDeactivateVars"].email + '"></div>' +
|
68 |
+
'<br><div><button class="button button-primary ' + disabled_class + ' wd-' + prefix + '-deactivate" data-val="' + btnVal + '">Submit</button></div></div>';
|
69 |
|
70 |
jQuery("." + prefix + "_additional_details_wrap").append(additionalInfo);
|
71 |
+
jQuery(".wd-" + prefix + "-deactivate-popup").addClass("wd-popup-active3");
|
72 |
+
}else{
|
73 |
+
jQuery(".wd-" + prefix + "-deactivate-popup").addClass("wd-popup-active4");
|
74 |
+
}
|
75 |
+
|
76 |
+
var checked = (agree_with_pp === true) ? "checked" : "";
|
77 |
+
var agree_checkbox =
|
78 |
+
"<div style='margin-top: 5px;'>" +
|
79 |
+
"<input type='checkbox' " + checked + " name='" + prefix + "_agree_with_pp" + "' id='" + prefix + "_agree_with_pp" + "'/>" +
|
80 |
+
"By submitting this form your email and website URL will be sent to Web-Dorado. Click the checkbox if you consent to usage of mentioned data by Web-Dorado in accordance with our <a target='_blank' href='https://web-dorado.com/web-dorado-privacy-statement.html'>Privacy Policy</a>."+
|
81 |
+
"</div>";
|
82 |
+
|
83 |
+
jQuery("." + prefix + "_additional_details_wrap").prepend(agree_checkbox);
|
84 |
|
85 |
jQuery("#wd-" + prefix + "-deactivate").hide();
|
86 |
jQuery("#wd-" + prefix + "-submit-and-deactivate").show();
|
97 |
}
|
98 |
|
99 |
});
|
100 |
+
|
101 |
+
jQuery(document).on("change", "[name=" + prefix + "_agree_with_pp]", function () {
|
102 |
+
if(jQuery(this).prop('checked')){
|
103 |
+
jQuery(".wd-" + prefix + "-deactivate").removeClass('button-primary-disabled');
|
104 |
+
agree_with_pp = true;
|
105 |
+
}else{
|
106 |
+
jQuery(".wd-" + prefix + "-deactivate").addClass('button-primary-disabled');
|
107 |
+
agree_with_pp = false;
|
108 |
+
}
|
109 |
+
});
|
110 |
+
|
111 |
+
jQuery(document).on("click", ".wd-" + prefix + "-deactivate", function(e){
|
112 |
+
|
113 |
+
var data_val = jQuery(this).data('val');
|
114 |
+
var checkbox = jQuery("#" + prefix + "_agree_with_pp");
|
115 |
+
|
116 |
+
|
117 |
+
if (data_val !== 1 && (checkbox.length === 0 || checkbox.prop('checked') === false)) {
|
118 |
+
return false;
|
119 |
+
}
|
120 |
+
|
121 |
jQuery(".wd-deactivate-popup-opacity-" + prefix).show();
|
122 |
if(jQuery(this).hasClass("wd-clicked") == false){
|
123 |
jQuery(this).addClass("wd-clicked");
|
127 |
return false;
|
128 |
});
|
129 |
|
130 |
+
jQuery(document).on("click", ".wd-" + prefix + "-cancel, .wd-opacity, .wd-deactivate-popup-close-btn", function(){
|
131 |
jQuery(".wd-" + prefix + "-opacity").hide();
|
132 |
jQuery(".wd-" + prefix + "-deactivate-popup").hide();
|
133 |
+
reset_popup();
|
134 |
+
|
135 |
return false;
|
136 |
});
|
137 |
|
138 |
+
function reset_popup() {
|
139 |
+
jQuery("." + prefix + "_additional_details_wrap").html("");
|
140 |
+
jQuery(".wd-" + prefix + "-deactivate-popup").removeClass("wd-popup-active1 wd-popup-active2 wd-popup-active3 wd-popup-active4");
|
141 |
+
|
142 |
+
jQuery("#wd-" + prefix + "-deactivate").removeClass("button-primary-disabled");
|
143 |
+
jQuery("#wd-" + prefix + "-deactivate").show();
|
144 |
+
jQuery("#wd-" + prefix + "-submit-and-deactivate").hide();
|
145 |
+
jQuery('#' + prefix + '_deactivate_form input[name="' + prefix + '_reasons' + '"]').prop('checked', false);
|
146 |
+
|
147 |
+
}
|
148 |
+
|
149 |
}
|
150 |
|
151 |
////////////////////////////////////////////////////////////////////////////////////////
|
wd/config.php
CHANGED
@@ -36,6 +36,7 @@
|
|
36 |
public $custom_post = null;
|
37 |
public $menu_capability = null;
|
38 |
public $menu_position = null;
|
|
|
39 |
|
40 |
public function set_options( $options ){
|
41 |
|
@@ -108,7 +109,10 @@
|
|
108 |
}
|
109 |
if(isset( $options["menu_position"] )) {
|
110 |
$this->menu_position = $options["menu_position"];
|
111 |
-
}
|
|
|
|
|
|
|
112 |
|
113 |
// directories
|
114 |
$this->wd_dir = dirname( $this->plugin_main_file ) . '/wd';
|
36 |
public $custom_post = null;
|
37 |
public $menu_capability = null;
|
38 |
public $menu_position = null;
|
39 |
+
public $start_using_url = null;
|
40 |
|
41 |
public function set_options( $options ){
|
42 |
|
109 |
}
|
110 |
if(isset( $options["menu_position"] )) {
|
111 |
$this->menu_position = $options["menu_position"];
|
112 |
+
}
|
113 |
+
if(isset( $options["start_using_url"] )) {
|
114 |
+
$this->start_using_url = $options["start_using_url"];
|
115 |
+
}
|
116 |
|
117 |
// directories
|
118 |
$this->wd_dir = dirname( $this->plugin_main_file ) . '/wd';
|
wd/includes/deactivate.php
CHANGED
@@ -44,7 +44,7 @@
|
|
44 |
),
|
45 |
4 => array(
|
46 |
'id' => self::REASON_UPGRADING_TO_PAID_VERSION,
|
47 |
-
'text' => __( 'Upgrading to
|
48 |
),
|
49 |
5 => array(
|
50 |
'id' => self::REASON_TEMPORARY_DEACTIVATION,
|
44 |
),
|
45 |
4 => array(
|
46 |
'id' => self::REASON_UPGRADING_TO_PAID_VERSION,
|
47 |
+
'text' => __( 'Upgrading to paid version', $wd_options->prefix ),
|
48 |
),
|
49 |
5 => array(
|
50 |
'id' => self::REASON_TEMPORARY_DEACTIVATION,
|
wd/includes/overview.php
CHANGED
@@ -66,6 +66,9 @@
|
|
66 |
$start_using_url = menu_page_url($this->config->custom_post, false);
|
67 |
}
|
68 |
}
|
|
|
|
|
|
|
69 |
require_once( $wd_options->wd_dir_templates . "/display_overview.php" );
|
70 |
}
|
71 |
public function wd_overview_welcome(){
|
66 |
$start_using_url = menu_page_url($this->config->custom_post, false);
|
67 |
}
|
68 |
}
|
69 |
+
if(!empty($this->config->start_using_url)){
|
70 |
+
$start_using_url = $this->config->start_using_url;
|
71 |
+
}
|
72 |
require_once( $wd_options->wd_dir_templates . "/display_overview.php" );
|
73 |
}
|
74 |
public function wd_overview_welcome(){
|
wd/templates/display_deactivation_popup.php
CHANGED
@@ -5,7 +5,8 @@
|
|
5 |
</div>
|
6 |
<form method="post" id="<?php echo $wd_options->prefix; ?>_deactivate_form">
|
7 |
<div class="wd-deactivate-popup-header">
|
8 |
-
<?php _e( "Please let us know why you are deactivating. Your answer will help us to
|
|
|
9 |
</div>
|
10 |
|
11 |
<div class="wd-deactivate-popup-body">
|
@@ -19,7 +20,7 @@
|
|
19 |
</div>
|
20 |
<div class="wd-btns">
|
21 |
<a href="<?php echo $deactivate_url; ?>" data-val="1" class="button button-primary button-close wd-<?php echo $wd_options->prefix; ?>-deactivate" id="wd-<?php echo $wd_options->prefix; ?>-deactivate"><?php _e( "Skip and Deactivate" , $wd_options->prefix ); ?></a>
|
22 |
-
<a href="<?php echo $deactivate_url; ?>" data-val="2" class="button button-primary button-close wd-<?php echo $wd_options->prefix; ?>-deactivate" id="wd-<?php echo $wd_options->prefix; ?>-submit-and-deactivate" style="display:none;"><?php _e( "Submit and Deactivate" , $wd_options->prefix ); ?></a>
|
23 |
</div>
|
24 |
<input type="hidden" name="<?php echo $wd_options->prefix . "_submit_and_deactivate"; ?>" value="" >
|
25 |
<?php wp_nonce_field( $wd_options->prefix . '_save_form', $wd_options->prefix . '_save_form_fild'); ?>
|
5 |
</div>
|
6 |
<form method="post" id="<?php echo $wd_options->prefix; ?>_deactivate_form">
|
7 |
<div class="wd-deactivate-popup-header">
|
8 |
+
<?php _e( "Please let us know why you are deactivating. Your answer will help us to provide you support or sometimes offer discounts. (Optional)", $wd_options->prefix ); ?>:
|
9 |
+
<span class="wd-deactivate-popup-close-btn"></span>
|
10 |
</div>
|
11 |
|
12 |
<div class="wd-deactivate-popup-body">
|
20 |
</div>
|
21 |
<div class="wd-btns">
|
22 |
<a href="<?php echo $deactivate_url; ?>" data-val="1" class="button button-primary button-close wd-<?php echo $wd_options->prefix; ?>-deactivate" id="wd-<?php echo $wd_options->prefix; ?>-deactivate"><?php _e( "Skip and Deactivate" , $wd_options->prefix ); ?></a>
|
23 |
+
<a href="<?php echo $deactivate_url; ?>" data-val="2" class="button button-primary button-primary-disabled button-close wd-<?php echo $wd_options->prefix; ?>-deactivate" id="wd-<?php echo $wd_options->prefix; ?>-submit-and-deactivate" style="display:none;"><?php _e( "Submit and Deactivate" , $wd_options->prefix ); ?></a>
|
24 |
</div>
|
25 |
<input type="hidden" name="<?php echo $wd_options->prefix . "_submit_and_deactivate"; ?>" value="" >
|
26 |
<?php wp_nonce_field( $wd_options->prefix . '_save_form', $wd_options->prefix . '_save_form_fild'); ?>
|
wd/templates/display_overview_support.php
CHANGED
@@ -27,8 +27,24 @@
|
|
27 |
echo ' ';
|
28 |
foreach( $gd_info as $key => $val ){
|
29 |
echo $key . ": " . $val . ' ';
|
30 |
-
}
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
</div>
|
33 |
</div>
|
34 |
<?php
|
27 |
echo ' ';
|
28 |
foreach( $gd_info as $key => $val ){
|
29 |
echo $key . ": " . $val . ' ';
|
30 |
+
}
|
31 |
+
echo ' ';
|
32 |
+
_e("Active Plugins", $wd_options->prefix);
|
33 |
+
echo ' ';
|
34 |
+
$activepl = get_option('active_plugins');
|
35 |
+
$plugins = get_plugins();
|
36 |
+
$activated_plugins = array();
|
37 |
+
foreach ( $activepl as $p ) {
|
38 |
+
if ( isset($plugins[$p]) ) {
|
39 |
+
array_push($activated_plugins, $plugins[$p]);
|
40 |
+
echo ' ' . $plugins[$p]['Name'];
|
41 |
+
}
|
42 |
+
}
|
43 |
+
echo ' ';
|
44 |
+
_e("Active theme", $wd_options->prefix);
|
45 |
+
echo ' ';
|
46 |
+
echo wp_get_theme();
|
47 |
+
?></textarea>
|
48 |
</div>
|
49 |
</div>
|
50 |
<?php
|
wd/templates/display_subscribe.php
CHANGED
@@ -8,7 +8,10 @@
|
|
8 |
<div class="texts">
|
9 |
<p><?php _e( "Hi there", $wd_options->prefix ); ?>,</p>
|
10 |
<p>
|
11 |
-
|
|
|
|
|
|
|
12 |
</p>
|
13 |
</div>
|
14 |
<div class="btns">
|
8 |
<div class="texts">
|
9 |
<p><?php _e( "Hi there", $wd_options->prefix ); ?>,</p>
|
10 |
<p>
|
11 |
+
<?php
|
12 |
+
$pp_text = "<a target='_blank' href='https://web-dorado.com/web-dorado-privacy-statement.html'>" . __("Privacy Policy", $wd_options->prefix) . "</a>";
|
13 |
+
echo sprintf(__("Allow %s to collect some usage data, to be able to provide you more out of your plugin experience - awesome customer support and more. Check how we handle your personal data in our %s. You can always customize your preferences from the emails your receive from us. You can choose to skip this step, %s will still work just fine.", $wd_options->prefix), '<strong>Web-Dorado</strong>', $pp_text, $wd_options->plugin_title);
|
14 |
+
?>
|
15 |
</p>
|
16 |
</div>
|
17 |
<div class="btns">
|
wd/wd.php
CHANGED
@@ -17,7 +17,7 @@
|
|
17 |
public $overview_instance;
|
18 |
public $subscribe_instance;
|
19 |
public $config;
|
20 |
-
private $version = "1.0.
|
21 |
|
22 |
////////////////////////////////////////////////////////////////////////////////////////
|
23 |
// Constructor & Destructor //
|
17 |
public $overview_instance;
|
18 |
public $subscribe_instance;
|
19 |
public $config;
|
20 |
+
private $version = "1.0.15";
|
21 |
|
22 |
////////////////////////////////////////////////////////////////////////////////////////
|
23 |
// Constructor & Destructor //
|