Events Manager - Version 5.0.3

Version Description

  • searching from/to without one or another date works as intended
  • fixed various old-named properties (and refreshed old properties after object save)
  • fixed overriding front-end edit links from within admin area
  • fixed #_EDITEVENTURL
  • fixed location placeholder output/filter function
  • fixed missing php in opening tag of search template
Download this release

Release Info

Developer netweblogic
Plugin Icon 128x128 Events Manager
Version 5.0.3
Comparing to
See all releases

Code changes from version 3.0.98 to 5.0.3

Files changed (63) hide show
  1. admin/bookings/em-cancelled.php +136 -132
  2. admin/bookings/em-confirmed.php +143 -139
  3. admin/bookings/em-events.php +178 -178
  4. admin/bookings/em-pending.php +158 -154
  5. admin/bookings/em-person.php +151 -149
  6. admin/bookings/em-rejected.php +136 -132
  7. admin/em-admin.php +216 -284
  8. admin/em-bookings.php +421 -287
  9. admin/em-categories.php +0 -177
  10. admin/em-docs.php +285 -192
  11. admin/em-event.php +0 -627
  12. admin/em-events.php +0 -242
  13. admin/em-help.php +68 -51
  14. admin/em-locations-search.php +7 -3
  15. admin/em-locations.php +0 -268
  16. admin/em-ms-locations.php +55 -0
  17. admin/em-ms-options.php +213 -0
  18. admin/em-options.php +1468 -443
  19. admin/em-people.php +0 -192
  20. buddypress/bp-em-activity.php +126 -0
  21. buddypress/bp-em-core.php +227 -0
  22. buddypress/bp-em-groups.php +65 -0
  23. buddypress/bp-em-notifications.php +82 -0
  24. buddypress/bp-em-templatetags.php +21 -0
  25. buddypress/screens/attending.php +29 -0
  26. buddypress/screens/group-events.php +30 -0
  27. buddypress/screens/my-bookings.php +35 -0
  28. buddypress/screens/my-events.php +56 -0
  29. buddypress/screens/my-group-events.php +27 -0
  30. buddypress/screens/my-locations.php +52 -0
  31. buddypress/screens/profile.php +32 -0
  32. classes/em-booking.php +676 -378
  33. classes/em-bookings.php +585 -487
  34. classes/em-calendar.php +339 -366
  35. classes/em-categories-taxonomy.php +84 -0
  36. classes/em-categories.php +319 -156
  37. classes/em-category-taxonomy.php +67 -0
  38. classes/em-category.php +213 -151
  39. classes/em-event-post-admin.php +373 -0
  40. classes/em-event-post.php +256 -0
  41. classes/em-event-posts-admin.php +243 -0
  42. classes/em-event.php +1790 -1005
  43. classes/em-events.php +375 -253
  44. classes/em-location-post-admin.php +123 -0
  45. classes/em-location-post.php +67 -0
  46. classes/em-location-posts-admin.php +68 -0
  47. classes/em-location.php +662 -306
  48. classes/em-locations.php +305 -212
  49. classes/em-mailer.php +96 -79
  50. classes/em-map.php +0 -60
  51. classes/em-notices.php +196 -0
  52. classes/em-object.php +889 -485
  53. classes/em-people.php +33 -128
  54. classes/em-permalinks.php +200 -0
  55. classes/em-person.php +91 -153
  56. classes/em-recurrence.php +0 -89
  57. classes/em-tag-taxonomy.php +63 -0
  58. classes/em-tag.php +135 -0
  59. classes/em-ticket-booking.php +223 -0
  60. classes/em-ticket.php +340 -0
  61. classes/em-tickets-bookings.php +283 -0
  62. classes/em-tickets.php +241 -0
  63. classes/phpmailer/class.phpmailer.php +1121 -672
admin/bookings/em-cancelled.php CHANGED
@@ -1,133 +1,137 @@
1
- <?php
2
- /**
3
- * Generates a "widget" table of confirmed bookings for a specific event.
4
- *
5
- * @param int $event_id
6
- */
7
- function em_bookings_cancelled_table(){
8
- global $EM_Event, $wpdb, $current_user;
9
-
10
- $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_cancelled_table' );
11
- $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
12
- $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
13
- $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
14
- $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
15
- $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
16
-
17
- if( is_object($EM_Event) ){
18
- $bookings = $EM_Event->get_bookings()->get_cancelled_bookings();
19
- }else{
20
- return false;
21
- }
22
- $bookings_count = (is_array($bookings)) ? count($bookings):0;
23
- ?>
24
- <div class='wrap em_bookings_pending_table em_obj'>
25
- <form id='bookings-filter' method='get' action='<?php bloginfo('wpurl') ?>/wp-admin/edit.php'>
26
- <input type="hidden" name="em_obj" value="em_bookings_pending_table" />
27
- <!--
28
- <ul class="subsubsub">
29
- <li>
30
- <a href='edit.php?post_type=post' class="current">All <span class="count">(1)</span></a> |
31
- </li>
32
- </ul>
33
- <p class="search-box">
34
- <label class="screen-reader-text" for="post-search-input"><?php _e('Search'); ?>:</label>
35
- <input type="text" id="post-search-input" name="em_search" value="<?php echo (!empty($_GET['em_search'])) ? $_GET['em_search']:''; ?>" />
36
- <input type="submit" value="<?php _e('Search'); ?>" class="button" />
37
- </p>
38
- -->
39
- <?php if ( $bookings_count >= $limit ) : ?>
40
- <div class='tablenav'>
41
- <!--
42
- <div class="alignleft actions">
43
- <select name="action">
44
- <option value="-1" selected="selected">
45
- <?php _e('Bulk Actions'); ?>
46
- </option>
47
- <option value="approve">
48
- <?php _e('Approve', 'dbem'); ?>
49
- </option>
50
- <option value="decline">
51
- <?php _e('Decline', 'dbem'); ?>
52
- </option>
53
- </select>
54
- <input type="submit" id="post-query-submit" value="Filter" class="button-secondary" />
55
- </div>
56
- -->
57
- <!--
58
- <div class="view-switch">
59
- <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
60
- </div>
61
- -->
62
- <?php
63
- if ( $bookings_count >= $limit ) {
64
- $page_link_template = em_add_get_params($_SERVER['REQUEST_URI'], array('pno'=>'%PAGE%', 'em_ajax'=>0, 'em_obj'=>'em_bookings_confirmed_table'));
65
- $bookings_nav = em_admin_paginate( $page_link_template, $bookings_count, $limit, $page, 5);
66
- echo $bookings_nav;
67
- }
68
- ?>
69
- <div class="clear"></div>
70
- </div>
71
- <?php endif; ?>
72
- <div class="clear"></div>
73
- <?php if( $bookings_count > 0 ): ?>
74
- <div class='table-wrap'>
75
- <table id='dbem-bookings-table' class='widefat post fixed'>
76
- <thead>
77
- <tr>
78
- <th class='manage-column column-cb check-column' scope='col'>
79
- <input class='select-all' type="checkbox" value='1' />
80
- </th>
81
- <th class='manage-column' scope='col'>Booker</th>
82
- <th class='manage-column' scope='col'>E-mail</th>
83
- <th class='manage-column' scope='col'>Phone number</th>
84
- <th class='manage-column' scope='col'>Spaces</th>
85
- <th class='manage-column' scope='col'>&nbsp;</th>
86
- </tr>
87
- </thead>
88
- <tbody>
89
- <?php
90
- $rowno = 0;
91
- $event_count = 0;
92
- foreach ($bookings as $EM_Booking) {
93
- if( ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
94
- $rowno++;
95
- ?>
96
- <tr>
97
- <th scope="row" class="check-column" style="padding:7px 0px 7px;"><input type='checkbox' value='<?php echo $EM_Booking->id ?>' name='bookings[]'/></th>
98
- <td><a href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;person_id=<?php echo $EM_Booking->person->id; ?>"><?php echo $EM_Booking->person->name ?></a></td>
99
- <td><?php echo $EM_Booking->person->email ?></td>
100
- <td><?php echo $EM_Booking->person->phone ?></td>
101
- <td><?php echo $EM_Booking->seats ?></td>
102
- <td>
103
- <?php
104
- $approve_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_approve', 'booking_id'=>$EM_Booking->id));
105
- $delete_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_delete', 'booking_id'=>$EM_Booking->id));
106
- ?>
107
- <a class="em-bookings-approve" href="<?php echo $approve_url ?>"><?php _e('Restore','dbem'); ?></a> |
108
- <a class="em-bookings-edit" href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;booking_id=<?php echo $EM_Booking->id; ?>"><?php _e('Edit'); ?></a> |
109
- <a class="em-bookings-delete" href="<?php echo $delete_url ?>"><?php _e('Delete','dbem'); ?></a>
110
- </td>
111
- </tr>
112
- <?php
113
- }
114
- $event_count++;
115
- }
116
- ?>
117
- </tbody>
118
- </table>
119
- </div>
120
- <?php else: ?>
121
- <?php _e('No cancelled bookings.', 'dbem'); ?>
122
- <?php endif; ?>
123
- </form>
124
- <?php if( !empty($bookings_nav) ) : ?>
125
- <div class='tablenav'>
126
- <?php echo $bookings_nav; ?>
127
- <div class="clear"></div>
128
- </div>
129
- <?php endif; ?>
130
- </div>
131
- <?php
132
- }
 
 
 
 
133
  ?>
1
+ <?php
2
+ /**
3
+ * Generates a "widget" table of confirmed bookings for a specific event.
4
+ *
5
+ * @param int $event_id
6
+ */
7
+ function em_bookings_cancelled_table(){
8
+ global $EM_Event, $EM_Ticket, $wpdb, $current_user;
9
+
10
+ $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_cancelled_table' );
11
+ $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
12
+ $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
13
+ $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
14
+ $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
15
+ $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
16
+
17
+ if( is_object($EM_Ticket) ){
18
+ $EM_Bookings = $EM_Ticket->get_bookings()->get_cancelled_bookings();
19
+ }else{
20
+ if( is_object($EM_Event) ){
21
+ $EM_Bookings = $EM_Event->get_bookings()->get_cancelled_bookings();
22
+ }else{
23
+ return false;
24
+ }
25
+ }
26
+ $bookings_count = (is_array($EM_Bookings->bookings)) ? count($EM_Bookings->bookings):0;
27
+ ?>
28
+ <div class='wrap em_bookings_pending_table em_obj'>
29
+ <form id='bookings-filter' method='get' action='<?php bloginfo('wpurl') ?>/wp-admin/edit.php'>
30
+ <input type="hidden" name="em_obj" value="em_bookings_pending_table" />
31
+ <!--
32
+ <ul class="subsubsub">
33
+ <li>
34
+ <a href='edit.php?post_type=post' class="current">All <span class="count">(1)</span></a> |
35
+ </li>
36
+ </ul>
37
+ <p class="search-box">
38
+ <label class="screen-reader-text" for="post-search-input"><?php _e('Search', 'dbem'); ?>:</label>
39
+ <input type="text" id="post-search-input" name="em_search" value="<?php echo (!empty($_GET['em_search'])) ? $_GET['em_search']:''; ?>" />
40
+ <input type="submit" value="<?php _e('Search', 'dbem'); ?>" class="button" />
41
+ </p>
42
+ -->
43
+ <?php if ( $bookings_count >= $limit ) : ?>
44
+ <div class='tablenav'>
45
+ <!--
46
+ <div class="alignleft actions">
47
+ <select name="action">
48
+ <option value="-1" selected="selected">
49
+ <?php _e('Bulk Actions', 'dbem'); ?>
50
+ </option>
51
+ <option value="approve">
52
+ <?php _e('Approve', 'dbem'); ?>
53
+ </option>
54
+ <option value="decline">
55
+ <?php _e('Decline', 'dbem'); ?>
56
+ </option>
57
+ </select>
58
+ <input type="submit" id="post-query-submit" value="Filter" class="button-secondary" />
59
+ </div>
60
+ -->
61
+ <!--
62
+ <div class="view-switch">
63
+ <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
64
+ </div>
65
+ -->
66
+ <?php
67
+ if ( $bookings_count >= $limit ) {
68
+ $bookings_nav = em_admin_paginate( $bookings_count, $limit, $page, array('em_ajax'=>0, 'em_obj'=>'em_bookings_confirmed_table'));
69
+ echo $bookings_nav;
70
+ }
71
+ ?>
72
+ <div class="clear"></div>
73
+ </div>
74
+ <?php endif; ?>
75
+ <div class="clear"></div>
76
+ <?php if( $bookings_count > 0 ): ?>
77
+ <div class='table-wrap'>
78
+ <table id='dbem-bookings-table' class='widefat post '>
79
+ <thead>
80
+ <tr>
81
+ <th class='manage-column column-cb check-column' scope='col'>
82
+ <input class='select-all' type="checkbox" value='1' />
83
+ </th>
84
+ <th class='manage-column' scope='col'><?php _e('Booker', 'dbem'); ?></th>
85
+ <th class='manage-column' scope='col'><?php _e('E-mail', 'dbem'); ?></th>
86
+ <th class='manage-column' scope='col'><?php _e('Phone number', 'dbem'); ?></th>
87
+ <th class='manage-column' scope='col'><?php _e('Spaces', 'dbem'); ?></th>
88
+ <th class='manage-column' scope='col'>&nbsp;</th>
89
+ </tr>
90
+ </thead>
91
+ <tbody>
92
+ <?php
93
+ $rowno = 0;
94
+ $event_count = 0;
95
+ foreach ($EM_Bookings->bookings as $EM_Booking) {
96
+ if( ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
97
+ $rowno++;
98
+ ?>
99
+ <tr>
100
+ <th scope="row" class="check-column" style="padding:7px 0px 7px;"><input type='checkbox' value='<?php echo $EM_Booking->booking_id ?>' name='bookings[]'/></th>
101
+ <td><a href="<?php echo EM_ADMIN_URL; ?>&amp;page=events-manager-bookings&amp;person_id=<?php echo $EM_Booking->person->ID; ?>"><?php echo $EM_Booking->person->get_name() ?></a></td>
102
+ <td><?php echo $EM_Booking->person->user_email ?></td>
103
+ <td><?php echo $EM_Booking->person->phone ?></td>
104
+ <td><?php echo $EM_Booking->get_spaces() ?></td>
105
+ <td>
106
+ <?php
107
+ $approve_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_approve', 'booking_id'=>$EM_Booking->booking_id));
108
+ $delete_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_delete', 'booking_id'=>$EM_Booking->booking_id));
109
+ $edit_url = em_add_get_params($_SERVER['REQUEST_URI'], array('booking_id'=>$EM_Booking->booking_id, 'em_ajax'=>null, 'em_obj'=>null));
110
+ ?>
111
+ <a class="em-bookings-approve" href="<?php echo $approve_url ?>"><?php _e('Restore','dbem'); ?></a> |
112
+ <a class="em-bookings-edit" href="<?php echo $edit_url; ?>"><?php _e('Edit/View','dbem'); ?></a> |
113
+ <a class="em-bookings-delete" href="<?php echo $delete_url ?>"><?php _e('Delete','dbem'); ?></a>
114
+ </td>
115
+ </tr>
116
+ <?php
117
+ }
118
+ $event_count++;
119
+ }
120
+ ?>
121
+ </tbody>
122
+ </table>
123
+ </div>
124
+ <?php else: ?>
125
+ <?php _e('No cancelled bookings.', 'dbem'); ?>
126
+ <?php endif; ?>
127
+ </form>
128
+ <?php if( !empty($bookings_nav) && $EM_Bookings >= $limit ) : ?>
129
+ <div class='tablenav'>
130
+ <?php echo $bookings_nav; ?>
131
+ <div class="clear"></div>
132
+ </div>
133
+ <?php endif; ?>
134
+ </div>
135
+ <?php
136
+ }
137
  ?>
admin/bookings/em-confirmed.php CHANGED
@@ -1,140 +1,144 @@
1
- <?php
2
-
3
- /**
4
- * Generates a "widget" table of confirmed bookings for a specific event.
5
- *
6
- * @param int $event_id
7
- */
8
- function em_bookings_confirmed_table(){
9
- global $EM_Event, $wpdb, $current_user;
10
-
11
- $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_confirmed_table' );
12
- $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
13
- $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
14
- $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
15
- $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
16
- $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
17
-
18
- if( is_object($EM_Event) ){
19
- $bookings = $EM_Event->get_bookings()->get_bookings();
20
- }else{
21
- return false;
22
- }
23
- $bookings_count = (is_array($bookings)) ? count($bookings):0;
24
- ?>
25
- <div class='wrap em_bookings_pending_table em_obj'>
26
- <form id='bookings-filter' method='get' action='<?php bloginfo('wpurl') ?>/wp-admin/edit.php'>
27
- <input type="hidden" name="em_obj" value="em_bookings_pending_table" />
28
- <!--
29
- <ul class="subsubsub">
30
- <li>
31
- <a href='edit.php?post_type=post' class="current">All <span class="count">(1)</span></a> |
32
- </li>
33
- </ul>
34
- <p class="search-box">
35
- <label class="screen-reader-text" for="post-search-input"><?php _e('Search'); ?>:</label>
36
- <input type="text" id="post-search-input" name="em_search" value="<?php echo (!empty($_GET['em_search'])) ? $_GET['em_search']:''; ?>" />
37
- <input type="submit" value="<?php _e('Search'); ?>" class="button" />
38
- </p>
39
- -->
40
- <?php if ( $bookings_count >= $limit ) : ?>
41
- <div class='tablenav'>
42
- <!--
43
- <div class="alignleft actions">
44
- <select name="action">
45
- <option value="-1" selected="selected">
46
- <?php _e('Bulk Actions'); ?>
47
- </option>
48
- <option value="approve">
49
- <?php _e('Approve', 'dbem'); ?>
50
- </option>
51
- <option value="decline">
52
- <?php _e('Decline', 'dbem'); ?>
53
- </option>
54
- </select>
55
- <input type="submit" id="post-query-submit" value="Filter" class="button-secondary" />
56
- </div>
57
- -->
58
- <!--
59
- <div class="view-switch">
60
- <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
61
- </div>
62
- -->
63
- <?php
64
- if ( $bookings_count >= $limit ) {
65
- $page_link_template = em_add_get_params($_SERVER['REQUEST_URI'], array('pno'=>'%PAGE%', 'em_ajax'=>0, 'em_obj'=>'em_bookings_confirmed_table'));
66
- $bookings_nav = em_admin_paginate( $page_link_template, $bookings_count, $limit, $page, 5);
67
- echo $bookings_nav;
68
- }
69
- ?>
70
- <div class="clear"></div>
71
- </div>
72
- <?php endif; ?>
73
- <div class="clear"></div>
74
- <?php if( $bookings_count > 0 ): ?>
75
- <div class='table-wrap'>
76
- <table id='dbem-bookings-table' class='widefat post fixed'>
77
- <thead>
78
- <tr>
79
- <th class='manage-column column-cb check-column' scope='col'>
80
- <input class='select-all' type="checkbox" value='1' />
81
- </th>
82
- <th class='manage-column' scope='col'>Booker</th>
83
- <th class='manage-column' scope='col'>E-mail</th>
84
- <th class='manage-column' scope='col'>Phone number</th>
85
- <th class='manage-column' scope='col'>Spaces</th>
86
- <th class='manage-column' scope='col'>&nbsp;</th>
87
- </tr>
88
- </thead>
89
- <tbody>
90
- <?php
91
- $rowno = 0;
92
- $event_count = 0;
93
- foreach ($bookings as $EM_Booking) {
94
- if( ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
95
- $rowno++;
96
- ?>
97
- <tr>
98
- <th scope="row" class="check-column" style="padding:7px 0px 7px;"><input type='checkbox' value='<?php echo $EM_Booking->id ?>' name='bookings[]'/></th>
99
- <td><a href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;person_id=<?php echo $EM_Booking->person_id; ?>"><?php echo $EM_Booking->person->name ?></a></td>
100
- <td><?php echo $EM_Booking->person->email ?></td>
101
- <td><?php echo $EM_Booking->person->phone ?></td>
102
- <td><?php echo $EM_Booking->seats ?></td>
103
- <td>
104
- <?php
105
- $unapprove_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_unapprove', 'booking_id'=>$EM_Booking->id));
106
- $reject_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_reject', 'booking_id'=>$EM_Booking->id));
107
- $delete_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_delete', 'booking_id'=>$EM_Booking->id));
108
- ?>
109
- <?php if( get_option('dbem_bookings_approval') ): ?>
110
- <a class="em-bookings-unapprove" href="<?php echo $unapprove_url ?>"><?php _e('Unapprove','dbem'); ?></a> |
111
- <?php else: ?>
112
- <a class="em-bookings-reject" href="<?php echo $reject_url ?>"><?php _e('Reject','dbem'); ?></a> |
113
- <?php endif; ?>
114
- <a class="em-bookings-delete" href="<?php echo $delete_url ?>"><?php _e('Delete','dbem'); ?></a> |
115
- <a class="em-bookings-edit" href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;booking_id=<?php echo $EM_Booking->id; ?>"><?php _e('Edit'); ?></a>
116
- </td>
117
- </tr>
118
- <?php
119
- }
120
- $event_count++;
121
- }
122
- ?>
123
- </tbody>
124
- </table>
125
- </div>
126
- <?php else: ?>
127
- <?php _e('No confirmed bookings.', 'dbem'); ?>
128
- <?php endif; ?>
129
- </form>
130
- <?php if( !empty($bookings_nav) ) : ?>
131
- <div class='tablenav'>
132
- <?php echo $bookings_nav; ?>
133
- <div class="clear"></div>
134
- </div>
135
- <?php endif; ?>
136
- </div>
137
- <?php
138
-
139
- }
 
 
 
 
140
  ?>
1
+ <?php
2
+
3
+ /**
4
+ * Generates a "widget" table of confirmed bookings for a specific event.
5
+ *
6
+ * @param int $event_id
7
+ */
8
+ function em_bookings_confirmed_table(){
9
+ global $EM_Event, $EM_Ticket, $wpdb, $current_user;
10
+
11
+ $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_confirmed_table' );
12
+ $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
13
+ $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
14
+ $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
15
+ $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
16
+ $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
17
+
18
+ if( is_object($EM_Ticket) ){
19
+ $EM_Bookings = $EM_Ticket->get_bookings()->get_bookings();
20
+ }else{
21
+ if( is_object($EM_Event) ){
22
+ $EM_Bookings = $EM_Event->get_bookings()->get_bookings();
23
+ }else{
24
+ return false;
25
+ }
26
+ }
27
+ $bookings_count = (is_array($EM_Bookings->bookings)) ? count($EM_Bookings->bookings):0;
28
+ ?>
29
+ <div class='wrap em_bookings_pending_table em_obj'>
30
+ <form id='bookings-filter' method='get' action='<?php bloginfo('wpurl') ?>/wp-admin/edit.php'>
31
+ <input type="hidden" name="em_obj" value="em_bookings_pending_table" />
32
+ <!--
33
+ <ul class="subsubsub">
34
+ <li>
35
+ <a href='edit.php?post_type=post' class="current">All <span class="count">(1)</span></a> |
36
+ </li>
37
+ </ul>
38
+ <p class="search-box">
39
+ <label class="screen-reader-text" for="post-search-input"><?php _e('Search', 'dbem'); ?>:</label>
40
+ <input type="text" id="post-search-input" name="em_search" value="<?php echo (!empty($_GET['em_search'])) ? $_GET['em_search']:''; ?>" />
41
+ <input type="submit" value="<?php _e('Search', 'dbem'); ?>" class="button" />
42
+ </p>
43
+ -->
44
+ <?php if ( $bookings_count >= $limit ) : ?>
45
+ <div class='tablenav'>
46
+ <!--
47
+ <div class="alignleft actions">
48
+ <select name="action">
49
+ <option value="-1" selected="selected">
50
+ <?php _e('Bulk Actions', 'dbem'); ?>
51
+ </option>
52
+ <option value="approve">
53
+ <?php _e('Approve', 'dbem'); ?>
54
+ </option>
55
+ <option value="decline">
56
+ <?php _e('Decline', 'dbem'); ?>
57
+ </option>
58
+ </select>
59
+ <input type="submit" id="post-query-submit" value="Filter" class="button-secondary" />
60
+ </div>
61
+ -->
62
+ <!--
63
+ <div class="view-switch">
64
+ <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
65
+ </div>
66
+ -->
67
+ <?php
68
+ if ( $bookings_count >= $limit ) {
69
+ $bookings_nav = em_admin_paginate($bookings_count, $limit, $page, array('em_ajax'=>0, 'em_obj'=>'em_bookings_confirmed_table'));
70
+ echo $bookings_nav;
71
+ }
72
+ ?>
73
+ <div class="clear"></div>
74
+ </div>
75
+ <?php endif; ?>
76
+ <div class="clear"></div>
77
+ <?php if( $bookings_count > 0 ): ?>
78
+ <div class='table-wrap'>
79
+ <table id='dbem-bookings-table' class='widefat post '>
80
+ <thead>
81
+ <tr>
82
+ <th class='manage-column column-cb check-column' scope='col'>
83
+ <input class='select-all' type="checkbox" value='1' />
84
+ </th>
85
+ <th class='manage-column' scope='col'><?php _e('Booker', 'dbem'); ?></th>
86
+ <th class='manage-column' scope='col'><?php _e('E-mail', 'dbem'); ?></th>
87
+ <th class='manage-column' scope='col'><?php _e('Phone number', 'dbem'); ?></th>
88
+ <th class='manage-column' scope='col'><?php _e('Spaces', 'dbem'); ?></th>
89
+ <th class='manage-column' scope='col'>&nbsp;</th>
90
+ </tr>
91
+ </thead>
92
+ <tbody>
93
+ <?php
94
+ $rowno = 0;
95
+ $event_count = 0;
96
+ foreach ($EM_Bookings->bookings as $EM_Booking) {
97
+ if( ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
98
+ $rowno++;
99
+ ?>
100
+ <tr>
101
+ <th scope="row" class="check-column" style="padding:7px 0px 7px;"><input type='checkbox' value='<?php echo $EM_Booking->booking_id ?>' name='bookings[]'/></th>
102
+ <td><a href="<?php echo EM_ADMIN_URL; ?>&amp;page=events-manager-bookings&amp;person_id=<?php echo $EM_Booking->person_id; ?>"><?php echo $EM_Booking->person->get_name() ?></a></td>
103
+ <td><?php echo $EM_Booking->person->user_email ?></td>
104
+ <td><?php echo $EM_Booking->person->phone ?></td>
105
+ <td><?php echo $EM_Booking->get_spaces() ?></td>
106
+ <td>
107
+ <?php
108
+ $unapprove_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_unapprove', 'booking_id'=>$EM_Booking->booking_id));
109
+ $reject_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_reject', 'booking_id'=>$EM_Booking->booking_id));
110
+ $delete_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_delete', 'booking_id'=>$EM_Booking->booking_id));
111
+ $edit_url = em_add_get_params($_SERVER['REQUEST_URI'], array('booking_id'=>$EM_Booking->booking_id, 'em_ajax'=>null, 'em_obj'=>null));
112
+ ?>
113
+ <?php if( current_user_can('manage_bookings') && get_option('dbem_bookings_approval') ): ?>
114
+ <a class="em-bookings-unapprove" href="<?php echo $unapprove_url ?>"><?php _e('Unapprove','dbem'); ?></a> |
115
+ <?php else: ?>
116
+ <a class="em-bookings-reject" href="<?php echo $reject_url ?>"><?php _e('Reject','dbem'); ?></a> |
117
+ <?php endif; ?>
118
+ <span class="trash"><a class="em-bookings-delete" href="<?php echo $delete_url ?>"><?php _e('Delete','dbem'); ?></a></span> |
119
+ <a class="em-bookings-edit" href="<?php echo $edit_url; ?>"><?php _e('Edit/View','dbem'); ?></a>
120
+ </td>
121
+ </tr>
122
+ <?php
123
+ }
124
+ $event_count++;
125
+ }
126
+ ?>
127
+ </tbody>
128
+ </table>
129
+ </div>
130
+ <?php else: ?>
131
+ <?php _e('No confirmed bookings.', 'dbem'); ?>
132
+ <?php endif; ?>
133
+ </form>
134
+ <?php if( !empty($bookings_nav) && $EM_Bookings >= $limit ) : ?>
135
+ <div class='tablenav'>
136
+ <?php echo $bookings_nav; ?>
137
+ <div class="clear"></div>
138
+ </div>
139
+ <?php endif; ?>
140
+ </div>
141
+ <?php
142
+
143
+ }
144
  ?>
admin/bookings/em-events.php CHANGED
@@ -1,179 +1,179 @@
1
- <?php
2
-
3
- /**
4
- * Determines whether to show event page or events page, and saves any updates to the event or events
5
- * @return null
6
- */
7
- function em_bookings_events_table() {
8
- //TODO Simplify panel for events, use form flags to detect certain actions (e.g. submitted, etc)
9
- global $wpdb;
10
- global $EM_Event;
11
-
12
- $scope_names = array (
13
- 'past' => __ ( 'Past events', 'dbem' ),
14
- 'all' => __ ( 'All events', 'dbem' ),
15
- 'future' => __ ( 'Future events', 'dbem' )
16
- );
17
-
18
- $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_events_table' );
19
- $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
20
- $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
21
- $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
22
- $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
23
- $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
24
- $scope = ( $action_scope && !empty($_GET ['scope']) && array_key_exists($_GET ['scope'], $scope_names) ) ? $_GET ['scope']:'future';
25
-
26
- // No action, only showing the events list
27
- switch ($scope) {
28
- case "past" :
29
- $title = __ ( 'Past Events', 'dbem' );
30
- break;
31
- case "all" :
32
- $title = __ ( 'All Events', 'dbem' );
33
- break;
34
- default :
35
- $title = __ ( 'Future Events', 'dbem' );
36
- $scope = "future";
37
- }
38
- $events = EM_Events::get( array('scope'=>$scope, 'limit'=>0, 'order'=>$order, 'rsvp'=>true ) );
39
- $events_count = count ( $events );
40
-
41
- $use_events_end = get_option ( 'dbem_use_event_end' );
42
- ?>
43
- <div class="wrap em_bookings_events_table em_obj">
44
- <form id="posts-filter" action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="get">
45
- <input type="hidden" name="em_obj" value="em_bookings_events_table" />
46
- <?php if(!empty($_GET['page'])): ?>
47
- <input type='hidden' name='page' value='events-manager-bookings' />
48
- <?php endif; ?>
49
- <ul class="subsubsub">
50
- <li><a href='#' class="current"><?php _e ( 'Total', 'dbem' ); ?> <span class="count">(<?php echo (count ( $events )); ?>)</span></a></li>
51
- </ul>
52
- <div class="tablenav">
53
- <div class="alignleft actions">
54
- <!--
55
- <select name="action">
56
- <option value="-1" selected="selected"><?php _e ( 'Bulk Actions' ); ?></option>
57
- <option value="deleteEvents"><?php _e ( 'Delete selected','dbem' ); ?></option>
58
- </select>
59
- <input type="submit" value="<?php _e ( 'Apply' ); ?>" name="doaction2" id="doaction2" class="button-secondary action" />
60
- -->
61
- <select name="scope">
62
- <?php
63
- foreach ( $scope_names as $key => $value ) {
64
- $selected = "";
65
- if ($key == $scope)
66
- $selected = "selected='selected'";
67
- echo "<option value='$key' $selected>$value</option> ";
68
- }
69
- ?>
70
- </select>
71
- <input id="post-query-submit" class="button-secondary" type="submit" value="<?php _e ( 'Filter' )?>" />
72
- </div>
73
- <!--
74
- <div class="view-switch">
75
- <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
76
- </div>
77
- -->
78
- <?php
79
- if ( $events_count >= $limit ) {
80
- $page_link_template = em_add_get_params($_SERVER['REQUEST_URI'], array('pno'=>'%PAGE%', 'em_ajax'=>0, 'em_obj'=>'em_bookings_events_table'));
81
- $events_nav = em_admin_paginate( $page_link_template, $events_count, $limit, $page, 5);
82
- echo $events_nav;
83
- }
84
- ?>
85
- <br class="clear" />
86
- </div>
87
-
88
- <?php
89
- if (empty ( $events )) {
90
- // TODO localize
91
- _e ( 'no events','dbem' );
92
- } else {
93
- ?>
94
- <div class='table-wrap'>
95
- <table class="widefat">
96
- <thead>
97
- <tr>
98
- <th class='manage-column column-cb check-column' scope='col'>
99
- <input class='select-all' type="checkbox" value='1' />
100
- </th>
101
- <th><?php _e ( 'Event', 'dbem' ); ?></th>
102
- <th><?php _e ( 'Date and time', 'dbem' ); ?></th>
103
- </tr>
104
- </thead>
105
- <tbody>
106
- <?php
107
- $rowno = 0;
108
- $event_count = 0;
109
- foreach ( $events as $event ) {
110
- /* @var $event EM_Event */
111
- if( ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
112
- $rowno++;
113
- $class = ($rowno % 2) ? ' class="alternate"' : '';
114
- // FIXME set to american
115
- $localised_start_date = date_i18n('D d M Y', $event->start);
116
- $localised_end_date = date_i18n('D d M Y', $event->end);
117
- $style = "";
118
- $today = date ( "Y-m-d" );
119
-
120
- if ($event->start_date < $today && $event->end_date < $today){
121
- $style = "style ='background-color: #FADDB7;'";
122
- }
123
- ?>
124
- <tr <?php echo "$class $style"; ?>>
125
-
126
- <td>
127
- <input type='checkbox' class='row-selector' value='<?php echo $event->id; ?>' name='events[]' />
128
- </td>
129
- <td>
130
- <strong>
131
- <a class="row-title" href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;event_id=<?php echo $event->id ?>"><?php echo ($event->name); ?></a>
132
- </strong>
133
- &ndash;
134
- <?php _e("Booked Seats",'dbem') ?>: <?php echo $event->get_bookings()->get_booked_seats()."/".$event->seats ?>
135
- <?php if( get_option('dbem_bookings_approval') == 1 ) : ?>
136
- | <?php _e("Pending",'dbem') ?>: <?php echo $event->get_bookings()->get_pending_seats(); ?>
137
- <?php endif; ?>
138
- </td>
139
-
140
- <td>
141
- <?php echo $localised_start_date; ?>
142
- <?php echo ($localised_end_date != $localised_start_date) ? " - $localised_end_date":'' ?>
143
- &ndash;
144
- <?php
145
- //TODO Should 00:00 - 00:00 be treated as an all day event?
146
- echo substr ( $event->start_time, 0, 5 ) . " - " . substr ( $event->end_time, 0, 5 );
147
- ?>
148
- </td>
149
- </tr>
150
- <?php
151
- }
152
- $event_count++;
153
- }
154
- ?>
155
- </tbody>
156
- </table>
157
- </div>
158
- <?php
159
- } // end of table
160
- ?>
161
- <div class='tablenav'>
162
- <div class="alignleft actions">
163
- <br class='clear' />
164
- </div>
165
- <?php if( !empty($events_nav) ) : ?>
166
- <div class="tablenav-pages">
167
- <?php
168
- echo $events_nav;
169
- ?>
170
- </div>
171
- <?php endif; ?>
172
- <br class='clear' />
173
- </div>
174
- </form>
175
- </div>
176
- <?php
177
- }
178
-
179
  ?>
1
+ <?php
2
+
3
+ /**
4
+ * Determines whether to show event page or events page, and saves any updates to the event or events
5
+ * @return null
6
+ */
7
+ function em_bookings_events_table() {
8
+ //TODO Simplify panel for events, use form flags to detect certain actions (e.g. submitted, etc)
9
+ global $wpdb;
10
+ global $EM_Event;
11
+
12
+ $scope_names = array (
13
+ 'past' => __ ( 'Past events', 'dbem' ),
14
+ 'all' => __ ( 'All events', 'dbem' ),
15
+ 'future' => __ ( 'Future events', 'dbem' )
16
+ );
17
+
18
+ $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_events_table' );
19
+ $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
20
+ $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
21
+ $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
22
+ $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
23
+ $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
24
+ $scope = ( $action_scope && !empty($_GET ['scope']) && array_key_exists($_GET ['scope'], $scope_names) ) ? $_GET ['scope']:'future';
25
+
26
+ // No action, only showing the events list
27
+ switch ($scope) {
28
+ case "past" :
29
+ $title = __ ( 'Past Events', 'dbem' );
30
+ break;
31
+ case "all" :
32
+ $title = __ ( 'All Events', 'dbem' );
33
+ break;
34
+ default :
35
+ $title = __ ( 'Future Events', 'dbem' );
36
+ $scope = "future";
37
+ }
38
+ $owner = !current_user_can('edit_others_events') ? get_current_user_id() : false;
39
+ $events = EM_Events::get( array('scope'=>$scope, 'limit'=>0, 'order'=>$order, 'bookings'=>true, 'owner' => $owner ) );
40
+ $events_count = count ( $events );
41
+
42
+ $use_events_end = get_option ( 'dbem_use_event_end' );
43
+ ?>
44
+ <div class="wrap em_bookings_events_table em_obj">
45
+ <form id="posts-filter" action="" method="get">
46
+ <input type="hidden" name="em_obj" value="em_bookings_events_table" />
47
+ <?php if(!empty($_GET['page'])): ?>
48
+ <input type='hidden' name='page' value='events-manager-bookings' />
49
+ <?php endif; ?>
50
+ <ul class="subsubsub">
51
+ <li><a href='#' class="current"><?php _e ( 'Total', 'dbem' ); ?> <span class="count">(<?php echo (count ( $events )); ?>)</span></a></li>
52
+ </ul>
53
+ <div class="tablenav">
54
+ <div class="alignleft actions">
55
+ <!--
56
+ <select name="action">
57
+ <option value="-1" selected="selected"><?php _e ( 'Bulk Actions' ); ?></option>
58
+ <option value="deleteEvents"><?php _e ( 'Delete selected','dbem' ); ?></option>
59
+ </select>
60
+ <input type="submit" value="<?php _e ( 'Apply' ); ?>" name="doaction2" id="doaction2" class="button-secondary action" />
61
+ -->
62
+ <select name="scope">
63
+ <?php
64
+ foreach ( $scope_names as $key => $value ) {
65
+ $selected = "";
66
+ if ($key == $scope)
67
+ $selected = "selected='selected'";
68
+ echo "<option value='$key' $selected>$value</option> ";
69
+ }
70
+ ?>
71
+ </select>
72
+ <input id="post-query-submit" class="button-secondary" type="submit" value="<?php _e ( 'Filter' )?>" />
73
+ </div>
74
+ <!--
75
+ <div class="view-switch">
76
+ <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
77
+ </div>
78
+ -->
79
+ <?php
80
+ if ( $events_count >= $limit ) {
81
+ $events_nav = em_admin_paginate( $events_count, $limit, $page, array('em_ajax'=>0, 'em_obj'=>'em_bookings_events_table'));
82
+ echo $events_nav;
83
+ }
84
+ ?>
85
+ <br class="clear" />
86
+ </div>
87
+
88
+ <?php
89
+ if (empty ( $events )) {
90
+ // TODO localize
91
+ _e ( 'no events','dbem' );
92
+ } else {
93
+ ?>
94
+ <div class='table-wrap'>
95
+ <table class="widefat">
96
+ <thead>
97
+ <tr>
98
+ <th class='manage-column column-cb check-column' scope='col'>
99
+ <input class='select-all' type="checkbox" value='1' />
100
+ </th>
101
+ <th><?php _e ( 'Event', 'dbem' ); ?></th>
102
+ <th><?php _e ( 'Date and time', 'dbem' ); ?></th>
103
+ </tr>
104
+ </thead>
105
+ <tbody>
106
+ <?php
107
+ $rowno = 0;
108
+ $event_count = 0;
109
+ foreach ( $events as $event ) {
110
+ /* @var $event EM_Event */
111
+ if( ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
112
+ $rowno++;
113
+ $class = ($rowno % 2) ? ' class="alternate"' : '';
114
+ // FIXME set to american
115
+ $localised_start_date = date_i18n(get_option('date_format'), $event->start);
116
+ $localised_end_date = date_i18n(get_option('date_format'), $event->end);
117
+ $style = "";
118
+ $today = date ( "Y-m-d" );
119
+
120
+ if ($event->start_date < $today && $event->end_date < $today){
121
+ $style = "style ='background-color: #FADDB7;'";
122
+ }
123
+ ?>
124
+ <tr <?php echo "$class $style"; ?>>
125
+
126
+ <td>
127
+ <input type='checkbox' class='row-selector' value='<?php echo $event->event_id; ?>' name='events[]' />
128
+ </td>
129
+ <td>
130
+ <strong>
131
+ <?php echo $event->output('#_BOOKINGSLINK'); ?>
132
+ </strong>
133
+ &ndash;
134
+ <?php _e("Booked Spaces",'dbem') ?>: <?php echo $event->get_bookings()->get_booked_spaces()."/".$event->get_spaces() ?>
135
+ <?php if( get_option('dbem_bookings_approval') == 1 ) : ?>
136
+ | <?php _e("Pending",'dbem') ?>: <?php echo $event->get_bookings()->get_pending_spaces(); ?>
137
+ <?php endif; ?>
138
+ </td>
139
+
140
+ <td>
141
+ <?php echo $localised_start_date; ?>
142
+ <?php echo ($localised_end_date != $localised_start_date) ? " - $localised_end_date":'' ?>
143
+ &ndash;
144
+ <?php
145
+ //TODO Should 00:00 - 00:00 be treated as an all day event?
146
+ echo substr ( $event->start_time, 0, 5 ) . " - " . substr ( $event->end_time, 0, 5 );
147
+ ?>
148
+ </td>
149
+ </tr>
150
+ <?php
151
+ }
152
+ $event_count++;
153
+ }
154
+ ?>
155
+ </tbody>
156
+ </table>
157
+ </div>
158
+ <?php
159
+ } // end of table
160
+ ?>
161
+ <div class='tablenav'>
162
+ <div class="alignleft actions">
163
+ <br class='clear' />
164
+ </div>
165
+ <?php if (!empty($events_nav) && $events_count >= $limit ) : ?>
166
+ <div class="tablenav-pages">
167
+ <?php
168
+ echo $events_nav;
169
+ ?>
170
+ </div>
171
+ <?php endif; ?>
172
+ <br class='clear' />
173
+ </div>
174
+ </form>
175
+ </div>
176
+ <?php
177
+ }
178
+
179
  ?>
admin/bookings/em-pending.php CHANGED
@@ -1,155 +1,159 @@
1
- <?php
2
-
3
- /**
4
- * Generates a "widget" table of pending bookings with some quick admin operation options.
5
- * If event id supplied then only pending bookings for that event will show.
6
- *
7
- * @param int $event_id
8
- */
9
- function em_bookings_pending_table($event_id = false){
10
- global $EM_Event, $wpdb, $current_user;
11
-
12
- if( get_option('dbem_bookings_approval') == 0 ){
13
- return false;
14
- }
15
-
16
- $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_pending_table' );
17
- $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
18
- $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
19
- $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
20
- $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
21
- $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
22
-
23
- if( is_object($EM_Event) ){
24
- $bookings = $EM_Event->get_bookings()->get_pending();
25
- }else{
26
- //To optimize performance, we can do one query here for all pending bookings to show.
27
- $bookings = EM_Bookings::get(array('status'=>0));
28
- $events = array();
29
- //Now let's create events and bookings for this:
30
- foreach($bookings as $EM_Booking){
31
- //create event
32
- if( !array_key_exists($EM_Booking->event_id,$events) ){
33
- $events[$EM_Booking->event_id] = new EM_Event($EM_Booking->event_id);
34
- }
35
- }
36
- }
37
- $bookings_count = (is_array($bookings)) ? count($bookings):0;
38
- ?>
39
- <div class='wrap em_bookings_pending_table em_obj'>
40
- <form id='bookings-filter' method='get' action='<?php bloginfo('wpurl') ?>/wp-admin/edit.php'>
41
- <input type="hidden" name="em_obj" value="em_bookings_pending_table" />
42
- <!--
43
- <ul class="subsubsub">
44
- <li>
45
- <a href='edit.php?post_type=post' class="current">All <span class="count">(1)</span></a> |
46
- </li>
47
- </ul>
48
- <p class="search-box">
49
- <label class="screen-reader-text" for="post-search-input"><?php _e('Search'); ?>:</label>
50
- <input type="text" id="post-search-input" name="em_search" value="<?php echo (!empty($_GET['em_search'])) ? $_GET['em_search']:''; ?>" />
51
- <input type="submit" value="<?php _e('Search'); ?>" class="button" />
52
- </p>
53
- -->
54
- <?php if ( $bookings_count >= $limit ) : ?>
55
- <div class='tablenav'>
56
- <!--
57
- <div class="alignleft actions">
58
- <select name="action">
59
- <option value="-1" selected="selected">
60
- <?php _e('Bulk Actions'); ?>
61
- </option>
62
- <option value="approve">
63
- <?php _e('Approve', 'dbem'); ?>
64
- </option>
65
- <option value="decline">
66
- <?php _e('Decline', 'dbem'); ?>
67
- </option>
68
- </select>
69
- <input type="submit" id="post-query-submit" value="Filter" class="button-secondary" />
70
- </div>
71
- -->
72
- <!--
73
- <div class="view-switch">
74
- <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
75
- </div>
76
- -->
77
- <?php
78
- if ( $bookings_count >= $limit ) {
79
- $page_link_template = em_add_get_params($_SERVER['REQUEST_URI'], array('pno'=>'%PAGE%', 'em_ajax'=>0, 'em_obj'=>'em_bookings_pending_table'));
80
- $bookings_nav = em_admin_paginate( $page_link_template, $bookings_count, $limit, $page, 5);
81
- echo $bookings_nav;
82
- }
83
- ?>
84
- <div class="clear"></div>
85
- </div>
86
- <?php endif; ?>
87
- <div class="clear"></div>
88
- <?php if( $bookings_count > 0 ): ?>
89
- <div class='table-wrap'>
90
- <table id='dbem-bookings-table' class='widefat post fixed'>
91
- <thead>
92
- <tr>
93
- <th class='manage-column column-cb check-column' scope='col'>
94
- <input class='select-all' type="checkbox" value='1' />
95
- </th>
96
- <th class='manage-column' scope='col'>Booker</th>
97
- <?php if( !is_object($EM_Event) ): ?>
98
- <th class='manage-column' scope="col">Event</th>
99
- <?php endif; ?>
100
- <th class='manage-column' scope='col'>E-mail</th>
101
- <th class='manage-column' scope='col'>Phone number</th>
102
- <th class='manage-column' scope='col'>Spaces</th>
103
- <th class='manage-column' scope='col'>&nbsp;</th>
104
- </tr>
105
- </thead>
106
- <tbody>
107
- <?php
108
- $rowno = 0;
109
- $event_count = 0;
110
- foreach ($bookings as $EM_Booking) {
111
- if( ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
112
- $rowno++;
113
- ?>
114
- <tr>
115
- <th scope="row" class="check-column" style="padding:7px 0px 7px;"><input type='checkbox' value='<?php echo $EM_Booking->id ?>' name='bookings[]'/></th>
116
- <td><a href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;person_id=<?php echo $EM_Booking->person->id; ?>"><?php echo $EM_Booking->person->name ?></a></td>
117
- <?php if( !is_object($EM_Event) ): ?>
118
- <td><a href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;event_id=<?php echo $EM_Booking->event_id; ?>"><?php echo $events[$EM_Booking->event_id]->name ?></a></td>
119
- <?php endif; ?>
120
- <td><?php echo $EM_Booking->person->email ?></td>
121
- <td><?php echo $EM_Booking->person->phone ?></td>
122
- <td><?php echo $EM_Booking->seats ?></td>
123
- <td>
124
- <?php
125
- $approve_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_approve', 'booking_id'=>$EM_Booking->id));
126
- $reject_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_reject', 'booking_id'=>$EM_Booking->id));
127
- ?>
128
- <a class="em-bookings-approve" href="<?php echo $approve_url ?>"><?php _e('Approve','dbem'); ?></a> |
129
- <a class="em-bookings-reject" href="<?php echo $reject_url ?>"><?php _e('Reject','dbem'); ?></a> |
130
- <a class="em-bookings-edit" href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;booking_id=<?php echo $EM_Booking->id; ?>"><?php _e('Edit'); ?></a>
131
- </td>
132
- </tr>
133
- <?php
134
- }
135
- $event_count++;
136
- }
137
- ?>
138
- </tbody>
139
- </table>
140
- </div>
141
- <?php else: ?>
142
- <?php _e('No pending bookings.', 'dbem'); ?>
143
- <?php endif; ?>
144
- </form>
145
- <?php if( !empty($bookings_nav) ) : ?>
146
- <div class='tablenav'>
147
- <?php echo $bookings_nav; ?>
148
- <div class="clear"></div>
149
- </div>
150
- <?php endif; ?>
151
- </div>
152
- <?php
153
-
154
- }
 
 
 
 
155
  ?>
1
+ <?php
2
+
3
+ /**
4
+ * Generates a "widget" table of pending bookings with some quick admin operation options.
5
+ * If event id supplied then only pending bookings for that event will show.
6
+ *
7
+ * @param int $event_id
8
+ */
9
+ function em_bookings_pending_table($event_id = false){
10
+ global $EM_Event, $EM_Ticket, $wpdb, $current_user;
11
+
12
+ if( get_option('dbem_bookings_approval') == 0 ){
13
+ return false;
14
+ }
15
+
16
+ $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_pending_table' );
17
+ $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
18
+ $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
19
+ $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
20
+ $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
21
+ $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
22
+
23
+ if( is_object($EM_Ticket) ){
24
+ $EM_Bookings = $EM_Ticket->get_bookings()->get_pending_bookings();
25
+ }else{
26
+ if( is_object($EM_Event) ){
27
+ $EM_Bookings = $EM_Event->get_bookings()->get_pending_bookings();
28
+ }else{
29
+ //To optimize performance, we can do one query here for all pending bookings to show.
30
+ $EM_Bookings = EM_Bookings::get(array('status'=>0));
31
+ $events = array();
32
+ //Now let's create events and bookings for this:
33
+ foreach($EM_Bookings->bookings as $EM_Booking){
34
+ //create event
35
+ if( !array_key_exists($EM_Booking->event_id,$events) ){
36
+ $events[$EM_Booking->event_id] = new EM_Event($EM_Booking->event_id);
37
+ }
38
+ }
39
+ }
40
+ }
41
+ $bookings_count = (is_array($EM_Bookings->bookings)) ? count($EM_Bookings->bookings):0;
42
+ ?>
43
+ <div class='wrap em_bookings_pending_table em_obj'>
44
+ <form id='bookings-filter' method='get' action='<?php bloginfo('wpurl') ?>/wp-admin/edit.php'>
45
+ <input type="hidden" name="em_obj" value="em_bookings_pending_table" />
46
+ <!--
47
+ <ul class="subsubsub">
48
+ <li>
49
+ <a href='edit.php?post_type=post' class="current">All <span class="count">(1)</span></a> |
50
+ </li>
51
+ </ul>
52
+ <p class="search-box">
53
+ <label class="screen-reader-text" for="post-search-input"><?php _e('Search', 'dbem'); ?>:</label>
54
+ <input type="text" id="post-search-input" name="em_search" value="<?php echo (!empty($_GET['em_search'])) ? $_GET['em_search']:''; ?>" />
55
+ <input type="submit" value="<?php _e('Search', 'dbem'); ?>" class="button" />
56
+ </p>
57
+ -->
58
+ <?php if ( $bookings_count >= $limit ) : ?>
59
+ <div class='tablenav'>
60
+ <!--
61
+ <div class="alignleft actions">
62
+ <select name="action">
63
+ <option value="-1" selected="selected">
64
+ <?php _e('Bulk Actions', 'dbem'); ?>
65
+ </option>
66
+ <option value="approve">
67
+ <?php _e('Approve', 'dbem'); ?>
68
+ </option>
69
+ <option value="decline">
70
+ <?php _e('Decline', 'dbem'); ?>
71
+ </option>
72
+ </select>
73
+ <input type="submit" id="post-query-submit" value="Filter" class="button-secondary" />
74
+ </div>
75
+ -->
76
+ <!--
77
+ <div class="view-switch">
78
+ <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
79
+ </div>
80
+ -->
81
+ <?php
82
+ if ( $bookings_count >= $limit ) {
83
+ $bookings_nav = em_admin_paginate( $bookings_count, $limit, $page, array('em_ajax'=>0, 'em_obj'=>'em_bookings_pending_table'));
84
+ echo $bookings_nav;
85
+ }
86
+ ?>
87
+ <div class="clear"></div>
88
+ </div>
89
+ <?php endif; ?>
90
+ <div class="clear"></div>
91
+ <?php if( $bookings_count > 0 ): ?>
92
+ <div class='table-wrap'>
93
+ <table id='dbem-bookings-table' class='widefat post '>
94
+ <thead>
95
+ <tr>
96
+ <th class='manage-column column-cb check-column' scope='col'>
97
+ <input class='select-all' type="checkbox" value='1' />
98
+ </th>
99
+ <th class='manage-column' scope='col'><?php _e('Booker', 'dbem'); ?></th>
100
+ <?php if( !is_object($EM_Event) && !is_object($EM_Ticket) ): ?>
101
+ <th class='manage-column' scope="col"><?php _e('Event', 'dbem'); ?></th>
102
+ <?php endif; ?>
103
+ <th class='manage-column' scope='col'><?php _e('E-mail', 'dbem'); ?></th>
104
+ <th class='manage-column' scope='col'><?php _e('Phone number', 'dbem'); ?></th>
105
+ <th class='manage-column' scope='col'><?php _e('Spaces', 'dbem'); ?></th>
106
+ <th class='manage-column' scope='col'>&nbsp;</th>
107
+ </tr>
108
+ </thead>
109
+ <tbody>
110
+ <?php
111
+ $rowno = 0;
112
+ $event_count = 0;
113
+ foreach ($EM_Bookings->bookings as $EM_Booking) {
114
+ if( ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
115
+ $rowno++;
116
+ ?>
117
+ <tr>
118
+ <th scope="row" class="check-column" style="padding:7px 0px 7px;"><input type='checkbox' value='<?php echo $EM_Booking->booking_id ?>' name='bookings[]'/></th>
119
+ <td><a href="<?php echo EM_ADMIN_URL; ?>&amp;page=events-manager-bookings&amp;person_id=<?php echo $EM_Booking->person->ID; ?>"><?php echo $EM_Booking->person->get_name() ?></a></td>
120
+ <?php if( !is_object($EM_Event) && !is_object($EM_Ticket) ): ?>
121
+ <td><a href="<?php echo EM_ADMIN_URL; ?>&amp;page=events-manager-bookings&amp;event_id=<?php echo $EM_Booking->event_id; ?>"><?php echo $events[$EM_Booking->event_id]->name ?></a></td>
122
+ <?php endif; ?>
123
+ <td><?php echo $EM_Booking->person->user_email ?></td>
124
+ <td><?php echo $EM_Booking->person->phone ?></td>
125
+ <td><?php echo $EM_Booking->get_spaces() ?></td>
126
+ <td>
127
+ <?php
128
+ $approve_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_approve', 'booking_id'=>$EM_Booking->booking_id));
129
+ $reject_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_reject', 'booking_id'=>$EM_Booking->booking_id));
130
+ $delete_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_delete', 'booking_id'=>$EM_Booking->booking_id));
131
+ ?>
132
+ <a class="em-bookings-approve" href="<?php echo $approve_url ?>"><?php _e('Approve','dbem'); ?></a> |
133
+ <a class="em-bookings-reject" href="<?php echo $reject_url ?>"><?php _e('Reject','dbem'); ?></a> |
134
+ <span class="trash"><a class="em-bookings-delete" href="<?php echo $delete_url ?>"><?php _e('Delete','dbem'); ?></a></span> |
135
+ <a class="em-bookings-edit" href="<?php echo EM_ADMIN_URL; ?>&amp;page=events-manager-bookings&amp;booking_id=<?php echo $EM_Booking->booking_id; ?>"><?php _e('Edit/View','dbem'); ?></a>
136
+ </td>
137
+ </tr>
138
+ <?php
139
+ }
140
+ $event_count++;
141
+ }
142
+ ?>
143
+ </tbody>
144
+ </table>
145
+ </div>
146
+ <?php else: ?>
147
+ <?php _e('No pending bookings.', 'dbem'); ?>
148
+ <?php endif; ?>
149
+ </form>
150
+ <?php if( !empty($bookings_nav) && $EM_Bookings >= $limit ) : ?>
151
+ <div class='tablenav'>
152
+ <?php echo $bookings_nav; ?>
153
+ <div class="clear"></div>
154
+ </div>
155
+ <?php endif; ?>
156
+ </div>
157
+ <?php
158
+ }
159
  ?>
admin/bookings/em-person.php CHANGED
@@ -1,150 +1,152 @@
1
- <?php
2
-
3
- /**
4
- * Generates a "widget" table of confirmed bookings for a specific event.
5
- *
6
- * @param int $event_id
7
- */
8
- function em_bookings_person_table(){
9
- global $wpdb, $current_user,$EM_Person;
10
- if(!is_object($EM_Person)){
11
- return false;
12
- }
13
- $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_confirmed_table' );
14
- $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
15
- $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
16
- $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
17
- $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
18
- $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
19
-
20
- $bookings = $EM_Person->get_bookings();
21
- $bookings_count = (is_array($bookings)) ? count($bookings):0;
22
- if($bookings_count > 0){
23
- //Get events here in one query to speed things up
24
- foreach($bookings as $EM_Booking){
25
- $event_ids[] = $EM_Booking->event_id;
26
- }
27
- $events = EM_Events::get($event_ids);
28
- }
29
- ?>
30
- <div class='wrap em_bookings_pending_table em_obj'>
31
- <form id='bookings-filter' method='get' action='<?php bloginfo('wpurl') ?>/wp-admin/edit.php'>
32
- <input type="hidden" name="em_obj" value="em_bookings_pending_table" />
33
- <!--
34
- <ul class="subsubsub">
35
- <li>
36
- <a href='edit.php?post_type=post' class="current">All <span class="count">(1)</span></a> |
37
- </li>
38
- </ul>
39
- <p class="search-box">
40
- <label class="screen-reader-text" for="post-search-input"><?php _e('Search'); ?>:</label>
41
- <input type="text" id="post-search-input" name="em_search" value="<?php echo (!empty($_GET['em_search'])) ? $_GET['em_search']:''; ?>" />
42
- <input type="submit" value="<?php _e('Search'); ?>" class="button" />
43
- </p>
44
- -->
45
- <?php if ( $bookings_count >= $limit ) : ?>
46
- <div class='tablenav'>
47
- <!--
48
- <div class="alignleft actions">
49
- <select name="action">
50
- <option value="-1" selected="selected">
51
- <?php _e('Bulk Actions'); ?>
52
- </option>
53
- <option value="approve">
54
- <?php _e('Approve', 'dbem'); ?>
55
- </option>
56
- <option value="decline">
57
- <?php _e('Decline', 'dbem'); ?>
58
- </option>
59
- </select>
60
- <input type="submit" id="post-query-submit" value="Filter" class="button-secondary" />
61
- </div>
62
- -->
63
- <!--
64
- <div class="view-switch">
65
- <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
66
- </div>
67
- -->
68
- <?php
69
- if ( $bookings_count >= $limit ) {
70
- $page_link_template = em_add_get_params($_SERVER['REQUEST_URI'], array('pno'=>'%PAGE%', 'em_ajax'=>0, 'em_obj'=>'em_bookings_confirmed_table'));
71
- $bookings_nav = em_admin_paginate( $page_link_template, $bookings_count, $limit, $page, 5);
72
- echo $bookings_nav;
73
- }
74
- ?>
75
- <div class="clear"></div>
76
- </div>
77
- <?php endif; ?>
78
- <div class="clear"></div>
79
- <?php if( $bookings_count > 0 ): ?>
80
- <div class='table-wrap'>
81
- <table id='dbem-bookings-table' class='widefat post fixed'>
82
- <thead>
83
- <tr>
84
- <th class='manage-column column-cb check-column' scope='col'>
85
- <input class='select-all' type="checkbox" value='1' />
86
- </th>
87
- <th class='manage-column' scope='col'>Event</th>
88
- <th class='manage-column' scope='col'>Spaces</th>
89
- <th class='manage-column' scope='col'>Status</th>
90
- <th class='manage-column' scope='col'>&nbsp;</th>
91
- </tr>
92
- </thead>
93
- <tbody>
94
- <?php
95
- $rowno = 0;
96
- $event_count = 0;
97
- foreach ($bookings as $EM_Booking) {
98
- $EM_Event = $events[$EM_Booking->event_id];
99
- if( $EM_Event->can_manage() && ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
100
- $rowno++;
101
- ?>
102
- <tr>
103
- <th scope="row" class="check-column" style="padding:7px 0px 7px;"><input type='checkbox' value='<?php echo $EM_Booking->id ?>' name='bookings[]'/></th>
104
- <td><a class="row-title" href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;event_id=<?php echo $EM_Event->id ?>"><?php echo ($EM_Event->name); ?></a></td>
105
- <td><?php echo $EM_Booking->seats ?></td>
106
- <td><?php echo $EM_Booking->status_array[$EM_Booking->status]; ?>
107
- </td>
108
- <td>
109
- <?php
110
- $unapprove_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_unapprove', 'bookings'=>$EM_Booking->id));
111
- $approve_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_approve', 'bookings'=>$EM_Booking->id));
112
- $reject_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_reject', 'bookings'=>$EM_Booking->id));
113
- $delete_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_delete', 'bookings'=>$EM_Booking->id));
114
- ?>
115
- <?php if( $EM_Booking->status == 0 || $EM_Booking->status == 2 ): ?>
116
- <a class="em-bookings-approve" href="<?php echo $approve_url ?>"><?php _e('Approve','dbem'); ?></a> |
117
- <?php endif; ?>
118
- <?php if( $EM_Booking->status == 2 ): ?>
119
- <a class="em-bookings-unapprove" href="<?php echo $unapprove_url ?>"><?php _e('Unapprove','dbem'); ?></a> |
120
- <?php endif; ?>
121
- <?php if( $EM_Booking->status == 0 || $EM_Booking->status == 1 ): ?>
122
- <a class="em-bookings-reject" href="<?php echo $reject_url ?>"><?php _e('Reject','dbem'); ?></a> |
123
- <?php endif; ?>
124
- <a class="em-bookings-edit" href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;booking_id=<?php echo $EM_Booking->id; ?>"><?php _e('Edit'); ?></a> |
125
- <a class="em-bookings-delete" href="<?php echo $delete_url ?>"><?php _e('Delete','dbem'); ?></a>
126
- </td>
127
- </tr>
128
- <?php
129
- }
130
- $event_count++;
131
- }
132
- ?>
133
- </tbody>
134
- </table>
135
- </div>
136
- <?php else: ?>
137
- <?php _e('No confirmed bookings.', 'dbem'); ?>
138
- <?php endif; ?>
139
- </form>
140
- <?php if( !empty($bookings_nav) ) : ?>
141
- <div class='tablenav'>
142
- <?php echo $bookings_nav; ?>
143
- <div class="clear"></div>
144
- </div>
145
- <?php endif; ?>
146
- </div>
147
- <?php
148
-
149
- }
 
 
150
  ?>
1
+ <?php
2
+
3
+ /**
4
+ * Generates a "widget" table of confirmed bookings for a specific event.
5
+ *
6
+ * @param int $event_id
7
+ */
8
+ function em_bookings_person_table(){
9
+ global $wpdb, $current_user,$EM_Person;
10
+ if(!is_object($EM_Person)){
11
+ return false;
12
+ }
13
+ $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_confirmed_table' );
14
+ $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
15
+ $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
16
+ $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
17
+ $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
18
+ $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
19
+
20
+ $bookings = $EM_Person->get_bookings();
21
+ $bookings_count = count($bookings);
22
+ if($bookings_count > 0){
23
+ //Get events here in one query to speed things up
24
+ foreach($bookings as $EM_Booking){
25
+ $event_ids[] = $EM_Booking->event_id;
26
+ }
27
+ $events = EM_Events::get($event_ids);
28
+ }
29
+ ?>
30
+ <div class='wrap em_bookings_pending_table em_obj'>
31
+ <form id='bookings-filter' method='get' action='<?php bloginfo('wpurl') ?>/wp-admin/edit.php'>
32
+ <input type="hidden" name="em_obj" value="em_bookings_pending_table" />
33
+ <!--
34
+ <ul class="subsubsub">
35
+ <li>
36
+ <a href='edit.php?post_type=post' class="current">All <span class="count">(1)</span></a> |
37
+ </li>
38
+ </ul>
39
+ <p class="search-box">
40
+ <label class="screen-reader-text" for="post-search-input"><?php _e('Search', 'dbem'); ?>:</label>
41
+ <input type="text" id="post-search-input" name="em_search" value="<?php echo (!empty($_GET['em_search'])) ? $_GET['em_search']:''; ?>" />
42
+ <input type="submit" value="<?php _e('Search', 'dbem'); ?>" class="button" />
43
+ </p>
44
+ -->
45
+ <?php if ( $bookings_count >= $limit ) : ?>
46
+ <div class='tablenav'>
47
+ <!--
48
+ <div class="alignleft actions">
49
+ <select name="action">
50
+ <option value="-1" selected="selected">
51
+ <?php _e('Bulk Actions', 'dbem'); ?>
52
+ </option>
53
+ <option value="approve">
54
+ <?php _e('Approve', 'dbem'); ?>
55
+ </option>
56
+ <option value="decline">
57
+ <?php _e('Decline', 'dbem'); ?>
58
+ </option>
59
+ </select>
60
+ <input type="submit" id="post-query-submit" value="Filter" class="button-secondary" />
61
+ </div>
62
+ -->
63
+ <!--
64
+ <div class="view-switch">
65
+ <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
66
+ </div>
67
+ -->
68
+ <?php
69
+ if ( $bookings_count >= $limit ) {
70
+ $bookings_nav = em_admin_paginate( $bookings_count, $limit, $page, array('em_ajax'=>0, 'em_obj'=>'em_bookings_confirmed_table'));
71
+ echo $bookings_nav;
72
+ }
73
+ ?>
74
+ <div class="clear"></div>
75
+ </div>
76
+ <?php endif; ?>
77
+ <div class="clear"></div>
78
+ <?php if( $bookings_count > 0 ): ?>
79
+ <div class='table-wrap'>
80
+ <table id='dbem-bookings-table' class='widefat post '>
81
+ <thead>
82
+ <tr>
83
+ <th class='manage-column column-cb check-column' scope='col'>
84
+ <input class='select-all' type="checkbox" value='1' />
85
+ </th>
86
+ <th class='manage-column' scope='col'><?php _e('Event', 'dbem'); ?></th>
87
+ <th class='manage-column' scope='col'><?php _e('Spaces', 'dbem'); ?></th>
88
+ <th class='manage-column' scope='col'><?php _e('Status', 'dbem'); ?></th>
89
+ <th class='manage-column' scope='col'>&nbsp;</th>
90
+ </tr>
91
+ </thead>
92
+ <tbody>
93
+ <?php
94
+ $rowno = 0;
95
+ $event_count = 0;
96
+ foreach ($bookings as $EM_Booking) {
97
+ $EM_Event = $events[$EM_Booking->event_id];
98
+ if( $EM_Event->can_manage('edit_events','edit_others_events') && ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
99
+ $rowno++;
100
+ ?>
101
+ <tr>
102
+ <th scope="row" class="check-column" style="padding:7px 0px 7px;"><input type='checkbox' value='<?php echo $EM_Booking->booking_id ?>' name='bookings[]'/></th>
103
+ <td><a class="row-title" href="<?php echo EM_ADMIN_URL; ?>&amp;page=events-manager-bookings&amp;event_id=<?php echo $EM_Event->event_id ?>"><?php echo ($EM_Event->event_name); ?></a></td>
104
+ <td><?php echo $EM_Booking->get_spaces() ?></td>
105
+ <td><?php echo $EM_Booking->status_array[$EM_Booking->booking_status]; ?>
106
+ </td>
107
+ <td>
108
+ <?php
109
+ $unapprove_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_unapprove', 'booking_id'=>$EM_Booking->booking_id));
110
+ $approve_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_approve', 'booking_id'=>$EM_Booking->booking_id));
111
+ $reject_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_reject', 'booking_id'=>$EM_Booking->booking_id));
112
+ $delete_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_delete', 'booking_id'=>$EM_Booking->booking_id));
113
+ ?>
114
+ <?php if( get_option('dbem_bookings_approval') && ($EM_Booking->booking_status == 0 ) ): ?>
115
+ <a class="em-bookings-approve" href="<?php echo $approve_url ?>"><?php _e('Approve','dbem'); ?></a> |
116
+ <?php endif; ?>
117
+ <?php if( get_option('dbem_bookings_approval') && $EM_Booking->booking_status == 1 ): ?>
118
+ <a class="em-bookings-unapprove" href="<?php echo $unapprove_url ?>"><?php _e('Unapprove','dbem'); ?></a> |
119
+ <?php endif; ?>
120
+ <?php if( $EM_Booking->booking_status == 2 ): ?>
121
+ <a class="em-bookings-approve" href="<?php echo $approve_url ?>"><?php _e('Restore','dbem'); ?></a> |
122
+ <?php endif; ?>
123
+ <?php if( $EM_Booking->booking_status == 0 || $EM_Booking->booking_status == 1 ): ?>
124
+ <a class="em-bookings-reject" href="<?php echo $reject_url ?>"><?php _e('Reject','dbem'); ?></a> |
125
+ <?php endif; ?>
126
+ <a class="em-bookings-edit" href="<?php echo EM_ADMIN_URL; ?>&amp;page=events-manager-bookings&amp;booking_id=<?php echo $EM_Booking->booking_id; ?>"><?php _e('Edit/View','dbem'); ?></a> |
127
+ <span class="trash"><a class="em-bookings-delete" href="<?php echo $delete_url ?>"><?php _e('Delete','dbem'); ?></a></span>
128
+ </td>
129
+ </tr>
130
+ <?php
131
+ }
132
+ $event_count++;
133
+ }
134
+ ?>
135
+ </tbody>
136
+ </table>
137
+ </div>
138
+ <?php else: ?>
139
+ <?php _e('No confirmed bookings.', 'dbem'); ?>
140
+ <?php endif; ?>
141
+ </form>
142
+ <?php if( !empty($bookings_nav) && $bookings >= $limit ) : ?>
143
+ <div class='tablenav'>
144
+ <?php echo $bookings_nav; ?>
145
+ <div class="clear"></div>
146
+ </div>
147
+ <?php endif; ?>
148
+ </div>
149
+ <?php
150
+
151
+ }
152
  ?>
admin/bookings/em-rejected.php CHANGED
@@ -1,133 +1,137 @@
1
- <?php
2
- /**
3
- * Generates a "widget" table of confirmed bookings for a specific event.
4
- *
5
- * @param int $event_id
6
- */
7
- function em_bookings_rejected_table(){
8
- global $EM_Event, $wpdb, $current_user;
9
-
10
- $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_confirmed_table' );
11
- $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
12
- $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
13
- $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
14
- $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
15
- $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
16
-
17
- if( is_object($EM_Event) ){
18
- $bookings = $EM_Event->get_bookings()->get_rejected_bookings();
19
- }else{
20
- return false;
21
- }
22
- $bookings_count = (is_array($bookings)) ? count($bookings):0;
23
- ?>
24
- <div class='wrap em_bookings_pending_table em_obj'>
25
- <form id='bookings-filter' method='get' action='<?php bloginfo('wpurl') ?>/wp-admin/edit.php'>
26
- <input type="hidden" name="em_obj" value="em_bookings_pending_table" />
27
- <!--
28
- <ul class="subsubsub">
29
- <li>
30
- <a href='edit.php?post_type=post' class="current">All <span class="count">(1)</span></a> |
31
- </li>
32
- </ul>
33
- <p class="search-box">
34
- <label class="screen-reader-text" for="post-search-input"><?php _e('Search'); ?>:</label>
35
- <input type="text" id="post-search-input" name="em_search" value="<?php echo (!empty($_GET['em_search'])) ? $_GET['em_search']:''; ?>" />
36
- <input type="submit" value="<?php _e('Search'); ?>" class="button" />
37
- </p>
38
- -->
39
- <?php if ( $bookings_count >= $limit ) : ?>
40
- <div class='tablenav'>
41
- <!--
42
- <div class="alignleft actions">
43
- <select name="action">
44
- <option value="-1" selected="selected">
45
- <?php _e('Bulk Actions'); ?>
46
- </option>
47
- <option value="approve">
48
- <?php _e('Approve', 'dbem'); ?>
49
- </option>
50
- <option value="decline">
51
- <?php _e('Decline', 'dbem'); ?>
52
- </option>
53
- </select>
54
- <input type="submit" id="post-query-submit" value="Filter" class="button-secondary" />
55
- </div>
56
- -->
57
- <!--
58
- <div class="view-switch">
59
- <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
60
- </div>
61
- -->
62
- <?php
63
- if ( $bookings_count >= $limit ) {
64
- $page_link_template = em_add_get_params($_SERVER['REQUEST_URI'], array('pno'=>'%PAGE%', 'em_ajax'=>0, 'em_obj'=>'em_bookings_confirmed_table'));
65
- $bookings_nav = em_admin_paginate( $page_link_template, $bookings_count, $limit, $page, 5);
66
- echo $bookings_nav;
67
- }
68
- ?>
69
- <div class="clear"></div>
70
- </div>
71
- <?php endif; ?>
72
- <div class="clear"></div>
73
- <?php if( $bookings_count > 0 ): ?>
74
- <div class='table-wrap'>
75
- <table id='dbem-bookings-table' class='widefat post fixed'>
76
- <thead>
77
- <tr>
78
- <th class='manage-column column-cb check-column' scope='col'>
79
- <input class='select-all' type="checkbox" value='1' />
80
- </th>
81
- <th class='manage-column' scope='col'>Booker</th>
82
- <th class='manage-column' scope='col'>E-mail</th>
83
- <th class='manage-column' scope='col'>Phone number</th>
84
- <th class='manage-column' scope='col'>Spaces</th>
85
- <th class='manage-column' scope='col'>&nbsp;</th>
86
- </tr>
87
- </thead>
88
- <tbody>
89
- <?php
90
- $rowno = 0;
91
- $event_count = 0;
92
- foreach ($bookings as $EM_Booking) {
93
- if( ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
94
- $rowno++;
95
- ?>
96
- <tr>
97
- <th scope="row" class="check-column" style="padding:7px 0px 7px;"><input type='checkbox' value='<?php echo $EM_Booking->id ?>' name='bookings[]'/></th>
98
- <td><a href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;person_id=<?php echo $EM_Booking->person->id; ?>"><?php echo $EM_Booking->person->name ?></a></td>
99
- <td><?php echo $EM_Booking->person->email ?></td>
100
- <td><?php echo $EM_Booking->person->phone ?></td>
101
- <td><?php echo $EM_Booking->seats ?></td>
102
- <td>
103
- <?php
104
- $approve_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_approve', 'booking_id'=>$EM_Booking->id));
105
- $delete_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_delete', 'booking_id'=>$EM_Booking->id));
106
- ?>
107
- <a class="em-bookings-approve" href="<?php echo $approve_url ?>"><?php _e('Approve','dbem'); ?></a> |
108
- <a class="em-bookings-edit" href="<?php bloginfo ( 'wpurl' )?>/wp-admin/admin.php?page=events-manager-bookings&amp;booking_id=<?php echo $EM_Booking->id; ?>"><?php _e('Edit'); ?></a> |
109
- <a class="em-bookings-delete" href="<?php echo $delete_url ?>"><?php _e('Delete','dbem'); ?></a>
110
- </td>
111
- </tr>
112
- <?php
113
- }
114
- $event_count++;
115
- }
116
- ?>
117
- </tbody>
118
- </table>
119
- </div>
120
- <?php else: ?>
121
- <?php _e('No rejected bookings.', 'dbem'); ?>
122
- <?php endif; ?>
123
- </form>
124
- <?php if( !empty($bookings_nav) ) : ?>
125
- <div class='tablenav'>
126
- <?php echo $bookings_nav; ?>
127
- <div class="clear"></div>
128
- </div>
129
- <?php endif; ?>
130
- </div>
131
- <?php
132
- }
 
 
 
 
133
  ?>
1
+ <?php
2
+ /**
3
+ * Generates a "widget" table of confirmed bookings for a specific event.
4
+ *
5
+ * @param int $event_id
6
+ */
7
+ function em_bookings_rejected_table(){
8
+ global $EM_Event, $EM_Ticket, $wpdb, $current_user;
9
+
10
+ $action_scope = ( !empty($_REQUEST['em_obj']) && $_REQUEST['em_obj'] == 'em_bookings_confirmed_table' );
11
+ $action = ( $action_scope && !empty($_GET ['action']) ) ? $_GET ['action']:'';
12
+ $order = ( $action_scope && !empty($_GET ['order']) ) ? $_GET ['order']:'ASC';
13
+ $limit = ( $action_scope && !empty($_GET['limit']) ) ? $_GET['limit'] : 20;//Default limit
14
+ $page = ( $action_scope && !empty($_GET['pno']) ) ? $_GET['pno']:1;
15
+ $offset = ( $action_scope && $page > 1 ) ? ($page-1)*$limit : 0;
16
+
17
+ if( is_object($EM_Ticket) ){
18
+ $EM_Bookings = $EM_Ticket->get_bookings()->get_rejected_bookings();
19
+ }else{
20
+ if( is_object($EM_Event) ){
21
+ $EM_Bookings = $EM_Event->get_bookings()->get_rejected_bookings();
22
+ }else{
23
+ return false;
24
+ }
25
+ }
26
+ $bookings_count = (is_array($EM_Bookings->bookings)) ? count($EM_Bookings->bookings):0;
27
+ ?>
28
+ <div class='wrap em_bookings_pending_table em_obj'>
29
+ <form id='bookings-filter' method='get' action='<?php bloginfo('wpurl') ?>/wp-admin/edit.php'>
30
+ <input type="hidden" name="em_obj" value="em_bookings_pending_table" />
31
+ <!--
32
+ <ul class="subsubsub">
33
+ <li>
34
+ <a href='edit.php?post_type=post' class="current">All <span class="count">(1)</span></a> |
35
+ </li>
36
+ </ul>
37
+ <p class="search-box">
38
+ <label class="screen-reader-text" for="post-search-input"><?php _e('Search', 'dbem'); ?>:</label>
39
+ <input type="text" id="post-search-input" name="em_search" value="<?php echo (!empty($_GET['em_search'])) ? $_GET['em_search']:''; ?>" />
40
+ <input type="submit" value="<?php _e('Search', 'dbem'); ?>" class="button" />
41
+ </p>
42
+ -->
43
+ <?php if ( $bookings_count >= $limit ) : ?>
44
+ <div class='tablenav'>
45
+ <!--
46
+ <div class="alignleft actions">
47
+ <select name="action">
48
+ <option value="-1" selected="selected">
49
+ <?php _e('Bulk Actions', 'dbem'); ?>
50
+ </option>
51
+ <option value="approve">
52
+ <?php _e('Approve', 'dbem'); ?>
53
+ </option>
54
+ <option value="decline">
55
+ <?php _e('Decline', 'dbem'); ?>
56
+ </option>
57
+ </select>
58
+ <input type="submit" id="post-query-submit" value="Filter" class="button-secondary" />
59
+ </div>
60
+ -->
61
+ <!--
62
+ <div class="view-switch">
63
+ <a href="/wp-admin/edit.php?mode=list"><img class="current" id="view-switch-list" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="List View" alt="List View" name="view-switch-list" /></a> <a href="/wp-admin/edit.php?mode=excerpt"><img id="view-switch-excerpt" src="http://wordpress.lan/wp-includes/images/blank.gif" width="20" height="20" title="Excerpt View" alt="Excerpt View" name="view-switch-excerpt" /></a>
64
+ </div>
65
+ -->
66
+ <?php
67
+ if ( $bookings_count >= $limit ) {
68
+ $bookings_nav = em_admin_paginate( $bookings_count, $limit, $page, array('em_ajax'=>0, 'em_obj'=>'em_bookings_confirmed_table'));
69
+ echo $bookings_nav;
70
+ }
71
+ ?>
72
+ <div class="clear"></div>
73
+ </div>
74
+ <?php endif; ?>
75
+ <div class="clear"></div>
76
+ <?php if( $bookings_count > 0 ): ?>
77
+ <div class='table-wrap'>
78
+ <table id='dbem-bookings-table' class='widefat post '>
79
+ <thead>
80
+ <tr>
81
+ <th class='manage-column column-cb check-column' scope='col'>
82
+ <input class='select-all' type="checkbox" value='1' />
83
+ </th>
84
+ <th class='manage-column' scope='col'><?php _e('Booker', 'dbem'); ?></th>
85
+ <th class='manage-column' scope='col'><?php _e('E-mail', 'dbem'); ?></th>
86
+ <th class='manage-column' scope='col'><?php _e('Phone number', 'dbem'); ?></th>
87
+ <th class='manage-column' scope='col'><?php _e('Spaces', 'dbem'); ?></th>
88
+ <th class='manage-column' scope='col'>&nbsp;</th>
89
+ </tr>
90
+ </thead>
91
+ <tbody>
92
+ <?php
93
+ $rowno = 0;
94
+ $event_count = 0;
95
+ foreach ($EM_Bookings->bookings as $EM_Booking) {
96
+ if( ($rowno < $limit || empty($limit)) && ($event_count >= $offset || $offset === 0) ) {
97
+ $rowno++;
98
+ ?>
99
+ <tr>
100
+ <th scope="row" class="check-column" style="padding:7px 0px 7px;"><input type='checkbox' value='<?php echo $EM_Booking->booking_id ?>' name='bookings[]'/></th>
101
+ <td><a href="<?php echo EM_ADMIN_URL; ?>&amp;page=events-manager-bookings&amp;person_id=<?php echo $EM_Booking->person->ID; ?>"><?php echo $EM_Booking->person->get_name() ?></a></td>
102
+ <td><?php echo $EM_Booking->person->user_email ?></td>
103
+ <td><?php echo $EM_Booking->person->phone ?></td>
104
+ <td><?php echo $EM_Booking->get_spaces() ?></td>
105
+ <td>
106
+ <?php
107
+ $approve_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_approve', 'booking_id'=>$EM_Booking->booking_id));
108
+ $delete_url = em_add_get_params($_SERVER['REQUEST_URI'], array('action'=>'bookings_delete', 'booking_id'=>$EM_Booking->booking_id));
109
+ $edit_url = em_add_get_params($_SERVER['REQUEST_URI'], array('booking_id'=>$EM_Booking->booking_id, 'em_ajax'=>null, 'em_obj'=>null));
110
+ ?>
111
+ <a class="em-bookings-approve" href="<?php echo $approve_url ?>"><?php _e('Approve','dbem'); ?></a> |
112
+ <a class="em-bookings-edit" href="<?php echo $edit_url ?>"><?php _e('Edit/View','dbem'); ?></a> |
113
+ <span class="trash"><a class="em-bookings-delete" href="<?php echo $delete_url ?>"><?php _e('Delete','dbem'); ?></a></span>
114
+ </td>
115
+ </tr>
116
+ <?php
117
+ }
118
+ $event_count++;
119
+ }
120
+ ?>
121
+ </tbody>
122
+ </table>
123
+ </div>
124
+ <?php else: ?>
125
+ <?php _e('No rejected bookings.', 'dbem'); ?>
126
+ <?php endif; ?>
127
+ </form>
128
+ <?php if( !empty($bookings_nav) && $EM_Bookings >= $limit ) : ?>
129
+ <div class='tablenav'>
130
+ <?php echo $bookings_nav; ?>
131
+ <div class="clear"></div>
132
+ </div>
133
+ <?php endif; ?>
134
+ </div>
135
+ <?php
136
+ }
137
  ?>
admin/em-admin.php CHANGED
@@ -1,285 +1,217 @@
1
- <?php
2
- //Admin functions
3
-
4
- /**
5
- * Generate warnings and notices in the admin area
6
- */
7
- function em_admin_warnings() {
8
- //If we're editing the events page show hello to new user
9
- $events_page_id = get_option ( 'dbem_events_page' );
10
- $dismiss_link_joiner = ( count($_GET) > 0 ) ? '&amp;':'?';
11
-
12
- if( em_verify_admin() ){
13
- //New User Intro
14
- if (isset ( $_GET ['disable_hello_to_user'] ) && $_GET ['disable_hello_to_user'] == 'true'){
15
- // Disable Hello to new user if requested
16
- update_option ( 'dbem_hello_to_user', 0 );
17
- }elseif ( get_option ( 'dbem_hello_to_user' ) == 1 && !empty($_GET['page']) && $_GET['page'] == 'events-manager-events' ) {
18
- $current_user = wp_get_current_user ();
19
- //FIXME update welcome msg with good links
20
- $advice = sprintf ( __ ( "<p>Hey, <strong>%s</strong>, welcome to <strong>Events Manager</strong>! We hope you like it around here.</p>
21
- <p>Now it's time to insert events lists through <a href='%s' title='Widgets page'>widgets</a>, <a href='%s' title='Template tags documentation'>template tags</a> or <a href='%s' title='Shortcodes documentation'>shortcodes</a>.</p>
22
- <p>By the way, have you taken a look at the <a href='%s' title='Change settings'>Settings page</a>? That's where you customize the way events and locations are displayed.</p>
23
- <p>What? Tired of seeing this advice? I hear you, <a href='%s' title='Don't show this advice again'>click here</a> and you won't see this again!</p>", 'dbem' ), $current_user->display_name, get_bloginfo ( 'url' ) . '/wp-admin/widgets.php', 'http://wp-events-plugin.com/documentation/template-tags/', 'http://wp-events-plugin.com/documentation/shortcodes/', get_bloginfo ( 'url' ) . '/wp-admin/admin.php?page=events-manager-options', get_bloginfo ( 'url' ) . '/wp-admin/admin.php?page=events-manager&disable_hello_to_user=true' );
24
- ?>
25
- <div id="message" class="updated">
26
- <?php echo $advice; ?>
27
- </div>
28
- <?php
29
- }
30
-
31
- //If events page couldn't be created
32
- if( !empty($_GET['em_dismiss_admin_notice']) ){
33
- delete_option('dbem_admin_notice_'.$_GET['em_dismiss_admin_notice']);
34
- }else{
35
- if ( get_option('dbem_admin_notice_3.0.91') ){
36
- ?>
37
- <div class="updated">
38
- <p><?php echo sprintf ( __( '<strong>Events Manager has some new features!</strong><ul><li>Bookings can now be approved before they count towards your event\'s space allocations.</li><li>Events now have owners, and you can restrict users so they can only manage events/locations/categories they create.<br/><br/>These new permissions are enabled by default, but since you upgraded it has been disabled to maintain the previous plugin behaviour. You can re-enable it from the <a href="%s">settings page</a>. <a href="%s">Dismiss</a>', 'dbem'), get_bloginfo ( 'url' ) . '/wp-admin/admin.php?page=events-manager-options', $_SERVER['REQUEST_URI'].$dismiss_link_joiner.'em_dismiss_admin_notice=3.0.91' ); ?></p>
39
- </div>
40
- <?php
41
- }
42
- }
43
- //If events page couldn't be created
44
- if( !empty($_GET['em_dismiss_rc_notice']) ){
45
- delete_option('dbem_admin_notice_rc');
46
- }elseif( get_option('dbem_admin_notice_rc')){
47
- ?>
48
- <div class="updated">
49
- <p>
50
- <strong>Events Manager 4.0 on its way!</strong>
51
- We've just about finished with 4.0, which boasts TONS of long awaited features including advanced booking, permalinks, MultiSite and BuddPress integration, and much more!
52
- It is undergoing final testing to be released in the coming days, and the website has already had a documentation and tutorial overhaul in preparation.
53
- </p><p>
54
- To read up on the changes and get a hold of the Release Candidate
55
- <a href="http://wp-events-plugin.com/try-the-beta/?utm_source=plugin&utm_medium=html&utm_campaign=rc_notice">click here</a>.
56
- Please make sure to have a look at this page if you use EM for bookings or have made any mods to the plugin, as there are some considerations to make when upgrading.<br />
57
- <a href="http://wp-events-plugin.com/try-the-beta/?utm_source=plugin&utm_medium=html&utm_campaign=rc_notice">See what's new</a> | <a href="<?php echo $_SERVER['REQUEST_URI'].$dismiss_link_joiner.'em_dismiss_rc_notice=1' ?>">Dismiss this message.</a>
58
- </p>
59
- </div>
60
- <?php
61
- }
62
-
63
- //If events page couldn't be created
64
- if( !empty($_GET['em_dismiss_events_page']) ){
65
- update_option('dbem_dismiss_events_page',1);
66
- }else{
67
- if ( !get_page($events_page_id) && !get_option('dbem_dismiss_events_page') ){
68
- ?>
69
- <div id="em_page_error" class="updated">
70
- <p><?php echo sprintf ( __( 'Uh Oh! For some reason wordpress could not create an events page for you (or you just deleted it). Not to worry though, all you have to do is create an empty page, name it whatever you want, and select it as your events page in your <a href="%s">settings page</a>. Sorry for the extra step! If you know what you are doing, you may have done this on purpose, if so <a href="%s">ignore this message</a>', 'dbem'), get_bloginfo ( 'url' ) . '/wp-admin/admin.php?page=events-manager-options', $_SERVER['REQUEST_URI'].$dismiss_link_joiner.'em_dismiss_events_page=1' ); ?></p>
71
- </div>
72
- <?php
73
- }
74
- }
75
- }
76
- //Warn about EM page edit
77
- if ( preg_match( '/(post|page).php/', $_SERVER ['SCRIPT_NAME']) && isset ( $_GET ['action'] ) && $_GET ['action'] == 'edit' && isset ( $_GET ['post'] ) && $_GET ['post'] == "$events_page_id") {
78
- $message = sprintf ( __ ( "This page corresponds to <strong>Events Manager</strong> events page. Its content will be overriden by <strong>Events Manager</strong>. If you want to display your content, you can can assign another page to <strong>Events Manager</strong> in the the <a href='%s'>Settings</a>. ", 'dbem' ), 'admin.php?page=events-manager-options' );
79
- $notice = "<div class='error'><p>$message</p></div>";
80
- echo $notice;
81
- }
82
-
83
- }
84
- add_action ( 'admin_notices', 'em_admin_warnings' );
85
-
86
- /**
87
- * Creates a wp-admin style navigation. All this does is wrap some html around the em_paginate function result to make it style correctly in the admin area.
88
- * @param string $link
89
- * @param int $total
90
- * @param int $limit
91
- * @param int $page
92
- * @param int $pagesToShow
93
- * @return string
94
- * @uses em_paginate()
95
- */
96
- function em_admin_paginate($link, $total, $limit, $page=1, $pagesToShow=5){
97
- $return = '<div class="tablenav-pages">';
98
- $return .= sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>',
99
- number_format_i18n( ( $page - 1 ) * $limit + 1 ),
100
- number_format_i18n( min( $page * $limit, $total ) ),
101
- number_format_i18n( $total )
102
- );
103
- $return .= em_paginate($link, $total, $limit, $page, $pagesToShow);
104
- $return .= '</div>';
105
- return $return;
106
- }
107
-
108
- /**
109
- * Called by admin_print_scripts-(hook|page) action, created when adding menu items in events-manager.php
110
- */
111
- function em_admin_load_scripts(){
112
- //Load the UI items, currently date picker and autocomplete plus dependencies
113
- //wp_enqueue_script('em-ui-js', WP_PLUGIN_URL.'/events-manager/includes/js/jquery-ui-1.8.5.custom.min.js', array('jquery', 'jquery-ui-core'));
114
- wp_enqueue_script('em-ui-js', WP_PLUGIN_URL.'/events-manager/includes/js/em_ui.js', array('jquery', 'jquery-ui-core'));
115
-
116
- //Add maps
117
- if( get_option('dbem_gmap_is_active') ){
118
- wp_enqueue_script('em-google-maps', 'http://maps.google.com/maps/api/js?sensor=false');
119
- }
120
- //Time Entry
121
- wp_enqueue_script('em-timeentry', WP_PLUGIN_URL.'/events-manager/includes/js/timeentry/jquery.timeentry.js', array('jquery'));
122
-
123
- //Date Picker Locale
124
- $locale_code = substr ( get_locale (), 0, 2 );
125
- $locale_file = "/events-manager/includes/js/i18n/jquery.ui.datepicker-$locale_code.js";
126
- if ( file_exists(WP_PLUGIN_DIR.$locale_file) ) {
127
- wp_enqueue_script("em-ui-datepicker-$locale_code", WP_PLUGIN_URL.$locale_file, array('em-ui-js'));
128
- }
129
- wp_enqueue_script('em-script', WP_PLUGIN_URL.'/events-manager/includes/js/em_admin.js', array('em-ui-js'));
130
-
131
- //TinyMCE Editor
132
- remove_filter('the_editor', 'qtrans_modifyRichEditor'); //qtranslate filter
133
- add_action( 'admin_print_footer_scripts', 'wp_tiny_mce', 25 );
134
- add_action( 'admin_print_footer_scripts', 'wp_tiny_mce_preload_dialogs', 30 );
135
- wp_enqueue_script('post');
136
- if ( user_can_richedit() )
137
- wp_enqueue_script('editor');
138
-
139
- add_thickbox();
140
- wp_enqueue_script('media-upload');
141
- wp_enqueue_script('word-count');
142
- wp_enqueue_script('quicktags');
143
- }
144
-
145
- /**
146
- * Called by admin_print_styles-(hook|page) action, created when adding menu items in events-manager.php
147
- */
148
- function em_admin_load_styles() {
149
- add_thickbox();
150
- wp_enqueue_style('em-ui-css', WP_PLUGIN_URL.'/events-manager/includes/css/jquery-ui-1.7.3.custom.css');
151
- wp_enqueue_style('events-manager-admin', WP_PLUGIN_URL.'/events-manager/includes/css/events_manager_admin.css');
152
- }
153
-
154
- /**
155
- * Loads script inline due to insertion of php values
156
- */
157
- function em_admin_general_script() {
158
- //TODO clean script up, remove dependency of php so it can be moved to js file.
159
- // Check if the locale is there and loads it
160
- $locale_code = substr ( get_locale (), 0, 2 );
161
- $show24Hours = 'true';
162
- // Setting 12 hours format for those countries using it
163
- if (preg_match ( "/en|sk|zh|us|uk/", $locale_code ))
164
- $show24Hours = 'false';
165
- ?>
166
- <script type="text/javascript">
167
- //<![CDATA[
168
- // TODO: make more general, to support also latitude and longitude (when added)
169
-
170
- jQuery(document).ready( function($) {
171
-
172
- function updateIntervalDescriptor () {
173
- $(".interval-desc").hide();
174
- var number = "-plural";
175
- if ($('input#recurrence-interval').val() == 1 || $('input#recurrence-interval').val() == "")
176
- number = "-singular"
177
- var descriptor = "span#interval-"+$("select#recurrence-frequency").val()+number;
178
- $(descriptor).show();
179
- }
180
- function updateIntervalSelectors () {
181
- $('p.alternate-selector').hide();
182
- $('p#'+ $('select#recurrence-frequency').val() + "-selector").show();
183
- }
184
- function updateShowHideRsvp () {
185
- if($('input#rsvp-checkbox').attr("checked")) {
186
- $("div#rsvp-data").fadeIn();
187
- } else {
188
- $("div#rsvp-data").hide();
189
- }
190
- }
191
- function updateShowHideRecurrence () {
192
- if( $('input#event-recurrence').attr("checked")) {
193
- $("#event_recurrence_pattern").fadeIn();
194
- $("#event-date-explanation").hide();
195
- $("#recurrence-dates-explanation").show();
196
- $("h3#recurrence-dates-title").show();
197
- $("h3#event-date-title").hide();
198
- } else {
199
- $("#event_recurrence_pattern").hide();
200
- $("#recurrence-dates-explanation").hide();
201
- $("#event-date-explanation").show();
202
- $("h3#recurrence-dates-title").hide();
203
- $("h3#event-date-title").show();
204
- }
205
- }
206
- $("#recurrence-dates-explanation").hide();
207
- $("#localised-date").show();
208
- $("#localised-end-date").show();
209
-
210
- $("#date-to-submit").hide();
211
- $("#end-date-to-submit").hide();
212
-
213
- $("#start-time").timeEntry({spinnerImage: '', show24Hours: <?php echo $show24Hours; ?> });
214
- $("#end-time").timeEntry({spinnerImage: '', show24Hours: <?php echo $show24Hours; ?>});
215
-
216
- $('input.select-all').change(function(){
217
- if($(this).is(':checked'))
218
- $('input.row-selector').attr('checked', true);
219
- else
220
- $('input.row-selector').attr('checked', false);
221
- });
222
-
223
- updateIntervalDescriptor();
224
- updateIntervalSelectors();
225
- updateShowHideRecurrence();
226
- updateShowHideRsvp();
227
- $('input#event-recurrence').change(updateShowHideRecurrence);
228
- $('input#rsvp-checkbox').change(updateShowHideRsvp);
229
-
230
- // recurrency elements
231
- $('input#recurrence-interval').keyup(updateIntervalDescriptor);
232
- $('select#recurrence-frequency').change(updateIntervalDescriptor);
233
- $('select#recurrence-frequency').change(updateIntervalSelectors);
234
-
235
- // hiding or showing notes according to their content
236
- $('.postbox h3').prepend('<a class="togbox">+</a> ');
237
- $('#event_notes h3').click( function() {
238
- $(this).parent().first().toggleClass('closed');
239
- });
240
-
241
- // users cannot submit the event form unless some fields are filled
242
- function validateEventForm(){
243
- errors = "";
244
- var recurring = $("input[@name=repeated_event]:checked").val();
245
- requiredFields= new Array('event_name', 'localised_event_date', 'location_name','location_address','location_town');
246
- var localisedRequiredFields = {
247
- 'event_name':"<?php _e ( 'Name', 'dbem' )?>",
248
- 'localised_event_date':"<?php _e ( 'Date', 'dbem' )?>",
249
- 'location_name':"<?php _e ( 'Location', 'dbem' )?>",
250
- 'location_address':"<?php _e ( 'Address', 'dbem' )?>",
251
- 'location_town':"<?php _e ( 'Town', 'dbem' )?>"
252
- };
253
- missingFields = new Array;
254
- for (var i in requiredFields) {
255
- if ($("input[@name=" + requiredFields[i]+ "]").val() == 0) {
256
- missingFields.push(localisedRequiredFields[requiredFields[i]]);
257
- $("input[@name=" + requiredFields[i]+ "]").css('border','2px solid red');
258
- } else {
259
- $("input[@name=" + requiredFields[i]+ "]").css('border','1px solid #DFDFDF');
260
- }
261
- }
262
-
263
- // alert('ciao ' + recurring+ " end: " + $("input[@name=localised_event_end_date]").val());
264
- if (missingFields.length > 0) {
265
- errors = "<?php _e ( 'Some required fields are missing:', 'dbem' )?> " + missingFields.join(", ") + ".\n";
266
- }
267
- if(recurring && $("input[@name=localised_event_end_date]").val() == "") {
268
- errors = errors + "<?php _e ( 'Since the event is repeated, you must specify an end date', 'dbem' )?>.";
269
- $("input[@name=localised_event_end_date]").css('border','2px solid red');
270
- } else {
271
- $("input[@name=localised_event_end_date]").css('border','1px solid #DFDFDF');
272
- }
273
- if(errors != "") {
274
- alert(errors);
275
- return false;
276
- }
277
- return true;
278
- }
279
- $('#event-form').bind("submit", validateEventForm);
280
- });
281
- //]]>
282
- </script>
283
- <?php
284
- }
285
  ?>
1
+ <?php
2
+ //Admin functions
3
+ function em_admin_menu(){
4
+ global $menu, $submenu, $pagenow;
5
+ //Count pending bookings
6
+ if( get_option('dbem_rsvp_enabled') ){
7
+ $bookings_num = '';
8
+ $bookings_pending_count = apply_filters('em_bookings_pending_count',0);
9
+ if( get_option('dbem_bookings_approval') == 1){
10
+ $bookings_pending_count += count(EM_Bookings::get(array('status'=>'0', 'blog'=>get_current_blog_id()))->bookings);
11
+ }
12
+ if($bookings_pending_count > 0){
13
+ $bookings_num = '<span class="update-plugins count-'.$bookings_pending_count.'"><span class="plugin-count">'.$bookings_pending_count.'</span></span>';
14
+ }
15
+ }else{
16
+ $bookings_num = '';
17
+ $bookings_pending_count = 0;
18
+ }
19
+ //Count pending events
20
+ $events_num = '';
21
+ $events_pending_count = EM_Events::count(array('status'=>0, 'scope'=>'all', 'blog'=>get_current_blog_id()));
22
+ //TODO Add flexible permissions
23
+ if($events_pending_count > 0){
24
+ $events_num = '<span class="update-plugins count-'.$events_pending_count.'"><span class="plugin-count">'.$events_pending_count.'</span></span>';
25
+ }
26
+ //Count pending recurring events
27
+ $events_recurring_num = '';
28
+ $events_recurring_pending_count = EM_Events::count(array('status'=>0, 'recurring'=>1, 'scope'=>'all', 'blog'=>get_current_blog_id()));
29
+ //TODO Add flexible permissions
30
+ if($events_recurring_pending_count > 0){
31
+ $events_recurring_num = '<span class="update-plugins count-'.$events_recurring_pending_count.'"><span class="plugin-count">'.$events_recurring_pending_count.'</span></span>';
32
+ }
33
+ $both_pending_count = apply_filters('em_items_pending_count', $events_pending_count + $bookings_pending_count + $events_recurring_pending_count);
34
+ $both_num = ($both_pending_count > 0) ? '<span class="update-plugins count-'.$both_pending_count.'"><span class="plugin-count">'.$both_pending_count.'</span></span>':'';
35
+ // Add a submenu to the custom top-level menu:
36
+ $plugin_pages = array();
37
+ if( get_option('dbem_rsvp_enabled') ){
38
+ $plugin_pages['bookings'] = add_submenu_page('edit.php?post_type='.EM_POST_TYPE_EVENT, __('Bookings', 'dbem'), __('Bookings', 'dbem').$bookings_num, 'manage_bookings', 'events-manager-bookings', "em_bookings_page");
39
+ }
40
+ $plugin_pages['options'] = add_submenu_page('edit.php?post_type='.EM_POST_TYPE_EVENT, __('Events Manager Settings','dbem'),__('Settings','dbem'), 'activate_plugins', "events-manager-options", 'em_admin_options_page');
41
+ $plugin_pages['help'] = add_submenu_page('edit.php?post_type='.EM_POST_TYPE_EVENT, __('Getting Help for Events Manager','dbem'),__('Help','dbem'), 'activate_plugins', "events-manager-help", 'em_admin_help_page');
42
+ //If multisite global with locations set to be saved in main blogs we can force locations to be created on the main blog only
43
+ if( EM_MS_GLOBAL && !is_main_site() && get_site_option('dbem_ms_mainblog_locations') ){
44
+ include( dirname(__FILE__)."/em-ms-locations.php" );
45
+ $plugin_pages['locations'] = add_submenu_page('edit.php?post_type='.EM_POST_TYPE_EVENT, __('Locations','dbem'),__('Locations','dbem'), 'read_others_locations', "locations", 'em_admin_ms_locations');
46
+ }
47
+ $plugin_pages = apply_filters('em_create_events_submenu',$plugin_pages);
48
+ //We have to modify the menus manually
49
+ if( !empty($both_num) ){ //Main Event Menu
50
+ //go through the menu array and modify the events menu if found
51
+ foreach ( (array)$menu as $key => $parent_menu ) {
52
+ if ( $parent_menu[2] == 'edit.php?post_type='.EM_POST_TYPE_EVENT ){
53
+ $menu[$key][0] = $menu[$key][0]. $both_num;
54
+ break;
55
+ }
56
+ }
57
+ }
58
+ if( !empty($events_num) && !empty($submenu['edit.php?post_type='.EM_POST_TYPE_EVENT]) ){ //Submenu Event Item
59
+ //go through the menu array and modify the events menu if found
60
+ foreach ( (array)$submenu['edit.php?post_type='.EM_POST_TYPE_EVENT] as $key => $submenu_item ) {
61
+ if ( $submenu_item[2] == 'edit.php?post_type='.EM_POST_TYPE_EVENT ){
62
+ $submenu['edit.php?post_type='.EM_POST_TYPE_EVENT][$key][0] = $submenu['edit.php?post_type='.EM_POST_TYPE_EVENT][$key][0]. $events_num;
63
+ break;
64
+ }
65
+ }
66
+ }
67
+ if( !empty($events_recurring_num) && !empty($submenu['edit.php?post_type='.EM_POST_TYPE_EVENT]) ){ //Submenu Recurring Event Item
68
+ //go through the menu array and modify the events menu if found
69
+ foreach ( (array)$submenu['edit.php?post_type='.EM_POST_TYPE_EVENT] as $key => $submenu_item ) {
70
+ if ( $submenu_item[2] == 'edit.php?post_type=event-recurring' ){
71
+ $submenu['edit.php?post_type='.EM_POST_TYPE_EVENT][$key][0] = $submenu['edit.php?post_type='.EM_POST_TYPE_EVENT][$key][0]. $events_recurring_num;
72
+ break;
73
+ }
74
+ }
75
+ }
76
+ /* Hack! Add location/recurrence isn't possible atm so this is a workaround */
77
+ global $_wp_submenu_nopriv;
78
+ if( $pagenow == 'post-new.php' && !empty($_REQUEST['post_type']) ){
79
+ if( $_REQUEST['post_type'] == EM_POST_TYPE_LOCATION && !empty($_wp_submenu_nopriv['edit.php']['post-new.php']) && current_user_can('edit_locations') ){
80
+ unset($_wp_submenu_nopriv['edit.php']['post-new.php']);
81
+ }
82
+ if( $_REQUEST['post_type'] == 'event-recurring' && !empty($_wp_submenu_nopriv['edit.php']['post-new.php']) && current_user_can('edit_recurring_events') ){
83
+ unset($_wp_submenu_nopriv['edit.php']['post-new.php']);
84
+ }
85
+ }
86
+ }
87
+ add_action('admin_menu','em_admin_menu');
88
+
89
+ function em_ms_admin_menu(){
90
+ add_menu_page( __('Events Manager','dbem'), __('Events Manager','dbem'), 'activate_plugins', 'events-manager-options', 'em_ms_admin_options_page', plugins_url('includes/images/calendar-16.png', dirname(dirname(__FILE__)).'/events-manager.php') );
91
+ add_submenu_page('events-manager-options', __('Update Blogs','dbem'),__('Update Blogs','dbem'), 'activate_plugins', "events-manager-update", 'em_ms_upgrade');
92
+ }
93
+ add_action('network_admin_menu','em_ms_admin_menu');
94
+
95
+ function em_admin_init(){
96
+ //in MS global mode
97
+ if( EM_MS_GLOBAL && is_user_logged_in() && !is_main_site() && get_site_option('dbem_ms_mainblog_locations') ){
98
+ EM_Object::ms_global_switch();
99
+ $user = new WP_User(get_current_user_id());
100
+ if( count($user->roles) == 0 ){
101
+ $user->set_role('subscriber');
102
+ }
103
+ EM_Object::ms_global_switch_back();
104
+ }
105
+ }
106
+ add_action('admin_init','em_admin_init');
107
+
108
+ /**
109
+ * Generate warnings and notices in the admin area
110
+ */
111
+ function em_admin_warnings() {
112
+ global $EM_Notices;
113
+ //If we're editing the events page show hello to new user
114
+ $events_page_id = get_option ( 'dbem_events_page' );
115
+ $dismiss_link_joiner = ( count($_GET) > 0 ) ? '&amp;':'?';
116
+
117
+ if( current_user_can('activate_plugins') ){
118
+ //New User Intro
119
+ if (isset ( $_GET ['disable_hello_to_user'] ) && $_GET ['disable_hello_to_user'] == 'true'){
120
+ // Disable Hello to new user if requested
121
+ update_option('dbem_hello_to_user',0);
122
+ }elseif ( get_option ( 'dbem_hello_to_user' ) ) {
123
+ //FIXME update welcome msg with good links
124
+ $advice = sprintf( __("<p>Events Manager is ready to go! It is highly recommended you read the <a href='%s'>Getting Started</a> guide on our site, as well as checking out the <a href='%s'>Settings Page</a>. <a href='%s' title='Don't show this advice again'>Dismiss</a></p>", 'dbem'), 'http://wp-events-plugin.com/documentation/getting-started/?utm_source=em&utm_medium=plugin&utm_content=installationlink&utm_campaign=plugin_links', EM_ADMIN_URL .'&amp;page=events-manager-options', $_SERVER['REQUEST_URI'].$dismiss_link_joiner.'disable_hello_to_user=true');
125
+ ?>
126
+ <div id="message" class="updated">
127
+ <?php echo $advice; ?>
128
+ </div>
129
+ <?php
130
+ }
131
+
132
+ //If events page couldn't be created or is missing
133
+ if( !empty($_GET['em_dismiss_events_page']) ){
134
+ update_option('dbem_dismiss_events_page',1);
135
+ }else{
136
+ if ( !get_page($events_page_id) && !get_option('dbem_dismiss_events_page') ){
137
+ ?>
138
+ <div id="em_page_error" class="updated">
139
+ <p><?php echo sprintf ( __( 'Uh Oh! For some reason WordPress could not create an events page for you (or you just deleted it). Not to worry though, all you have to do is create an empty page, name it whatever you want, and select it as your events page in your <a href="%s">settings page</a>. Sorry for the extra step! If you know what you are doing, you may have done this on purpose, if so <a href="%s">ignore this message</a>', 'dbem'), EM_ADMIN_URL .'&amp;page=events-manager-options', $_SERVER['REQUEST_URI'].$dismiss_link_joiner.'em_dismiss_events_page=1' ); ?></p>
140
+ </div>
141
+ <?php
142
+ }
143
+ }
144
+
145
+ if( defined('EMP_VERSION') && EMP_VERSION < EM_PRO_MIN_VERSION ){
146
+ ?>
147
+ <div id="em_page_error" class="updated">
148
+ <p><?php _e('There is a newer version of Events Manager Pro which is required for this current version of Events Manager. Please go to the plugin website and download the latest update.','dbem'); ?></p>
149
+ </div>
150
+ <?php
151
+ }
152
+
153
+ if( is_multisite() && !empty($_REQUEST['page']) && $_REQUEST['page']=='events-manager-options' && is_super_admin() && get_option('dbem_ms_update_nag') ){
154
+ if( !empty($_GET['disable_dbem_ms_update_nag']) ){
155
+ delete_site_option('dbem_ms_update_nag');
156
+ }else{
157
+ ?>
158
+ <div id="em_page_error" class="updated">
159
+ <p><?php echo sprintf(__('MultiSite options have moved <a href="%s">here</a>. <a href="%s">Dismiss message</a>','dbem'),admin_url().'network/admin.php?page=events-manager-options', $_SERVER['REQUEST_URI'].'&amp;disable_dbem_ms_update_nag=1'); ?></p>
160
+ </div>
161
+ <?php
162
+ }
163
+ }
164
+
165
+ if( is_super_admin() && get_option('dbem_migrate_images_nag') ){
166
+ if( !empty($_GET['disable_dbem_migrate_images_nag']) ){
167
+ delete_site_option('dbem_migrate_images_nag');
168
+ }else{
169
+ ?>
170
+ <div id="em_page_error" class="updated">
171
+ <p><?php echo sprintf(__('Whilst they will still appear using placeholders, you need to <a href="%s">migrate your location and event images</a> in order for them to appear in your edit forms and media library. <a href="%s">Dismiss message</a>','dbem'),admin_url().'edit.php?post_type=event&page=events-manager-options&em_migrate_images=1&_wpnonce='.wp_create_nonce('em_migrate_images'), em_add_get_params($_SERVER['REQUEST_URI'], array('disable_dbem_migrate_images_nag' => 1))); ?></p>
172
+ </div>
173
+ <?php
174
+ }
175
+ }
176
+ }
177
+ //Warn about EM page edit
178
+ if ( preg_match( '/(post|page).php/', $_SERVER ['SCRIPT_NAME']) && isset ( $_GET ['action'] ) && $_GET ['action'] == 'edit' && isset ( $_GET ['post'] ) && $_GET ['post'] == "$events_page_id") {
179
+ $message = sprintf ( __ ( "This page corresponds to <strong>Events Manager</strong> events page. Its content will be overriden by Events Manager, although if you include the word CONTENTS (exactly in capitals) and surround it with other text, only CONTENTS will be overwritten. If you want to change the way your events look, go to the <a href='%s'>settings</a> page. ", 'dbem' ), EM_ADMIN_URL .'&amp;page=events-manager-options' );
180
+ $notice = "<div class='error'><p>$message</p></div>";
181
+ echo $notice;
182
+ }
183
+ echo $EM_Notices;
184
+ }
185
+ add_action ( 'admin_notices', 'em_admin_warnings', 100 );
186
+
187
+ /**
188
+ * Settings link in the plugins page menu
189
+ * @param array $links
190
+ * @param string $file
191
+ * @return array
192
+ */
193
+ function em_set_plugin_meta($links, $file) {
194
+ $plugin = plugin_basename(__FILE__);
195
+ // create link
196
+ if ($file == $plugin) {
197
+ return array_merge(
198
+ $links,
199
+ array( sprintf( '<a href="'.EM_ADMIN_URL.'&amp;page=events-manager-options">%s</a>', __('Settings', 'dbem') ) )
200
+ );
201
+ }
202
+ return $links;
203
+ }
204
+ //add_filter( 'plugin_row_meta', 'em_set_plugin_meta', 10, 2 );
205
+
206
+ function em_plugin_action_links($actions, $file, $plugin_data) {
207
+ $actions['settings'] = sprintf( '<a href="'.EM_ADMIN_URL.'&amp;page=events-manager-options">%s</a>', __('Settings', 'dbem') );
208
+ if( is_multisite() ){
209
+ $uninstall_url = admin_url().'network/admin.php?page=events-manager-options&amp;action=uninstall&amp;_wpnonce='.wp_create_nonce('em_uninstall_'.get_current_user_id().'_wpnonce');
210
+ }else{
211
+ $uninstall_url = EM_ADMIN_URL.'&amp;page=events-manager-options&amp;action=uninstall&amp;_wpnonce='.wp_create_nonce('em_uninstall_'.get_current_user_id().'_wpnonce');
212
+ }
213
+ $actions['uninstall'] = '<span class="delete"><a href="'.$uninstall_url.'" class="delete">'.__('Uninstall','dbem').'</a></span>';
214
+ return $actions;
215
+ }
216
+ add_filter( 'plugin_action_links_events-manager/events-manager.php', 'em_plugin_action_links', 10, 3 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  ?>
admin/em-bookings.php CHANGED
@@ -1,288 +1,422 @@
1
- <?php
2
- /**
3
- * Check if there's any admin-related actions to take for bookings. All actions are caught here.
4
- * @return null
5
- */
6
- function em_admin_actions_bookings() {
7
- global $dbem_form_add_message;
8
- global $dbem_form_delete_message;
9
- global $wpdb, $EM_Booking, $EM_Event;
10
-
11
- if( current_user_can(EM_MIN_CAPABILITY) && is_object($EM_Booking) && !empty($_REQUEST['action']) ) {
12
- if( $_REQUEST['action'] == 'bookings_delete' ){
13
- //Delete
14
- if( isset($_POST['booking_id']) ){
15
- $EM_Booking = new EM_Booking($_POST['booking_id']);
16
- $EM_Booking->delete();
17
- }
18
- }elseif( $_REQUEST['action'] == 'bookings_edit' ){
19
- //Edit Booking
20
- $validation = $EM_Booking->get_post();
21
- if ( $validation ) { //EM_Event gets the event if submitted via POST and validates it (safer than to depend on JS)
22
- //Save
23
- if( $EM_Booking->save() ) {
24
- function em_booking_save_notification(){ global $EM_Booking; ?><div class="updated"><p><strong><?php echo $EM_Booking->feedback_message; ?></strong></p></div><?php }
25
- }else{
26
- function em_booking_save_notification(){ global $EM_Booking; ?><div class="error"><p><strong><?php echo $EM_Booking->feedback_message; ?></strong></p></div><?php }
27
- }
28
- }else{
29
- //TODO make errors clearer when saving person
30
- function em_booking_save_notification(){ global $EM_Booking; ?><div class="error"><p><strong><?php echo $EM_Booking->feedback_message; ?></strong></p></div><?php }
31
- }
32
- add_action ( 'admin_notices', 'em_booking_save_notification' );
33
- }elseif( $_REQUEST['action'] == 'bookings_approve' || $_REQUEST['action'] == 'bookings_reject' || $_REQUEST['action'] == 'bookings_unapprove' ){
34
- //Booking Approvals
35
- $status_array = array('bookings_unapprove' => 0,'bookings_approve' => 1,'bookings_reject' => 2, 'bookings_cancel' => 3);
36
- if( $EM_Booking->set_status( $status_array[$_REQUEST['action']] ) ) {
37
- function em_booking_save_notification(){ global $EM_Booking; ?><div class="updated"><p><strong><?php echo $EM_Booking->feedback_message; ?></strong></p></div><?php }
38
- }else{
39
- function em_booking_save_notification(){ global $EM_Booking; ?><div class="error"><p><strong><?php echo $EM_Booking->feedback_message; ?></strong></p></div><?php }
40
- }
41
- add_action ( 'admin_notices', 'em_booking_save_notification' );
42
- }elseif( $_REQUEST['action'] == 'bookings_add_note' ){
43
- $EM_Booking->add_note($_REQUEST['booking_note']);
44
- function em_booking_save_notification(){ global $EM_Booking; ?><div class="updated"><p><strong><?php echo $EM_Booking->feedback_message; ?></strong></p></div><?php }
45
- add_action ( 'admin_notices', 'em_booking_save_notification' );
46
- }
47
- }elseif( current_user_can(EM_MIN_CAPABILITY) && is_object($EM_Event) && !empty($_REQUEST['action']) ){
48
- if( $_REQUEST['action'] == 'export_csv' ){
49
- $EM_Event->get_bookings()->export_csv();
50
- exit();
51
- }
52
- }
53
- }
54
- add_action('admin_init','em_admin_actions_bookings',100);
55
-
56
- /**
57
- * Decide what content to show in the bookings section.
58
- */
59
- function em_bookings_page(){
60
- //First any actions take priority
61
- if( !empty($_REQUEST['booking_id']) ){
62
- em_bookings_single();
63
- }elseif( !empty($_REQUEST['person_id']) ){
64
- em_bookings_person();
65
- }elseif( !empty($_REQUEST['event_id']) ){
66
- em_bookings_event();
67
- }else{
68
- em_bookings_dashboard();
69
- }
70
- }
71
-
72
- /**
73
- * Generates the bookings dashboard, showing information on all events
74
- */
75
- function em_bookings_dashboard(){
76
- ?>
77
- <div class='wrap'>
78
- <div id='icon-users' class='icon32'>
79
- <br/>
80
- </div>
81
- <h2>
82
- <?php _e('Event Bookings Dashboard', 'dbem'); ?>
83
- </h2>
84
- <?php if( get_option('dbem_bookings_approval') ): ?>
85
- <h2><?php _e('Pending Bookings','dbem'); ?></h2>
86
- <?php em_bookings_pending_table(); ?>
87
- <?php endif; ?>
88
- <h2><?php _e('Events With Bookings Enabled','dbem'); ?></h2>
89
- <?php em_bookings_events_table(); ?>
90
- </div>
91
- <?php
92
- }
93
-
94
- /**
95
- * Shows all booking data for a single event
96
- */
97
- function em_bookings_event(){
98
- global $EM_Event,$EM_Person;
99
- //check that user can access this page
100
- if( is_object($EM_Event) && !$EM_Event->can_manage() ){
101
- ?>
102
- <div class="wrap"><h2><?php _e('Unauthorized Access','dbem'); ?></h2><p><?php _e('You do not have the rights to manage this event.','dbem'); ?></p></div>
103
- <?php
104
- return false;
105
- }
106
- $localised_start_date = date_i18n('D d M Y', $EM_Event->start);
107
- $localised_end_date = date_i18n('D d M Y', $EM_Event->end);
108
- ?>
109
- <div class='wrap'>
110
- <div id='icon-users' class='icon32'>
111
- <br/>
112
- </div>
113
- <h2>
114
- <?php echo sprintf(__('Manage %s Bookings', 'dbem'), "'{$EM_Event->name}'"); ?>
115
- <a href="admin.php?page=events-manager-event&event_id=<?php echo $EM_Event->id; ?>" class="button add-new-h2"><?php _e('View/Edit Event','dbem') ?></a>
116
- </h2>
117
- <div><a href='<?php echo get_bloginfo('wpurl') . "/wp-admin/admin.php?page=events-manager-bookings&action=export_csv&event_id=".$EM_Event->id ?>'><?php _e('export csv','dbem')?></a></div>
118