All-in-One Event Calendar - Version 1.0.7

Version Description

Download this release

Release Info

Developer theseed
Plugin Icon 128x128 All-in-One Event Calendar
Version 1.0.7
Comparing to
See all releases

Code changes from version 1.0.6 to 1.0.7

all-in-one-event-calendar.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: All-in-One Event Calendar Plugin
4
  * Plugin URI: http://theseedstudio.com/software/all-in-one-event-calendar-wordpress/
5
  * Description: An event calendar system with month and agenda views, upcoming events widget, color-coded categories, recurrence, and import/export of .ics feeds.
6
- * Version: 1.0.6
7
  * Author: The Seed Studio
8
  * Author URI: http://theseedstudio.com/
9
  */
3
  * Plugin Name: All-in-One Event Calendar Plugin
4
  * Plugin URI: http://theseedstudio.com/software/all-in-one-event-calendar-wordpress/
5
  * Description: An event calendar system with month and agenda views, upcoming events widget, color-coded categories, recurrence, and import/export of .ics feeds.
6
+ * Version: 1.0.7
7
  * Author: The Seed Studio
8
  * Author URI: http://theseedstudio.com/
9
  */
app/controller/class-ai1ec-app-controller.php CHANGED
@@ -361,16 +361,20 @@ class Ai1ec_App_Controller {
361
  if( $ai1ec_settings->calendar_page_id &&
362
  is_page( $ai1ec_settings->calendar_page_id ) )
363
  {
364
- ob_start();
365
- // Render view
366
- $ai1ec_calendar_controller->view();
367
- // Save page content to local variable
368
- $this->page_content = ob_get_contents();
369
- ob_end_clean();
370
-
371
- // Replace page content - make sure it happens at (almost) the very end of
372
- // page content filters (some themes are overly ambitious here)
373
- add_filter( 'the_content', array( &$this, 'append_content' ), PHP_INT_MAX - 1 );
 
 
 
 
374
  }
375
  }
376
 
361
  if( $ai1ec_settings->calendar_page_id &&
362
  is_page( $ai1ec_settings->calendar_page_id ) )
363
  {
364
+ // Proceed only if the page password is correctly entered OR
365
+ // the page doesn't require a password
366
+ if( ! post_password_required( $ai1ec_settings->calendar_page_id ) ) {
367
+ ob_start();
368
+ // Render view
369
+ $ai1ec_calendar_controller->view();
370
+ // Save page content to local variable
371
+ $this->page_content = ob_get_contents();
372
+ ob_end_clean();
373
+
374
+ // Replace page content - make sure it happens at (almost) the very end of
375
+ // page content filters (some themes are overly ambitious here)
376
+ add_filter( 'the_content', array( &$this, 'append_content' ), PHP_INT_MAX - 1 );
377
+ }
378
  }
379
  }
380
 
app/controller/class-ai1ec-calendar-controller.php CHANGED
@@ -225,7 +225,7 @@ class Ai1ec_Calendar_Controller {
225
  $pagination_links = $ai1ec_calendar_helper->get_month_pagination_links( $month_offset );
226
 
227
  $view_args = array(
228
- 'title' => gmstrftime( '%B %Y', $timestamp ),
229
  'weekdays' => $ai1ec_calendar_helper->get_weekdays(),
230
  'cell_array' => $cell_array,
231
  'pagination_links' => $pagination_links,
@@ -277,7 +277,7 @@ class Ai1ec_Calendar_Controller {
277
 
278
  // Incorporate offset into date
279
  $args = array(
280
- 'title' => __( 'Agenda' ),
281
  'dates' => $dates,
282
  'page_offset' => $page_offset,
283
  'pagination_links' => $pagination_links,
225
  $pagination_links = $ai1ec_calendar_helper->get_month_pagination_links( $month_offset );
226
 
227
  $view_args = array(
228
+ 'title' => date_i18n( 'F Y', $timestamp ),
229
  'weekdays' => $ai1ec_calendar_helper->get_weekdays(),
230
  'cell_array' => $cell_array,
231
  'pagination_links' => $pagination_links,
277
 
278
  // Incorporate offset into date
279
  $args = array(
280
+ 'title' => __( 'Agenda', AI1EC_PLUGIN_NAME ),
281
  'dates' => $dates,
282
  'page_offset' => $page_offset,
283
  'pagination_links' => $pagination_links,
app/controller/class-ai1ec-events-controller.php CHANGED
@@ -683,7 +683,7 @@ class Ai1ec_Events_Controller {
683
  **/
684
  function get_map_view( &$event )
685
  {
686
- global $ai1ec_view_helper, $ai1ec_events_helper;
687
 
688
  if( ! $event->show_map )
689
  return '';
@@ -691,6 +691,7 @@ class Ai1ec_Events_Controller {
691
  $args = array(
692
  'address' => $event->address,
693
  'gmap_url_link' => $ai1ec_events_helper->get_gmap_url( $event, false ),
 
694
  );
695
  return $ai1ec_view_helper->get_view( 'event-map.php', $args );
696
  }
683
  **/
684
  function get_map_view( &$event )
685
  {
686
+ global $ai1ec_view_helper, $ai1ec_events_helper, $ai1ec_settings;
687
 
688
  if( ! $event->show_map )
689
  return '';
691
  $args = array(
692
  'address' => $event->address,
693
  'gmap_url_link' => $ai1ec_events_helper->get_gmap_url( $event, false ),
694
+ 'hide_maps_until_clicked' => $ai1ec_settings->hide_maps_until_clicked
695
  );
696
  return $ai1ec_view_helper->get_view( 'event-map.php', $args );
697
  }
app/helper/class-ai1ec-calendar-helper.php CHANGED
@@ -261,7 +261,7 @@ class Ai1ec_Calendar_Helper {
261
  * ['next'] true if more next events
262
  **/
263
  function get_events_relative_to( $time, $limit = 0, $page_offset = 0, $post_status = 'publish' ) {
264
- global $wpdb, $ai1ec_events_helper;
265
 
266
  // Figure out what the beginning of the day is to properly query all-day
267
  // events; then convert to GMT time
@@ -272,12 +272,49 @@ class Ai1ec_Calendar_Helper {
272
 
273
  // Query arguments
274
  $args = array( $time );
275
- if( $post_status != null ) $args[] = $post_status;
276
 
277
  if( $page_offset >= 0 )
278
  $first_record = $page_offset * $limit;
279
  else
280
  $first_record = ( -$page_offset - 1 ) * $limit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
281
 
282
  $query = $wpdb->prepare(
283
  "SELECT SQL_CALC_FOUND_ROWS p.*, e.post_id, i.id AS instance_id, " .
@@ -297,7 +334,7 @@ class Ai1ec_Calendar_Helper {
297
  ( $page_offset >= 0 ? "i.end >= FROM_UNIXTIME( %d ) "
298
  : "i.start < FROM_UNIXTIME( %d ) "
299
  ) .
300
- ( $post_status == null ? '' : "AND post_status = %s " ) .
301
  // Reverse order when viewing negative pages, to get correct set of
302
  // records. Then reverse results later to order them properly.
303
  "ORDER BY i.start " . ( $page_offset >= 0 ? 'ASC' : 'DESC' ) .
@@ -483,7 +520,7 @@ class Ai1ec_Calendar_Helper {
483
 
484
  $weekdays = array();
485
  for( $i = 0; $i < 7; $i++ ) {
486
- $weekdays[] = strftime( '%a', $time );
487
  $time += 60 * 60 * 24; // Add a day
488
  }
489
  }
@@ -521,12 +558,12 @@ class Ai1ec_Calendar_Helper {
521
  );
522
  $links[] = array(
523
  'id' => 'ai1ec-prev-month',
524
- 'text' => '‹ ' . gmstrftime( '%B', gmmktime( 0, 0, 0, $bits['mon'] - 1, 1, $bits['year'] ) ),
525
  'href' => '#action=ai1ec_month&ai1ec_month_offset=' . ( $cur_offset - 1 ),
526
  );
527
  $links[] = array(
528
  'id' => 'ai1ec-next-month',
529
- 'text' => gmstrftime( '%B', gmmktime( 0, 0, 0, $bits['mon'] + 1, 1, $bits['year'] ) ) . ' ›',
530
  'href' => '#action=ai1ec_month&ai1ec_month_offset=' . ( $cur_offset + 1 ),
531
  );
532
  $links[] = array(
261
  * ['next'] true if more next events
262
  **/
263
  function get_events_relative_to( $time, $limit = 0, $page_offset = 0, $post_status = 'publish' ) {
264
+ global $wpdb, $ai1ec_events_helper, $current_user;
265
 
266
  // Figure out what the beginning of the day is to properly query all-day
267
  // events; then convert to GMT time
272
 
273
  // Query arguments
274
  $args = array( $time );
 
275
 
276
  if( $page_offset >= 0 )
277
  $first_record = $page_offset * $limit;
278
  else
279
  $first_record = ( -$page_offset - 1 ) * $limit;
280
+
281
+ // administrators and editors can see private posts
282
+ if( current_user_can( 'administrator' ) || current_user_can( 'editor' ) ) {
283
+ $post_status = "AND ( post_status = %s OR post_status = %s ) ";
284
+ $args[] = 'publish';
285
+ $args[] = 'private';
286
+ }
287
+ else if( is_user_logged_in() ) {
288
+ // get user info
289
+ get_currentuserinfo();
290
+
291
+ /**
292
+ * include post_status = published
293
+ * or
294
+ * post_status = private and author = logged in user
295
+ */
296
+ $post_status = "AND " .
297
+ "( " .
298
+ "post_status = %s " .
299
+
300
+ "OR " .
301
+
302
+ "( " .
303
+ "post_status = %s " .
304
+
305
+ "AND " .
306
+
307
+ "post_author = %d " .
308
+ ") " .
309
+ ") ";
310
+
311
+ $args[] = 'publish';
312
+ $args[] = 'private';
313
+ $args[] = $current_user->ID;
314
+ } else {
315
+ $post_status = "AND post_status = %s ";
316
+ $args[] = 'publish';
317
+ }
318
 
319
  $query = $wpdb->prepare(
320
  "SELECT SQL_CALC_FOUND_ROWS p.*, e.post_id, i.id AS instance_id, " .
334
  ( $page_offset >= 0 ? "i.end >= FROM_UNIXTIME( %d ) "
335
  : "i.start < FROM_UNIXTIME( %d ) "
336
  ) .
337
+ $post_status .
338
  // Reverse order when viewing negative pages, to get correct set of
339
  // records. Then reverse results later to order them properly.
340
  "ORDER BY i.start " . ( $page_offset >= 0 ? 'ASC' : 'DESC' ) .
520
 
521
  $weekdays = array();
522
  for( $i = 0; $i < 7; $i++ ) {
523
+ $weekdays[] = date_i18n( 'D', $time );
524
  $time += 60 * 60 * 24; // Add a day
525
  }
526
  }
558
  );
559
  $links[] = array(
560
  'id' => 'ai1ec-prev-month',
561
+ 'text' => '‹ ' . date_i18n( 'M', gmmktime( 0, 0, 0, $bits['mon'] - 1, 1, $bits['year'] ) ),
562
  'href' => '#action=ai1ec_month&ai1ec_month_offset=' . ( $cur_offset - 1 ),
563
  );
564
  $links[] = array(
565
  'id' => 'ai1ec-next-month',
566
+ 'text' => date_i18n( 'M', gmmktime( 0, 0, 0, $bits['mon'] + 1, 1, $bits['year'] ) ) . ' ›',
567
  'href' => '#action=ai1ec_month&ai1ec_month_offset=' . ( $cur_offset + 1 ),
568
  );
569
  $links[] = array(
app/helper/class-ai1ec-events-helper.php CHANGED
@@ -305,27 +305,32 @@ class Ai1ec_Events_Helper {
305
  * equivalents
306
  */
307
  function get_repeat_patterns() {
308
- static $options = array(
309
- ' ' => 'No repeat',
310
- 'DAILY' => 'Daily',
311
- 'MO' => 'Mondays',
312
- 'TU' => 'Tuesdays',
313
- 'WE' => 'Wednesdays',
314
- 'TH' => 'Thursdays',
315
- 'FR' => 'Fridays',
316
- 'SA' => 'Saturdays',
317
- 'SU' => 'Sundays',
318
- 'TU+TH' => 'Tuesdays & Thursdays',
319
- 'MO+WE+FR' => 'Mondays, Wednesdays & Fridays',
320
- 'WEEKDAYS' => 'Weekdays',
321
- 'WEEKENDS' => 'Weekends',
322
- 'WEEKLY' => 'Weekly',
323
- 'MONTHLY' => 'Monthly',
324
- 'YEARLY' => 'Yearly',
325
- );
326
-
327
- return $options;
328
- }
 
 
 
 
 
329
 
330
  /**
331
  * Generates and returns repeat dropdown
@@ -647,12 +652,10 @@ class Ai1ec_Events_Helper {
647
  * @return string
648
  **/
649
  function get_short_time( $timestamp, $convert_from_gmt = true ) {
 
650
  if( $convert_from_gmt )
651
  $timestamp = $this->gmt_to_local( $timestamp );
652
- $ampm = gmstrftime( '%p', $timestamp );
653
- $ampm = $ampm[0];
654
- $ampm = strtolower( $ampm );
655
- return gmstrftime( '%l:%M', $timestamp ) . $ampm;
656
  }
657
 
658
  /**
@@ -669,7 +672,7 @@ class Ai1ec_Events_Helper {
669
  function get_short_date( $timestamp, $convert_from_gmt = true ) {
670
  if( $convert_from_gmt )
671
  $timestamp = $this->gmt_to_local( $timestamp );
672
- return gmstrftime( '%b %e', $timestamp );
673
  }
674
 
675
  /**
@@ -683,11 +686,10 @@ class Ai1ec_Events_Helper {
683
  * @return string
684
  **/
685
  function get_medium_time( $timestamp, $convert_from_gmt = true ) {
 
686
  if( $convert_from_gmt )
687
  $timestamp = $this->gmt_to_local( $timestamp );
688
- $ampm = gmstrftime( '%p', $timestamp );
689
- $ampm = strtolower( $ampm );
690
- return gmstrftime( '%l:%M', $timestamp ) . $ampm;
691
  }
692
 
693
  /**
@@ -702,11 +704,11 @@ class Ai1ec_Events_Helper {
702
  * @return string
703
  **/
704
  function get_long_time( $timestamp, $convert_from_gmt = true ) {
 
 
705
  if( $convert_from_gmt )
706
  $timestamp = $this->gmt_to_local( $timestamp );
707
- $ampm = gmstrftime( '%p', $timestamp );
708
- $ampm = strtolower( $ampm );
709
- return gmstrftime( '%a, %B %e @ %l:%M', $timestamp ) . $ampm;
710
  }
711
 
712
  /**
@@ -721,9 +723,10 @@ class Ai1ec_Events_Helper {
721
  * @return string
722
  **/
723
  function get_long_date( $timestamp, $convert_from_gmt = true ) {
 
724
  if( $convert_from_gmt )
725
  $timestamp = $this->gmt_to_local( $timestamp );
726
- return gmstrftime( '%a, %B %e', $timestamp );
727
  }
728
 
729
  /**
@@ -961,16 +964,16 @@ class Ai1ec_Events_Helper {
961
  ob_start();
962
 
963
  $options = array(
964
- 0 => 'Never',
965
- 1 => 'After',
966
- 2 => 'On date'
967
  );
968
 
969
  ?>
970
  <select name="ai1ec_end" id="ai1ec_end">
971
  <?php foreach( $options as $key => $val ): ?>
972
  <option value="<?php echo $key ?>" <?php if( $key === $selected ) echo 'selected="selected"' ?>>
973
- <?php _e( $val, AI1EC_PLUGIN_NAME ) ?>
974
  </option>
975
  <?php endforeach ?>
976
  </select>
305
  * equivalents
306
  */
307
  function get_repeat_patterns() {
308
+ // Calling functions when creating an array does not seem to work when
309
+ // the assigned to variable is static. This is a workaround.
310
+ static $options;
311
+ if( !isset( $options ) ) {
312
+ $temp = array(
313
+ ' ' => __( 'No repeat', AI1EC_PLUGIN_NAME ),
314
+ 'DAILY' => __( 'Daily', AI1EC_PLUGIN_NAME ),
315
+ 'MO' => __( 'Mondays', AI1EC_PLUGIN_NAME ),
316
+ 'TU' => __( 'Tuesdays', AI1EC_PLUGIN_NAME ),
317
+ 'WE' => __( 'Wednesdays', AI1EC_PLUGIN_NAME ),
318
+ 'TH' => __( 'Thursdays', AI1EC_PLUGIN_NAME ),
319
+ 'FR' => __( 'Fridays', AI1EC_PLUGIN_NAME ),
320
+ 'SA' => __( 'Saturdays', AI1EC_PLUGIN_NAME ),
321
+ 'SU' => __( 'Sundays', AI1EC_PLUGIN_NAME ),
322
+ 'TU+TH' => __( 'Tuesdays & Thursdays', AI1EC_PLUGIN_NAME ),
323
+ 'MO+WE+FR' => __( 'Mondays, Wednesdays & Fridays', AI1EC_PLUGIN_NAME ),
324
+ 'WEEKDAYS' => __( 'Weekdays', AI1EC_PLUGIN_NAME ),
325
+ 'WEEKENDS' => __( 'Weekends', AI1EC_PLUGIN_NAME ),
326
+ 'WEEKLY' => __( 'Weekly', AI1EC_PLUGIN_NAME ),
327
+ 'MONTHLY' => __( 'Monthly', AI1EC_PLUGIN_NAME ),
328
+ 'YEARLY' => __( 'Yearly', AI1EC_PLUGIN_NAME )
329
+ );
330
+ $options = $temp;
331
+ }
332
+ return $options;
333
+ }
334
 
335
  /**
336
  * Generates and returns repeat dropdown
652
  * @return string
653
  **/
654
  function get_short_time( $timestamp, $convert_from_gmt = true ) {
655
+ $time_format = get_option( 'time_format', 'g:ia' );
656
  if( $convert_from_gmt )
657
  $timestamp = $this->gmt_to_local( $timestamp );
658
+ return date_i18n( $time_format, $timestamp, true );
 
 
 
659
  }
660
 
661
  /**
672
  function get_short_date( $timestamp, $convert_from_gmt = true ) {
673
  if( $convert_from_gmt )
674
  $timestamp = $this->gmt_to_local( $timestamp );
675
+ return date_i18n( 'M j', $timestamp );
676
  }
677
 
678
  /**
686
  * @return string
687
  **/
688
  function get_medium_time( $timestamp, $convert_from_gmt = true ) {
689
+ $time_format = get_option( 'time_format', 'g:ia' );
690
  if( $convert_from_gmt )
691
  $timestamp = $this->gmt_to_local( $timestamp );
692
+ return date_i18n( $time_format, $timestamp, true );
 
 
693
  }
694
 
695
  /**
704
  * @return string
705
  **/
706
  function get_long_time( $timestamp, $convert_from_gmt = true ) {
707
+ $date_format = get_option( 'date_format', 'D, F j' );
708
+ $time_format = get_option( 'time_format', 'g:i' );
709
  if( $convert_from_gmt )
710
  $timestamp = $this->gmt_to_local( $timestamp );
711
+ return date_i18n( $date_format, $timestamp ) . ' @ ' . date_i18n( $time_format, $timestamp );
 
 
712
  }
713
 
714
  /**
723
  * @return string
724
  **/
725
  function get_long_date( $timestamp, $convert_from_gmt = true ) {
726
+ $date_format = get_option( 'date_format', 'D, F j' );
727
  if( $convert_from_gmt )
728
  $timestamp = $this->gmt_to_local( $timestamp );
729
+ return date_i18n( $date_format, $timestamp );
730
  }
731
 
732
  /**
964
  ob_start();
965
 
966
  $options = array(
967
+ 0 => __( 'Never', AI1EC_PLUGIN_NAME ),
968
+ 1 => __( 'After', AI1EC_PLUGIN_NAME ),
969
+ 2 => __( 'On date', AI1EC_PLUGIN_NAME )
970
  );
971
 
972
  ?>
973
  <select name="ai1ec_end" id="ai1ec_end">
974
  <?php foreach( $options as $key => $val ): ?>
975
  <option value="<?php echo $key ?>" <?php if( $key === $selected ) echo 'selected="selected"' ?>>
976
+ <?php echo $val ?>
977
  </option>
978
  <?php endforeach ?>
979
  </select>
app/helper/class-ai1ec-settings-helper.php CHANGED
@@ -82,7 +82,7 @@ class Ai1ec_Settings_Helper {
82
  class="wafp-dropdown wafp-pages-dropdown">
83
  <?php if( ! empty( $auto_page ) ) { ?>
84
  <option value="__auto_page:<?php echo $auto_page; ?>">
85
- <?php _e( '- Auto-Create New Page -', THE_PLUGIN_NAME ); ?>
86
  </option>
87
  <?php }
88
  foreach( $pages as $page ) {
@@ -267,6 +267,7 @@ class Ai1ec_Settings_Helper {
267
  . '/>';
268
  $exclude_from_search = $ai1ec_settings->exclude_from_search ? 'checked=checked' : '';
269
  $show_publish_button = $ai1ec_settings->show_publish_button ? 'checked=checked' : '';
 
270
  $turn_off_subscription_buttons = $ai1ec_settings->turn_off_subscription_buttons ? 'checked=checked' : '';
271
  $show_create_event_button = $ai1ec_settings->show_create_event_button ? 'checked=checked' : '';
272
  $inject_categories = $ai1ec_settings->inject_categories ? 'checked=checked' : '';
@@ -281,6 +282,7 @@ class Ai1ec_Settings_Helper {
281
  'agenda_events_per_page' => $agenda_events_per_page,
282
  'exclude_from_search' => $exclude_from_search,
283
  'show_publish_button' => $show_publish_button,
 
284
  'turn_off_subscription_buttons' => $turn_off_subscription_buttons,
285
  'show_create_event_button' => $show_create_event_button,
286
  'inject_categories' => $inject_categories,
82
  class="wafp-dropdown wafp-pages-dropdown">
83
  <?php if( ! empty( $auto_page ) ) { ?>
84
  <option value="__auto_page:<?php echo $auto_page; ?>">
85
+ <?php _e( '- Auto-Create New Page -', AI1EC_PLUGIN_NAME ); ?>
86
  </option>
87
  <?php }
88
  foreach( $pages as $page ) {
267
  . '/>';
268
  $exclude_from_search = $ai1ec_settings->exclude_from_search ? 'checked=checked' : '';
269
  $show_publish_button = $ai1ec_settings->show_publish_button ? 'checked=checked' : '';
270
+ $hide_maps_until_clicked = $ai1ec_settings->hide_maps_until_clicked ? 'checked=checked' : '';
271
  $turn_off_subscription_buttons = $ai1ec_settings->turn_off_subscription_buttons ? 'checked=checked' : '';
272
  $show_create_event_button = $ai1ec_settings->show_create_event_button ? 'checked=checked' : '';
273
  $inject_categories = $ai1ec_settings->inject_categories ? 'checked=checked' : '';
282
  'agenda_events_per_page' => $agenda_events_per_page,
283
  'exclude_from_search' => $exclude_from_search,
284
  'show_publish_button' => $show_publish_button,
285
+ 'hide_maps_until_clicked' => $hide_maps_until_clicked,
286
  'turn_off_subscription_buttons' => $turn_off_subscription_buttons,
287
  'show_create_event_button' => $show_create_event_button,
288
  'inject_categories' => $inject_categories,
app/model/class-ai1ec-event.php CHANGED
@@ -298,7 +298,8 @@ class Ai1ec_Event {
298
  "LEFT JOIN $wpdb->term_relationships tr ON post_id = tr.object_id " .
299
  "LEFT JOIN $wpdb->term_taxonomy ttc ON tr.term_taxonomy_id = ttc.term_taxonomy_id AND ttc.taxonomy = 'events_categories' " .
300
  "LEFT JOIN $wpdb->term_taxonomy ttt ON tr.term_taxonomy_id = ttt.term_taxonomy_id AND ttt.taxonomy = 'events_tags' " .
301
- "WHERE post_id = %d",
 
302
  $data );
303
  $event = $wpdb->get_row( $query );
304
 
298
  "LEFT JOIN $wpdb->term_relationships tr ON post_id = tr.object_id " .
299
  "LEFT JOIN $wpdb->term_taxonomy ttc ON tr.term_taxonomy_id = ttc.term_taxonomy_id AND ttc.taxonomy = 'events_categories' " .
300
  "LEFT JOIN $wpdb->term_taxonomy ttt ON tr.term_taxonomy_id = ttt.term_taxonomy_id AND ttt.taxonomy = 'events_tags' " .
301
+ "WHERE post_id = %d " .
302
+ "GROUP BY post_id",
303
  $data );
304
  $event = $wpdb->get_row( $query );
305
 
app/model/class-ai1ec-settings.php CHANGED
@@ -111,6 +111,17 @@ class Ai1ec_Settings {
111
  * @var bool
112
  **/
113
  var $show_publish_button;
 
 
 
 
 
 
 
 
 
 
 
114
 
115
  /**
116
  * show_create_event_button class variable
@@ -229,6 +240,7 @@ class Ai1ec_Settings {
229
  'facebook_credentials' => null,
230
  'user_role_can_create_event' => null,
231
  'show_publish_button' => false,
 
232
  'exclude_from_search' => false,
233
  'show_create_event_button' => false,
234
  'turn_off_subscription_buttons' => false,
@@ -264,6 +276,7 @@ class Ai1ec_Settings {
264
  $this->agenda_events_per_page = 1;
265
  $this->cron_freq = $params['cron_freq'];
266
  $this->show_publish_button = $params['show_publish_button'];
 
267
  $this->exclude_from_search = $params['exclude_from_search'];
268
  $this->show_create_event_button = $params['show_create_event_button'];
269
  $this->turn_off_subscription_buttons = $params['turn_off_subscription_buttons'];
111
  * @var bool
112
  **/
113
  var $show_publish_button;
114
+
115
+ /**
116
+ * hide_maps_until_clicked class variable
117
+ *
118
+ * When this setting is on, instead of showing the Google Map,
119
+ * show a dotted-line box containing the text "Click to view map",
120
+ * and when clicked, this box is replaced by the Google Map.
121
+ *
122
+ * @var bool
123
+ **/
124
+ var $hide_maps_until_clicked;
125
 
126
  /**
127
  * show_create_event_button class variable
240
  'facebook_credentials' => null,
241
  'user_role_can_create_event' => null,
242
  'show_publish_button' => false,
243
+ 'hide_maps_until_clicked' => false,
244
  'exclude_from_search' => false,
245
  'show_create_event_button' => false,
246
  'turn_off_subscription_buttons' => false,
276
  $this->agenda_events_per_page = 1;
277
  $this->cron_freq = $params['cron_freq'];
278
  $this->show_publish_button = $params['show_publish_button'];
279
+ $this->hide_maps_until_clicked = $params['hide_maps_until_clicked'];
280
  $this->exclude_from_search = $params['exclude_from_search'];
281
  $this->show_create_event_button = $params['show_create_event_button'];
282
  $this->turn_off_subscription_buttons = $params['turn_off_subscription_buttons'];
app/view/agenda-widget.php CHANGED
@@ -8,16 +8,16 @@
8
 
9
  <?php if( ! $dates ): ?>
10
  <p class="ai1ec-no-results">
11
- <?php _e( 'There are no upcoming events.' ) ?>
12
  </p>
13
  <?php else: ?>
14
  <ol>
15
  <?php foreach( $dates as $timestamp => $date_info ): ?>
16
  <li class="ai1ec-date <?php if( $date_info['today'] ) echo 'ai1ec-today' ?>">
17
  <h3 class="ai1ec-date-title">
18
- <div class="ai1ec-month"><?php echo strftime( '%b', $timestamp ) ?></div>
19
- <div class="ai1ec-day"><?php echo strftime( '%e', $timestamp ) ?></div>
20
- <div class="ai1ec-weekday"><?php echo strftime( '%a', $timestamp ) ?></div>
21
  </h3>
22
  <ol class="ai1ec-date-events">
23
  <?php foreach( $date_info['events'] as $category ): ?>
8
 
9
  <?php if( ! $dates ): ?>
10
  <p class="ai1ec-no-results">
11
+ <?php _e( 'There are no upcoming events.', AI1EC_PLUGIN_NAME ) ?>
12
  </p>
13
  <?php else: ?>
14
  <ol>
15
  <?php foreach( $dates as $timestamp => $date_info ): ?>
16
  <li class="ai1ec-date <?php if( $date_info['today'] ) echo 'ai1ec-today' ?>">
17
  <h3 class="ai1ec-date-title">
18
+ <div class="ai1ec-month"><?php echo gmstrftime( '%b', $timestamp ) ?></div>
19
+ <div class="ai1ec-day"><?php echo gmstrftime( '%e', $timestamp ) ?></div>
20
+ <div class="ai1ec-weekday"><?php echo gmstrftime( '%a', $timestamp ) ?></div>
21
  </h3>
22
  <ol class="ai1ec-date-events">
23
  <?php foreach( $date_info['events'] as $category ): ?>
app/view/agenda.php CHANGED
@@ -2,14 +2,14 @@
2
  <span class="ai1ec-title-buttons">
3
  <?php if( $dates ): ?>
4
  <a id="ai1ec-expand-all" class="ai1ec-button">
5
- <?php _e( '+ Expand All', AI1EC_JS_URL ) ?>
6
  </a><a
7
  id="ai1ec-collapse-all" class="ai1ec-button">
8
- <?php _e( '− Collapse All', AI1EC_JS_URL ) ?>
9
  </a
10
  ><?php endif ?><a
11
  id="ai1ec-today" class="ai1ec-load-view ai1ec-button" href="#action=ai1ec_agenda">
12
- <?php _e( 'Today', AI1EC_JS_URL ) ?>
13
  </a>
14
  </span>
15
  <ul class="ai1ec-pagination">
@@ -25,15 +25,15 @@
25
  <ol class="ai1ec-agenda-view">
26
  <?php if( ! $dates ): ?>
27
  <p class="ai1ec-no-results">
28
- <?php _e( 'There are no upcoming events to display at this time.' ) ?>
29
  </p>
30
  <?php else: ?>
31
  <?php foreach( $dates as $timestamp => $date_info ): ?>
32
  <li class="ai1ec-date <?php if( $date_info['today'] ) echo 'ai1ec-today' ?>">
33
  <h3 class="ai1ec-date-title">
34
- <div class="ai1ec-month"><?php echo strftime( '%b', $timestamp ) ?></div>
35
- <div class="ai1ec-day"><?php echo strftime( '%e', $timestamp ) ?></div>
36
- <div class="ai1ec-weekday"><?php echo strftime( '%a', $timestamp ) ?></div>
37
  </h3>
38
  <ol class="ai1ec-date-events">
39
  <?php foreach( $date_info['events'] as $category ): ?>
@@ -54,7 +54,7 @@
54
  <div class="ai1ec-event-title">
55
  <?php echo esc_html( $event->post->post_title ) ?>
56
  <?php if( $event->allday ): ?>
57
- <span class="ai1ec-allday-label"><?php _e( '(all-day)' ) ?></span>
58
  <?php endif ?>
59
  </div>
60
  <div class="ai1ec-event-time">
@@ -72,7 +72,7 @@
72
  <div class="ai1ec-event-overlay">
73
  <a class="ai1ec-read-more ai1ec-button"
74
  href="<?php echo esc_attr( get_permalink( $event->post_id ) ) ?>">
75
- <?php _e( 'Read more »', AI1EP_PLUGIN_NAME ) ?>
76
  </a>
77
  <?php if( $event->categories_html ): ?>
78
  <div class="ai1ec-categories">
@@ -104,7 +104,7 @@
104
  <div class="ai1ec-event-title">
105
  <?php echo esc_html( $event->post->post_title ) ?>
106
  <?php if( $event->allday ): ?>
107
- <span class="ai1ec-allday-label"><?php _e( '(all-day)' ) ?></span>
108
  <?php endif ?>
109
  </div>
110
  </div>
2
  <span class="ai1ec-title-buttons">
3
  <?php if( $dates ): ?>
4
  <a id="ai1ec-expand-all" class="ai1ec-button">
5
+ <?php _e( '+ Expand All', AI1EC_PLUGIN_NAME ) ?>
6
  </a><a
7
  id="ai1ec-collapse-all" class="ai1ec-button">
8
+ <?php _e( '− Collapse All', AI1EC_PLUGIN_NAME ) ?>
9
  </a
10
  ><?php endif ?><a
11
  id="ai1ec-today" class="ai1ec-load-view ai1ec-button" href="#action=ai1ec_agenda">
12
+ <?php _e( 'Today', AI1EC_PLUGIN_NAME ) ?>
13
  </a>
14
  </span>
15
  <ul class="ai1ec-pagination">
25
  <ol class="ai1ec-agenda-view">
26
  <?php if( ! $dates ): ?>
27
  <p class="ai1ec-no-results">
28
+ <?php _e( 'There are no upcoming events to display at this time.', AI1EC_PLUGIN_NAME ) ?>
29
  </p>
30
  <?php else: ?>
31
  <?php foreach( $dates as $timestamp => $date_info ): ?>
32
  <li class="ai1ec-date <?php if( $date_info['today'] ) echo 'ai1ec-today' ?>">
33
  <h3 class="ai1ec-date-title">
34
+ <div class="ai1ec-month"><?php echo date_i18n( 'M', $timestamp ) ?></div>
35
+ <div class="ai1ec-day"><?php echo date_i18n( 'j', $timestamp ) ?></div>
36
+ <div class="ai1ec-weekday"><?php echo date_i18n( 'D', $timestamp ) ?></div>
37
  </h3>
38
  <ol class="ai1ec-date-events">
39
  <?php foreach( $date_info['events'] as $category ): ?>
54
  <div class="ai1ec-event-title">
55
  <?php echo esc_html( $event->post->post_title ) ?>
56
  <?php if( $event->allday ): ?>
57
+ <span class="ai1ec-allday-label"><?php _e( '(all-day)', AI1EC_PLUGIN_NAME ) ?></span>
58
  <?php endif ?>
59
  </div>
60
  <div class="ai1ec-event-time">
72
  <div class="ai1ec-event-overlay">
73
  <a class="ai1ec-read-more ai1ec-button"
74
  href="<?php echo esc_attr( get_permalink( $event->post_id ) ) ?>">
75
+ <?php _e( 'Read more »', AI1EC_PLUGIN_NAME ) ?>
76
  </a>
77
  <?php if( $event->categories_html ): ?>
78
  <div class="ai1ec-categories">
104
  <div class="ai1ec-event-title">
105
  <?php echo esc_html( $event->post->post_title ) ?>
106
  <?php if( $event->allday ): ?>
107
+ <span class="ai1ec-allday-label"><?php _e( '(all-day)', AI1EC_PLUGIN_NAME ) ?></span>
108
  <?php endif ?>
109
  </div>
110
  </div>
app/view/box_event_contact.php CHANGED
@@ -1,10 +1,10 @@
1
- <h4 class="ai1ec-section-title"><?php _e( 'Organizer contact info', 'ai1ec' ); ?></h4>
2
  <table class="ai1ec-form">
3
  <tbody>
4
  <tr>
5
  <td class="ai1ec-first">
6
  <label for="ai1ec_contact_name">
7
- <?php _e( 'Contact name:', 'ai1ec' ); ?>
8
  </label>
9
  </td>
10
  <td>
@@ -14,7 +14,7 @@
14
  <tr>
15
  <td>
16
  <label for="ai1ec_contact_phone">
17
- <?php _e( 'Phone:', 'ai1ec' ); ?>
18
  </label>
19
  </td>
20
  <td>
@@ -24,7 +24,7 @@
24
  <tr>
25
  <td>
26
  <label for="ai1ec_contact_email">
27
- <?php _e( 'E-mail:', 'ai1ec' ); ?>
28
  </label>
29
  </td>
30
  <td>
1
+ <h4 class="ai1ec-section-title"><?php _e( 'Organizer contact info', AI1EC_PLUGIN_NAME ); ?></h4>
2
  <table class="ai1ec-form">
3
  <tbody>
4
  <tr>
5
  <td class="ai1ec-first">
6
  <label for="ai1ec_contact_name">
7
+ <?php _e( 'Contact name:', AI1EC_PLUGIN_NAME ); ?>
8
  </label>
9
  </td>
10
  <td>
14
  <tr>
15
  <td>
16
  <label for="ai1ec_contact_phone">
17
+ <?php _e( 'Phone:', AI1EC_PLUGIN_NAME ); ?>
18
  </label>
19
  </td>
20
  <td>
24
  <tr>
25
  <td>
26
  <label for="ai1ec_contact_email">
27
+ <?php _e( 'E-mail:', AI1EC_PLUGIN_NAME ); ?>
28
  </label>
29
  </td>
30
  <td>
app/view/box_event_cost.php CHANGED
@@ -1,10 +1,10 @@
1
- <h4 class="ai1ec-section-title"><?php _e( 'Event cost', 'ai1ec' ); ?></h4>
2
  <table class="ai1ec-form">
3
  <tbody>
4
  <tr>
5
  <td class="ai1ec-first">
6
  <label for="ai1ec_cost">
7
- <?php _e( 'Cost', 'ai1ec' ); ?>:
8
  </label>
9
  </td>
10
  <td>
1
+ <h4 class="ai1ec-section-title"><?php _e( 'Event cost', AI1EC_PLUGIN_NAME ); ?></h4>
2
  <table class="ai1ec-form">
3
  <tbody>
4
  <tr>
5
  <td class="ai1ec-first">
6
  <label for="ai1ec_cost">
7
+ <?php _e( 'Cost', AI1EC_PLUGIN_NAME ); ?>:
8
  </label>
9
  </td>
10
  <td>
app/view/box_event_location.php CHANGED
@@ -1,10 +1,10 @@
1
- <h4 class="ai1ec-section-title"><?php _e( 'Event location details', 'ai1ec' ); ?></h4>
2
  <table class="ai1ec-form ai1ec-location-form">
3
  <tbody>
4
  <tr>
5
  <td class="ai1ec-first">
6
  <label for="ai1ec_venue">
7
- <?php _e( 'Venue name:', 'ai1ec' ); ?>
8
  </label>
9
  </td>
10
  <td>
@@ -14,7 +14,7 @@
14
  <tr>
15
  <td>
16
  <label for="ai1ec_address">
17
- <?php _e( 'Address:', 'ai1ec' ); ?>
18
  </label>
19
  </td>
20
  <td>
@@ -24,7 +24,7 @@
24
  <tr>
25
  <td>
26
  <label for="ai1ec_google_map">
27
- <?php _e( 'Show Google Map:', 'ai1ec' ); ?>
28
  </label>
29
  </td>
30
  <td>
1
+ <h4 class="ai1ec-section-title"><?php _e( 'Event location details', AI1EC_PLUGIN_NAME ); ?></h4>
2
  <table class="ai1ec-form ai1ec-location-form">
3
  <tbody>
4
  <tr>
5
  <td class="ai1ec-first">
6
  <label for="ai1ec_venue">
7
+ <?php _e( 'Venue name:', AI1EC_PLUGIN_NAME ); ?>
8
  </label>
9
  </td>
10
  <td>
14
  <tr>
15
  <td>
16
  <label for="ai1ec_address">
17
+ <?php _e( 'Address:', AI1EC_PLUGIN_NAME ); ?>
18
  </label>
19
  </td>
20
  <td>
24
  <tr>
25
  <td>
26
  <label for="ai1ec_google_map">
27
+ <?php _e( 'Show Google Map:', AI1EC_PLUGIN_NAME ); ?>
28
  </label>
29
  </td>
30
  <td>
app/view/box_general_settings.php CHANGED
@@ -38,6 +38,12 @@
38
  </label>
39
  <br class="clear" />
40
 
 
 
 
 
 
 
41
  <label for="inject_categories">
42
  <input class="checkbox" name="inject_categories" id="inject_categories" type="checkbox" value="1" <?php echo $inject_categories ?> />
43
  <?php _e( 'Include <strong>event categories</strong> in post category lists', AI1EC_PLUGIN_NAME ) ?>
38
  </label>
39
  <br class="clear" />
40
 
41
+ <label for="hide_maps_until_clicked">
42
+ <input class="checkbox" name="hide_maps_until_clicked" id="hide_maps_until_clicked" type="checkbox" value="1" <?php echo $hide_maps_until_clicked ?> />
43
+ <?php _e( 'Hide <strong>Google Maps</strong> until clicked', AI1EC_PLUGIN_NAME ) ?>
44
+ </label>
45
+ <br class="clear" />
46
+
47
  <label for="inject_categories">
48
  <input class="checkbox" name="inject_categories" id="inject_categories" type="checkbox" value="1" <?php echo $inject_categories ?> />
49
  <?php _e( 'Include <strong>event categories</strong> in post category lists', AI1EC_PLUGIN_NAME ) ?>
app/view/box_time_and_date.php CHANGED
@@ -1,11 +1,11 @@
1
  <?php wp_nonce_field( 'ai1ec', AI1EC_POST_TYPE ); ?>
2
- <h4 class="ai1ec-section-title"><?php _e( 'Event date and time'); ?></h4>
3
  <table class="ai1ec-form">
4
  <tbody>
5
  <tr>
6
  <td class="ai1ec-first">
7
  <label for="ai1ec_all_day_event">
8
- <?php _e( 'All-day event', 'ai1ec' ); ?>?
9
  </label>
10
  </td>
11
  <td>
@@ -15,7 +15,7 @@
15
  <tr>
16
  <td>
17
  <label for="ai1ec_start-date-input">
18
- <?php _e( 'Start date / time', 'ai1ec' ); ?>:
19
  </label>
20
  </td>
21
  <td>
@@ -28,7 +28,7 @@
28
  <tr>
29
  <td>
30
  <label for="ai1ec_end-date-input">
31
- <?php _e( 'End date / time', 'ai1ec' ) ?>:
32
  </label>
33
  </td>
34
  <td>
@@ -41,7 +41,7 @@
41
  <tr>
42
  <td>
43
  <label for="ai1ec_repeat">
44
- <?php _e( 'Repeat', 'ai1ec' ) ?>:
45
  </label>
46
  </td>
47
  <td>
@@ -51,7 +51,7 @@
51
  <tr id="ai1ec_end_holder" <?php if( ! $repeating_event ) echo 'class="ai1ec_hidden"' ?>>
52
  <td>
53
  <label for="ai1ec_end">
54
- <?php _e( 'End', 'ai1ec' ) ?>:
55
  </label>
56
  </td>
57
  <td>
@@ -61,7 +61,7 @@
61
  <tr id="ai1ec_count_holder" <?php if( $ending != 1 ) echo 'class="ai1ec_hidden"' ?>>
62
  <td>
63
  <label for="ai1ec_count">
64
- <?php _e( 'Ending after', 'ai1ec' ) ?>:
65
  </label>
66
  </td>
67
  <td>
@@ -71,7 +71,7 @@
71
  <tr id="ai1ec_until_holder" <?php if( $ending != 2 ) echo 'class="ai1ec_hidden"' ?>>
72
  <td>
73
  <label for="ai1ec_until-date-input">
74
- <?php _e( 'On date', 'ai1ec' ) ?>:
75
  </label>
76
  </td>
77
  <td>
1
  <?php wp_nonce_field( 'ai1ec', AI1EC_POST_TYPE ); ?>
2
+ <h4 class="ai1ec-section-title"><?php _e( 'Event date and time', AI1EC_PLUGIN_NAME ); ?></h4>
3
  <table class="ai1ec-form">
4
  <tbody>
5
  <tr>
6
  <td class="ai1ec-first">
7
  <label for="ai1ec_all_day_event">
8
+ <?php _e( 'All-day event', AI1EC_PLUGIN_NAME ); ?>?
9
  </label>
10
  </td>
11
  <td>
15
  <tr>
16
  <td>
17
  <label for="ai1ec_start-date-input">
18
+ <?php _e( 'Start date / time', AI1EC_PLUGIN_NAME ); ?>:
19
  </label>
20
  </td>
21
  <td>
28
  <tr>
29
  <td>
30
  <label for="ai1ec_end-date-input">
31
+ <?php _e( 'End date / time', AI1EC_PLUGIN_NAME ) ?>:
32
  </label>
33
  </td>
34
  <td>
41
  <tr>
42
  <td>
43
  <label for="ai1ec_repeat">
44
+ <?php _e( 'Repeat', AI1EC_PLUGIN_NAME ) ?>:
45
  </label>
46
  </td>
47
  <td>
51
  <tr id="ai1ec_end_holder" <?php if( ! $repeating_event ) echo 'class="ai1ec_hidden"' ?>>
52
  <td>
53
  <label for="ai1ec_end">
54
+ <?php _e( 'End', AI1EC_PLUGIN_NAME ) ?>:
55
  </label>
56
  </td>
57
  <td>
61
  <tr id="ai1ec_count_holder" <?php if( $ending != 1 ) echo 'class="ai1ec_hidden"' ?>>
62
  <td>
63
  <label for="ai1ec_count">
64
+ <?php _e( 'Ending after', AI1EC_PLUGIN_NAME ) ?>:
65
  </label>
66
  </td>
67
  <td>
71
  <tr id="ai1ec_until_holder" <?php if( $ending != 2 ) echo 'class="ai1ec_hidden"' ?>>
72
  <td>
73
  <label for="ai1ec_until-date-input">
74
+ <?php _e( 'On date', AI1EC_PLUGIN_NAME ) ?>:
75
  </label>
76
  </td>
77
  <td>
app/view/event-map.php CHANGED
@@ -1,4 +1,7 @@
1
- <div class="ai1ec-gmap-container">
 
 
 
2
  <div id="ai1ec-gmap-canvas"></div>
3
  <input type="hidden" id="ai1ec-gmap-address" value="<?php echo esc_attr( $address ) ?>" />
4
  <a class="ai1ec-gmap-link ai1ec-button"
1
+ <?php if( $hide_maps_until_clicked ) : ?>
2
+ <div class="ai1ec-gmap-placeholder"><strong><?php _e( 'Click to view map', AI1EC_PLUGIN_NAME ) ?></strong></div>
3
+ <?php endif; ?>
4
+ <div class="ai1ec-gmap-container<?php echo $hide_maps_until_clicked ? ' ai1ec-gmap-container-hidden' : '' ?>">
5
  <div id="ai1ec-gmap-canvas"></div>
6
  <input type="hidden" id="ai1ec-gmap-address" value="<?php echo esc_attr( $address ) ?>" />
7
  <a class="ai1ec-gmap-link ai1ec-button"
app/view/month.php CHANGED
@@ -1,7 +1,7 @@
1
  <h2 class="ai1ec-calendar-title"><?php echo esc_html( $title ) ?></h2>
2
  <span class="ai1ec-title-buttons">
3
  <a id="ai1ec-today" class="ai1ec-load-view ai1ec-button" href="#action=ai1ec_month">
4
- <?php _e( 'Today', AI1EC_JS_URL ) ?>
5
  </a>
6
  </span>
7
  <ul class="ai1ec-pagination">
1
  <h2 class="ai1ec-calendar-title"><?php echo esc_html( $title ) ?></h2>
2
  <span class="ai1ec-title-buttons">
3
  <a id="ai1ec-today" class="ai1ec-load-view ai1ec-button" href="#action=ai1ec_month">
4
+ <?php _e( 'Today', AI1EC_PLUGIN_NAME ) ?>
5
  </a>
6
  </span>
7
  <ul class="ai1ec-pagination">
css/calendar.css CHANGED
@@ -212,8 +212,8 @@ table.ai1ec-month-view {
212
  min-height: 5em;
213
  }
214
  .ai1ec-month-view .ai1ec-today {
215
- background: #ffd;
216
- background: rgba(255,255,128,0.3);
217
  }
218
  .ai1ec-month-view .ai1ec-date {
219
  text-align: right;
@@ -633,3 +633,7 @@ table.ai1ec-month-view {
633
  .ai1ec-subscribe-filtered {
634
  display: none;
635
  }
 
 
 
 
212
  min-height: 5em;
213
  }
214
  .ai1ec-month-view .ai1ec-today {
215
+ background: #ffd !important;
216
+ background: rgba(255,255,128,0.3) !important;
217
  }
218
  .ai1ec-month-view .ai1ec-date {
219
  text-align: right;
633
  .ai1ec-subscribe-filtered {
634
  display: none;
635
  }
636
+ /* Category and Tags */
637
+ .ai1ec-filter-selector-container:hover > .ai1ec-filter-selector{
638
+ display: block;
639
+ }
css/event.css CHANGED
@@ -78,7 +78,6 @@ table.ai1ec-full-event {
78
  }
79
  .ai1ec-full-event td.ai1ec-map {
80
  text-align: right;
81
- vertical-align: bottom;
82
  }
83
  .ai1ec-full-event td.ai1ec-map.ai1ec-has-map {
84
  width: 55%;
@@ -108,6 +107,28 @@ table.ai1ec-full-event {
108
  .ai1ec-full-event #ai1ec-gmap-canvas input {
109
  margin: 0 !important;
110
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
 
112
  /* Contact info */
113
  .ai1ec-full-event .ai1ec-contact a {
78
  }
79
  .ai1ec-full-event td.ai1ec-map {
80
  text-align: right;
 
81
  }
82
  .ai1ec-full-event td.ai1ec-map.ai1ec-has-map {
83
  width: 55%;
107
  .ai1ec-full-event #ai1ec-gmap-canvas input {
108
  margin: 0 !important;
109
  }
110
+ .ai1ec-gmap-placeholder {
111
+ min-width: 18em;
112
+ width: 100%;
113
+ height: 12em;
114
+ border: 1px dashed #ddd;
115
+ text-align: center;
116
+ cursor: pointer;
117
+ color: #ddd;
118
+ margin-bottom: 0.3em;
119
+ }
120
+ .ai1ec-gmap-placeholder:hover {
121
+ border-color: #000;
122
+ color: #000;
123
+ }
124
+ .ai1ec-gmap-placeholder strong {
125
+ position: relative;
126
+ top: 45%;
127
+ }
128
+ .ai1ec-gmap-container-hidden {
129
+ position: absolute !important;
130
+ visibility: hidden;
131
+ }
132
 
133
  /* Contact info */
134
  .ai1ec-full-event .ai1ec-contact a {
css/general.css CHANGED
@@ -91,7 +91,7 @@ li:first-child:last-child > a.ai1ec-button {
91
  left: 0;
92
  width: 100%;
93
  height: 100%;
94
- background: #fff url( ../img/ajax-loader.gif ) no-repeat center center;
95
  display: none;
96
  }
97
 
91
  left: 0;
92
  width: 100%;
93
  height: 100%;
94
+ background: url( ../img/ajax-loader.gif ) no-repeat center center;
95
  display: none;
96
  }
97
 
css/settings.css CHANGED
@@ -89,28 +89,28 @@
89
  text-transform: lowercase;
90
  }
91
 
92
- .ai1ec_event_page_all-in-one-event-calendar-settings #general-settings {
93
  line-height: 1.7em;
94
  }
95
- .ai1ec_event_page_all-in-one-event-calendar-settings #general-settings div.inside label {
96
  float: left;
97
  clear: left;
98
  margin: 0.25em 0;
99
  }
100
- .ai1ec_event_page_all-in-one-event-calendar-settings #general-settings .checkbox {
101
  float: left;
102
  margin: 0.5em 0.5em 0 0;
103
  }
104
- .ai1ec_event_page_all-in-one-event-calendar-settings #general-settings div.description {
105
  clear: left;
106
  font-size: 0.95em;
107
  line-height: 1.5em;
108
  margin-bottom: 1em;
109
  }
110
- .ai1ec_event_page_all-in-one-event-calendar-settings #general-settings label.textinput {
111
  width: 230px;
112
  }
113
- .ai1ec_event_page_all-in-one-event-calendar-settings #general-settings h2 {
114
  margin-bottom: 0;
115
  margin-top: 10px;
116
  }
89
  text-transform: lowercase;
90
  }
91
 
92
+ .column-1-ai1ec #general-settings {
93
  line-height: 1.7em;
94
  }
95
+ .column-1-ai1ec #general-settings div.inside label {
96
  float: left;
97
  clear: left;
98
  margin: 0.25em 0;
99
  }
100
+ .column-1-ai1ec #general-settings .checkbox {
101
  float: left;
102
  margin: 0.5em 0.5em 0 0;
103
  }
104
+ .column-1-ai1ec #general-settings div.description {
105
  clear: left;
106
  font-size: 0.95em;
107
  line-height: 1.5em;
108
  margin-bottom: 1em;
109
  }
110
+ .column-1-ai1ec #general-settings label.textinput {
111
  width: 230px;
112
  }
113
+ .column-1-ai1ec #general-settings h2 {
114
  margin-bottom: 0;
115
  margin-top: 10px;
116
  }
js/calendar.js CHANGED
@@ -75,8 +75,9 @@ jQuery( document ).ready( function( $ ) {
75
  */
76
  function load_view( hash ) {
77
 
78
- // Display loader
79
- $('#ai1ec-calendar-view-loading').fadeTo( 'fast', 0.7,
 
80
  // After loader is visible, fetch new content
81
  function() {
82
  var query = hash.substring( 1 );
@@ -105,6 +106,7 @@ jQuery( document ).ready( function( $ ) {
105
 
106
  // Hide loader
107
  $('#ai1ec-calendar-view-loading').fadeOut( 'fast' );
 
108
 
109
  // Do any general view initialization after loading
110
  initialize_view();
@@ -248,26 +250,6 @@ jQuery( document ).ready( function( $ ) {
248
  'ai1ec-tags',
249
  '#ai1ec-selected-tags' );
250
 
251
- // Category/tag drop-down click actions
252
- $('.ai1ec-dropdown').click( function()
253
- {
254
- // Bring this selector to the front
255
- $('.ai1ec-filter-selector').css( 'zIndex', 10 );
256
- var $this_selector =
257
- $(this).siblings( '.ai1ec-filter-selector' )
258
- .css( 'zIndex', 11 );
259
-
260
- // Slide it down or up
261
- if( $(this).hasClass( 'ai1ec-active' ) ) {
262
- $(this).removeClass( 'ai1ec-active' );
263
- $this_selector.slideUp( 150 );
264
- } else {
265
- $(this).addClass( 'ai1ec-active' );
266
- $this_selector.slideDown( 150 );
267
- }
268
- }
269
- );
270
-
271
  // Category/tag filtering actions
272
 
273
  /**
@@ -323,12 +305,16 @@ jQuery( document ).ready( function( $ ) {
323
  // is quick enough
324
  var $loading = $('#ai1ec-calendar-view-loading')
325
  .delay( 500 )
326
- .fadeTo( 'fast', 0.7 );
 
 
 
327
 
328
  $.getJSON( ai1ec_calendar.ajaxurl, query, function( data )
329
  {
330
  // Cancel loading animation or fade out if faded in.
331
  $loading.clearQueue().fadeOut( 'fast' );
 
332
 
333
  // Fade in events that should be displayed (or leave them visible)
334
  var jq_selector = new Array(); // Build our jQuery selector string
75
  */
76
  function load_view( hash ) {
77
 
78
+ // Reveal loader behind view
79
+ $('#ai1ec-calendar-view-loading').fadeIn( 'fast' );
80
+ $('#ai1ec-calendar-view').fadeTo( 'fast', 0.3,
81
  // After loader is visible, fetch new content
82
  function() {
83
  var query = hash.substring( 1 );
106
 
107
  // Hide loader
108
  $('#ai1ec-calendar-view-loading').fadeOut( 'fast' );
109
+ $('#ai1ec-calendar-view').fadeTo( 'fast', 1.0 );
110
 
111
  // Do any general view initialization after loading
112
  initialize_view();
250
  'ai1ec-tags',
251
  '#ai1ec-selected-tags' );
252
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
253
  // Category/tag filtering actions
254
 
255
  /**
305
  // is quick enough
306
  var $loading = $('#ai1ec-calendar-view-loading')
307
  .delay( 500 )
308
+ .fadeIn( 'fast' );
309
+ var $view = $('#ai1ec-calendar-view')
310
+ .delay( 500 )
311
+ .fadeTo( 'fast', 0.3 );
312
 
313
  $.getJSON( ai1ec_calendar.ajaxurl, query, function( data )
314
  {
315
  // Cancel loading animation or fade out if faded in.
316
  $loading.clearQueue().fadeOut( 'fast' );
317
+ $view.clearQueue().fadeTo( 'fast', 1.0 );
318
 
319
  // Fade in events that should be displayed (or leave them visible)
320
  var jq_selector = new Array(); // Build our jQuery selector string
js/event.js CHANGED
@@ -42,3 +42,15 @@ window.onload = function()
42
  document.body.appendChild( script );
43
  }
44
  }
 
 
 
 
 
 
 
 
 
 
 
 
42
  document.body.appendChild( script );
43
  }
44
  }
45
+
46
+ jQuery( function( $ ) {
47
+ $( '.ai1ec-gmap-placeholder:first' ).click( function() {
48
+ var map_el = $( '.ai1ec-gmap-container-hidden:first');
49
+ // delete placeholder
50
+ $( this ).remove();
51
+ // hide map
52
+ map_el.hide();
53
+ map_el.removeClass( 'ai1ec-gmap-container-hidden' );
54
+ map_el.fadeIn();
55
+ });
56
+ });
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://theseedstudio.com/software/all-in-one-event-calendar-wordpre
4
  Tags: calendar, event, events, ics, ics calendar, ical-feed, ics feed, wordpress ics importer, wordpress ical importer, upcoming events, todo, notes, journal, freebusy, availability, web calendar, web events, webcal, google calendar, ical, iCalendar, all-in-one, ai1ec, google calendar sync, ical sync, events sync, holiday calendar, calendar 2011, events 2011, widget, events widget, upcoming events widget, calendar widget, agenda widget
5
  Requires at least: 3.1.3
6
  Tested up to: 3.2.1
7
- Stable tag: 1.0.6
8
 
9
  An event calendar system with month and agenda views, upcoming events widget, color-coded categories, recurrence, and import/export of .ics feeds.
10
 
@@ -51,6 +51,11 @@ The All-in-One Event Calendar Plugin also has a few features that will prove use
51
  [Check out the demo »](http://demo.theseedstudio.com/calendar/)
52
 
53
  == Changelog ==
 
 
 
 
 
54
 
55
  = Version 1.0.6 =
56
  * Fixed issue with importing of iCalendar feeds that define time zone per-property (e.g., Yahoo! Calendar feeds)
@@ -88,6 +93,7 @@ The All-in-One Event Calendar Plugin also has a few features that will prove use
88
  * Displayed appropriate setup notice when user lacks administrator capabilities
89
 
90
  = Version 1.0 =
 
91
 
92
  == Installation ==
93
 
4
  Tags: calendar, event, events, ics, ics calendar, ical-feed, ics feed, wordpress ics importer, wordpress ical importer, upcoming events, todo, notes, journal, freebusy, availability, web calendar, web events, webcal, google calendar, ical, iCalendar, all-in-one, ai1ec, google calendar sync, ical sync, events sync, holiday calendar, calendar 2011, events 2011, widget, events widget, upcoming events widget, calendar widget, agenda widget
5
  Requires at least: 3.1.3
6
  Tested up to: 3.2.1
7
+ Stable tag: 1.0.7
8
 
9
  An event calendar system with month and agenda views, upcoming events widget, color-coded categories, recurrence, and import/export of .ics feeds.
10
 
51
  [Check out the demo »](http://demo.theseedstudio.com/calendar/)
52
 
53
  == Changelog ==
54
+ = Version 1.0.7 =
55
+ * Fixed issue with some MySQL version
56
+ * Added better localization support - thank you josjo
57
+ * Added layout/formatting improvements
58
+ * Fixed issues when re-importing ics feeds
59
 
60
  = Version 1.0.6 =
61
  * Fixed issue with importing of iCalendar feeds that define time zone per-property (e.g., Yahoo! Calendar feeds)
93
  * Displayed appropriate setup notice when user lacks administrator capabilities
94
 
95
  = Version 1.0 =
96
+ * Initial release
97
 
98
  == Installation ==
99