Version Description
Download this release
Release Info
Developer | theseed |
Plugin | 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 +1 -1
- app/controller/class-ai1ec-app-controller.php +14 -10
- app/controller/class-ai1ec-calendar-controller.php +2 -2
- app/controller/class-ai1ec-events-controller.php +2 -1
- app/helper/class-ai1ec-calendar-helper.php +43 -6
- app/helper/class-ai1ec-events-helper.php +40 -37
- app/helper/class-ai1ec-settings-helper.php +3 -1
- app/model/class-ai1ec-event.php +2 -1
- app/model/class-ai1ec-settings.php +13 -0
- app/view/agenda-widget.php +4 -4
- app/view/agenda.php +10 -10
- app/view/box_event_contact.php +4 -4
- app/view/box_event_cost.php +2 -2
- app/view/box_event_location.php +4 -4
- app/view/box_general_settings.php +6 -0
- app/view/box_time_and_date.php +8 -8
- app/view/event-map.php +4 -1
- app/view/month.php +1 -1
- css/calendar.css +6 -2
- css/event.css +22 -1
- css/general.css +1 -1
- css/settings.css +6 -6
- js/calendar.js +9 -23
- js/event.js +12 -0
- readme.txt +7 -1
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.
|
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 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
|
|
|
|
|
|
|
|
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' =>
|
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 |
-
|
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[] =
|
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' => '‹ ' .
|
525 |
'href' => '#action=ai1ec_month&ai1ec_month_offset=' . ( $cur_offset - 1 ),
|
526 |
);
|
527 |
$links[] = array(
|
528 |
'id' => 'ai1ec-next-month',
|
529 |
-
'text' =>
|
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 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
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 |
-
|
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
|
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 |
-
|
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 |
-
$
|
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
|
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
|
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 -',
|
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
|
19 |
-
<div class="ai1ec-day"><?php echo
|
20 |
-
<div class="ai1ec-weekday"><?php echo
|
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',
|
6 |
</a><a
|
7 |
id="ai1ec-collapse-all" class="ai1ec-button">
|
8 |
-
<?php _e( '− Collapse All',
|
9 |
</a
|
10 |
><?php endif ?><a
|
11 |
id="ai1ec-today" class="ai1ec-load-view ai1ec-button" href="#action=ai1ec_agenda">
|
12 |
-
<?php _e( 'Today',
|
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
|
35 |
-
<div class="ai1ec-day"><?php echo
|
36 |
-
<div class="ai1ec-weekday"><?php echo
|
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 »',
|
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',
|
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:',
|
8 |
</label>
|
9 |
</td>
|
10 |
<td>
|
@@ -14,7 +14,7 @@
|
|
14 |
<tr>
|
15 |
<td>
|
16 |
<label for="ai1ec_contact_phone">
|
17 |
-
<?php _e( 'Phone:',
|
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:',
|
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',
|
2 |
<table class="ai1ec-form">
|
3 |
<tbody>
|
4 |
<tr>
|
5 |
<td class="ai1ec-first">
|
6 |
<label for="ai1ec_cost">
|
7 |
-
<?php _e( 'Cost',
|
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',
|
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:',
|
8 |
</label>
|
9 |
</td>
|
10 |
<td>
|
@@ -14,7 +14,7 @@
|
|
14 |
<tr>
|
15 |
<td>
|
16 |
<label for="ai1ec_address">
|
17 |
-
<?php _e( 'Address:',
|
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:',
|
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',
|
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',
|
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',
|
32 |
</label>
|
33 |
</td>
|
34 |
<td>
|
@@ -41,7 +41,7 @@
|
|
41 |
<tr>
|
42 |
<td>
|
43 |
<label for="ai1ec_repeat">
|
44 |
-
<?php _e( 'Repeat',
|
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',
|
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',
|
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',
|
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 |
-
|
|
|
|
|
|
|
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',
|
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:
|
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 |
-
.
|
93 |
line-height: 1.7em;
|
94 |
}
|
95 |
-
.
|
96 |
float: left;
|
97 |
clear: left;
|
98 |
margin: 0.25em 0;
|
99 |
}
|
100 |
-
.
|
101 |
float: left;
|
102 |
margin: 0.5em 0.5em 0 0;
|
103 |
}
|
104 |
-
.
|
105 |
clear: left;
|
106 |
font-size: 0.95em;
|
107 |
line-height: 1.5em;
|
108 |
margin-bottom: 1em;
|
109 |
}
|
110 |
-
.
|
111 |
width: 230px;
|
112 |
}
|
113 |
-
.
|
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 |
-
//
|
79 |
-
$('#ai1ec-calendar-view-loading').
|
|
|
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 |
-
.
|
|
|
|
|
|
|
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.
|
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 |
|