Plugins update
No files matched your search
@@ -1,376 +0,0 @@
|
||||
<?php
|
||||
//Redirect to the main plugin options page if form has been submitted
|
||||
if ( isset( $_GET['action'] ) ) {
|
||||
if ( 'add' == $_GET['action'] && isset( $_GET['updated'] ) )
|
||||
wp_redirect( admin_url( 'options-general.php?page=' . GCE_PLUGIN_NAME . '.php&updated=added' ) );
|
||||
}
|
||||
|
||||
add_settings_section( 'gce_add', __( 'Add a Feed', GCE_TEXT_DOMAIN ), 'gce_add_main_text', 'add_feed' );
|
||||
//Unique ID //Title //Function //Page //Section ID
|
||||
add_settings_field( 'gce_add_id_field', __( 'Feed ID', GCE_TEXT_DOMAIN ), 'gce_add_id_field', 'add_feed', 'gce_add' );
|
||||
add_settings_field( 'gce_add_title_field', __( 'Feed Title', GCE_TEXT_DOMAIN ), 'gce_add_title_field', 'add_feed', 'gce_add' );
|
||||
add_settings_field( 'gce_add_url_field', __( 'Feed URL', GCE_TEXT_DOMAIN ), 'gce_add_url_field', 'add_feed', 'gce_add' );
|
||||
add_settings_field( 'gce_add_retrieve_from_field', __( 'Retrieve events from', GCE_TEXT_DOMAIN ), 'gce_add_retrieve_from_field', 'add_feed', 'gce_add' );
|
||||
add_settings_field( 'gce_add_retrieve_until_field', __( 'Retrieve events until', GCE_TEXT_DOMAIN ), 'gce_add_retrieve_until_field', 'add_feed', 'gce_add' );
|
||||
add_settings_field( 'gce_add_max_events_field', __( 'Maximum number of events to retrieve', GCE_TEXT_DOMAIN ), 'gce_add_max_events_field', 'add_feed', 'gce_add' );
|
||||
add_settings_field( 'gce_add_date_format_field', __( 'Date format', GCE_TEXT_DOMAIN ), 'gce_add_date_format_field', 'add_feed', 'gce_add' );
|
||||
add_settings_field( 'gce_add_time_format_field', __( 'Time format', GCE_TEXT_DOMAIN ), 'gce_add_time_format_field', 'add_feed', 'gce_add' );
|
||||
add_settings_field( 'gce_add_timezone_field', __( 'Timezone adjustment', GCE_TEXT_DOMAIN ), 'gce_add_timezone_field', 'add_feed', 'gce_add' );
|
||||
add_settings_field( 'gce_add_cache_duration_field', __( 'Cache duration', GCE_TEXT_DOMAIN ), 'gce_add_cache_duration_field', 'add_feed', 'gce_add' );
|
||||
add_settings_field( 'gce_add_multiple_field', __( 'Show multiple day events on each day?', GCE_TEXT_DOMAIN ), 'gce_add_multiple_field', 'add_feed', 'gce_add' );
|
||||
|
||||
add_settings_section( 'gce_add_display', __( 'Display Options', GCE_TEXT_DOMAIN ), 'gce_add_display_main_text', 'add_display' );
|
||||
add_settings_field( 'gce_add_use_builder_field', __( 'Select display customization method', GCE_TEXT_DOMAIN ), 'gce_add_use_builder_field', 'add_display', 'gce_add_display' );
|
||||
|
||||
add_settings_section( 'gce_add_builder', __( 'Event Display Builder' ), 'gce_add_builder_main_text', 'add_builder' );
|
||||
add_settings_field( 'gce_add_builder_field', __( 'Event display builder HTML and shortcodes', GCE_TEXT_DOMAIN ), 'gce_add_builder_field', 'add_builder', 'gce_add_builder' );
|
||||
|
||||
add_settings_section( 'gce_add_simple_display', __('Simple Display Options'), 'gce_add_simple_display_main_text', 'add_simple_display' );
|
||||
add_settings_field( 'gce_add_display_start_field', __( 'Display start time / date?', GCE_TEXT_DOMAIN ), 'gce_add_display_start_field', 'add_simple_display', 'gce_add_simple_display' );
|
||||
add_settings_field( 'gce_add_display_end_field', __( 'Display end time / date?', GCE_TEXT_DOMAIN ), 'gce_add_display_end_field', 'add_simple_display', 'gce_add_simple_display' );
|
||||
add_settings_field( 'gce_add_display_separator_field', __( 'Separator text / characters', GCE_TEXT_DOMAIN ), 'gce_add_display_separator_field', 'add_simple_display', 'gce_add_simple_display' );
|
||||
add_settings_field( 'gce_add_display_location_field', __( 'Display location?', GCE_TEXT_DOMAIN ), 'gce_add_display_location_field', 'add_simple_display', 'gce_add_simple_display' );
|
||||
add_settings_field( 'gce_add_display_desc_field', __( 'Display description?', GCE_TEXT_DOMAIN ), 'gce_add_display_desc_field', 'add_simple_display', 'gce_add_simple_display' );
|
||||
add_settings_field( 'gce_add_display_link_field', __( 'Display link to event?', GCE_TEXT_DOMAIN ), 'gce_add_display_link_field', 'add_simple_display', 'gce_add_simple_display' );
|
||||
|
||||
//Main text
|
||||
function gce_add_main_text() {
|
||||
?>
|
||||
<p><?php _e( 'Enter the feed details below, then click the Add Feed button.', GCE_TEXT_DOMAIN ); ?></p>
|
||||
<?php
|
||||
}
|
||||
|
||||
//ID
|
||||
function gce_add_id_field() {
|
||||
$options = get_option( GCE_OPTIONS_NAME );
|
||||
$id = 1;
|
||||
if ( !empty( $options ) ) { //If there are no saved feeds
|
||||
//Go to last saved feed
|
||||
end( $options );
|
||||
//Set id to last feed id + 1
|
||||
$id = key( $options ) + 1;
|
||||
}
|
||||
|
||||
?>
|
||||
<input type="text" disabled="disabled" value="<?php echo $id; ?>" size="3" />
|
||||
<input type="hidden" name="gce_options[id]" value="<?php echo $id; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Title
|
||||
function gce_add_title_field() {
|
||||
?>
|
||||
<span class="description"><?php _e( 'Anything you like. \'Upcoming Club Events\', for example.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[title]" size="50" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//URL
|
||||
function gce_add_url_field() {
|
||||
?>
|
||||
<span class="description"><?php _e( 'This will probably be something like:', GCE_TEXT_DOMAIN ); ?> <code>http://www.google.com/calendar/feeds/your-email@gmail.com/public/basic</code>.</span>
|
||||
<br />
|
||||
<span class="description"><?php _e( 'or:', GCE_TEXT_DOMAIN ); ?> <code>http://www.google.com/calendar/feeds/your-email@gmail.com/private-d65741b037h695ff274247f90746b2ty/basic</code>.</span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[url]" size="100" class="required" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Retrieve events from
|
||||
function gce_add_retrieve_from_field() {
|
||||
?>
|
||||
<span class="description">
|
||||
<?php _e( 'The point in time at which to start retrieving events. Use the text-box to specify an additional offset from you chosen start point. The offset should be provided in seconds (3600 = 1 hour, 86400 = 1 day) and can be negative. If you have selected the \'Specific date / time\' option, enter a', GCE_TEXT_DOMAIN ); ?>
|
||||
<a href="http://www.timestampgenerator.com" target="_blank"><?php _e( 'UNIX timestamp', GCE_TEXT_DOMAIN ); ?></a>
|
||||
<?php _e( 'in the text-box.', GCE_TEXT_DOMAIN ); ?>
|
||||
</span>
|
||||
<br />
|
||||
<select name="gce_options[retrieve_from]">
|
||||
<option value="now"><?php _e( 'Now', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="today" selected="selected"><?php _e( '00:00 today', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="week"><?php _e( 'Start of current week', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="month-start"><?php _e( 'Start of current month', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="month-end"><?php _e( 'End of current month', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="any"><?php _e( 'The beginning of time', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="date"><?php _e( 'Specific date / time', GCE_TEXT_DOMAIN ); ?></option>
|
||||
</select>
|
||||
<input type="text" name="gce_options[retrieve_from_value]" value="0" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Retrieve events until
|
||||
function gce_add_retrieve_until_field() {
|
||||
?>
|
||||
<span class="description"><?php _e( 'The point in time at which to stop retrieving events. The instructions for the above option also apply here.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<select name="gce_options[retrieve_until]">
|
||||
<option value="now"><?php _e( 'Now', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="today"><?php _e( '00:00 today', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="week"><?php _e( 'Start of current week', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="month-start"><?php _e( 'Start of current month', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="month-end"><?php _e( 'End of current month', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="any" selected="selected"><?php _e( 'The end of time', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="date"><?php _e( 'Specific date / time', GCE_TEXT_DOMAIN ); ?></option>
|
||||
|
||||
</select>
|
||||
<input type="text" name="gce_options[retrieve_until_value]" value="0" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Max events
|
||||
function gce_add_max_events_field() {
|
||||
?>
|
||||
<span class="description"><?php _e( 'Set this to a few more than you actually want to display (due to caching and timezone issues). The exact number to display can be configured per shortcode / widget.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[max_events]" value="25" size="3" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Date format
|
||||
function gce_add_date_format_field(){
|
||||
?>
|
||||
<span class="description"><?php _e( 'In <a href="http://php.net/manual/en/function.date.php" target="_blank">PHP date format</a>. Leave this blank if you\'d rather stick with the default format for your blog.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[date_format]" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Time format
|
||||
function gce_add_time_format_field(){
|
||||
?>
|
||||
<span class="description"><?php _e( 'In <a href="http://php.net/manual/en/function.date.php" target="_blank">PHP date format</a>. Again, leave this blank to stick with the default.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[time_format]" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Timezone offset
|
||||
function gce_add_timezone_field() {
|
||||
require_once 'timezone-choices.php';
|
||||
$timezone_list = gce_get_timezone_choices();
|
||||
//Set selected="selected" for default option
|
||||
$timezone_list = str_replace( '<option value="default">Default</option>', '<option value="default" selected="selected">Default</option>', $timezone_list );
|
||||
?>
|
||||
<span class="description"><?php _e( 'If you are having problems with dates and times displaying in the wrong timezone, select a city in your required timezone here.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<?php echo $timezone_list; ?>
|
||||
<?php
|
||||
}
|
||||
|
||||
//Cache duration
|
||||
function gce_add_cache_duration_field() {
|
||||
?>
|
||||
<span class="description"><?php _e( 'The length of time, in seconds, to cache the feed (43200 = 12 hours). If this feed changes regularly, you may want to reduce the cache duration.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[cache_duration]" value="43200" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Multiple day events
|
||||
function gce_add_multiple_field() {
|
||||
?>
|
||||
<span class="description"><?php _e( 'Show events that span multiple days on each day that they span, rather than just the first day.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="checkbox" name="gce_options[multiple_day]" value="true" />
|
||||
<br /><br />
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
//Display options
|
||||
function gce_add_display_main_text() {
|
||||
?>
|
||||
<p><?php _e( 'These settings control what information will be displayed for this feed in the tooltip (for grids), or in a list.', GCE_TEXT_DOMAIN ); ?></p>
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_add_use_builder_field() {
|
||||
?>
|
||||
<span class="description"><?php _e( 'It is recommended that you use the event display builder option, as it provides much more flexibility than the simple display options. The event display builder can do everything the simple display options can, plus lots more!', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<select name="gce_options[use_builder]">
|
||||
<option value="true" selected="selected"><?php _e( 'Event display builder', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="false"><?php _e( 'Simple display options', GCE_TEXT_DOMAIN ); ?></option>
|
||||
</select>
|
||||
<?php
|
||||
}
|
||||
|
||||
//Event display builder
|
||||
function gce_add_builder_main_text() {
|
||||
?>
|
||||
<p class="gce-event-builder">
|
||||
<?php _e( 'Use the event display builder to customize how event information will be displayed in the grid tooltips and in lists. Use HTML and the shortcodes (explained below) to display the information you require. A basic example display format is provided as a starting point. For more information, take a look at the', GCE_TEXT_DOMAIN ); ?>
|
||||
<a href="http://www.rhanney.co.uk/plugins/google-calendar-events/event-display-builder" target="_blank"><?php _e( 'event display builder guide', GCE_TEXT_DOMAIN ); ?></a>
|
||||
</p>
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_add_builder_field() {
|
||||
?>
|
||||
<textarea name="gce_options[builder]" rows="10" cols="80">
|
||||
<div class="gce-list-event gce-tooltip-event">[event-title]</div>
|
||||
<div><span>Starts:</span> [start-time]</div>
|
||||
<div><span>Ends:</span> [end-date] - [end-time]</div>
|
||||
[if-location]<div><span>Location:</span> [location]</div>[/if-location]
|
||||
[if-description]<div><span>Description:</span> [description]</div>[/if-description]
|
||||
<div>[link newwindow="true"]More details...[/link]</div>
|
||||
</textarea>
|
||||
<br />
|
||||
<p style="margin-top:20px;">
|
||||
<?php _e( '(More information on all of the below shortcodes and attributes, and working examples, can be found in the', GCE_TEXT_DOMAIN ); ?>
|
||||
<a href="http://www.rhanney.co.uk/plugins/google-calendar-events/event-display-builder" target="_blank"><?php _e( 'event display builder guide', GCE_TEXT_DOMAIN ); ?></a>)
|
||||
</p>
|
||||
<h4><?php _e( 'Event information shortcodes:', GCE_TEXT_DOMAIN ); ?></h4>
|
||||
<ul>
|
||||
<li><code>[event-title]</code><span class="description"> - <?php _e( 'The event title (possible attributes: <code>html</code>, <code>markdown</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[start-time]</code><span class="description"> - <?php _e( 'The event start time. Will use the time format specified in the above settings', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[start-date]</code><span class="description"> - <?php _e( 'The event start date. Will use the date format specified in the above settings', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[start-custom]</code><span class="description"> - <?php _e( 'The event start date / time. Will use the format specified in the <code>format</code> attribute (possible attributes: <code>format</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[start-human]</code><span class="description"> - <?php _e( 'The difference between the start time of the event and the time now, in human-readable format, such as \'1 hour\', \'4 days\', \'15 mins\' (possible attributes: <code>precision</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[end-time]</code><span class="description"> - <?php _e( 'The event end time. Will use the time format specified in the above settings', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[end-date]</code><span class="description"> - <?php _e( 'The event end date. Will use the date format specified in the above settings', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[end-custom]</code><span class="description"> - <?php _e( 'The event end date / time. Will use the format specified in the <code>format</code> attribute (possible attributes: <code>format</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[end-human]</code><span class="description"> - <?php _e( 'The difference between the end time of the event and the time now, in human-readable format (possible attributes: <code>precision</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[location]</code><span class="description"> - <?php _e( 'The event location (possible attributes: <code>html</code>, <code>markdown</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[maps-link]…[/maps-link]</code><span class="description"> - <?php _e( 'Anything between the opening and closing shortcode tags (inlcuding further shortcodes) will be linked to Google Maps, using the event location as a search parameter (possible attributes: <code>newwindow</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[description]</code><span class="description"> - <?php _e( 'The event description (possible attributes: <code>html</code>, <code>markdown</code>, <code>limit</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[link]…[/link]</code><span class="description"> - <?php _e( 'Anything between the opening and closing shortcode tags (inlcuding further shortcodes) will be linked to the Google Calendar page for the event (possible attributes: <code>newwindow</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[url]</code><span class="description"> - <?php _e( 'The raw URL to the Google Calendar page for the event', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[length]</code><span class="description"> - <?php _e( 'The length of the event, in human-readable format (possible attributes: <code>precision</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[event-num]</code><span class="description"> - <?php _e( 'The position of the event in the current list, or the position of the event in the current month (for grids)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[event-id]</code><span class="description"> - <?php _e( 'The event UID (a unique identifier assigned to the event by Google)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
</ul>
|
||||
<h4><?php _e( 'Feed information shortcodes:', GCE_TEXT_DOMAIN ); ?></h4>
|
||||
<ul>
|
||||
<li><code>[feed-title]</code><span class="description"> - <?php _e( 'The title of the feed from which the event comes', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[feed-id]</code><span class="description"> - <?php _e( 'The ID of the feed from which the event comes', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[cal-id]</code><span class="description"> - <?php _e( 'The calendar ID (a unique identifier assigned to the calendar by Google)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
</ul>
|
||||
<h4><?php _e( 'Conditional shortcodes:', GCE_TEXT_DOMAIN ); ?></h4>
|
||||
<p class="description" style="margin-bottom:18px;"><?php _e( 'Anything entered between the opening and closing tags of each of the following shortcodes will only be displayed if its condition (below) is met.', GCE_TEXT_DOMAIN ); ?></p>
|
||||
<ul>
|
||||
<li><code>[if-all-day]…[/if-all-day]</code><span class="description"> - <?php _e( 'The event is an all-day event', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-not-all-day]…[/if-not-all-day]</code><span class="description"> - <?php _e( 'The event is not an all-day event', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-title]…[/if-title]</code><span class="description"> - <?php _e( 'The event has a title', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-description]…[/if-description]</code><span class="description"> - <?php _e( 'The event has a description', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-location]…[/if-location]</code><span class="description"> - <?php _e( 'The event has a location', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-tooltip]…[/if-tooltip]</code><span class="description"> - <?php _e( 'The event is to be displayed in a tooltip (not a list)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-list]…[/if-list]</code><span class="description"> - <?php _e( 'The event is to be displayed in a list (not a tooltip)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-now]…[/if-now]</code><span class="description"> - <?php _e( 'The event is taking place now (after the start time, but before the end time)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-not-now]…[/if-not-now]</code><span class="description"> - <?php _e( 'The event is not taking place now (may have ended or not yet started)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-started]…[/if-started]</code><span class="description"> - <?php _e( 'The event has started (even if it has also ended)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-not-started]…[/if-not-started]</code><span class="description"> - <?php _e( 'The event has not started', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-ended]…[/if-ended]</code><span class="description"> - <?php _e( 'The event has ended', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-not-ended]…[/if-not-ended]</code><span class="description"> - <?php _e( 'The event has not ended (even if it hasn\'t started)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-first]…[/if-first]</code><span class="description"> - <?php _e( 'The event is the first of the day', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-not-first]…[/if-not-first]</code><span class="description"> - <?php _e( 'The event is not the first of the day', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-multi-day]…[/if-multi-day]</code><span class="description"> - <?php _e( 'The event spans multiple days', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-single-day]…[/if-single-day]</code><span class="description"> - <?php _e( 'The event does not span multiple days', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
</ul>
|
||||
<h4><?php _e( 'Attributes:', GCE_TEXT_DOMAIN ); ?></h4>
|
||||
<p class="description" style="margin-bottom:18px;"><?php _e( 'The possible attributes mentioned above are explained here:', GCE_TEXT_DOMAIN ); ?></p>
|
||||
<ul>
|
||||
<li><code>html</code><span class="description"> - <?php _e( 'Whether or not to parse HTML that has been entered in the relevant field. Can be <code>true</code> or <code>false</code>', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>markdown</code><span class="description"> - <?php _e( 'Whether or not to parse <a href="http://daringfireball.net/projects/markdown" target="_blank">Markdown</a> that has been entered in the relevant field. <a href="http://michelf.com/projects/php-markdown" target="_blank">PHP Markdown</a> must be installed for this to work. Can be <code>true</code> or <code>false</code>', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>limit</code><span class="description"> - <?php _e( 'The word limit for the field. Should be specified as a positive integer', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>format</code><span class="description"> - <?php _e( 'The date / time format to use. Should specified as a <a href="http://php.net/manual/en/function.date.php" target="_blank">PHP date format</a> string', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>newwindow</code><span class="description"> - <?php _e( 'Whether or not the link should open in a new window / tab. Can be <code>true</code> or <code>false</code>', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>precision</code><span class="description"> - <?php _e( 'How precise to be when displaying a time difference in human-readable format. Should be specified as a positive integer', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>offset</code><span class="description"> - <?php _e( 'An offset (in seconds) to apply to start / end times before display. Should be specified as a (positive or negative) integer', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>autolink</code><span class="description"> - <?php _e( 'Whether or not to automatically convert URLs in the description to links. Can be <code>true</code> or <code>false</code>', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
</ul>
|
||||
<?php
|
||||
}
|
||||
|
||||
//Simple display options
|
||||
function gce_add_simple_display_main_text() {
|
||||
?>
|
||||
<p class="gce-simple-display-options"><?php _e( 'You can use some HTML in the text fields, but ensure it is valid or things might go wonky. Text fields can be empty too.', GCE_TEXT_DOMAIN ); ?></p>
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_add_display_start_field() {
|
||||
?>
|
||||
<span class="description"><?php _e( 'Select how to display the start date / time.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<select name="gce_options[display_start]">
|
||||
<option value="none"><?php _e( 'Don\'t display start time or date', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="time" selected="selected"><?php _e( 'Display start time', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="date"><?php _e( 'Display start date', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="time-date"><?php _e( 'Display start time and date (in that order)', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="date-time"><?php _e( 'Display start date and time (in that order)', GCE_TEXT_DOMAIN ); ?></option>
|
||||
</select>
|
||||
<br /><br />
|
||||
<span class="description"><?php _e( 'Text to display before the start time.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_start_text]" value="Starts:" />
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_add_display_end_field() {
|
||||
?>
|
||||
<span class="description"><?php _e( 'Select how to display the end date / time.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<select name="gce_options[display_end]">
|
||||
<option value="none"><?php _e( 'Don\'t display end time or date', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="time"><?php _e( 'Display end time', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="date"><?php _e( 'Display end date', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="time-date" selected="selected"><?php _e( 'Display end time and date (in that order)', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="date-time"><?php _e( 'Display end date and time (in that order)', GCE_TEXT_DOMAIN ); ?></option>
|
||||
</select>
|
||||
<br /><br />
|
||||
<span class="description"><?php _e( 'Text to display before the end time.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_end_text]" value="Ends:" />
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_add_display_separator_field() {
|
||||
?>
|
||||
<span class="description"><?php _e( 'If you have chosen to display both the time and date above, enter the text / characters to display between the time and date here (including any spaces).', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_separator]" value=", " />
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_add_display_location_field() {
|
||||
?>
|
||||
<input type="checkbox" name="gce_options[display_location]" value="on" />
|
||||
<span class="description"><?php _e( 'Show the location of events?', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br /><br />
|
||||
<span class="description"><?php _e( 'Text to display before the location.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_location_text]" value="Location:" />
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_add_display_desc_field() {
|
||||
?>
|
||||
<input type="checkbox" name="gce_options[display_desc]" value="on" />
|
||||
<span class="description"><?php _e( 'Show the description of events? (URLs in the description will be made into links).', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br /><br />
|
||||
<span class="description"><?php _e( 'Text to display before the description.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_desc_text]" value="Description:" />
|
||||
<br /><br />
|
||||
<span class="description"><?php _e( 'Maximum number of words to show from description. Leave blank for no limit.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_desc_limit]" size="3" />
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_add_display_link_field() {
|
||||
?>
|
||||
<input type="checkbox" name="gce_options[display_link]" value="on" checked="checked" />
|
||||
<span class="description"><?php _e( 'Show a link to the Google Calendar page for an event?', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="checkbox" name="gce_options[display_link_target]" value="on" />
|
||||
<span class="description"><?php _e( 'Links open in a new window / tab?', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br /><br />
|
||||
<span class="description"><?php _e( 'The link text to be displayed.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_link_text]" value="More details" />
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
@@ -1,39 +0,0 @@
|
||||
<?php
|
||||
//Redirect to the main plugin options page if form has been submitted
|
||||
if(isset($_GET['action'])){
|
||||
if($_GET['action'] == 'delete' && isset($_GET['updated'])){
|
||||
wp_redirect(admin_url('options-general.php?page=' . GCE_PLUGIN_NAME . '.php&updated=deleted'));
|
||||
}
|
||||
}
|
||||
|
||||
add_settings_section('gce_delete', __('Delete Feed', GCE_TEXT_DOMAIN), 'gce_delete_main_text', 'delete_feed');
|
||||
//Unique ID //Title //Function //Page //Section ID
|
||||
add_settings_field('gce_delete_id_field', __('Feed ID', GCE_TEXT_DOMAIN), 'gce_delete_id_field', 'delete_feed', 'gce_delete');
|
||||
add_settings_field('gce_delete_title_field', __('Feed Title', GCE_TEXT_DOMAIN), 'gce_delete_title_field', 'delete_feed', 'gce_delete');
|
||||
|
||||
//Main text
|
||||
function gce_delete_main_text(){
|
||||
?>
|
||||
<p><?php _e('Are you want you want to delete this feed? (Remember to remove / adjust any widgets or shortcodes associated with this feed).', GCE_TEXT_DOMAIN); ?></p>
|
||||
<?php
|
||||
}
|
||||
|
||||
//ID
|
||||
function gce_delete_id_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<input type="text" disabled="disabled" value="<?php echo $options['id']; ?>" size="3" />
|
||||
<input type="hidden" name="gce_options[id]" value="<?php echo $options['id']; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Title
|
||||
function gce_delete_title_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<input type="text" name="gce_options[title]" disabled="disabled" value="<?php echo $options['title']; ?>" size="50" />
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
@@ -1,389 +0,0 @@
|
||||
<?php
|
||||
//Redirect to the main plugin options page if form has been submitted
|
||||
if(isset($_GET['action'])){
|
||||
if($_GET['action'] == 'edit' && isset($_GET['updated'])){
|
||||
wp_redirect(admin_url('options-general.php?page=' . GCE_PLUGIN_NAME . '.php&updated=edited'));
|
||||
}
|
||||
}
|
||||
|
||||
add_settings_section('gce_edit', __('Edit Feed', GCE_TEXT_DOMAIN), 'gce_edit_main_text', 'edit_feed');
|
||||
//Unique ID //Title //Function //Page //Section ID
|
||||
add_settings_field('gce_edit_id_field', __('Feed ID', GCE_TEXT_DOMAIN), 'gce_edit_id_field', 'edit_feed', 'gce_edit');
|
||||
add_settings_field('gce_edit_title_field', __('Feed Title', GCE_TEXT_DOMAIN), 'gce_edit_title_field', 'edit_feed', 'gce_edit');
|
||||
add_settings_field('gce_edit_url_field', __('Feed URL', GCE_TEXT_DOMAIN), 'gce_edit_url_field', 'edit_feed', 'gce_edit');
|
||||
add_settings_field('gce_edit_retrieve_from_field', __('Retrieve events from', GCE_TEXT_DOMAIN), 'gce_edit_retrieve_from_field', 'edit_feed', 'gce_edit');
|
||||
add_settings_field('gce_edit_retrieve_until_field', __('Retrieve events until', GCE_TEXT_DOMAIN), 'gce_edit_retrieve_until_field', 'edit_feed', 'gce_edit');
|
||||
add_settings_field('gce_edit_max_events_field', __('Maximum number of events to retrieve', GCE_TEXT_DOMAIN), 'gce_edit_max_events_field', 'edit_feed', 'gce_edit');
|
||||
add_settings_field('gce_edit_date_format_field', __('Date format', GCE_TEXT_DOMAIN), 'gce_edit_date_format_field', 'edit_feed', 'gce_edit');
|
||||
add_settings_field('gce_edit_time_format_field', __('Time format', GCE_TEXT_DOMAIN), 'gce_edit_time_format_field', 'edit_feed', 'gce_edit');
|
||||
add_settings_field('gce_edit_timezone_field', __('Timezone adjustment', GCE_TEXT_DOMAIN), 'gce_edit_timezone_field', 'edit_feed', 'gce_edit');
|
||||
add_settings_field('gce_edit_cache_duration_field', __('Cache duration', GCE_TEXT_DOMAIN), 'gce_edit_cache_duration_field', 'edit_feed', 'gce_edit');
|
||||
add_settings_field('gce_edit_multiple_field', __('Show multiple day events on each day?', GCE_TEXT_DOMAIN), 'gce_edit_multiple_field', 'edit_feed', 'gce_edit');
|
||||
|
||||
add_settings_section('gce_edit_display', __('Display Options', GCE_TEXT_DOMAIN), 'gce_edit_display_main_text', 'edit_display');
|
||||
add_settings_field('gce_edit_use_builder_field', __('Select display customization method', GCE_TEXT_DOMAIN), 'gce_edit_use_builder_field', 'edit_display', 'gce_edit_display');
|
||||
|
||||
add_settings_section('gce_edit_builder', __('Event Display Builder'), 'gce_edit_builder_main_text', 'edit_builder');
|
||||
add_settings_field('gce_edit_builder_field', __('Event display builder HTML and shortcodes', GCE_TEXT_DOMAIN), 'gce_edit_builder_field', 'edit_builder', 'gce_edit_builder');
|
||||
|
||||
add_settings_section('gce_edit_simple_display', __('Simple Display Options'), 'gce_edit_simple_display_main_text', 'edit_simple_display');
|
||||
add_settings_field('gce_edit_display_start_field', __('Display start time / date?', GCE_TEXT_DOMAIN), 'gce_edit_display_start_field', 'edit_simple_display', 'gce_edit_simple_display');
|
||||
add_settings_field('gce_edit_display_end_field', __('Display end time / date?', GCE_TEXT_DOMAIN), 'gce_edit_display_end_field', 'edit_simple_display', 'gce_edit_simple_display');
|
||||
add_settings_field('gce_edit_display_separator_field', __('Separator text / characters', GCE_TEXT_DOMAIN), 'gce_edit_display_separator_field', 'edit_simple_display', 'gce_edit_simple_display');
|
||||
add_settings_field('gce_edit_display_location_field', __('Display location?', GCE_TEXT_DOMAIN), 'gce_edit_display_location_field', 'edit_simple_display', 'gce_edit_simple_display');
|
||||
add_settings_field('gce_edit_display_desc_field', __('Display description?', GCE_TEXT_DOMAIN), 'gce_edit_display_desc_field', 'edit_simple_display', 'gce_edit_simple_display');
|
||||
add_settings_field('gce_edit_display_link_field', __('Display link to event?', GCE_TEXT_DOMAIN), 'gce_edit_display_link_field', 'edit_simple_display', 'gce_edit_simple_display');
|
||||
|
||||
//Main text
|
||||
function gce_edit_main_text(){
|
||||
?>
|
||||
<p><?php _e('Make any changes you require to the feed details below, then click the Save Changes button.', GCE_TEXT_DOMAIN); ?></p>
|
||||
<?php
|
||||
}
|
||||
|
||||
//ID
|
||||
function gce_edit_id_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<input type="text" disabled="disabled" value="<?php echo $options['id']; ?>" size="3" />
|
||||
<input type="hidden" name="gce_options[id]" value="<?php echo $options['id']; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Title
|
||||
function gce_edit_title_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('Anything you like. \'Upcoming Club Events\', for example.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[title]" value="<?php echo $options['title']; ?>" size="50" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//URL
|
||||
function gce_edit_url_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('This will probably be something like: <code>http://www.google.com/calendar/feeds/your-email@gmail.com/public/full</code>.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<span class="description"><?php _e('or: <code>http://www.google.com/calendar/feeds/your-email@gmail.com/private-d65741b037h695ff274247f90746b2ty/basic</code>.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[url]" value="<?php echo $options['url']; ?>" size="100" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Retrieve events from
|
||||
function gce_edit_retrieve_from_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('The point in time at which to start retrieving events. Use the text-box to specify an additional offset from you chosen start point. The offset should be provided in seconds (3600 = 1 hour, 86400 = 1 day) and can be negative. If you have selected the \'Specific date / time\' option, enter a <a href="http://www.timestampgenerator.com" target="_blank">UNIX timestamp</a> in the text-box.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<select name="gce_options[retrieve_from]">
|
||||
<option value="now"<?php selected($options['retrieve_from'], 'now'); ?>>Now</option>
|
||||
<option value="today"<?php selected($options['retrieve_from'], 'today'); ?>>00:00 today</option>
|
||||
<option value="week"<?php selected($options['retrieve_from'], 'week'); ?>>Start of current week</option>
|
||||
<option value="month-start"<?php selected($options['retrieve_from'], 'month-start'); ?>>Start of current month</option>
|
||||
<option value="month-end"<?php selected($options['retrieve_from'], 'month-end'); ?>>End of current month</option>
|
||||
<option value="any"<?php selected($options['retrieve_from'], 'any'); ?>>The beginning of time</option>
|
||||
<option value="date"<?php selected($options['retrieve_from'], 'date'); ?>>Specific date / time</option>
|
||||
</select>
|
||||
<input type="text" name="gce_options[retrieve_from_value]" value="<?php echo $options['retrieve_from_value']; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Retrieve events until
|
||||
function gce_edit_retrieve_until_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('The point in time at which to stop retrieving events. The instructions for the above option also apply here.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<select name="gce_options[retrieve_until]">
|
||||
<option value="now"<?php selected($options['retrieve_until'], 'now'); ?>>Now</option>
|
||||
<option value="today"<?php selected($options['retrieve_until'], 'today'); ?>>00:00 today</option>
|
||||
<option value="week"<?php selected($options['retrieve_until'], 'week'); ?>>Start of current week</option>
|
||||
<option value="month-start"<?php selected($options['retrieve_until'], 'month-start'); ?>>Start of current month</option>
|
||||
<option value="month-end"<?php selected($options['retrieve_until'], 'month-end'); ?>>End of current month</option>
|
||||
<option value="any"<?php selected($options['retrieve_until'], 'any'); ?>>The end of time</option>
|
||||
<option value="date"<?php selected($options['retrieve_until'], 'date'); ?>>Specific date / time</option>
|
||||
|
||||
</select>
|
||||
<input type="text" name="gce_options[retrieve_until_value]" value="<?php echo $options['retrieve_until_value']; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Max events
|
||||
function gce_edit_max_events_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('Set this to a few more than you actually want to display (due to caching and timezone issues). The exact number to display can be configured per shortcode / widget.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[max_events]" value="<?php echo $options['max_events']; ?>" size="3" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Date format
|
||||
function gce_edit_date_format_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('In <a href="http://php.net/manual/en/function.date.php" target="_blank">PHP date format</a>. Leave this blank if you\'d rather stick with the default format for your blog.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[date_format]" value="<?php echo $options['date_format']; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Time format
|
||||
function gce_edit_time_format_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('In <a href="http://php.net/manual/en/function.date.php" target="_blank">PHP date format</a>. Again, leave this blank to stick with the default.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[time_format]" value="<?php echo $options['time_format']; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Timezone offset
|
||||
function gce_edit_timezone_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
require_once 'timezone-choices.php';
|
||||
$timezone_list = gce_get_timezone_choices();
|
||||
//Set selected="selected" for selected timezone
|
||||
$timezone_list = str_replace(('<option value="' . $options['timezone'] . '"'), ('<option value="' . $options['timezone'] . '" selected="selected"'), $timezone_list);
|
||||
?>
|
||||
<span class="description"><?php _e('If you are having problems with dates and times displaying in the wrong timezone, select a city in your required timezone here.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<?php echo $timezone_list; ?>
|
||||
<?php
|
||||
}
|
||||
|
||||
//Cache duration
|
||||
function gce_edit_cache_duration_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('The length of time, in seconds, to cache the feed (43200 = 12 hours). If this feed changes regularly, you may want to reduce the cache duration.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[cache_duration]" value="<?php echo $options['cache_duration']; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Multiple day events
|
||||
function gce_edit_multiple_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('Show events that span multiple days on each day that they span, rather than just the first day.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="checkbox" name="gce_options[multiple_day]" value="true"<?php checked($options['multiple_day'], 'true'); ?> />
|
||||
<br /><br />
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
//Display options
|
||||
function gce_edit_display_main_text(){
|
||||
?>
|
||||
<p><?php _e('These settings control what information will be displayed for this feed in the tooltip (for grids), or in a list.', GCE_TEXT_DOMAIN); ?></p>
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_edit_use_builder_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('It is recommended that you use the event display builder option, as it provides much more flexibility than the simple display options. The event display builder can do everything the simple display options can, plus lots more!', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<select name="gce_options[use_builder]">
|
||||
<option value="true"<?php selected($options['use_builder'], 'true'); ?>><?php _e('Event display builder', GCE_TEXT_DOMAIN); ?></option>
|
||||
<option value="false"<?php selected($options['use_builder'], 'false'); ?>><?php _e('Simple display options', GCE_TEXT_DOMAIN); ?></option>
|
||||
</select>
|
||||
<?php
|
||||
}
|
||||
|
||||
//Event display builder
|
||||
function gce_edit_builder_main_text(){
|
||||
?>
|
||||
<p class="gce-event-builder"><?php _e('Use the event display builder to customize how event information will be displayed in the grid tooltips and in lists. Use HTML and the shortcodes (explained below) to display the information you require. A basic example display format is provided as a starting point. For more information, take a look at the <a href="http://www.rhanney.co.uk/plugins/google-calendar-events/event-display-builder" target="_blank">event display builder guide</a>.', GCE_TEXT_DOMAIN); ?></p>
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_edit_builder_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<textarea name="gce_options[builder]" rows="10" cols="80"><?php echo $options['builder']; ?></textarea>
|
||||
<br />
|
||||
<p style="margin-top:20px;"><?php _e('(More information on all of the below shortcodes and attributes, and working examples, can be found in the <a href="http://www.rhanney.co.uk/plugins/google-calendar-events/event-display-builder" target="_blank">event display builder guide</a>)', GCE_TEXT_DOMAIN); ?></p>
|
||||
<h4><?php _e('Event information shortcodes:', GCE_TEXT_DOMAIN); ?></h4>
|
||||
<ul>
|
||||
<li><code>[event-title]</code><span class="description"> - <?php _e( 'The event title (possible attributes: <code>html</code>, <code>markdown</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[start-time]</code><span class="description"> - <?php _e( 'The event start time. Will use the time format specified in the above settings', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[start-date]</code><span class="description"> - <?php _e( 'The event start date. Will use the date format specified in the above settings', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[start-custom]</code><span class="description"> - <?php _e( 'The event start date / time. Will use the format specified in the <code>format</code> attribute (possible attributes: <code>format</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[start-human]</code><span class="description"> - <?php _e( 'The difference between the start time of the event and the time now, in human-readable format, such as \'1 hour\', \'4 days\', \'15 mins\' (possible attributes: <code>precision</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[end-time]</code><span class="description"> - <?php _e( 'The event end time. Will use the time format specified in the above settings', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[end-date]</code><span class="description"> - <?php _e( 'The event end date. Will use the date format specified in the above settings', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[end-custom]</code><span class="description"> - <?php _e( 'The event end date / time. Will use the format specified in the <code>format</code> attribute (possible attributes: <code>format</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[end-human]</code><span class="description"> - <?php _e( 'The difference between the end time of the event and the time now, in human-readable format (possible attributes: <code>precision</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[location]</code><span class="description"> - <?php _e( 'The event location (possible attributes: <code>html</code>, <code>markdown</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[maps-link]…[/maps-link]</code><span class="description"> - <?php _e( 'Anything between the opening and closing shortcode tags (inlcuding further shortcodes) will be linked to Google Maps, using the event location as a search parameter (possible attributes: <code>newwindow</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[description]</code><span class="description"> - <?php _e( 'The event description (possible attributes: <code>html</code>, <code>markdown</code>, <code>limit</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[link]…[/link]</code><span class="description"> - <?php _e( 'Anything between the opening and closing shortcode tags (inlcuding further shortcodes) will be linked to the Google Calendar page for the event (possible attributes: <code>newwindow</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[url]</code><span class="description"> - <?php _e( 'The raw URL to the Google Calendar page for the event', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[length]</code><span class="description"> - <?php _e( 'The length of the event, in human-readable format (possible attributes: <code>precision</code>)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[event-num]</code><span class="description"> - <?php _e( 'The position of the event in the current list, or the position of the event in the current month (for grids)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[event-id]</code><span class="description"> - <?php _e( 'The event UID (a unique identifier assigned to the event by Google)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
</ul>
|
||||
<h4><?php _e( 'Feed information shortcodes:', GCE_TEXT_DOMAIN ); ?></h4>
|
||||
<ul>
|
||||
<li><code>[feed-title]</code><span class="description"> - <?php _e( 'The title of the feed from which the event comes', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[feed-id]</code><span class="description"> - <?php _e( 'The ID of the feed from which the event comes', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[cal-id]</code><span class="description"> - <?php _e( 'The calendar ID (a unique identifier assigned to the calendar by Google)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
</ul>
|
||||
<h4><?php _e( 'Conditional shortcodes:', GCE_TEXT_DOMAIN ); ?></h4>
|
||||
<p class="description" style="margin-bottom:18px;"><?php _e( 'Anything entered between the opening and closing tags of each of the following shortcodes will only be displayed if its condition (below) is met.', GCE_TEXT_DOMAIN ); ?></p>
|
||||
<ul>
|
||||
<li><code>[if-all-day]…[/if-all-day]</code><span class="description"> - <?php _e( 'The event is an all-day event', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-not-all-day]…[/if-not-all-day]</code><span class="description"> - <?php _e( 'The event is not an all-day event', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-title]…[/if-title]</code><span class="description"> - <?php _e( 'The event has a title', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-description]…[/if-description]</code><span class="description"> - <?php _e( 'The event has a description', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-location]…[/if-location]</code><span class="description"> - <?php _e( 'The event has a location', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-tooltip]…[/if-tooltip]</code><span class="description"> - <?php _e( 'The event is to be displayed in a tooltip (not a list)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-list]…[/if-list]</code><span class="description"> - <?php _e( 'The event is to be displayed in a list (not a tooltip)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-now]…[/if-now]</code><span class="description"> - <?php _e( 'The event is taking place now (after the start time, but before the end time)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-not-now]…[/if-not-now]</code><span class="description"> - <?php _e( 'The event is not taking place now (may have ended or not yet started)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-started]…[/if-started]</code><span class="description"> - <?php _e( 'The event has started (even if it has also ended)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-not-started]…[/if-not-started]</code><span class="description"> - <?php _e( 'The event has not started', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-ended]…[/if-ended]</code><span class="description"> - <?php _e( 'The event has ended', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-not-ended]…[/if-not-ended]</code><span class="description"> - <?php _e( 'The event has not ended (even if it hasn\'t started)', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-first]…[/if-first]</code><span class="description"> - <?php _e( 'The event is the first of the day', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-not-first]…[/if-not-first]</code><span class="description"> - <?php _e( 'The event is not the first of the day', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-multi-day]…[/if-multi-day]</code><span class="description"> - <?php _e( 'The event spans multiple days', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>[if-single-day]…[/if-single-day]</code><span class="description"> - <?php _e( 'The event does not span multiple days', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
</ul>
|
||||
<h4><?php _e( 'Attributes:', GCE_TEXT_DOMAIN ); ?></h4>
|
||||
<p class="description" style="margin-bottom:18px;"><?php _e( 'The possible attributes mentioned above are explained here:', GCE_TEXT_DOMAIN ); ?></p>
|
||||
<ul>
|
||||
<li><code>html</code><span class="description"> - <?php _e( 'Whether or not to parse HTML that has been entered in the relevant field. Can be <code>true</code> or <code>false</code>', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>markdown</code><span class="description"> - <?php _e( 'Whether or not to parse <a href="http://daringfireball.net/projects/markdown" target="_blank">Markdown</a> that has been entered in the relevant field. <a href="http://michelf.com/projects/php-markdown" target="_blank">PHP Markdown</a> must be installed for this to work. Can be <code>true</code> or <code>false</code>', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>limit</code><span class="description"> - <?php _e( 'The word limit for the field. Should be specified as a positive integer', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>format</code><span class="description"> - <?php _e( 'The date / time format to use. Should specified as a <a href="http://php.net/manual/en/function.date.php" target="_blank">PHP date format</a> string', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>newwindow</code><span class="description"> - <?php _e( 'Whether or not the link should open in a new window / tab. Can be <code>true</code> or <code>false</code>', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>precision</code><span class="description"> - <?php _e( 'How precise to be when displaying a time difference in human-readable format. Should be specified as a positive integer', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>offset</code><span class="description"> - <?php _e( 'An offset (in seconds) to apply to start / end times before display. Should be specified as a (positive or negative) integer', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
<li><code>autolink</code><span class="description"> - <?php _e( 'Whether or not to automatically convert URLs in the description to links. Can be <code>true</code> or <code>false</code>', GCE_TEXT_DOMAIN ); ?></span></li>
|
||||
</ul>
|
||||
<?php
|
||||
}
|
||||
|
||||
//Simple display options
|
||||
function gce_edit_simple_display_main_text(){
|
||||
?>
|
||||
<p class="gce-simple-display-options"><?php _e('You can use some HTML in the text fields, but ensure it is valid or things might go wonky. Text fields can be empty too.', GCE_TEXT_DOMAIN); ?></p>
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_edit_display_start_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('Select how to display the start date / time.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<select name="gce_options[display_start]">
|
||||
<option value="none"<?php selected($options['display_start'], 'none'); ?>><?php _e('Don\'t display start time or date', GCE_TEXT_DOMAIN); ?></option>
|
||||
<option value="time"<?php selected($options['display_start'], 'time'); ?>><?php _e('Display start time', GCE_TEXT_DOMAIN); ?></option>
|
||||
<option value="date"<?php selected($options['display_start'], 'date'); ?>><?php _e('Display start date', GCE_TEXT_DOMAIN); ?></option>
|
||||
<option value="time-date"<?php selected($options['display_start'], 'time-date'); ?>><?php _e('Display start time and date (in that order)', GCE_TEXT_DOMAIN); ?></option>
|
||||
<option value="date-time"<?php selected($options['display_start'], 'date-time'); ?>><?php _e('Display start date and time (in that order)', GCE_TEXT_DOMAIN); ?></option>
|
||||
</select>
|
||||
<br /><br />
|
||||
<span class="description"><?php _e('Text to display before the start time.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_start_text]" value="<?php echo $options['display_start_text']; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_edit_display_end_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('Select how to display the end date / time.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<select name="gce_options[display_end]">
|
||||
<option value="none"<?php selected($options['display_end'], 'none'); ?>><?php _e('Don\'t display end time or date', GCE_TEXT_DOMAIN); ?></option>
|
||||
<option value="time"<?php selected($options['display_end'], 'time'); ?>><?php _e('Display end time', GCE_TEXT_DOMAIN); ?></option>
|
||||
<option value="date"<?php selected($options['display_end'], 'date'); ?>><?php _e('Display end date', GCE_TEXT_DOMAIN); ?></option>
|
||||
<option value="time-date"<?php selected($options['display_end'], 'time-date'); ?>><?php _e('Display end time and date (in that order)', GCE_TEXT_DOMAIN); ?></option>
|
||||
<option value="date-time"<?php selected($options['display_end'], 'date-time'); ?>><?php _e('Display end date and time (in that order)', GCE_TEXT_DOMAIN); ?></option>
|
||||
</select>
|
||||
<br /><br />
|
||||
<span class="description"><?php _e('Text to display before the end time.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_end_text]" value="<?php echo $options['display_end_text']; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_edit_display_separator_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<span class="description"><?php _e('If you have chosen to display both the time and date above, enter the text / characters to display between the time and date here (including any spaces).', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_separator]" value="<?php echo $options['display_separator']; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_edit_display_location_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<input type="checkbox" name="gce_options[display_location]"<?php checked($options['display_location'], 'on'); ?> value="on" />
|
||||
<span class="description"><?php _e('Show the location of events?', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br /><br />
|
||||
<span class="description"><?php _e('Text to display before the location.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_location_text]" value="<?php echo stripslashes(esc_html($options['display_location_text'])); ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_edit_display_desc_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<input type="checkbox" name="gce_options[display_desc]"<?php checked($options['display_desc'], 'on'); ?> value="on" />
|
||||
<span class="description"><?php _e('Show the description of events? (URLs in the description will be made into links).', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br /><br />
|
||||
<span class="description"><?php _e('Text to display before the description.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_desc_text]" value="<?php echo stripslashes(esc_html($options['display_desc_text'])); ?>" />
|
||||
<br /><br />
|
||||
<span class="description"><?php _e('Maximum number of words to show from description. Leave blank for no limit.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_desc_limit]" value="<?php echo $options['display_desc_limit']; ?>" size="3" />
|
||||
<?php
|
||||
}
|
||||
|
||||
function gce_edit_display_link_field(){
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<input type="checkbox" name="gce_options[display_link]"<?php checked($options['display_link'], 'on'); ?> value="on" />
|
||||
<span class="description"><?php _e('Show a link to the Google Calendar page for an event?', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="checkbox" name="gce_options[display_link_target]"<?php checked($options['display_link_target'], 'on'); ?> value="on" />
|
||||
<span class="description"><?php _e('Links open in a new window / tab?', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br /><br />
|
||||
<span class="description"><?php _e('The link text to be displayed.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_options[display_link_text]" value="<?php echo stripslashes(esc_html($options['display_link_text'])); ?>" />
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
@@ -1,120 +0,0 @@
|
||||
<div class="wrap">
|
||||
<h3><?php _e('Add a New Feed', GCE_TEXT_DOMAIN); ?></h3>
|
||||
|
||||
<a href="<?php echo admin_url('options-general.php?page=' . GCE_PLUGIN_NAME . '.php&action=add'); ?>" class="button-secondary" title="<?php _e('Click here to add a new feed', GCE_TEXT_DOMAIN); ?>"><?php _e('Add Feed', GCE_TEXT_DOMAIN); ?></a>
|
||||
|
||||
<br /><br />
|
||||
<h3><?php _e('Current Feeds', GCE_TEXT_DOMAIN); ?></h3>
|
||||
|
||||
<?php
|
||||
//Get saved feed options
|
||||
$options = get_option(GCE_OPTIONS_NAME);
|
||||
//If there are no saved feeds
|
||||
if(empty($options)){
|
||||
?>
|
||||
|
||||
<p><?php _e('You haven\'t added any Google Calendar feeds yet.', GCE_TEXT_DOMAIN); ?></p>
|
||||
|
||||
<?php //If there are saved feeds, display them ?>
|
||||
<?php }else{ ?>
|
||||
|
||||
<table class="widefat">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><?php _e('ID', GCE_TEXT_DOMAIN); ?></th>
|
||||
<th scope="col"><?php _e('Title', GCE_TEXT_DOMAIN); ?></th>
|
||||
<th scope="col"><?php _e('URL', GCE_TEXT_DOMAIN); ?></th>
|
||||
<th scope="col"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th scope="col"><?php _e('ID', GCE_TEXT_DOMAIN); ?></th>
|
||||
<th scope="col"><?php _e('Title', GCE_TEXT_DOMAIN); ?></th>
|
||||
<th scope="col"><?php _e('URL', GCE_TEXT_DOMAIN); ?></th>
|
||||
<th scope="col"></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
<tbody>
|
||||
<?php
|
||||
foreach($options as $key => $event){ ?>
|
||||
<tr>
|
||||
<td><?php echo $key; ?></td>
|
||||
<td><?php echo $event['title']; ?></td>
|
||||
<td><?php echo $event['url']; ?></td>
|
||||
<td align="right">
|
||||
<a href="<?php echo admin_url('options-general.php?page=' . GCE_PLUGIN_NAME . '.php&action=refresh&id=' . $key); ?>"><?php _e('Refresh', GCE_TEXT_DOMAIN); ?></a> | <a href="<?php echo admin_url('options-general.php?page=' . GCE_PLUGIN_NAME . '.php&action=edit&id=' . $key); ?>"><?php _e('Edit', GCE_TEXT_DOMAIN); ?></a> | <a href="<?php echo admin_url('options-general.php?page=' . GCE_PLUGIN_NAME . '.php&action=delete&id=' . $key); ?>"><?php _e('Delete', GCE_TEXT_DOMAIN); ?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
<?php }
|
||||
//Get saved general options
|
||||
$options = get_option(GCE_GENERAL_OPTIONS_NAME);
|
||||
?>
|
||||
|
||||
<br />
|
||||
<h3><?php _e('General Options', GCE_TEXT_DOMAIN); ?></h3>
|
||||
|
||||
<table class="form-table">
|
||||
<tr>
|
||||
<th scope="row"><?php _e('Custom stylesheet URL', GCE_TEXT_DOMAIN); ?></th>
|
||||
<td>
|
||||
<span class="description"><?php _e('If you want to alter the default plugin styling, create a new stylesheet on your server (not in the <code>google-calendar-events</code> directory) and then enter its URL below.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_general[stylesheet]" value="<?php echo $options['stylesheet']; ?>" size="100" />
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th scope="row"><?php _e('Add JavaScript to footer?', GCE_TEXT_DOMAIN); ?></th>
|
||||
<td>
|
||||
<span class="description"><?php _e('If you are having issues with tooltips not appearing or the AJAX functionality not working, try ticking the checkbox below.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="checkbox" name="gce_general[javascript]"<?php checked($options['javascript'], true); ?> value="on" />
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th scope="row"><?php _e('Loading text', GCE_TEXT_DOMAIN); ?></th>
|
||||
<td>
|
||||
<span class="description"><?php _e('Text to display while calendar data is loading (on AJAX requests).', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_general[loading]" value="<?php echo $options['loading']; ?>" />
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th scope="row"><?php _e('Error message', GCE_TEXT_DOMAIN); ?></th>
|
||||
<td>
|
||||
<span class="description"><?php _e('An error message to display to non-admin users if events cannot be displayed for any reason (admins will see a message indicating the cause of the problem).', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="text" name="gce_general[error]" value="<?php echo $options['error']; ?>" size="100" />
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th scope="row"><?php _e('Optimise event retrieval?', GCE_TEXT_DOMAIN); ?></th>
|
||||
<td>
|
||||
<span class="description"><?php _e('If this option is enabled, the plugin will use an experimental feature of the Google Data API, which can improve performance significantly, especially with large numbers of events. Google could potentially remove / change this feature at any time.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="checkbox" name="gce_general[fields]"<?php checked($options['fields'], true); ?> value="on" />
|
||||
</td>
|
||||
</tr><tr>
|
||||
<th scope="row"><?php _e('Use old styles?', GCE_TEXT_DOMAIN); ?></th>
|
||||
<td>
|
||||
<span class="description"><?php _e('Some CSS changes were made in version 0.7. If this option is enabled, the old CSS will still be added along with the main stylesheet. You should consider updating your stylesheet so that you don\'t need this enabled.', GCE_TEXT_DOMAIN); ?></span>
|
||||
<br />
|
||||
<input type="checkbox" name="gce_general[old_stylesheet]"<?php checked($options['old_stylesheet'], true); ?> value="on" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?php _e('Save settings on uninstall?', GCE_TEXT_DOMAIN); ?></th>
|
||||
<td>
|
||||
<span class="description"><?php _e( 'Normally when you uninstall your plugin your settings are removed also. Checking this option will save your settings even after an uninstall.', GCE_TEXT_DOMAIN ); ?></span>
|
||||
<br />
|
||||
<input type="checkbox" name="gce_general[save_settings]"<?php checked($options['save_settings'], true); ?> value="on" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br />
|
||||
|
||||
<input type="submit" class="button-primary" value="<?php _e('Save', GCE_TEXT_DOMAIN); ?>" />
|
||||
</div>
|
||||
@@ -1,40 +0,0 @@
|
||||
<?php
|
||||
//Redirect to the main plugin options page if form has been submitted
|
||||
if ( isset( $_GET['action'] ) ) {
|
||||
if ( 'refresh' == $_GET['action'] && isset( $_GET['updated'] ) ) {
|
||||
wp_redirect( admin_url( 'options-general.php?page=' . GCE_PLUGIN_NAME . '.php&updated=refreshed' ) );
|
||||
}
|
||||
}
|
||||
|
||||
add_settings_section( 'gce_refresh', __( 'Refresh Feed Cache', GCE_TEXT_DOMAIN ), 'gce_refresh_main_text', 'refresh_feed' );
|
||||
//Unique ID //Title //Function //Page //Section ID
|
||||
add_settings_field( 'gce_refresh_id_field', __( 'Feed ID', GCE_TEXT_DOMAIN ), 'gce_refresh_id_field', 'refresh_feed', 'gce_refresh' );
|
||||
add_settings_field( 'gce_refresh_title_field', __( 'Feed Title', GCE_TEXT_DOMAIN ), 'gce_refresh_title_field', 'refresh_feed', 'gce_refresh' );
|
||||
|
||||
//Main text
|
||||
function gce_refresh_main_text() {
|
||||
?>
|
||||
<p><?php _e( 'The plugin will automatically refresh the cache when it expires, but you can manually clear the cache now by clicking the button below.', GCE_TEXT_DOMAIN ); ?></p>
|
||||
<p><?php _e( 'Are you want you want to clear the cache data for this feed?', GCE_TEXT_DOMAIN ); ?></p>
|
||||
<?php
|
||||
}
|
||||
|
||||
//ID
|
||||
function gce_refresh_id_field() {
|
||||
$options = get_option( GCE_OPTIONS_NAME );
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<input type="text" disabled="disabled" value="<?php echo $options['id']; ?>" size="3" />
|
||||
<input type="hidden" name="gce_options[id]" value="<?php echo $options['id']; ?>" />
|
||||
<?php
|
||||
}
|
||||
|
||||
//Title
|
||||
function gce_refresh_title_field() {
|
||||
$options = get_option( GCE_OPTIONS_NAME );
|
||||
$options = $options[$_GET['id']];
|
||||
?>
|
||||
<input type="text" name="gce_options[title]" disabled="disabled" value="<?php echo $options['title']; ?>" size="50" />
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,158 @@
|
||||
<?php
|
||||
/**
|
||||
* Google Calendar Events Admin
|
||||
*
|
||||
* @package GCE Admin
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @link http://philderksen.com
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
|
||||
class Google_Calendar_Events_Admin {
|
||||
|
||||
/**
|
||||
* Instance of this class.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
protected static $instance = null;
|
||||
|
||||
protected $version = '';
|
||||
|
||||
/**
|
||||
* Slug of the plugin screen.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $plugin_screen_hook_suffix = null;
|
||||
|
||||
/**
|
||||
* Initialize the plugin by loading admin scripts & styles and adding a
|
||||
* settings page and menu.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
private function __construct() {
|
||||
|
||||
$plugin = Google_Calendar_Events::get_instance();
|
||||
$this->plugin_slug = $plugin->get_plugin_slug();
|
||||
|
||||
$this->version = $plugin->get_plugin_version();
|
||||
|
||||
add_filter( 'plugin_action_links_' . plugin_basename( plugin_dir_path( __FILE__ ) . $this->plugin_slug . '.php' ), array( $this, 'add_action_links' ) );
|
||||
|
||||
// Setup admin side constants
|
||||
add_action( 'init', array( $this, 'define_admin_constants' ) );
|
||||
|
||||
// Add admin styles
|
||||
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_styles' ) );
|
||||
|
||||
// Add admin scripts
|
||||
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
|
||||
|
||||
// Add the options page and menu item.
|
||||
add_action( 'admin_menu', array( $this, 'add_plugin_admin_menu' ), 2 );
|
||||
}
|
||||
|
||||
public function add_plugin_admin_menu() {
|
||||
// Add Help submenu page
|
||||
$this->plugin_screen_hook_suffix[] = add_submenu_page(
|
||||
'edit.php?post_type=gce_feed',
|
||||
__( 'General Settings', 'gce' ),
|
||||
__( 'General Settings', 'gce' ),
|
||||
'manage_options',
|
||||
$this->plugin_slug . '_general_settings',
|
||||
array( $this, 'display_admin_page' )
|
||||
);
|
||||
}
|
||||
|
||||
public function display_admin_page() {
|
||||
include_once( 'views/admin/admin.php' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue scripts for the admin area
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function enqueue_admin_scripts() {
|
||||
|
||||
wp_enqueue_script( 'jquery' );
|
||||
|
||||
wp_enqueue_script( 'jquery-ui-datepicker' );
|
||||
|
||||
wp_enqueue_script( 'gce-admin', plugins_url( 'js/admin.js', __FILE__ ), array( 'jquery' ), $this->version, true );
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue styles for the admin area
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function enqueue_admin_styles() {
|
||||
|
||||
wp_enqueue_style( 'jquery-ui-datepicker-css', plugins_url( 'css/jquery-ui-1.10.4.custom.min.css', __FILE__ ), array(), $this->version );
|
||||
|
||||
wp_enqueue_style( 'gce-admin', plugins_url( 'css/admin.css', __FILE__ ), array(), $this->version, 'all' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Define constants that will be used throughout admin specific code
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function define_admin_constants() {
|
||||
if( ! defined( 'GCE_DIR' ) ) {
|
||||
define( 'GCE_DIR', dirname( __FILE__ ) );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an instance of this class.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @return object A single instance of this class.
|
||||
*/
|
||||
public static function get_instance() {
|
||||
|
||||
// If the single instance hasn't been set, set it now.
|
||||
if ( null == self::$instance ) {
|
||||
self::$instance = new self;
|
||||
}
|
||||
|
||||
return self::$instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return plugin name
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function get_plugin_title() {
|
||||
return __( 'Google Calendar Events', 'gce' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Add settings action link to the plugins page.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function add_action_links( $links ) {
|
||||
|
||||
return array_merge(
|
||||
array(
|
||||
'feeds' => '<a href="' . admin_url( 'edit.php?post_type=gce_feed' ) . '">' . __( 'Feeds', 'gce' ) . '</a>'
|
||||
//'settings' => '<a href="' . admin_url( 'edit.php?post_type=gce_feed&page=google-calendar-events_general_settings' ) . '">' . __( 'Settings', 'gce' ) . '</a>',
|
||||
),
|
||||
$links
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,223 @@
|
||||
<?php
|
||||
/**
|
||||
* Google Calendar Events Main Class
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
|
||||
class Google_Calendar_Events {
|
||||
|
||||
/**
|
||||
* Plugin version, used for cache-busting of style and script file references.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $version = '2.0.1';
|
||||
|
||||
/**
|
||||
* Unique identifier for the plugin.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $plugin_slug = 'google-calendar-events';
|
||||
|
||||
/**
|
||||
* Instance of this class.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
protected static $instance = null;
|
||||
|
||||
/**
|
||||
* Initialize the plugin by setting localization and loading public scripts
|
||||
* and styles.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
private function __construct() {
|
||||
|
||||
$this->includes();
|
||||
|
||||
$old = get_option( 'gce_version' );
|
||||
|
||||
if( version_compare( $old, $this->version, '<' ) ) {
|
||||
delete_option( 'gce_upgrade_has_run' );
|
||||
}
|
||||
|
||||
if( false === get_option( 'gce_upgrade_has_run' ) ) {
|
||||
$this->upgrade();
|
||||
}
|
||||
|
||||
|
||||
$this->setup_constants();
|
||||
|
||||
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_public_scripts' ) );
|
||||
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_public_styles' ) );
|
||||
|
||||
// AJAX
|
||||
|
||||
|
||||
// Load plugin text domain
|
||||
add_action( 'plugins_loaded', array( $this, 'plugin_textdomain' ) );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the upgrade file
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
private function upgrade() {
|
||||
include_once( 'includes/admin/upgrade.php' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup public constants
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function setup_constants() {
|
||||
if( ! defined( 'GCE_DIR' ) ) {
|
||||
define( 'GCE_DIR', dirname( __FILE__ ) );
|
||||
}
|
||||
|
||||
if( ! defined( 'GCE_PLUGIN_SLUG' ) ) {
|
||||
define( 'GCE_PLUGIN_SLUG', $this->plugin_slug );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Include all necessary files
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public static function includes() {
|
||||
global $gce_options;
|
||||
|
||||
// First include common files between admin and public
|
||||
include_once( 'includes/misc-functions.php' );
|
||||
include_once( 'includes/gce-feed-cpt.php' );
|
||||
include_once( 'includes/class-gce-feed.php' );
|
||||
include_once( 'includes/class-gce-event.php' );
|
||||
include_once( 'includes/shortcodes.php' );
|
||||
include_once( 'includes/class-gce-display.php' );
|
||||
|
||||
include_once( 'views/widgets.php' );
|
||||
|
||||
// Now include files specifically for public or admin
|
||||
if( is_admin() ) {
|
||||
// Admin includes
|
||||
include_once( 'includes/admin/admin-functions.php' );
|
||||
} else {
|
||||
// Public includes
|
||||
}
|
||||
|
||||
// Setup our main settings options
|
||||
include_once( 'includes/register-settings.php' );
|
||||
|
||||
$gce_options = gce_get_settings();
|
||||
}
|
||||
|
||||
/**
|
||||
* Load public facing scripts
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function enqueue_public_scripts() {
|
||||
|
||||
wp_enqueue_script( $this->plugin_slug . '-qtip', plugins_url( 'js/jquery-qtip.js', __FILE__ ), array( 'jquery' ), $this->version, true );
|
||||
wp_enqueue_script( $this->plugin_slug . '-public', plugins_url( 'js/gce-script.js', __FILE__ ), array( 'jquery', $this->plugin_slug . '-qtip' ), $this->version, true );
|
||||
|
||||
wp_localize_script( $this->plugin_slug . '-public', 'gce',
|
||||
array(
|
||||
'ajaxurl' => admin_url( 'admin-ajax.php' )
|
||||
) );
|
||||
}
|
||||
|
||||
/*
|
||||
* Load public facing styles
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function enqueue_public_styles() {
|
||||
wp_enqueue_style( $this->plugin_slug . '-public', plugins_url( 'css/gce-style.css', __FILE__ ), array(), $this->version );
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the plugin slug.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @return Plugin version variable.
|
||||
*/
|
||||
public function get_plugin_slug() {
|
||||
return $this->plugin_slug;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the plugin version.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @return Plugin slug variable.
|
||||
*/
|
||||
public function get_plugin_version() {
|
||||
return $this->version;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an instance of this class.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @return object A single instance of this class.
|
||||
*/
|
||||
public static function get_instance() {
|
||||
|
||||
// If the single instance hasn't been set, set it now.
|
||||
if ( null == self::$instance ) {
|
||||
self::$instance = new self;
|
||||
}
|
||||
|
||||
return self::$instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the plugin text domain for translation.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function plugin_textdomain() {
|
||||
// Set filter for plugin's languages directory
|
||||
$gce_lang_dir = dirname( plugin_basename( GCE_MAIN_FILE ) ) . '/languages/';
|
||||
$gce_lang_dir = apply_filters( 'gce_languages_directory', $gce_lang_dir );
|
||||
|
||||
// Traditional WordPress plugin locale filter
|
||||
$locale = apply_filters( 'plugin_locale', get_locale(), 'gce' );
|
||||
$mofile = sprintf( '%1$s-%2$s.mo', 'gce', $locale );
|
||||
|
||||
// Setup paths to current locale file
|
||||
$mofile_local = $gce_lang_dir . $mofile;
|
||||
$mofile_global = WP_LANG_DIR . '/gce/' . $mofile;
|
||||
|
||||
if ( file_exists( $mofile_global ) ) {
|
||||
load_textdomain( 'gce', $mofile_global );
|
||||
} elseif ( file_exists( $mofile_local ) ) {
|
||||
load_textdomain( 'gce', $mofile_local );
|
||||
} else {
|
||||
// Load the default language files
|
||||
load_plugin_textdomain( 'gce', false, $gce_lang_dir );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
/**
|
||||
* Admin CSS file
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
.gce-meta-control {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.gce-meta-control label {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#gce-display-options-wrap .gce-meta-control label {
|
||||
font-weight: normal;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#gce-display-options-wrap .gce-meta-control p label {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#gce-display-options-wrap .gce-meta-control label#gce-simple-display-label {
|
||||
font-weight: bold;
|
||||
color: #cb4d4d;
|
||||
}
|
||||
|
||||
.gce-admin-hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#gce-display-options-wrap .gce-meta-control span.description {
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
#gce-display-options-wrap .gce-meta-control span.description p {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
#gce-admin-promo {
|
||||
background-color: #fcf8e3;
|
||||
border: 1px solid #faebbe;
|
||||
color: #8a6d3b;
|
||||
padding: 15px;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
.gce-page-grid .gce-calendar th{
|
||||
padding:0 !important;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar th abbr,
|
||||
.gce-widget-grid .gce-calendar th abbr{
|
||||
border-bottom:none !important;
|
||||
}
|
||||
|
||||
.gce-page-list .gce-list p{
|
||||
margin:0 !important;
|
||||
}
|
||||
|
||||
.gce-page-list .gce-list ul,
|
||||
.gce-widget-list .gce-list ul{
|
||||
margin:0 !important;
|
||||
padding:0 !important;
|
||||
}
|
||||
|
||||
.gce-event-info .gce-tooltip-title{
|
||||
margin:5px !important;
|
||||
}
|
||||
|
||||
.gce-event-info ul{
|
||||
padding:0 !important;
|
||||
margin:5px !important;
|
||||
list-style-type:none !important;
|
||||
}
|
||||
@@ -1,203 +1,222 @@
|
||||
/* PAGE GRID */
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-caption{ /* Caption at top of calendar */
|
||||
color:#333333;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar{ /* Main calendar table */
|
||||
width:100%;
|
||||
border-collapse:collapse;
|
||||
border:1px solid #CCCCCC;
|
||||
color:#CCCCCC;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar th{ /* Day headings (S, M etc.) */
|
||||
border:1px solid #CCCCCC;
|
||||
text-align:center;
|
||||
width:14.29%;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar td{ /* Day table cells */
|
||||
border:1px solid #CCCCCC;
|
||||
text-align:center;
|
||||
height:80px;
|
||||
vertical-align:middle;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-has-events{ /* Table cells with events */
|
||||
color:#333333;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-event-info{ /* Event information */
|
||||
display:none; /* Important! */
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-day-number{ /* Day number span */
|
||||
font-size:2em;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-today{ /* Table cell that represents today */
|
||||
background-color:#DDDDDD;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-next,
|
||||
.gce-page-grid .gce-calendar .gce-prev{ /* Previous and next month links */
|
||||
cursor:pointer;
|
||||
display:inline-block;
|
||||
width:3%;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-month-title{ /* Month title */
|
||||
display:inline-block;
|
||||
width:90%;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar th abbr{ /* Day letter abbreviation */
|
||||
border-bottom:none;
|
||||
}
|
||||
|
||||
/* PAGE LIST */
|
||||
|
||||
.gce-page-list .gce-list p{ /* Each piece of information in the list */
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.gce-page-list .gce-list p span,
|
||||
.gce-page-list .gce-list div span{ /* The text displayed before each piece of info, 'Starts:' for example */
|
||||
color:#999999;
|
||||
}
|
||||
|
||||
.gce-page-list .gce-list .gce-list-event{ /* The event title */
|
||||
background-color:#DDDDDD;
|
||||
}
|
||||
|
||||
.gce-page-list .gce-list .gce-list-title{ /* The title (not the same as event title) */
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.gce-page-list .gce-list ul{
|
||||
list-style-type:none;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
/* WIDGET GRID */
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-caption{
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar{ /* Main calendar table */
|
||||
width:100%;
|
||||
border:1px solid #CCCCCC;
|
||||
border-collapse:collapse;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar th{ /* Day headings (S, M etc.) */
|
||||
width:14.29%;
|
||||
border:1px solid #CCCCCC;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar td{ /* Day table cells */
|
||||
color:#CCCCCC;
|
||||
width:14.29%;
|
||||
border:1px solid #CCCCCC;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-has-events{ /* Table cells with events */
|
||||
cursor:pointer;
|
||||
color:#666666;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-today{ /* Table cell that represents today */
|
||||
background-color:#DDDDDD;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-event-info{ /* Event information */
|
||||
display:none; /* Important! */
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-next,
|
||||
.gce-widget-grid .gce-calendar .gce-prev{ /* Prev and next month links */
|
||||
cursor:pointer;
|
||||
display:inline-block;
|
||||
width:5%;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-month-title{ /* Month title in caption at top of table */
|
||||
display:inline-block;
|
||||
width:80%;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar th abbr{ /* Day name abbreviations */
|
||||
border-bottom:none;
|
||||
}
|
||||
|
||||
/* WIDGET LIST */
|
||||
|
||||
.gce-widget-list .gce-list p{ /* Each piece of information in the list */
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.gce-widget-list .gce-list p span,
|
||||
.gce-widget-list .gce-list div span{ /* The text displayed before each piece of info, 'Starts:' for example */
|
||||
color:#999999;
|
||||
}
|
||||
|
||||
.gce-widget-list .gce-list .gce-list-event{ /* The event title */
|
||||
background-color:#DDDDDD;
|
||||
}
|
||||
|
||||
.gce-widget-list .gce-list .gce-list-title{ /* The title (not the same as event title) */
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.gce-widget-list .gce-list ul{
|
||||
list-style-type:none;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
/* TOOLTIP */
|
||||
|
||||
.gce-event-info{ /* Tooltip container */
|
||||
background-color:#FFFFFF;
|
||||
border:1px solid #333333;
|
||||
max-width:300px;
|
||||
}
|
||||
|
||||
.gce-event-info .gce-tooltip-title{ /* 'Events on...' text */
|
||||
margin:5px;
|
||||
font-weight:bold;
|
||||
font-size:1.2em;
|
||||
}
|
||||
|
||||
.gce-event-info ul{ /* Events list */
|
||||
padding:0;
|
||||
margin:5px;
|
||||
list-style-type:none;
|
||||
}
|
||||
|
||||
.gce-event-info ul li{ /* Event list item */
|
||||
margin:10px 0 0 0;
|
||||
}
|
||||
|
||||
.gce-event-info ul li p{ /* Each piece of information */
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.gce-event-info ul li p span,
|
||||
.gce-event-info ul li div span{ /* The text displayed before each piece of info, 'Starts:' for example */
|
||||
color:#999999;
|
||||
}
|
||||
|
||||
.gce-event-info .gce-tooltip-event{ /* The event title */
|
||||
background-color:#DDDDDD;
|
||||
font-weight:bold;
|
||||
}
|
||||
/**
|
||||
* Public facing CSS file
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
/* PAGE GRID */
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-caption{ /* Caption at top of calendar */
|
||||
color:#333333;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar{ /* Main calendar table */
|
||||
width:100%;
|
||||
border-collapse:collapse;
|
||||
border:1px solid #CCCCCC;
|
||||
color:#CCCCCC;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar th{ /* Day headings (S, M etc.) */
|
||||
border:1px solid #CCCCCC;
|
||||
text-align:center;
|
||||
width:14.29%;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar td{ /* Day table cells */
|
||||
border:1px solid #CCCCCC;
|
||||
text-align:center;
|
||||
height:80px;
|
||||
vertical-align:middle;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-has-events{ /* Table cells with events */
|
||||
color:#333333;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-event-info{ /* Event information */
|
||||
display:none; /* Important! */
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-day-number{ /* Day number span */
|
||||
font-size:2em;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-today{ /* Table cell that represents today */
|
||||
background-color:#DDDDDD;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-next,
|
||||
.gce-page-grid .gce-calendar .gce-prev{ /* Previous and next month links */
|
||||
cursor:pointer;
|
||||
display:inline-block;
|
||||
width:5%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-prev{
|
||||
float: left;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar .gce-month-title{ /* Month title */
|
||||
display:inline-block;
|
||||
width:80%;
|
||||
}
|
||||
|
||||
.gce-page-grid .gce-calendar th abbr{ /* Day letter abbreviation */
|
||||
border-bottom:none;
|
||||
}
|
||||
|
||||
/* PAGE LIST */
|
||||
|
||||
.gce-page-list .gce-list p{ /* Each piece of information in the list */
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.gce-page-list .gce-list p span,
|
||||
.gce-page-list .gce-list div span{ /* The text displayed before each piece of info, 'Starts:' for example */
|
||||
color:#999999;
|
||||
}
|
||||
|
||||
.gce-page-list .gce-list .gce-list-event{ /* The event title */
|
||||
background-color:#DDDDDD;
|
||||
}
|
||||
|
||||
.gce-page-list .gce-list .gce-list-title{ /* The title (not the same as event title) */
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.gce-page-list .gce-list ul{
|
||||
list-style-type:none;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
/* WIDGET GRID */
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-caption{
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar{ /* Main calendar table */
|
||||
width:100%;
|
||||
border:1px solid #CCCCCC;
|
||||
border-collapse:collapse;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar th{ /* Day headings (S, M etc.) */
|
||||
width:14.29%;
|
||||
border:1px solid #CCCCCC;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar td{ /* Day table cells */
|
||||
color:#CCCCCC;
|
||||
width:14.29%;
|
||||
border:1px solid #CCCCCC;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-has-events{ /* Table cells with events */
|
||||
cursor:pointer;
|
||||
color:#666666;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-today{ /* Table cell that represents today */
|
||||
background-color:#DDDDDD;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-event-info{ /* Event information */
|
||||
display:none; /* Important! */
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-next,
|
||||
.gce-widget-grid .gce-calendar .gce-prev{ /* Prev and next month links */
|
||||
cursor:pointer;
|
||||
display:inline-block;
|
||||
width:5%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-prev{
|
||||
float: left;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar .gce-month-title{ /* Month title in caption at top of table */
|
||||
display:inline-block;
|
||||
width:80%;
|
||||
}
|
||||
|
||||
.gce-widget-grid .gce-calendar th abbr{ /* Day name abbreviations */
|
||||
border-bottom:none;
|
||||
}
|
||||
|
||||
/* WIDGET LIST */
|
||||
|
||||
.gce-widget-list .gce-list p{ /* Each piece of information in the list */
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.gce-widget-list .gce-list p span,
|
||||
.gce-widget-list .gce-list div span{ /* The text displayed before each piece of info, 'Starts:' for example */
|
||||
color:#999999;
|
||||
}
|
||||
|
||||
.gce-widget-list .gce-list .gce-list-event{ /* The event title */
|
||||
background-color:#DDDDDD;
|
||||
}
|
||||
|
||||
.gce-widget-list .gce-list .gce-list-title{ /* The title (not the same as event title) */
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.gce-widget-list .gce-list ul{
|
||||
list-style-type:none;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
/* TOOLTIP */
|
||||
|
||||
.gce-event-info{ /* Tooltip container */
|
||||
background-color:#FFFFFF;
|
||||
border:1px solid #333333;
|
||||
max-width:300px;
|
||||
}
|
||||
|
||||
.gce-event-info .gce-tooltip-title{ /* 'Events on...' text */
|
||||
margin:5px;
|
||||
font-weight:bold;
|
||||
font-size:1.2em;
|
||||
}
|
||||
|
||||
.gce-event-info ul{ /* Events list */
|
||||
padding:0;
|
||||
margin:5px;
|
||||
list-style-type:none;
|
||||
}
|
||||
|
||||
.gce-event-info ul li{ /* Event list item */
|
||||
margin:10px 0 0 0;
|
||||
}
|
||||
|
||||
.gce-event-info ul li p{ /* Each piece of information */
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.gce-event-info ul li p span,
|
||||
.gce-event-info ul li div span{ /* The text displayed before each piece of info, 'Starts:' for example */
|
||||
color:#999999;
|
||||
}
|
||||
|
||||
.gce-event-info .gce-tooltip-event{ /* The event title */
|
||||
background-color:#DDDDDD;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 212 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 335 B |
|
After Width: | Height: | Size: 207 B |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 332 B |
|
After Width: | Height: | Size: 280 B |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,7 @@
|
||||
/*! jQuery UI - v1.10.4 - 2014-05-14
|
||||
* http://jqueryui.com
|
||||
* Includes: jquery.ui.core.css, jquery.ui.datepicker.css, jquery.ui.theme.css
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
||||
* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
|
||||
|
||||
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hoverLine truncated
|
||||
@@ -1,719 +1,60 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Google Calendar Events
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @link http://philderksen.com
|
||||
* @copyright 2014 Phil Derksen
|
||||
*
|
||||
* @wordpress-plugin
|
||||
* Plugin Name: Google Calendar Events
|
||||
* Plugin URI: http://philderksen.com/google-calendar-events-version-2/
|
||||
* Description: Parses Google Calendar feeds and displays the events as a calendar grid or list on a page, post or widget.
|
||||
* Version: 0.7.3.1
|
||||
* Author: Phil Derksen
|
||||
* Author URI: http://philderksen.com
|
||||
* License: GPL-2.0+
|
||||
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
||||
*/
|
||||
|
||||
define( 'GCE_PLUGIN_NAME', str_replace( '.php', '', basename( __FILE__ ) ) );
|
||||
define( 'GCE_TEXT_DOMAIN', 'google-calendar-events' );
|
||||
define( 'GCE_OPTIONS_NAME', 'gce_options' );
|
||||
define( 'GCE_GENERAL_OPTIONS_NAME', 'gce_general' );
|
||||
define( 'GCE_VERSION', '0.7.3' );
|
||||
|
||||
if ( ! class_exists( 'Google_Calendar_Events' ) ) {
|
||||
class Google_Calendar_Events {
|
||||
function __construct() {
|
||||
|
||||
register_activation_hook( __FILE__, array( $this, 'activate_plugin' ) );
|
||||
|
||||
register_deactivation_hook( __FILE__, array( $this, 'deactivate_plugin' ) );
|
||||
|
||||
add_action( 'init', array( $this, 'init_plugin' ) );
|
||||
add_action( 'wp_ajax_gce_ajax', array( $this, 'gce_ajax' ) );
|
||||
add_action( 'wp_ajax_nopriv_gce_ajax', array( $this, 'gce_ajax' ) );
|
||||
add_action( 'widgets_init', array( $this, 'add_widget' ) );
|
||||
|
||||
//No point doing any of this if currently processing an AJAX request
|
||||
if ( ! defined( 'DOING_AJAX' ) || !DOING_AJAX ) {
|
||||
add_action( 'admin_menu', array( $this, 'setup_admin' ) );
|
||||
add_action( 'admin_init', array( $this, 'init_admin' ) );
|
||||
add_action( 'wp_enqueue_scripts', array( $this, 'add_styles' ) );
|
||||
add_action( 'wp_enqueue_scripts', array( $this, 'add_scripts' ) );
|
||||
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'add_settings_link' ) );
|
||||
add_shortcode( 'google-calendar-events', array( $this, 'shortcode_handler' ) );
|
||||
|
||||
if( false === get_option( 'gce_show_upgrade_notice' ) ) {
|
||||
add_action( 'admin_notices', array( $this, 'show_upgrade_notice' ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Show an upgrade warning notice to users for the 2.0.0 release
|
||||
function show_upgrade_notice() {
|
||||
|
||||
if ( ! empty( $_REQUEST['gce-dismiss-install-nag'] ) ) {
|
||||
add_option( 'gce_show_upgrade_notice', 1 );
|
||||
remove_action( 'admin_notices', array( $this, 'show_upgrade_notice' ) );
|
||||
return;
|
||||
}
|
||||
|
||||
include_once( 'inc/upgrade-notice.php' );
|
||||
}
|
||||
|
||||
function deactivate_plugin(){
|
||||
delete_option( 'gce_show_upgrade_notice' );
|
||||
}
|
||||
|
||||
//PHP 5.2 is required (json_decode), so if PHP version is lower then 5.2, display an error message and deactivate the plugin
|
||||
function activate_plugin(){
|
||||
if( version_compare( PHP_VERSION, '5.2', '<' ) ) {
|
||||
if( is_admin() && ( ! defined('DOING_AJAX') || ! DOING_AJAX ) ) {
|
||||
require_once ABSPATH . '/wp-admin/includes/plugin.php';
|
||||
deactivate_plugins( basename( __FILE__ ) );
|
||||
wp_die( 'Google Calendar Events requires the server on which your site resides to be running PHP 5.2 or higher. As of version 3.2, WordPress itself will also <a href="http://wordpress.org/news/2010/07/eol-for-php4-and-mysql4">have this requirement</a>. You should get in touch with your web hosting provider and ask them to update PHP.<br /><br /><a href="' . admin_url( 'plugins.php' ) . '">Back to Plugins</a>' );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//If any new options have been added between versions, this will update any saved feeds with defaults for new options (shouldn't overwrite anything saved)
|
||||
function update_settings() {
|
||||
//If there are some plugin options in the database, but no version info, then this must be an upgrade from version 0.5 or below, so add flag that will provide user with option to clear old transients
|
||||
if ( get_option( GCE_OPTIONS_NAME ) && ! get_option( 'gce_version' ) )
|
||||
add_option( 'gce_clear_old_transients', true );
|
||||
|
||||
add_option( 'gce_version', GCE_VERSION );
|
||||
|
||||
add_option( GCE_OPTIONS_NAME );
|
||||
add_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
|
||||
//Get feed options
|
||||
$options = get_option( GCE_OPTIONS_NAME );
|
||||
|
||||
if ( ! empty( $options ) ) {
|
||||
foreach ( $options as $key => $saved_feed_options ) {
|
||||
$defaults = array(
|
||||
'id' => 1,
|
||||
'title' => '',
|
||||
'url' => '',
|
||||
'retrieve_from' => 'today',
|
||||
'retrieve_from_value' => 0,
|
||||
'retrieve_until' => 'any',
|
||||
'retrieve_until_value' => 0,
|
||||
'max_events' => 25,
|
||||
'date_format' => '',
|
||||
'time_format' => '',
|
||||
'timezone' => 'default',
|
||||
'cache_duration' => 43200,
|
||||
'multiple_day' => 'false',
|
||||
'display_start' => 'time',
|
||||
'display_end' => 'time-date',
|
||||
'display_location' => '',
|
||||
'display_desc' => '',
|
||||
'display_link' => 'on',
|
||||
'display_start_text' => 'Starts:',
|
||||
'display_end_text' => 'Ends:',
|
||||
'display_location_text' => 'Location:',
|
||||
'display_desc_text' => 'Description:',
|
||||
'display_desc_limit' => '',
|
||||
'display_link_text' => 'More details',
|
||||
'display_link_target' => '',
|
||||
'display_separator' => ', ',
|
||||
'use_builder' => 'false',
|
||||
'builder' => ''
|
||||
);
|
||||
|
||||
//If necessary, copy saved behaviour of old show_past_events and day_limit options into the new from / until options
|
||||
if ( isset( $saved_feed_options['show_past_events'] ) ) {
|
||||
if ( 'true' == $saved_feed_options['show_past_events'] ) {
|
||||
$saved_feed_options['retrieve_from'] = 'month-start';
|
||||
} else {
|
||||
$saved_feed_options['retrieve_from'] = 'today';
|
||||
}
|
||||
}
|
||||
|
||||
if ( isset( $saved_feed_options['day_limit'] ) && '' != $saved_feed_options['day_limit'] ) {
|
||||
$saved_feed_options['retrieve_until'] = 'today';
|
||||
$saved_feed_options['retrieve_until_value'] = (int) $saved_feed_options['day_limit'] * 86400;
|
||||
}
|
||||
|
||||
//Update old display_start / display_end values
|
||||
if ( ! isset( $saved_feed_options['display_start'] ) )
|
||||
$saved_feed_options['display_start'] = 'none';
|
||||
elseif ( 'on' == $saved_feed_options['display_start'] )
|
||||
$saved_feed_options['display_start'] = 'time';
|
||||
|
||||
if( ! isset( $saved_feed_options['display_end'] ) )
|
||||
$saved_feed_options['display_end'] = 'none';
|
||||
elseif ( 'on' == $saved_feed_options['display_end'] )
|
||||
$saved_feed_options['display_end'] = 'time-date';
|
||||
|
||||
//Merge saved options with defaults
|
||||
foreach ( $saved_feed_options as $option_name => $option ) {
|
||||
$defaults[$option_name] = $saved_feed_options[$option_name];
|
||||
}
|
||||
|
||||
$options[$key] = $defaults;
|
||||
}
|
||||
}
|
||||
|
||||
//Save feed options
|
||||
update_option( GCE_OPTIONS_NAME, $options );
|
||||
|
||||
//Get general options
|
||||
$options = get_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
|
||||
$defaults = array(
|
||||
'stylesheet' => '',
|
||||
'javascript' => false,
|
||||
'loading' => 'Loading...',
|
||||
'error' => 'Events cannot currently be displayed, sorry! Please check back later.',
|
||||
'fields' => true,
|
||||
'old_stylesheet' => false,
|
||||
'save_settings' => true
|
||||
);
|
||||
|
||||
$old_stylesheet_option = get_option( 'gce_stylesheet' );
|
||||
|
||||
//If old custom stylesheet option was set, add it to general options, then delete old option
|
||||
if( false !== $old_stylesheet_option ) {
|
||||
$defaults['stylesheet'] = $old_stylesheet_option;
|
||||
delete_option( 'gce_stylesheet' );
|
||||
} elseif ( isset($options['stylesheet'] ) ) {
|
||||
$defaults['stylesheet'] = $options['stylesheet'];
|
||||
}
|
||||
|
||||
if ( isset($options['javascript'] ) )
|
||||
$defaults['javascript'] = $options['javascript'];
|
||||
|
||||
if ( isset( $options['loading'] ) )
|
||||
$defaults['loading'] = $options['loading'];
|
||||
|
||||
if ( isset($options['error'] ) )
|
||||
$defaults['error'] = $options['error'];
|
||||
|
||||
if ( isset($options['fields'] ) )
|
||||
$defaults['fields'] = $options['fields'];
|
||||
|
||||
if( isset( $options['old_stylesheet'] ) )
|
||||
$defaults['old_stylesheet'] = $options['old_stylesheet'];
|
||||
|
||||
if( isset( $options['save_settings'] ) )
|
||||
$defaults['save_settings'] = $options['save_settings'];
|
||||
|
||||
//Save general options
|
||||
update_option( GCE_GENERAL_OPTIONS_NAME, $defaults );
|
||||
}
|
||||
|
||||
function init_plugin() {
|
||||
//Load text domain for i18n
|
||||
load_plugin_textdomain( GCE_TEXT_DOMAIN, false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
|
||||
}
|
||||
|
||||
//Adds 'Settings' link to main WordPress Plugins page
|
||||
function add_settings_link( $links ) {
|
||||
array_unshift( $links, '<a href="options-general.php?page=google-calendar-events.php">' . __( 'Settings', GCE_TEXT_DOMAIN ) . '</a>' );
|
||||
return $links;
|
||||
}
|
||||
|
||||
//Setup admin settings page
|
||||
function setup_admin(){
|
||||
global $gce_settings_page;
|
||||
|
||||
$gce_settings_page = add_options_page( 'Google Calendar Events', 'Google Calendar Events', 'manage_options', basename( __FILE__ ), array( $this, 'admin_page' ) );
|
||||
|
||||
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
|
||||
}
|
||||
|
||||
//Add admin JavaScript (to GCE settings page only)
|
||||
function enqueue_admin_scripts( $hook_suffix ) {
|
||||
global $gce_settings_page;
|
||||
|
||||
if ( $gce_settings_page == $hook_suffix )
|
||||
wp_enqueue_script( 'gce_scripts', WP_PLUGIN_URL . '/' . GCE_PLUGIN_NAME . '/js/gce-admin-script.js', array( 'jquery' ) );
|
||||
}
|
||||
|
||||
//Prints admin settings page
|
||||
function admin_page() {
|
||||
?>
|
||||
<div class="wrap">
|
||||
<div id="icon-options-general" class="icon32"><br /></div>
|
||||
|
||||
<h2><?php _e( 'Google Calendar Events', GCE_TEXT_DOMAIN ); ?></h2>
|
||||
|
||||
<?php if ( get_option( 'gce_clear_old_transients' ) ): ?>
|
||||
<div class="error">
|
||||
<p><strong><?php _e( 'Notice:', GCE_TEXT_DOMAIN ); ?></strong> <?php _e( 'The way in which Google Calendar Events stores cached data has been much improved in version 0.6. As you have upgraded from a previous version of the plugin, there is likely to be some data from the old caching system hanging around in your database that is now useless. Click below to clear expired cached data from your database.', GCE_TEXT_DOMAIN); ?></p>
|
||||
<p><a href="<?php echo wp_nonce_url( add_query_arg( array( 'gce_action' => 'clear_old_transients' ) ), 'gce_action_clear_old_transients' ); ?>"><?php _e( 'Clear expired cached data', GCE_TEXT_DOMAIN ); ?></a></p>
|
||||
<p><?php _e( 'or', GCE_TEXT_DOMAIN ); ?></p>
|
||||
<p><a href="<?php echo wp_nonce_url( add_query_arg( array( 'gce_action' => 'ignore_old_transients' ) ), 'gce_action_ignore_old_transients' ); ?>"><?php _e( 'Ignore this notice', GCE_TEXT_DOMAIN ); ?></a></p>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<form method="post" action="options.php" id="test-form">
|
||||
<?php
|
||||
if ( isset( $_GET['action'] ) && ! isset( $_GET['settings-updated'] ) ) {
|
||||
switch ( $_GET['action'] ) {
|
||||
//Add feed section
|
||||
case 'add':
|
||||
settings_fields( 'gce_options' );
|
||||
do_settings_sections( 'add_feed' );
|
||||
do_settings_sections( 'add_display' );
|
||||
do_settings_sections( 'add_builder' );
|
||||
do_settings_sections( 'add_simple_display' );
|
||||
?><p class="submit"><input type="submit" class="button-primary submit" name="gce_options[submit_add]" value="<?php _e( 'Add Feed', GCE_TEXT_DOMAIN ); ?>" /></p>
|
||||
<p><a href="<?php echo admin_url( 'options-general.php?page=' . GCE_PLUGIN_NAME . '.php' ); ?>" class="button-secondary"><?php _e( 'Cancel', GCE_TEXT_DOMAIN ); ?></a></p><?php
|
||||
break;
|
||||
case 'refresh':
|
||||
settings_fields( 'gce_options' );
|
||||
do_settings_sections( 'refresh_feed' );
|
||||
?><p class="submit"><input type="submit" class="button-primary submit" name="gce_options[submit_refresh]" value="<?php _e( 'Refresh Feed', GCE_TEXT_DOMAIN ); ?>" /></p>
|
||||
<p><a href="<?php echo admin_url( 'options-general.php?page=' . GCE_PLUGIN_NAME . '.php' ); ?>" class="button-secondary"><?php _e( 'Cancel', GCE_TEXT_DOMAIN ); ?></a></p><?php
|
||||
break;
|
||||
//Edit feed section
|
||||
case 'edit':
|
||||
settings_fields( 'gce_options' );
|
||||
do_settings_sections( 'edit_feed' );
|
||||
do_settings_sections( 'edit_display' );
|
||||
do_settings_sections( 'edit_builder' );
|
||||
do_settings_sections( 'edit_simple_display' );
|
||||
?><p class="submit"><input type="submit" class="button-primary submit" name="gce_options[submit_edit]" value="<?php _e( 'Save Changes', GCE_TEXT_DOMAIN ); ?>" /></p>
|
||||
<p><a href="<?php echo admin_url( 'options-general.php?page=' . GCE_PLUGIN_NAME . '.php' ); ?>" class="button-secondary"><?php _e( 'Cancel', GCE_TEXT_DOMAIN ); ?></a></p><?php
|
||||
break;
|
||||
//Delete feed section
|
||||
case 'delete':
|
||||
settings_fields( 'gce_options' );
|
||||
do_settings_sections( 'delete_feed' );
|
||||
?><p class="submit"><input type="submit" class="button-primary submit" name="gce_options[submit_delete]" value="<?php _e( 'Delete Feed', GCE_TEXT_DOMAIN ); ?>" /></p>
|
||||
<p><a href="<?php echo admin_url( 'options-general.php?page=' . GCE_PLUGIN_NAME . '.php' ); ?>" class="button-secondary"><?php _e( 'Cancel', GCE_TEXT_DOMAIN ); ?></a></p><?php
|
||||
}
|
||||
}else{
|
||||
//Main admin section
|
||||
settings_fields( 'gce_general' );
|
||||
require_once 'admin/main.php';
|
||||
}
|
||||
?>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
//Initialize admin stuff
|
||||
function init_admin() {
|
||||
$version = get_option( 'gce_version' );
|
||||
|
||||
//If updating from before 0.7, set old_stylesheet option to true
|
||||
if ( false === $version || version_compare( $version, '0.7', '<' ) ) {
|
||||
$options = get_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
$options['old_stylesheet'] = true;
|
||||
}
|
||||
|
||||
//If updating from a previous version, update the settings
|
||||
if ( false === $version || version_compare( $version, GCE_VERSION, '<' ) )
|
||||
$this->update_settings();
|
||||
|
||||
//If the message about old transients was displayed, check authority and intention, and then either clear transients or clear flag
|
||||
if ( isset( $_GET['gce_action'] ) && current_user_can( 'manage_options' ) ) {
|
||||
switch ( $_GET['gce_action'] ) {
|
||||
case 'clear_old_transients':
|
||||
check_admin_referer( 'gce_action_clear_old_transients' );
|
||||
$this->clear_old_transients();
|
||||
add_settings_error( 'gce_options', 'gce_cleared_old_transients', __( 'Old cached data cleared.', GCE_TEXT_DOMAIN ), 'updated' );
|
||||
break;
|
||||
case 'ignore_old_transients':
|
||||
check_admin_referer( 'gce_action_ignore_old_transients' );
|
||||
delete_option( 'gce_clear_old_transients' );
|
||||
}
|
||||
}
|
||||
|
||||
register_setting( 'gce_options', 'gce_options', array( $this, 'validate_feed_options' ) );
|
||||
register_setting( 'gce_general', 'gce_general', array( $this, 'validate_general_options' ) );
|
||||
|
||||
require_once 'admin/add.php';
|
||||
require_once 'admin/edit.php';
|
||||
require_once 'admin/delete.php';
|
||||
require_once 'admin/refresh.php';
|
||||
}
|
||||
|
||||
//Clears any expired transients from the database
|
||||
function clear_old_transients() {
|
||||
global $wpdb;
|
||||
|
||||
//Retrieve names of all transients
|
||||
$transients = $wpdb->get_results( "SELECT option_name FROM $wpdb->options WHERE option_name LIKE '%transient%' AND option_name NOT LIKE '%transient_timeout%'" );
|
||||
|
||||
if ( ! empty( $transients ) ) {
|
||||
foreach ( $transients as $transient ) {
|
||||
//Attempt to retrieve the transient. If it has expired, it will be deleted
|
||||
get_transient( str_replace( '_transient_', '', $transient->option_name ) );
|
||||
}
|
||||
}
|
||||
|
||||
//Remove the flag
|
||||
delete_option( 'gce_clear_old_transients' );
|
||||
}
|
||||
|
||||
//Register the widget
|
||||
function add_widget() {
|
||||
require_once 'widget/gce-widget.php';
|
||||
return register_widget( 'GCE_Widget' );
|
||||
}
|
||||
|
||||
//Check / validate submitted feed options data before being stored
|
||||
function validate_feed_options( $input ) {
|
||||
//Get saved options
|
||||
$options = get_option( GCE_OPTIONS_NAME );
|
||||
|
||||
if ( isset( $input['submit_delete'] ) ) {
|
||||
//If delete button was clicked, delete feed from options array and remove associated transients
|
||||
unset( $options[$input['id']] );
|
||||
$this->delete_feed_transients( (int) $input['id'] );
|
||||
add_settings_error( 'gce_options', 'gce_deleted', __( sprintf('Feed %s deleted.', absint( $input['id'] ) ), GCE_TEXT_DOMAIN ), 'updated' );
|
||||
} elseif ( isset($input['submit_refresh'] ) ) {
|
||||
//If refresh button was clicked, delete transients associated with feed
|
||||
$this->delete_feed_transients( (int) $input['id'] );
|
||||
add_settings_error( 'gce_options', 'gce_refreshed', __( sprintf('Cached data for feed %s cleared.', absint( $input['id'] ) ), GCE_TEXT_DOMAIN ), 'updated' );
|
||||
} else {
|
||||
//Otherwise, validate options and add / update them
|
||||
|
||||
//Check id is positive integer
|
||||
$id = absint( $input['id'] );
|
||||
//Escape title text
|
||||
$title = esc_html( $input['title'] );
|
||||
//Escape feed url
|
||||
$url = esc_url( $input['url'] );
|
||||
|
||||
//Array of valid options for retrieve_from and retrieve_until settings
|
||||
$valid_retrieve_options = array( 'now', 'today', 'week', 'month-start', 'month-end', 'any', 'date' );
|
||||
|
||||
$retrieve_from = 'today';
|
||||
$retrieve_from_value = 0;
|
||||
|
||||
//Ensure retrieve_from is valid
|
||||
if( in_array( $input['retrieve_from'], $valid_retrieve_options ) ) {
|
||||
$retrieve_from = $input['retrieve_from'];
|
||||
$retrieve_from_value = (int) $input['retrieve_from_value'];
|
||||
}
|
||||
|
||||
$retrieve_until = 'any';
|
||||
$retrieve_until_value = 0;
|
||||
|
||||
//Ensure retrieve_until is valid
|
||||
if ( in_array( $input['retrieve_until'], $valid_retrieve_options ) ) {
|
||||
$retrieve_until = $input['retrieve_until'];
|
||||
$retrieve_until_value = (int) $input['retrieve_until_value'];
|
||||
}
|
||||
|
||||
//Check max events is a positive integer. If absint returns 0, reset to default (25)
|
||||
$max_events = ( 0 == absint($input['max_events'] ) ) ? 25 : absint( $input['max_events'] );
|
||||
|
||||
$date_format = wp_filter_kses( $input['date_format'] );
|
||||
$time_format = wp_filter_kses( $input['time_format'] );
|
||||
|
||||
//Escape timezone
|
||||
$timezone = esc_html( $input['timezone'] );
|
||||
|
||||
//Make sure cache duration is a positive integer or 0. If user has typed 0, leave as 0 but if 0 is returned from absint, set to default (43200)
|
||||
$cache_duration = $input['cache_duration'];
|
||||
if ( '0' != $cache_duration )
|
||||
$cache_duration = ( 0 == absint( $cache_duration ) ) ? 43200 : absint( $cache_duration );
|
||||
|
||||
$multiple_day = ( isset( $input['multiple_day'] ) ) ? 'true' : 'false';
|
||||
|
||||
$display_start = esc_html( $input['display_start'] );
|
||||
$display_end = esc_html( $input['display_end'] );
|
||||
|
||||
//Display options must be 'on' or null
|
||||
$display_location = ( isset( $input['display_location'] ) ) ? 'on' : null;
|
||||
$display_desc = ( isset( $input['display_desc'] ) ) ? 'on' : null;
|
||||
$display_link = ( isset( $input['display_link'] ) ) ? 'on' : null;
|
||||
$display_link_target = ( isset( $input['display_link_target'] ) ) ? 'on' : null;
|
||||
|
||||
//Filter display text
|
||||
$display_start_text = wp_filter_kses( $input['display_start_text'] );
|
||||
$display_end_text = wp_filter_kses( $input['display_end_text'] );
|
||||
$display_location_text = wp_filter_kses( $input['display_location_text'] );
|
||||
$display_desc_text = wp_filter_kses( $input['display_desc_text'] );
|
||||
$display_link_text = wp_filter_kses( $input['display_link_text'] );
|
||||
|
||||
$display_separator = wp_filter_kses( $input['display_separator'] );
|
||||
|
||||
$display_desc_limit = ( 0 == absint( $input['display_desc_limit'] ) ) ? '' : absint( $input['display_desc_limit'] );
|
||||
|
||||
$use_builder = ( 'false' == $input['use_builder'] ) ? 'false' : 'true';
|
||||
$builder = wp_kses_post( $input['builder'] );
|
||||
|
||||
//Fill options array with validated values
|
||||
$options[$id] = array(
|
||||
'id' => $id,
|
||||
'title' => $title,
|
||||
'url' => $url,
|
||||
'retrieve_from' => $retrieve_from,
|
||||
'retrieve_until' => $retrieve_until,
|
||||
'retrieve_from_value' => $retrieve_from_value,
|
||||
'retrieve_until_value' => $retrieve_until_value,
|
||||
'max_events' => $max_events,
|
||||
'date_format' => $date_format,
|
||||
'time_format' => $time_format,
|
||||
'timezone' => $timezone,
|
||||
'cache_duration' => $cache_duration,
|
||||
'multiple_day' => $multiple_day,
|
||||
'display_start' => $display_start,
|
||||
'display_end' => $display_end,
|
||||
'display_location' => $display_location,
|
||||
'display_desc' => $display_desc,
|
||||
'display_link' => $display_link,
|
||||
'display_start_text' => $display_start_text,
|
||||
'display_end_text' => $display_end_text,
|
||||
'display_location_text' => $display_location_text,
|
||||
'display_desc_text' => $display_desc_text,
|
||||
'display_desc_limit' => $display_desc_limit,
|
||||
'display_link_text' => $display_link_text,
|
||||
'display_link_target' => $display_link_target,
|
||||
'display_separator' => $display_separator,
|
||||
'use_builder' => $use_builder,
|
||||
'builder' => $builder
|
||||
);
|
||||
|
||||
if ( isset( $input['submit_add'] ) )
|
||||
add_settings_error( 'gce_options', 'gce_added', __( sprintf( 'Feed %s added.', absint( $input['id'] ) ), GCE_TEXT_DOMAIN ), 'updated' );
|
||||
else
|
||||
add_settings_error( 'gce_options', 'gce_edited', __( sprintf( 'Settings for feed %s updated.', absint( $input['id'] ) ), GCE_TEXT_DOMAIN ), 'updated' );
|
||||
}
|
||||
|
||||
return $options;
|
||||
}
|
||||
|
||||
//Validate submitted general options
|
||||
function validate_general_options( $input ) {
|
||||
$options = get_option(GCE_GENERAL_OPTIONS_NAME);
|
||||
|
||||
$options['stylesheet'] = esc_url( $input['stylesheet'] );
|
||||
$options['javascript'] = ( isset( $input['javascript'] ) ) ? true : false;
|
||||
$options['loading'] = esc_html( $input['loading'] );
|
||||
$options['error'] = wp_filter_kses( $input['error'] );
|
||||
$options['fields'] = ( isset( $input['fields'] ) ) ? true : false;
|
||||
$options['old_stylesheet'] = ( isset( $input['old_stylesheet'] ) ) ? true : false;
|
||||
$options['save_settings'] = ( isset( $input['save_settings'] ) ) ? true : false;
|
||||
|
||||
add_settings_error( 'gce_general', 'gce_general_updated', __( 'General options updated.', GCE_TEXT_DOMAIN ), 'updated' );
|
||||
|
||||
return $options;
|
||||
}
|
||||
|
||||
//Delete all transients (cached feed data) associated with feed specified
|
||||
function delete_feed_transients( $id ) {
|
||||
delete_transient( 'gce_feed_' . $id );
|
||||
delete_transient( 'gce_feed_' . $id . '_url' );
|
||||
}
|
||||
|
||||
//Handles the shortcode stuff
|
||||
function shortcode_handler( $atts ) {
|
||||
$options = get_option( GCE_OPTIONS_NAME );
|
||||
|
||||
//Check that any feeds have been added
|
||||
if ( is_array( $options ) && ! empty( $options ) ) {
|
||||
extract( shortcode_atts( array(
|
||||
'id' => '',
|
||||
'type' => 'grid',
|
||||
'title' => null,
|
||||
'max' => 0,
|
||||
'order' => 'asc'
|
||||
), $atts ) );
|
||||
|
||||
$no_feeds_exist = true;
|
||||
$feed_ids = array();
|
||||
|
||||
if ( '' != $id ) {
|
||||
//Break comma delimited list of feed ids into array
|
||||
$feed_ids = explode( ',', str_replace( ' ', '', $id ) );
|
||||
|
||||
//Check each id is an integer, if not, remove it from the array
|
||||
foreach ( $feed_ids as $key => $feed_id ) {
|
||||
if ( 0 == absint( $feed_id ) )
|
||||
unset( $feed_ids[$key] );
|
||||
}
|
||||
|
||||
//If at least one of the feed ids entered exists, set no_feeds_exist to false
|
||||
foreach ( $feed_ids as $feed_id ) {
|
||||
if ( isset($options[$feed_id] ) )
|
||||
$no_feeds_exist = false;
|
||||
}
|
||||
} else {
|
||||
foreach ( $options as $feed ) {
|
||||
$feed_ids[] = $feed['id'];
|
||||
}
|
||||
|
||||
$no_feeds_exist = false;
|
||||
}
|
||||
|
||||
//Ensure max events is a positive integer
|
||||
$max_events = absint( $max );
|
||||
|
||||
//Ensure sort order is asc or desc
|
||||
$sort_order = ( 'desc' == $order ) ? 'desc' : 'asc';
|
||||
|
||||
//Check that at least one valid feed id has been entered
|
||||
if ( empty( $feed_ids ) || $no_feeds_exist ) {
|
||||
return __( 'No valid Feed IDs have been entered for this shortcode. Please check that you have entered the IDs correctly and that the Feeds have not been deleted.', GCE_TEXT_DOMAIN );
|
||||
} else {
|
||||
//Turns feed_ids back into string of feed ids delimited by '-' ('1-2-3-4' for example)
|
||||
$feed_ids = implode( '-', $feed_ids );
|
||||
|
||||
//If title has been omitted from shortcode, set title_text to null, otherwise set to title (even if empty string)
|
||||
$title_text = ( false === $title ) ? null : $title;
|
||||
|
||||
switch ( $type ) {
|
||||
case 'grid':
|
||||
return gce_print_grid( $feed_ids, $title_text, $max_events );
|
||||
case 'ajax':
|
||||
return gce_print_grid( $feed_ids, $title_text, $max_events, true );
|
||||
case 'list':
|
||||
return gce_print_list( $feed_ids, $title_text, $max_events, $sort_order );
|
||||
case 'list-grouped':
|
||||
return gce_print_list( $feed_ids, $title_text, $max_events, $sort_order, true );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return __( 'No feeds have been added yet. You can add a feed in the Google Calendar Events settings.', GCE_TEXT_DOMAIN );
|
||||
}
|
||||
}
|
||||
|
||||
//Adds the required CSS
|
||||
function add_styles() {
|
||||
wp_enqueue_style( 'gce_styles', WP_PLUGIN_URL . '/' . GCE_PLUGIN_NAME . '/css/gce-style.css' );
|
||||
|
||||
$options = get_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
|
||||
//If old stylesheet option is enabled, enqueue old styles
|
||||
if ( $options['old_stylesheet'] )
|
||||
wp_enqueue_style( 'gce_old_styles', WP_PLUGIN_URL . '/' . GCE_PLUGIN_NAME . '/css/gce-old-style.css' );
|
||||
|
||||
//If user has entered a URL to a custom stylesheet, enqueue it too
|
||||
if( '' != $options['stylesheet'] )
|
||||
wp_enqueue_style( 'gce_custom_styles', $options['stylesheet'] );
|
||||
}
|
||||
|
||||
//Adds the required scripts
|
||||
function add_scripts() {
|
||||
$options = get_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
$add_to_footer = (bool) $options['javascript'];
|
||||
|
||||
wp_enqueue_script( 'jquery' );
|
||||
wp_enqueue_script( 'gce_jquery_qtip', WP_PLUGIN_URL . '/' . GCE_PLUGIN_NAME . '/js/jquery-qtip.js', array( 'jquery' ), null, $add_to_footer );
|
||||
wp_enqueue_script( 'gce_scripts', WP_PLUGIN_URL . '/' . GCE_PLUGIN_NAME . '/js/gce-script.js', array( 'jquery' ), null, $add_to_footer );
|
||||
wp_localize_script( 'gce_scripts', 'GoogleCalendarEvents', array(
|
||||
'ajaxurl' => admin_url( 'admin-ajax.php', is_ssl() ? 'https' : 'http' ),
|
||||
'loading' => $options['loading']
|
||||
) );
|
||||
}
|
||||
|
||||
//AJAX stuffs
|
||||
function gce_ajax() {
|
||||
if ( isset( $_GET['gce_feed_ids'] ) ) {
|
||||
$ids = $_GET['gce_feed_ids'];
|
||||
$title = $_GET['gce_title_text'];
|
||||
$max = $_GET['gce_max_events'];
|
||||
$month = $_GET['gce_month'];
|
||||
$year = $_GET['gce_year'];
|
||||
|
||||
$title = ( 'null' == $title ) ? null : $title;
|
||||
|
||||
if ( 'page' == $_GET['gce_type'] ) {
|
||||
//The page grid markup to be returned via AJAX
|
||||
echo gce_print_grid( $ids, $title, $max, true, $month, $year );
|
||||
} elseif ( 'widget' == $_GET['gce_type'] ) {
|
||||
$widget = esc_html( $_GET['gce_widget_id'] );
|
||||
|
||||
//The widget grid markup to be returned via AJAX
|
||||
gce_widget_content_grid( $ids, $title, $max, $widget, true, $month, $year );
|
||||
}
|
||||
}
|
||||
die();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function gce_print_list( $feed_ids, $title_text, $max_events, $sort_order, $grouped = false ) {
|
||||
require_once 'inc/gce-parser.php';
|
||||
|
||||
$ids = explode( '-', $feed_ids );
|
||||
|
||||
//Create new GCE_Parser object, passing array of feed id(s)
|
||||
$list = new GCE_Parser( $ids, $title_text, $max_events, $sort_order );
|
||||
|
||||
$num_errors = $list->get_num_errors();
|
||||
|
||||
//If there are less errors than feeds parsed, at least one feed must have parsed successfully so continue to display the list
|
||||
if ( $num_errors < count( $ids ) ) {
|
||||
$markup = '<div class="gce-page-list">' . $list->get_list( $grouped ) . '</div>';
|
||||
|
||||
//If there was at least one error, return the list markup with error messages (for admins only)
|
||||
if ( $num_errors > 0 && current_user_can( 'manage_options' ) )
|
||||
return $list->error_messages() . $markup;
|
||||
|
||||
//Otherwise just return the list markup
|
||||
return $markup;
|
||||
} else {
|
||||
//If current user is an admin, display an error message explaining problem(s). Otherwise, display a 'nice' error messsage
|
||||
if ( current_user_can( 'manage_options' ) ) {
|
||||
return $list->error_messages();
|
||||
} else {
|
||||
$options = get_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
return wp_kses_post( $options['error'] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function gce_print_grid( $feed_ids, $title_text, $max_events, $ajaxified = false, $month = null, $year = null ) {
|
||||
require_once 'inc/gce-parser.php';
|
||||
|
||||
$ids = explode( '-', $feed_ids );
|
||||
|
||||
//Create new GCE_Parser object, passing array of feed id(s) returned from gce_get_feed_ids()
|
||||
$grid = new GCE_Parser( $ids, $title_text, $max_events );
|
||||
|
||||
$num_errors = $grid->get_num_errors();
|
||||
|
||||
//If there are less errors than feeds parsed, at least one feed must have parsed successfully so continue to display the grid
|
||||
if ( $num_errors < count( $ids ) ) {
|
||||
$feed_ids = esc_attr( $feed_ids );
|
||||
$title_text = isset( $title_text ) ? esc_html( $title_text) : 'null';
|
||||
|
||||
$markup = '<div class="gce-page-grid" id="gce-page-grid-' . $feed_ids . '">';
|
||||
|
||||
//Add AJAX script if required
|
||||
if ( $ajaxified )
|
||||
$markup .= '<script type="text/javascript">jQuery(document).ready(function($){gce_ajaxify("gce-page-grid-' . $feed_ids . '", "' . $feed_ids . '", "' . absint( $max_events ) . '", "' . $title_text . '", "page");});</script>';
|
||||
|
||||
$markup .= $grid->get_grid( $year, $month, $ajaxified ) . '</div>';
|
||||
|
||||
//If there was at least one error, return the grid markup with an error message (for admins only)
|
||||
if ( $num_errors > 0 && current_user_can( 'manage_options' ) )
|
||||
return $grid->error_messages() . $markup;
|
||||
|
||||
//Otherwise just return the grid markup
|
||||
return $markup;
|
||||
} else {
|
||||
//If current user is an admin, display an error message explaining problem. Otherwise, display a 'nice' error messsage
|
||||
if ( current_user_can( 'manage_options' ) ) {
|
||||
return $grid->error_messages();
|
||||
} else {
|
||||
$options = get_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
return wp_kses_post( $options['error'] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$gce = new Google_Calendar_Events();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* Google Calendar Events
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @link http://philderksen.com
|
||||
* @copyright 2014 Phil Derksen
|
||||
*
|
||||
* @wordpress-plugin
|
||||
* Plugin Name: Google Calendar Events
|
||||
* Plugin URI: https://github.com/pderksen/WP-Google-Calendar-Events
|
||||
* Description: Parses Google Calendar feeds and displays the events as a calendar grid or list on a page, post or widget.
|
||||
* Version: 2.0.1
|
||||
* Author: Phil Derksen
|
||||
* Author URI: http://philderksen.com
|
||||
* License: GPL-2.0+
|
||||
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
||||
* Text Domain: gce
|
||||
* Domain Path: /languages
|
||||
*/
|
||||
|
||||
// If this file is called directly, abort.
|
||||
if ( ! defined( 'WPINC' ) ) {
|
||||
die;
|
||||
}
|
||||
|
||||
/*
|
||||
* Include the main plugin file
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
require_once( 'class-google-calendar-events.php' );
|
||||
|
||||
/**
|
||||
* Define constant pointing to this file
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
if( ! defined( 'GCE_MAIN_FILE' ) ) {
|
||||
define( 'GCE_MAIN_FILE', __FILE__ );
|
||||
}
|
||||
|
||||
/*
|
||||
* Get instance of our plugin
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
add_action( 'plugins_loaded', array( 'Google_Calendar_Events', 'get_instance' ) );
|
||||
|
||||
/*
|
||||
* If we are in admin then load the Admin class
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
if ( is_admin() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
|
||||
require_once( 'class-google-calendar-events-admin.php' );
|
||||
add_action( 'plugins_loaded', array( 'Google_Calendar_Events_Admin', 'get_instance' ) );
|
||||
}
|
||||
@@ -1,248 +0,0 @@
|
||||
<?php
|
||||
class GCE_Feed{
|
||||
private $feed_id = 1;
|
||||
private $feed_title = '';
|
||||
private $feed_url = '';
|
||||
private $max_events = 25;
|
||||
private $cache_duration = 43200;
|
||||
private $date_format = '';
|
||||
private $time_format = '';
|
||||
private $timezone = '';
|
||||
private $display_opts = array();
|
||||
private $multi_day = false;
|
||||
private $feed_start = 0;
|
||||
private $feed_end = 2145916800;
|
||||
private $use_builder = true;
|
||||
private $builder = '';
|
||||
private $events = array();
|
||||
private $error = false;
|
||||
|
||||
function init() {
|
||||
require_once 'gce-event.php';
|
||||
|
||||
//Break the feed URL up into its parts (scheme, host, path, query)
|
||||
$url_parts = parse_url( $this->feed_url );
|
||||
|
||||
$scheme_and_host = $url_parts['scheme'] . '://' . $url_parts['host'];
|
||||
|
||||
//Remove the exisitng projection from the path, and replace it with '/full-noattendees'
|
||||
$path = substr( $url_parts['path'], 0, strrpos( $url_parts['path'], '/' ) ) . '/full-noattendees';
|
||||
|
||||
//Add the default parameters to the querystring (retrieving JSON, not XML)
|
||||
$query = '?alt=json&singleevents=true&sortorder=ascending&orderby=starttime';
|
||||
|
||||
$gmt_offset = get_option( 'gmt_offset' ) * 3600;
|
||||
|
||||
//Append the feed specific parameters to the querystring
|
||||
$query .= '&start-min=' . date( 'Y-m-d\TH:i:s', $this->feed_start - $gmt_offset );
|
||||
$query .= '&start-max=' . date( 'Y-m-d\TH:i:s', $this->feed_end - $gmt_offset );
|
||||
$query .= '&max-results=' . $this->max_events;
|
||||
|
||||
if ( ! empty( $this->timezone ) )
|
||||
$query .= '&ctz=' . $this->timezone;
|
||||
|
||||
//If enabled, use experimental 'fields' parameter of Google Data API, so that only necessary data is retrieved. This *significantly* reduces amount of data to retrieve and process
|
||||
$general_options = get_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
if ( $general_options['fields'] )
|
||||
$query .= '&fields=entry(title,link[@rel="alternate"],content,gd:where,gd:when,gCal:uid)';
|
||||
|
||||
//Put the URL back together
|
||||
$url = $scheme_and_host . $path . $query;
|
||||
|
||||
//Attempt to retrieve the cached feed data
|
||||
$this->events = get_transient( 'gce_feed_' . $this->feed_id );
|
||||
|
||||
//If the cached feed data isn't valid any more (has expired), or the URL has changed (settings have changed), then the feed data needs to be retrieved and decoded again
|
||||
if ( false === $this->events || 0 == $this->cache_duration || get_transient( 'gce_feed_' . $this->feed_id . '_url' ) != $url ) {
|
||||
$this->events = array();
|
||||
|
||||
//Retrieve the feed data
|
||||
$raw_data = wp_remote_get( $url, array(
|
||||
'sslverify' => false, //sslverify is set to false to ensure https URLs work reliably. Data source is Google's servers, so is trustworthy
|
||||
'timeout' => 10 //Increase timeout from the default 5 seconds to ensure even large feeds are retrieved successfully
|
||||
) );
|
||||
|
||||
//If $raw_data is a WP_Error, something went wrong
|
||||
if ( ! is_wp_error( $raw_data ) ) {
|
||||
//If response code isn't 200, something went wrong
|
||||
if ( 200 == $raw_data['response']['code'] ) {
|
||||
//Attempt to convert the returned JSON into an array
|
||||
$raw_data = json_decode( $raw_data['body'], true );
|
||||
|
||||
//If decoding was successful
|
||||
if ( ! empty( $raw_data ) ) {
|
||||
//If there are some entries (events) to process
|
||||
if ( isset( $raw_data['feed']['entry'] ) ) {
|
||||
//Loop through each event, extracting the relevant information
|
||||
foreach ( $raw_data['feed']['entry'] as $event ) {
|
||||
$id = esc_html( substr( $event['gCal$uid']['value'], 0, strpos( $event['gCal$uid']['value'], '@' ) ) );
|
||||
$title = esc_html( $event['title']['$t'] );
|
||||
$description = esc_html( $event['content']['$t'] );
|
||||
$link = esc_url( $event['link'][0]['href'] );
|
||||
$location = esc_html( $event['gd$where'][0]['valueString'] );
|
||||
$start_time = $this->iso_to_ts( $event['gd$when'][0]['startTime'] );
|
||||
$end_time = $this->iso_to_ts( $event['gd$when'][0]['endTime'] );
|
||||
|
||||
//Create a GCE_Event using the above data. Add it to the array of events
|
||||
$this->events[] = new GCE_Event( $id, $title, $description, $location, $start_time, $end_time, $link );
|
||||
}
|
||||
}
|
||||
|
||||
if ( 0 != $this->cache_duration ) {
|
||||
//Cache the feed data
|
||||
set_transient( 'gce_feed_' . $this->feed_id, $this->events, $this->cache_duration );
|
||||
set_transient( 'gce_feed_' . $this->feed_id . '_url', $url, $this->cache_duration );
|
||||
}
|
||||
} else {
|
||||
//json_decode failed
|
||||
$this->error = __( 'Some data was retrieved, but could not be parsed successfully. Please ensure your feed URL is correct.', GCE_TEXT_DOMAIN );
|
||||
}
|
||||
} else {
|
||||
//The response code wasn't 200, so generate a helpful(ish) error message depending on error code
|
||||
switch ( $raw_data['response']['code'] ) {
|
||||
case 404:
|
||||
$this->error = __( 'The feed could not be found (404). Please ensure your feed URL is correct.', GCE_TEXT_DOMAIN );
|
||||
break;
|
||||
case 403:
|
||||
$this->error = __( 'Access to this feed was denied (403). Please ensure you have public sharing enabled for your calendar.', GCE_TEXT_DOMAIN );
|
||||
break;
|
||||
default:
|
||||
$this->error = sprintf( __( 'The feed data could not be retrieved. Error code: %s. Please ensure your feed URL is correct.', GCE_TEXT_DOMAIN ), $raw_data['response']['code'] );
|
||||
}
|
||||
}
|
||||
}else{
|
||||
//Generate an error message from the returned WP_Error
|
||||
$this->error = $raw_data->get_error_message() . ' Please ensure your feed URL is correct.';
|
||||
}
|
||||
}
|
||||
|
||||
//Makes sure each event knows it came from this feed
|
||||
foreach ( $this->events as $event ) {
|
||||
$event->set_feed( $this );
|
||||
}
|
||||
}
|
||||
|
||||
//Convert an ISO date/time to a UNIX timestamp
|
||||
function iso_to_ts( $iso ) {
|
||||
sscanf( $iso, "%u-%u-%uT%u:%u:%uZ", $year, $month, $day, $hour, $minute, $second );
|
||||
return mktime( $hour, $minute, $second, $month, $day, $year );
|
||||
}
|
||||
|
||||
//Return error message, or false if no error occurred
|
||||
function error() {
|
||||
return $this->error;
|
||||
}
|
||||
|
||||
//Setters
|
||||
|
||||
function set_feed_id( $v ) {
|
||||
$this->feed_id = $v;
|
||||
}
|
||||
|
||||
function set_feed_title( $v ) {
|
||||
$this->feed_title = $v;
|
||||
}
|
||||
|
||||
function set_feed_url( $v ) {
|
||||
$this->feed_url = $v;
|
||||
}
|
||||
|
||||
function set_max_events( $v ) {
|
||||
$this->max_events = $v;
|
||||
}
|
||||
|
||||
function set_cache_duration( $v ) {
|
||||
$this->cache_duration = $v;
|
||||
}
|
||||
|
||||
function set_date_format( $v ) {
|
||||
$this->date_format = $v;
|
||||
}
|
||||
|
||||
function set_time_format( $v ) {
|
||||
$this->time_format = $v;
|
||||
}
|
||||
|
||||
function set_timezone( $v ) {
|
||||
$this->timezone = $v;
|
||||
}
|
||||
|
||||
function set_display_options( $v ) {
|
||||
$this->display_opts = $v;
|
||||
}
|
||||
|
||||
function set_multi_day( $v ) {
|
||||
$this->multi_day = $v;
|
||||
}
|
||||
|
||||
function set_feed_start( $v ) {
|
||||
$this->feed_start = $v;
|
||||
}
|
||||
|
||||
function set_feed_end( $v ) {
|
||||
$this->feed_end = $v;
|
||||
}
|
||||
|
||||
function set_use_builder( $v ) {
|
||||
$this->use_builder = $v;
|
||||
}
|
||||
|
||||
function set_builder( $v ) {
|
||||
$this->builder = $v;
|
||||
}
|
||||
|
||||
//Getters
|
||||
|
||||
function get_events() {
|
||||
return $this->events;
|
||||
}
|
||||
|
||||
function get_feed_id() {
|
||||
return $this->feed_id;
|
||||
}
|
||||
|
||||
function get_feed_title() {
|
||||
return $this->feed_title;
|
||||
}
|
||||
|
||||
function get_feed_url() {
|
||||
return $this->feed_url;
|
||||
}
|
||||
|
||||
function get_date_format() {
|
||||
return $this->date_format;
|
||||
}
|
||||
|
||||
function get_time_format() {
|
||||
return $this->time_format;
|
||||
}
|
||||
|
||||
function get_display_options() {
|
||||
return $this->display_opts;
|
||||
}
|
||||
|
||||
function get_multi_day() {
|
||||
return $this->multi_day;
|
||||
}
|
||||
|
||||
function get_feed_start() {
|
||||
return $this->feed_start;
|
||||
}
|
||||
|
||||
function get_feed_end() {
|
||||
return $this->feed_end;
|
||||
}
|
||||
|
||||
function get_timezone() {
|
||||
return $this->timezone;
|
||||
}
|
||||
|
||||
function get_use_builder() {
|
||||
return $this->use_builder;
|
||||
}
|
||||
|
||||
function get_builder() {
|
||||
return $this->builder;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1,355 +0,0 @@
|
||||
<?php
|
||||
class GCE_Parser {
|
||||
private $feeds = array();
|
||||
private $merged_feed_data = array();
|
||||
private $errors = array();
|
||||
private $title = null;
|
||||
private $max_events_display = 0;
|
||||
private $start_of_week = 0;
|
||||
private $sort_order = 'asc';
|
||||
|
||||
function __construct( $feed_ids, $title_text = null, $max_events = 0, $sort_order = 'asc' ) {
|
||||
require_once 'gce-feed.php';
|
||||
|
||||
$this->title = $title_text;
|
||||
$this->max_events_display = $max_events;
|
||||
$this->sort_order = $sort_order;
|
||||
|
||||
//Get the feed options
|
||||
$options = get_option( GCE_OPTIONS_NAME );
|
||||
|
||||
$this->start_of_week = get_option( 'start_of_week' );
|
||||
|
||||
foreach ( $feed_ids as $single_feed ) {
|
||||
//Get the options for this particular feed
|
||||
if ( isset( $options[$single_feed] ) ) {
|
||||
$feed_options = $options[$single_feed];
|
||||
|
||||
$feed = new GCE_Feed();
|
||||
|
||||
$feed->set_feed_id( $feed_options['id'] );
|
||||
$feed->set_feed_title( $feed_options['title'] );
|
||||
$feed->set_feed_url( $feed_options['url'] );
|
||||
$feed->set_max_events( $feed_options['max_events'] );
|
||||
$feed->set_cache_duration( $feed_options['cache_duration'] );
|
||||
|
||||
//Set the timezone if anything other than default
|
||||
if ( 'default' != $feed_options['timezone'] )
|
||||
$feed->set_timezone( $feed_options['timezone'] );
|
||||
|
||||
//Set the start date to the appropriate value based on the retrieve_from option
|
||||
switch ( $feed_options['retrieve_from'] ) {
|
||||
//Don't just use time() for 'now', as this will effectively make cache duration 1 second. Instead set to previous minute. Events in Google Calendar cannot be set to precision of seconds anyway
|
||||
case 'now':
|
||||
$feed->set_feed_start( mktime( date( 'H' ), date( 'i' ), 0, date( 'm' ), date( 'j' ), date( 'Y' ) ) + $feed_options['retrieve_from_value'] );
|
||||
break;
|
||||
case 'today':
|
||||
$feed->set_feed_start( mktime( 0, 0, 0, date( 'm' ), date( 'j' ), date( 'Y' ) ) + $feed_options['retrieve_from_value'] );
|
||||
break;
|
||||
case 'week':
|
||||
$feed->set_feed_start( mktime( 0, 0, 0, date( 'm' ), ( date( 'j' ) - date( 'w' ) + $this->start_of_week ), date( 'Y' ) ) + $feed_options['retrieve_from_value'] );
|
||||
break;
|
||||
case 'month-start':
|
||||
$feed->set_feed_start( mktime( 0, 0, 0, date( 'm' ), 1, date( 'Y' ) ) + $feed_options['retrieve_from_value'] );
|
||||
break;
|
||||
case 'month-end':
|
||||
$feed->set_feed_start( mktime( 0, 0, 0, date( 'm' ) + 1, 1, date( 'Y' ) ) + $feed_options['retrieve_from_value'] );
|
||||
break;
|
||||
case 'date':
|
||||
$feed->set_feed_start( $feed_options['retrieve_from_value'] );
|
||||
break;
|
||||
default:
|
||||
$feed->set_feed_start( 0 ); //any - 1970-01-01 00:00
|
||||
}
|
||||
|
||||
//Set the end date to the appropriate value based on the retrieve_until option
|
||||
switch ( $feed_options['retrieve_until'] ) {
|
||||
case 'now':
|
||||
$feed->set_feed_end( mktime( date( 'H' ), date( 'i' ), 0, date( 'm' ), date( 'j' ), date( 'Y' ) ) + $feed_options['retrieve_until_value'] );
|
||||
break;
|
||||
case 'today':
|
||||
$feed->set_feed_end( mktime( 0, 0, 0, date( 'm' ), date( 'j' ), date( 'Y' ) ) + $feed_options['retrieve_until_value'] );
|
||||
break;
|
||||
case 'week':
|
||||
$feed->set_feed_end( mktime( 0, 0, 0, date( 'm' ), ( date( 'j' ) - date( 'w' ) + $this->start_of_week ), date( 'Y' ) ) + $feed_options['retrieve_until_value'] );
|
||||
break;
|
||||
case 'month-start':
|
||||
$feed->set_feed_end( mktime( 0, 0, 0, date( 'm' ), 1, date( 'Y' ) ) + $feed_options['retrieve_until_value'] );
|
||||
break;
|
||||
case 'month-end':
|
||||
$feed->set_feed_end( mktime( 0, 0, 0, date( 'm' ) + 1, 1, date( 'Y' ) ) + $feed_options['retrieve_until_value'] );
|
||||
break;
|
||||
case 'date':
|
||||
$feed->set_feed_end( $feed_options['retrieve_until_value'] );
|
||||
break;
|
||||
case 'any':
|
||||
$feed->set_feed_end( 2145916800 ); //any - 2038-01-01 00:00
|
||||
}
|
||||
|
||||
//Set date and time formats. If they have not been set by user, set to global WordPress formats
|
||||
$feed->set_date_format( ( empty( $feed_options['date_format'] ) ) ? get_option( 'date_format' ) : $feed_options['date_format'] );
|
||||
$feed->set_time_format( ( empty( $feed_options['time_format'] ) ) ? get_option( 'time_format' ) : $feed_options['time_format'] );
|
||||
//Set whether to handle multiple day events
|
||||
$feed->set_multi_day( ( 'true' == $feed_options['multiple_day'] ) ? true : false );
|
||||
|
||||
//Sets all display options
|
||||
$feed->set_display_options( array(
|
||||
'display_start' => $feed_options['display_start'],
|
||||
'display_end' => $feed_options['display_end'],
|
||||
'display_location' => $feed_options['display_location'],
|
||||
'display_desc' => $feed_options['display_desc'],
|
||||
'display_link' => $feed_options['display_link'],
|
||||
'display_start_text' => $feed_options['display_start_text'],
|
||||
'display_end_text' => $feed_options['display_end_text'],
|
||||
'display_location_text' => $feed_options['display_location_text'],
|
||||
'display_desc_text' => $feed_options['display_desc_text'],
|
||||
'display_desc_limit' => $feed_options['display_desc_limit'],
|
||||
'display_link_text' => $feed_options['display_link_text'],
|
||||
'display_link_target' => $feed_options['display_link_target'],
|
||||
'display_separator' => $feed_options['display_separator']
|
||||
) );
|
||||
|
||||
$feed->set_use_builder( ( 'true' == $feed_options['use_builder'] ) ? true : false );
|
||||
$feed->set_builder( $feed_options['builder'] );
|
||||
|
||||
//Parse the feed
|
||||
$feed->init();
|
||||
|
||||
//Add feed object to array of feeds
|
||||
$this->feeds[$single_feed] = $feed;
|
||||
}
|
||||
}
|
||||
|
||||
$this->merged_feed_data = array();
|
||||
|
||||
//Merge the feeds together into one array of events
|
||||
foreach ( $this->feeds as $feed_id => $feed ) {
|
||||
$errors_occurred = $feed->error();
|
||||
|
||||
if ( false === $errors_occurred )
|
||||
$this->merged_feed_data = array_merge( $this->merged_feed_data, $feed->get_events() );
|
||||
else
|
||||
$this->errors[$feed_id] = $errors_occurred;
|
||||
}
|
||||
|
||||
//Sort the items into date order
|
||||
if ( ! empty( $this->merged_feed_data ) )
|
||||
usort( $this->merged_feed_data, array( $this, 'compare' ) );
|
||||
}
|
||||
|
||||
//Comparison function for use when sorting merged feed data (with usort)
|
||||
function compare( $event1, $event2 ) {
|
||||
//Sort ascending or descending
|
||||
if ( 'asc' == $this->sort_order )
|
||||
return $event1->get_start_time() - $event2->get_start_time();
|
||||
|
||||
return $event2->get_start_time() - $event1->get_start_time();
|
||||
}
|
||||
|
||||
//Returns number of errors that have occurred
|
||||
function get_num_errors() {
|
||||
return count( $this->errors );
|
||||
}
|
||||
|
||||
//Outputs a message describing each error that has occurred
|
||||
function error_messages() {
|
||||
$message = '<p>' . __( '1 or more of your feeds could not be displayed. The following errors occurred:', GCE_TEXT_DOMAIN ) . '</p><ul>';
|
||||
|
||||
foreach ( $this->errors as $feed_id => $error ) {
|
||||
$message .= '<li><strong>' . sprintf( __( 'Feed %s:', GCE_TEXT_DOMAIN ), $feed_id ) . '</strong> ' . $error . '</li>';
|
||||
}
|
||||
|
||||
return $message . '</ul>';
|
||||
}
|
||||
|
||||
//Returns array of days with events, with sub-arrays of events for that day
|
||||
function get_event_days() {
|
||||
$event_days = array();
|
||||
|
||||
//Total number of events retrieved
|
||||
$count = count( $this->merged_feed_data );
|
||||
|
||||
//If maximum events to display is 0 (unlimited) set $max to 1, otherwise use maximum of events specified by user
|
||||
$max = ( 0 == $this->max_events_display ) ? 1 : $this->max_events_display;
|
||||
|
||||
//Loop through entire array of events, or until maximum number of events to be displayed has been reached
|
||||
for ( $i = 0; $i < $count && $max > 0; $i++ ) {
|
||||
$event = $this->merged_feed_data[$i];
|
||||
|
||||
//Check that event ends, or starts (or both) within the required date range. This prevents all-day events from before / after date range from showing up.
|
||||
if ( $event->get_end_time() > $event->get_feed()->get_feed_start() && $event->get_start_time() < $event->get_feed()->get_feed_end() ) {
|
||||
foreach ( $event->get_days() as $day ) {
|
||||
$event_days[$day][] = $event;
|
||||
}
|
||||
|
||||
//If maximum events to display isn't 0 (unlimited) decrement $max counter
|
||||
if ( 0 != $this->max_events_display )
|
||||
$max--;
|
||||
}
|
||||
}
|
||||
|
||||
return $event_days;
|
||||
}
|
||||
|
||||
//Returns grid markup
|
||||
function get_grid ( $year = null, $month = null, $ajaxified = false ) {
|
||||
require_once 'php-calendar.php';
|
||||
|
||||
$time_now = current_time( 'timestamp' );
|
||||
|
||||
//If year and month have not been passed as paramaters, use current month and year
|
||||
if( ! isset( $year ) )
|
||||
$year = date( 'Y', $time_now );
|
||||
|
||||
if( ! isset( $month ) )
|
||||
$month = date( 'm', $time_now );
|
||||
|
||||
//Get timestamps for the start and end of current month
|
||||
$current_month_start = mktime( 0, 0, 0, date( 'm', $time_now ), 1, date( 'Y', $time_now ) );
|
||||
$current_month_end = mktime( 0, 0, 0, date( 'm', $time_now ) + 1, 1, date( 'Y', $time_now ) );
|
||||
|
||||
//Get timestamps for the start and end of the month to be displayed in the grid
|
||||
$display_month_start = mktime( 0, 0, 0, $month, 1, $year );
|
||||
$display_month_end = mktime( 0, 0, 0, $month + 1, 1, $year );
|
||||
|
||||
//It should always be possible to navigate to the current month, even if it doesn't have any events
|
||||
//So, if the display month is before the current month, set $nav_next to true, otherwise false
|
||||
//If the display month is after the current month, set $nav_prev to true, otherwise false
|
||||
$nav_next = ( $display_month_start < $current_month_start );
|
||||
$nav_prev = ( $display_month_start >= $current_month_end );
|
||||
|
||||
//Get events data
|
||||
$event_days = $this->get_event_days();
|
||||
|
||||
//If event_days is empty, then there are no events in the feed(s), so set ajaxified to false (Prevents AJAX calendar from allowing to endlessly click through months with no events)
|
||||
if ( empty( $event_days ) )
|
||||
$ajaxified = false;
|
||||
|
||||
$today = mktime( 0, 0, 0, date( 'm', $time_now ), date( 'd', $time_now ), date( 'Y', $time_now ) );
|
||||
|
||||
$i = 1;
|
||||
|
||||
foreach ( $event_days as $key => $event_day ) {
|
||||
//If event day is in the month and year specified (by $month and $year)
|
||||
if ( $key >= $display_month_start && $key < $display_month_end ) {
|
||||
//Create array of CSS classes. Add gce-has-events
|
||||
$css_classes = array( 'gce-has-events' );
|
||||
|
||||
//Create markup for display
|
||||
$markup = '<div class="gce-event-info">';
|
||||
|
||||
//If title option has been set for display, add it
|
||||
if ( isset( $this->title ) )
|
||||
$markup .= '<div class="gce-tooltip-title">' . esc_html( $this->title ) . ' ' . date_i18n( $event_day[0]->get_feed()->get_date_format(), $key ) . '</div>';
|
||||
|
||||
$markup .= '<ul>';
|
||||
|
||||
foreach ( $event_day as $num_in_day => $event ) {
|
||||
$feed_id = absint( $event->get_feed()->get_feed_id() );
|
||||
$markup .= '<li class="gce-tooltip-feed-' . $feed_id . '">' . $event->get_event_markup( 'tooltip', $num_in_day, $i ) . '</li>';
|
||||
|
||||
//Add CSS class for the feed from which this event comes. If there are multiple events from the same feed on the same day, the CSS class will only be added once.
|
||||
$css_classes['feed-' . $feed_id] = 'gce-feed-' . $feed_id;
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
$markup .= '</ul></div>';
|
||||
|
||||
//If number of CSS classes is greater than 2 ('gce-has-events' plus one specific feed class) then there must be events from multiple feeds on this day, so add gce-multiple CSS class
|
||||
if ( count( $css_classes ) > 2 )
|
||||
$css_classes[] = 'gce-multiple';
|
||||
|
||||
//If event day is today, add gce-today CSS class, otherwise add past or future class
|
||||
if ( $key == $today )
|
||||
$css_classes[] = 'gce-today gce-today-has-events';
|
||||
elseif ( $key < $today )
|
||||
$css_classes[] = 'gce-day-past';
|
||||
else
|
||||
$css_classes[] = 'gce-day-future';
|
||||
|
||||
//Change array entry to array of link href, CSS classes, and markup for use in gce_generate_calendar (below)
|
||||
$event_days[$key] = array( null, implode( ' ', $css_classes ), $markup );
|
||||
} elseif ( $key < $display_month_start ) {
|
||||
//This day is before the display month, so set $nav_prev to true. Remove the day from $event_days, as it's no use for displaying this month
|
||||
$nav_prev = true;
|
||||
unset( $event_days[$key] );
|
||||
} else {
|
||||
//This day is after the display month, so set $nav_next to true. Remove the day from $event_days, as it's no use for displaying this month
|
||||
$nav_next = true;
|
||||
unset( $event_days[$key] );
|
||||
}
|
||||
}
|
||||
|
||||
//Ensures that gce-today CSS class is added even if there are no events for 'today'. A bit messy :(
|
||||
if ( ! isset( $event_days[$today] ) )
|
||||
$event_days[$today] = array( null, 'gce-today gce-today-no-events', null );
|
||||
|
||||
$pn = array();
|
||||
|
||||
//Only add previous / next functionality if AJAX grid is enabled
|
||||
if ( $ajaxified ) {
|
||||
//If there are events to display in a previous month, add previous month link
|
||||
$prev_key = ( $nav_prev ) ? '«' : ' ';
|
||||
$prev = ( $nav_prev ) ? date( 'm-Y', mktime( 0, 0, 0, $month - 1, 1, $year ) ) : null;
|
||||
|
||||
//If there are events to display in a future month, add next month link
|
||||
$next_key = ( $nav_next ) ? '»' : ' ';
|
||||
$next = ( $nav_next ) ? date( 'm-Y', mktime( 0, 0, 0, $month + 1, 1, $year ) ) : null;
|
||||
|
||||
//Array of previous and next link stuff for use in gce_generate_calendar (below)
|
||||
$pn = array( $prev_key => $prev, $next_key => $next );
|
||||
}
|
||||
|
||||
//Generate the calendar markup and return it
|
||||
return gce_generate_calendar( $year, $month, $event_days, 1, null, $this->start_of_week, $pn );
|
||||
}
|
||||
|
||||
function get_list( $grouped = false ) {
|
||||
$time_now = current_time( 'timestamp' );
|
||||
|
||||
$event_days = $this->get_event_days();
|
||||
|
||||
//If event_days is empty, there are no events in the feed(s), so return a message indicating this
|
||||
if( empty( $event_days) )
|
||||
return '<p>' . __( 'There are currently no events to display.', GCE_TEXT_DOMAIN ) . '</p>';
|
||||
|
||||
$today = mktime( 0, 0, 0, date( 'm', $time_now ), date( 'd', $time_now ), date( 'Y', $time_now ) );
|
||||
|
||||
$i = 1;
|
||||
|
||||
$markup = '<ul class="gce-list">';
|
||||
|
||||
foreach ( $event_days as $key => $event_day ) {
|
||||
//If this is a grouped list, add the date title and begin the nested list for this day
|
||||
if ( $grouped ) {
|
||||
$markup .=
|
||||
'<li' . ( ( $key == $today ) ? ' class="gce-today"' : '' ) . '>' .
|
||||
'<div class="gce-list-title">' . esc_html( $this->title ) . ' ' . date_i18n( $event_day[0]->get_feed()->get_date_format(), $key ) . '</div>' .
|
||||
'<ul>';
|
||||
}
|
||||
|
||||
foreach ( $event_day as $num_in_day => $event ) {
|
||||
//Create the markup for this event
|
||||
$markup .=
|
||||
'<li class="gce-feed-' . $event->get_feed()->get_feed_id() . '">' .
|
||||
//If this isn't a grouped list and a date title should be displayed, add the date title
|
||||
( ( ! $grouped && isset( $this->title ) ) ? '<div class="gce-list-title">' . esc_html( $this->title ) . ' ' . date_i18n( $event->get_feed()->get_date_format(), $key ) . '</div>' : '' ) .
|
||||
//Add the event markup
|
||||
$event->get_event_markup( 'list', $num_in_day, $i ) .
|
||||
'</li>';
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
//If this is a grouped list, close the nested list for this day
|
||||
if ( $grouped )
|
||||
$markup .= '</ul></li>';
|
||||
}
|
||||
|
||||
$markup .= '</ul>';
|
||||
|
||||
return $markup;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1,31 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Show notice after plugin install/activate in admin dashboard until user acknowledges.
|
||||
*
|
||||
* @package PIB
|
||||
* @subpackage Views
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
*/
|
||||
|
||||
// Exit if accessed directly.
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<style>
|
||||
#gce-install-notice .button-primary,
|
||||
#gce-install-notice .button-secondary {
|
||||
margin-left: 15px;
|
||||
line-height: 2;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="gce-install-notice" class="updated">
|
||||
<p>
|
||||
<?php _e( 'Major updates are coming to Google Calendar Events on August 23, 2014. ', 'gce' ); ?>
|
||||
<a href="http://philderksen.com/google-calendar-events-version-2/" target="_blank">Read more about the changes.</a>
|
||||
<a href="<?php echo add_query_arg( 'gce-dismiss-install-nag', 1 ); ?>" class="button-secondary"><?php _e( 'Hide this', 'gce' ); ?></a>
|
||||
</p>
|
||||
</div>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
/**
|
||||
* Admin helper functions
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
/**
|
||||
* Function to clear the cache out
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_clear_cache( $id ) {
|
||||
|
||||
delete_transient( 'gce_feed_' . $id );
|
||||
|
||||
add_settings_error( 'gce-notices', 'gce-cache-updated', __( 'Cache has been cleared for this feed.', 'gce' ), 'updated' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Function that runs when a new Feed CPT is made
|
||||
* Adds the default editor content for the event builder
|
||||
* Adds default post meta options
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
|
||||
function gce_default_editor_content( $content, $post ) {
|
||||
|
||||
if( $post->post_type == 'gce_feed' ) {
|
||||
$content = '<div class="gce-list-event gce-tooltip-event">[event-title]</div>' . "\n";
|
||||
$content .= '<div><span>Starts:</span> [start-time]</div>' . "\n";
|
||||
$content .= '<div><span>Ends:</span> [end-date] - [end-time]</div>' . "\n";
|
||||
$content .= '[if-location]<div><span>Location:</span> [location]</div>[/if-location]' . "\n";
|
||||
$content .= '[if-description]<div><span>Description:</span> [description]</div>[/if-description]' . "\n";
|
||||
$content .= '<div>[link newwindow="true"]More details...[/link]</div>' . "\n";
|
||||
|
||||
// Default Post Meta Options
|
||||
add_post_meta( $post->ID, 'gce_expand_recurring', 1 );
|
||||
add_post_meta( $post->ID, 'gce_retrieve_from', 'today' );
|
||||
add_post_meta( $post->ID, 'gce_retrieve_until', 'end_time' );
|
||||
add_post_meta( $post->ID, 'gce_cache', 43200 );
|
||||
|
||||
// Default Simple Display Options
|
||||
add_post_meta( $post->ID, 'gce_display_start', 'time' );
|
||||
add_post_meta( $post->ID, 'gce_display_start_text', 'Starts:' );
|
||||
add_post_meta( $post->ID, 'gce_display_end', 'time-date' );
|
||||
add_post_meta( $post->ID, 'gce_display_end_text', 'Ends:' );
|
||||
add_post_meta( $post->ID, 'gce_display_separator', ', ' );
|
||||
add_post_meta( $post->ID, 'gce_display_location_text', 'Location:' );
|
||||
add_post_meta( $post->ID, 'gce_display_description_text', 'Description:' );
|
||||
add_post_meta( $post->ID, 'gce_display_link', 1 );
|
||||
add_post_meta( $post->ID, 'gce_display_link_text', 'More Details' );
|
||||
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
add_filter( 'default_content', 'gce_default_editor_content', 10, 2 );
|
||||
@@ -0,0 +1,261 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Upgrade functions
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
// I put the priority to 20 here so it runs after the gce_feed CPT code and we don't get errors
|
||||
add_action( 'init', 'gce_upgrade', 20 );
|
||||
|
||||
/**
|
||||
* Main GCE Upgrade function. Call this and branch of from here depending on what we need to do
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_upgrade() {
|
||||
|
||||
$version = get_option( 'gce_version' );
|
||||
|
||||
if( ! empty( $version ) ) {
|
||||
// Check if under version 2 and run the v2 upgrade if we are
|
||||
if( version_compare( $version, '2.0.0-beta1', '<' ) && false === get_option( 'gce_upgrade_has_run' ) ) {
|
||||
gce_v2_upgrade();
|
||||
}
|
||||
}
|
||||
|
||||
$new_version = Google_Calendar_Events::get_instance()->get_plugin_version();
|
||||
update_option( 'gce_version', $new_version );
|
||||
|
||||
add_option( 'gce_upgrade_has_run', 1 );
|
||||
}
|
||||
|
||||
/*
|
||||
* Run the upgrade to version 2.0.0
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_v2_upgrade() {
|
||||
$old_options = get_option( 'gce_options' );
|
||||
|
||||
if( false !== $old_options ) {
|
||||
|
||||
foreach( $old_options as $key => $value ) {
|
||||
convert_to_cpt_posts( $value );
|
||||
}
|
||||
|
||||
update_widget_feed_ids();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the old database options to the new CPT layout for 2.0.0+
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function convert_to_cpt_posts( $args ) {
|
||||
// Setup our new post
|
||||
$post = array(
|
||||
'post_name' => $args['title'],
|
||||
'post_title' => $args['title'],
|
||||
'post_status' => 'publish',
|
||||
'post_type' => 'gce_feed'
|
||||
);
|
||||
|
||||
if( $args['use_builder'] == true ) {
|
||||
$post['post_content'] = $args['builder'];
|
||||
}
|
||||
|
||||
$post_id = wp_insert_post( $post );
|
||||
|
||||
create_cpt_meta( $post_id, $args );
|
||||
|
||||
clear_old_transients( $args['id'] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the CPT post meta based on options set for the old feeds prior to v2
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function create_cpt_meta( $id, $args ) {
|
||||
|
||||
// Convert the dropdown values to the new values for "Retrieve Events From"
|
||||
switch( $args['retrieve_from'] ) {
|
||||
case 'now':
|
||||
case 'today':
|
||||
$from = 'today';
|
||||
break;
|
||||
case 'week':
|
||||
$from = 'start_week';
|
||||
break;
|
||||
case 'month-start':
|
||||
$from = 'start_month';
|
||||
break;
|
||||
case 'month-end':
|
||||
$from = 'end_month';
|
||||
break;
|
||||
case 'date':
|
||||
$from = 'custom_date';
|
||||
break;
|
||||
default:
|
||||
$from = 'start_time';
|
||||
break;
|
||||
}
|
||||
|
||||
// Convert the dropdown values to the new values for "Retrieve Events Until"
|
||||
switch( $args['retrieve_until'] ) {
|
||||
case 'now':
|
||||
case 'today':
|
||||
$until = 'today';
|
||||
break;
|
||||
case 'week':
|
||||
$until = 'start_week';
|
||||
break;
|
||||
case 'month-start':
|
||||
$until = 'start_month';
|
||||
break;
|
||||
case 'month-end':
|
||||
$until = 'end_month';
|
||||
break;
|
||||
case 'date':
|
||||
$until = 'custom_date';
|
||||
break;
|
||||
default:
|
||||
$until = 'end_time';
|
||||
break;
|
||||
}
|
||||
|
||||
$gce_expand_recurring = ( isset( $args['expand_recurring'] ) ? ( $args['expand_recurring'] == 'true' ? '1' : '0' ) : '1' );
|
||||
|
||||
// An array to hold all of our post meta ids and values so that we can loop through and add as post meta easily
|
||||
$post_meta_fields = array(
|
||||
'gce_feed_url' => $args['url'],
|
||||
'gce_retrieve_from' => $from,
|
||||
'gce_retrieve_until' => $until,
|
||||
'gce_retrieve_max' => $args['max_events'],
|
||||
'gce_date_format' => $args['date_format'],
|
||||
'gce_time_format' => $args['time_format'],
|
||||
'gce_timezone_offset' => $args['timezone'],
|
||||
'gce_cache' => $args['cache_duration'],
|
||||
'gce_multi_day_events' => ( $args['multiple_day'] == 'true' || $args['multiple_day'] == true ? '1' : '0' ),
|
||||
'gce_display_mode' => 'grid',
|
||||
'gce_custom_from' => gce_convert_timestamp( $args['retrieve_from_value'] ),
|
||||
'gce_custom_until' => gce_convert_timestamp( $args['retrieve_until_value'] ),
|
||||
'old_gce_id' => $args['id'],
|
||||
'gce_search_query' => ( isset( $args['query'] ) ? $args['query'] : '' ),
|
||||
'gce_expand_recurring' => $gce_expand_recurring
|
||||
);
|
||||
|
||||
if( $args['use_builder'] == 'false' || $args['use_builder'] == false ) {
|
||||
$display_meta = array(
|
||||
'gce_display_simple' => 1,
|
||||
'gce_display_start' => $args['display_start'],
|
||||
'gce_display_start_text' => $args['display_start_text'],
|
||||
'gce_display_end' => $args['display_end'],
|
||||
'gce_display_end_text' => $args['display_end_text'],
|
||||
'gce_display_separator' => $args['display_separator'],
|
||||
'gce_display_location' => ( $args['display_location'] == 'on' ? '1' : '0' ),
|
||||
'gce_display_location_text' => $args['display_location_text'],
|
||||
'gce_display_description' => ( $args['display_desc'] == 'on' ? '1' : '0' ),
|
||||
'gce_display_description_text' => $args['display_desc_text'],
|
||||
'gce_display_description_max' => $args['display_desc_limit'],
|
||||
'gce_display_link' => ( $args['display_link'] == 'on' ? '1' : '0' ),
|
||||
'gce_display_link_tab' => ( $args['display_link_target'] == 'on' ? '1' : '0' ),
|
||||
'gce_display_link_text' => $args['display_link_text']
|
||||
);
|
||||
|
||||
$post_meta_fields = array_merge( $post_meta_fields, $display_meta );
|
||||
}
|
||||
|
||||
// Loop through each $post_meta_field and add as an entry
|
||||
foreach( $post_meta_fields as $k => $v ) {
|
||||
update_post_meta( $id, $k, $v );
|
||||
}
|
||||
}
|
||||
|
||||
function gce_convert_timestamp( $t ) {
|
||||
// mm/dd/yyyy
|
||||
return date( 'm/d/Y', $t );
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the old transient values from the database
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function clear_old_transients( $id ) {
|
||||
|
||||
delete_transient( 'gce_feed_' . $id );
|
||||
delete_transient( 'gce_feed_' . $id . '_url' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Update widget IDs
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function update_widget_feed_ids() {
|
||||
|
||||
$widget = get_option( 'widget_gce_widget' );
|
||||
|
||||
if( is_array( $widget ) && ! empty( $widget ) ) {
|
||||
foreach( $widget as $a => $b ) {
|
||||
if( ! is_array( $b ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach( $b as $k => $v ) {
|
||||
|
||||
if( $k != 'id' ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$id = $v;
|
||||
|
||||
$multi = str_replace( ' ', '', $v );
|
||||
|
||||
$multi = explode( ',', $id );
|
||||
|
||||
if( is_array( $multi ) ) {
|
||||
|
||||
$new_ids = '';
|
||||
|
||||
foreach( $multi as $m ) {
|
||||
$q = new WP_Query( "post_type=gce_feed&meta_key=old_gce_id&meta_value=$m&order=ASC" );
|
||||
|
||||
if( $q->have_posts() ) {
|
||||
|
||||
$q->the_post();
|
||||
// Set our ID to the old ID if found
|
||||
$m = get_the_ID();
|
||||
|
||||
$new_ids .= $m . ',';
|
||||
}
|
||||
}
|
||||
|
||||
$widget[$a][$k] = substr( $new_ids, 0, -1 );
|
||||
} else {
|
||||
|
||||
$q = new WP_Query( "post_type=gce_feed&meta_key=old_gce_id&meta_value=$id&order=ASC" );
|
||||
|
||||
if( $q->have_posts() ) {
|
||||
|
||||
$q->the_post();
|
||||
// Set our ID to the old ID if found
|
||||
$id = get_the_ID();
|
||||
}
|
||||
|
||||
$widget[$a][$k] = $id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
update_option( 'widget_gce_widget', $widget );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,259 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Class GCE_Display
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
class GCE_Display {
|
||||
|
||||
private $feeds, $merged_feeds;
|
||||
|
||||
public function __construct( $ids, $title_text = null, $max_events = 0, $sort_order = 'asc' ) {
|
||||
|
||||
$this->id = $ids;
|
||||
$this->title = $title_text;
|
||||
$this->max_events = $max_events;
|
||||
$this->sort = $sort_order;
|
||||
|
||||
foreach( $ids as $id ) {
|
||||
$this->feeds[$id] = new GCE_Feed( $id );
|
||||
}
|
||||
|
||||
$this->merged_feeds = array();
|
||||
|
||||
//Merge the feeds together into one array of events
|
||||
foreach ( $this->feeds as $feed_id => $feed ) {
|
||||
$this->merged_feeds = array_merge( $this->merged_feeds, $feed->events );
|
||||
}
|
||||
|
||||
// Sort the items into date order
|
||||
if ( ! empty( $this->merged_feeds ) ) {
|
||||
usort( $this->merged_feeds, array( $this, 'compare' ) );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Comparison function for use when sorting merged feed data (with usort)
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function compare( $event1, $event2 ) {
|
||||
//Sort ascending or descending
|
||||
if ( 'asc' == $this->sort )
|
||||
return $event1->start_time - $event2->start_time;
|
||||
|
||||
return $event2->start_time - $event1->start_time;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns array of days with events, with sub-arrays of events for that day
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
private function get_event_days() {
|
||||
$event_days = array();
|
||||
|
||||
//Total number of events retrieved
|
||||
$count = count( $this->merged_feeds );
|
||||
|
||||
//If maximum events to display is 0 (unlimited) set $max to 1, otherwise use maximum of events specified by user
|
||||
$max = ( 0 == $this->max_events ) ? 1 : $this->max_events;
|
||||
|
||||
//Loop through entire array of events, or until maximum number of events to be displayed has been reached
|
||||
for ( $i = 0; $i < $count && $max > 0; $i++ ) {
|
||||
$event = $this->merged_feeds[$i];
|
||||
|
||||
//Check that event ends, or starts (or both) within the required date range. This prevents all-day events from before / after date range from showing up.
|
||||
if ( $event->end_time > $event->start_time && $event->start_time < $event->end_time ) {
|
||||
foreach ( $event->get_days() as $day ) {
|
||||
$event_days[$day][] = $event;
|
||||
}
|
||||
|
||||
//If maximum events to display isn't 0 (unlimited) decrement $max counter
|
||||
if ( 0 != $this->max_events )
|
||||
$max--;
|
||||
}
|
||||
}
|
||||
|
||||
return $event_days;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the markup for the 'Grid' display
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function get_grid ( $year = null, $month = null, $widget = false ) {
|
||||
require_once 'php-calendar.php';
|
||||
|
||||
$time_now = current_time( 'timestamp' );
|
||||
|
||||
//If year and month have not been passed as paramaters, use current month and year
|
||||
if( ! isset( $year ) ) {
|
||||
$year = date( 'Y', $time_now );
|
||||
}
|
||||
|
||||
if( ! isset( $month ) ) {
|
||||
$month = date( 'm', $time_now );
|
||||
}
|
||||
|
||||
//Get timestamps for the start and end of current month
|
||||
$current_month_start = mktime( 0, 0, 0, date( 'm', $time_now ), 1, date( 'Y', $time_now ) );
|
||||
$current_month_end = mktime( 0, 0, 0, date( 'm', $time_now ) + 1, 1, date( 'Y', $time_now ) );
|
||||
|
||||
//Get timestamps for the start and end of the month to be displayed in the grid
|
||||
$display_month_start = mktime( 0, 0, 0, $month, 1, $year );
|
||||
$display_month_end = mktime( 0, 0, 0, $month + 1, 1, $year );
|
||||
|
||||
//It should always be possible to navigate to the current month, even if it doesn't have any events
|
||||
//So, if the display month is before the current month, set $nav_next to true, otherwise false
|
||||
//If the display month is after the current month, set $nav_prev to true, otherwise false
|
||||
$nav_next = ( $display_month_start < $current_month_start );
|
||||
$nav_prev = ( $display_month_start >= $current_month_end );
|
||||
|
||||
//Get events data
|
||||
$event_days = $this->get_event_days();
|
||||
|
||||
$today = mktime( 0, 0, 0, date( 'm', $time_now ), date( 'd', $time_now ), date( 'Y', $time_now ) );
|
||||
|
||||
$i = 1;
|
||||
|
||||
foreach ( $event_days as $key => $event_day ) {
|
||||
//If event day is in the month and year specified (by $month and $year)
|
||||
if ( $key >= $display_month_start && $key < $display_month_end ) {
|
||||
//Create array of CSS classes. Add gce-has-events
|
||||
$css_classes = array( 'gce-has-events' );
|
||||
|
||||
//Create markup for display
|
||||
$markup = '<div class="gce-event-info">';
|
||||
|
||||
//If title option has been set for display, add it
|
||||
if ( isset( $this->title ) ) {
|
||||
$markup .= '<div class="gce-tooltip-title">' . esc_html( $this->title ) . ' ' . date_i18n( $event_day[0]->feed->date_format, $key ) . '</div>';
|
||||
}
|
||||
|
||||
$markup .= '<ul>';
|
||||
|
||||
foreach ( $event_day as $num_in_day => $event ) {
|
||||
$feed_id = absint( $event->feed->id );
|
||||
$markup .= '<li class="gce-tooltip-feed-' . $feed_id . '">' . $event->get_event_markup( 'tooltip', $num_in_day, $i ) . '</li>';
|
||||
|
||||
//Add CSS class for the feed from which this event comes. If there are multiple events from the same feed on the same day, the CSS class will only be added once.
|
||||
$css_classes['feed-' . $feed_id] = 'gce-feed-' . $feed_id;
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
$markup .= '</ul></div>';
|
||||
|
||||
//If number of CSS classes is greater than 2 ('gce-has-events' plus one specific feed class) then there must be events from multiple feeds on this day, so add gce-multiple CSS class
|
||||
if ( count( $css_classes ) > 2 )
|
||||
$css_classes[] = 'gce-multiple';
|
||||
|
||||
//If event day is today, add gce-today CSS class, otherwise add past or future class
|
||||
if ( $key == $today ) {
|
||||
$css_classes[] = 'gce-today gce-today-has-events';
|
||||
} elseif ( $key < $today ) {
|
||||
$css_classes[] = 'gce-day-past';
|
||||
} else {
|
||||
$css_classes[] = 'gce-day-future';
|
||||
}
|
||||
|
||||
//Change array entry to array of link href, CSS classes, and markup for use in gce_generate_calendar (below)
|
||||
$event_days[$key] = array( null, implode( ' ', $css_classes ), $markup );
|
||||
} elseif ( $key < $display_month_start ) {
|
||||
//This day is before the display month, so set $nav_prev to true. Remove the day from $event_days, as it's no use for displaying this month
|
||||
$nav_prev = true;
|
||||
unset( $event_days[$key] );
|
||||
} else {
|
||||
//This day is after the display month, so set $nav_next to true. Remove the day from $event_days, as it's no use for displaying this month
|
||||
$nav_next = true;
|
||||
unset( $event_days[$key] );
|
||||
}
|
||||
}
|
||||
|
||||
//Ensures that gce-today CSS class is added even if there are no events for 'today'. A bit messy :(
|
||||
if ( ! isset( $event_days[$today] ) )
|
||||
$event_days[$today] = array( null, 'gce-today gce-today-no-events', null );
|
||||
|
||||
$pn = array();
|
||||
|
||||
// Add previous / next functionality
|
||||
//If there are events to display in a previous month, add previous month link
|
||||
$prev_key = ( $nav_prev ) ? '«' : ' ';
|
||||
$prev = ( $nav_prev ) ? date( 'm-Y', mktime( 0, 0, 0, $month - 1, 1, $year ) ) : null;
|
||||
|
||||
//If there are events to display in a future month, add next month link
|
||||
$next_key = ( $nav_next ) ? '»' : ' ';
|
||||
$next = ( $nav_next ) ? date( 'm-Y', mktime( 0, 0, 0, $month + 1, 1, $year ) ) : null;
|
||||
|
||||
//Array of previous and next link stuff for use in gce_generate_calendar (below)
|
||||
$pn = array( $prev_key => $prev, $next_key => $next );
|
||||
|
||||
|
||||
$start_day = get_option( 'start_of_week' );
|
||||
|
||||
//Generate the calendar markup and return it
|
||||
return gce_generate_calendar( $year, $month, $event_days, 1, null, $start_day, $pn, $widget );
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the markup for the 'List' display
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function get_list( $grouped = false ) {
|
||||
$time_now = current_time( 'timestamp' );
|
||||
|
||||
// Get all the event days
|
||||
$event_days = $this->get_event_days();
|
||||
|
||||
//If event_days is empty, there are no events in the feed(s), so return a message indicating this
|
||||
if( empty( $event_days) ) {
|
||||
return '<p>' . __( 'There are currently no events to display.', 'gce' ) . '</p>';
|
||||
}
|
||||
|
||||
$today = mktime( 0, 0, 0, date( 'm', $time_now ), date( 'd', $time_now ), date( 'Y', $time_now ) );
|
||||
|
||||
$i = 1;
|
||||
|
||||
$markup = '<ul class="gce-list">';
|
||||
|
||||
foreach ( $event_days as $key => $event_day ) {
|
||||
//If this is a grouped list, add the date title and begin the nested list for this day
|
||||
if ( $grouped ) {
|
||||
$markup .=
|
||||
'<li' . ( ( $key == $today ) ? ' class="gce-today"' : '' ) . '>' .
|
||||
'<div class="gce-list-title">' . date_i18n( $event_day[0]->feed->date_format, $key ) . '</div>' .
|
||||
'<ul>';
|
||||
}
|
||||
|
||||
foreach ( $event_day as $num_in_day => $event ) {
|
||||
//Create the markup for this event
|
||||
$markup .=
|
||||
'<li class="gce-feed-' . $event->feed->id . '">' .
|
||||
//If this isn't a grouped list and a date title should be displayed, add the date title
|
||||
( ( ! $grouped && isset( $event->title ) ) ? '<div class="gce-list-title">' . esc_html( $this->title ) . ' ' . date_i18n( $event->feed->date_format, $key ) . '</div>' : '' ) .
|
||||
//Add the event markup
|
||||
$event->get_event_markup( 'list', $num_in_day, $i ) .
|
||||
'</li>';
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
//If this is a grouped list, close the nested list for this day
|
||||
if ( $grouped ) {
|
||||
$markup .= '</ul></li>';
|
||||
}
|
||||
}
|
||||
|
||||
$markup .= '</ul>';
|
||||
|
||||
return $markup;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,273 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Class GCE_Feed
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
class GCE_Feed {
|
||||
|
||||
public $id,
|
||||
$feed_url,
|
||||
$start,
|
||||
$end,
|
||||
$max,
|
||||
$date_format,
|
||||
$time_format,
|
||||
$timezone_offset,
|
||||
$cache,
|
||||
$multiple_day_events,
|
||||
$display_url,
|
||||
$search_query,
|
||||
$expand_recurring,
|
||||
$title;
|
||||
|
||||
public $events = array();
|
||||
|
||||
/**
|
||||
* Class constructor
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function __construct( $id ) {
|
||||
// Set the ID
|
||||
$this->id = $id;
|
||||
|
||||
// Set up all other data based on the ID
|
||||
$this->setup_attributes();
|
||||
|
||||
// Now create the Feed
|
||||
$this->create_feed();
|
||||
|
||||
if( $this->cache > 0 ) {
|
||||
$this->cache_events();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the transient to cache the events
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
private function cache_events() {
|
||||
set_transient( 'gce_feed_' . $this->id, $this->events, $this->cache );
|
||||
}
|
||||
|
||||
/**
|
||||
* Set all of the feed attributes from the post meta options
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
private function setup_attributes() {
|
||||
$date_format = get_post_meta( $this->id, 'gce_date_format', true );
|
||||
$time_format = get_post_meta( $this->id, 'gce_time_format', true );
|
||||
|
||||
$this->feed_url = get_post_meta( $this->id, 'gce_feed_url', true );
|
||||
$this->start = $this->set_feed_length( get_post_meta( $this->id, 'gce_retrieve_from', true ), 'start' );
|
||||
$this->end = $this->set_feed_length( get_post_meta( $this->id, 'gce_retrieve_until', true ), 'end' );
|
||||
$this->max = get_post_meta( $this->id, 'gce_retrieve_max', true );
|
||||
$this->date_format = ( ! empty( $date_format ) ? $date_format : get_option( 'date_format' ) );
|
||||
$this->time_format = ( ! empty( $time_format ) ? $time_format : get_option( 'time_format' ) );
|
||||
$this->timezone_offset = get_post_meta( $this->id, 'gce_timezone_offset', true );
|
||||
$this->cache = get_post_meta( $this->id, 'gce_cache', true );
|
||||
$this->multiple_day_events = get_post_meta( $this->id, 'gce_multi_day_events', true );
|
||||
$this->search_query = get_post_meta( $this->id, 'gce_search_query', true );
|
||||
$this->expand_recurring = get_post_meta( $this->id, 'gce_expand_recurring', true );
|
||||
$this->title = get_the_title( $this->id );
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the feed URL
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
private function create_feed() {
|
||||
//Break the feed URL up into its parts (scheme, host, path, query)
|
||||
|
||||
if( empty( $this->feed_url ) ) {
|
||||
if( current_user_can( 'manage_options' ) ) {
|
||||
echo '<p>' . __( 'The feed URL has not been set. Please make sure to set it correctly in the Feed settings.', 'gce' ) . '</p>';
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$url_parts = parse_url( $this->feed_url );
|
||||
|
||||
$scheme = ( is_ssl() ? 'https://' : 'http://' );
|
||||
|
||||
$scheme_and_host = $scheme . $url_parts['host'];
|
||||
|
||||
//Remove the exisitng projection from the path, and replace it with '/full-noattendees'
|
||||
$path = substr( $url_parts['path'], 0, strrpos( $url_parts['path'], '/' ) ) . '/full-noattendees';
|
||||
|
||||
//Add the default parameters to the querystring (retrieving JSON, not XML)
|
||||
$query = '?alt=json&singleevents=true&sortorder=ascending&orderby=starttime';
|
||||
|
||||
$gmt_offset = $this->timezone_offset * 3600;
|
||||
|
||||
//Append the feed specific parameters to the querystring
|
||||
$query .= '&start-min=' . date( 'Y-m-d\TH:i:s', $this->start - $gmt_offset );
|
||||
$query .= '&start-max=' . date( 'Y-m-d\TH:i:s', $this->end - $gmt_offset );
|
||||
$query .= '&max-results=' . $this->max;
|
||||
|
||||
// Set the timezone offset
|
||||
if ( ! empty( $this->timezone_offset ) && $this->timezone_offset != 'default' ) {
|
||||
$query .= '&ctz=' . $this->timezone_offset;
|
||||
}
|
||||
|
||||
if ( ! empty( $this->search_query ) ) {
|
||||
$query .= '&q=' . rawurlencode( $this->search_query );
|
||||
}
|
||||
|
||||
if ( $this->expand_recurring ) {
|
||||
$query .= '&singleevents=true';
|
||||
}
|
||||
|
||||
//Put the URL back together
|
||||
$this->display_url = $scheme_and_host . $path . $query;
|
||||
|
||||
// Get all the feed data
|
||||
$this->get_feed_data( $this->display_url );
|
||||
}
|
||||
|
||||
/**
|
||||
* Make remote call to get the feed data
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
private function get_feed_data( $url ) {
|
||||
$raw_data = wp_remote_get( $url, array(
|
||||
'sslverify' => false, //sslverify is set to false to ensure https URLs work reliably. Data source is Google's servers, so is trustworthy
|
||||
'timeout' => 10 //Increase timeout from the default 5 seconds to ensure even large feeds are retrieved successfully
|
||||
) );
|
||||
|
||||
// First check for transient data to use
|
||||
if( false !== get_transient( 'gce_feed_' . $this->id ) ) {
|
||||
$this->events = get_transient( 'gce_feed_' . $this->id );
|
||||
} else {
|
||||
//If $raw_data is a WP_Error, something went wrong
|
||||
if ( ! is_wp_error( $raw_data ) ) {
|
||||
//If response code isn't 200, something went wrong
|
||||
if ( 200 == $raw_data['response']['code'] ) {
|
||||
//Attempt to convert the returned JSON into an array
|
||||
$raw_data = json_decode( $raw_data['body'], true );
|
||||
|
||||
//If decoding was successful
|
||||
if ( ! empty( $raw_data ) ) {
|
||||
//If there are some entries (events) to process
|
||||
if ( isset( $raw_data['feed']['entry'] ) ) {
|
||||
//Loop through each event, extracting the relevant information
|
||||
foreach ( $raw_data['feed']['entry'] as $event ) {
|
||||
$id = ( isset( $event['gCal$uid']['value'] ) ? esc_html( substr( $event['gCal$uid']['value'], 0, strpos( $event['gCal$uid']['value'], '@' ) ) ) : '' );
|
||||
$title = ( isset( $event['title']['$t'] ) ? esc_html( $event['title']['$t'] ) : '' );
|
||||
$description = ( isset( $event['content']['$t'] ) ? esc_html( $event['content']['$t'] ) : '' );
|
||||
$link = ( isset( $event['link'][0]['href'] ) ? esc_url( $event['link'][0]['href'] ) : '' );
|
||||
$location = ( isset( $event['gd$where'][0]['valueString'] ) ? esc_html( $event['gd$where'][0]['valueString'] ) : '' );
|
||||
$start_time = ( isset( $event['gd$when'][0]['startTime'] ) ? $this->iso_to_ts( $event['gd$when'][0]['startTime'] ) : '' );
|
||||
$end_time = ( isset( $event['gd$when'][0]['endTime'] ) ? $this->iso_to_ts( $event['gd$when'][0]['endTime'] ) : '' );
|
||||
|
||||
//Create a GCE_Event using the above data. Add it to the array of events
|
||||
$this->events[] = new GCE_Event( $this, $id, $title, $description, $location, $start_time, $end_time, $link );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//json_decode failed
|
||||
$this->error = __( 'Some data was retrieved, but could not be parsed successfully. Please ensure your feed URL is correct.', 'gce' );
|
||||
}
|
||||
} else {
|
||||
//The response code wasn't 200, so generate a helpful(ish) error message depending on error code
|
||||
switch ( $raw_data['response']['code'] ) {
|
||||
case 404:
|
||||
$this->error = __( 'The feed could not be found (404). Please ensure your feed URL is correct.', 'gce' );
|
||||
break;
|
||||
case 403:
|
||||
$this->error = __( 'Access to this feed was denied (403). Please ensure you have public sharing enabled for your calendar.', 'gce' );
|
||||
break;
|
||||
default:
|
||||
$this->error = sprintf( __( 'The feed data could not be retrieved. Error code: %s. Please ensure your feed URL is correct.', 'gce' ), $raw_data['response']['code'] );
|
||||
}
|
||||
}
|
||||
}else{
|
||||
//Generate an error message from the returned WP_Error
|
||||
$this->error = $raw_data->get_error_message() . __( ' Please ensure your feed URL is correct.', 'gce' );
|
||||
}
|
||||
}
|
||||
|
||||
if( ! empty( $this->error ) ) {
|
||||
if( current_user_can( 'manage_options' ) ) {
|
||||
echo $this->error;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert an ISO date/time to a UNIX timestamp
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
private function iso_to_ts( $iso ) {
|
||||
sscanf( $iso, "%u-%u-%uT%u:%u:%uZ", $year, $month, $day, $hour, $minute, $second );
|
||||
return mktime( $hour, $minute, $second, $month, $day, $year );
|
||||
}
|
||||
|
||||
/**
|
||||
* Return feed start/end
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
private function set_feed_length( $value, $type ) {
|
||||
// All times start at 00:00
|
||||
switch ( $value ) {
|
||||
case 'today':
|
||||
$return = mktime( 0, 0, 0, date( 'm' ), date( 'j' ), date( 'Y' ) );
|
||||
break;
|
||||
case 'start_week':
|
||||
$return = mktime( 0, 0, 0, date( 'm' ), ( date( 'j' ) - date( 'w' ) ), date( 'Y' ) );
|
||||
break;
|
||||
case 'start_month':
|
||||
$return = mktime( 0, 0, 0, date( 'm' ), 1, date( 'Y' ) );
|
||||
break;
|
||||
case 'end_month':
|
||||
$return = mktime( 0, 0, 0, date( 'm' ) + 1, 1, date( 'Y' ) );
|
||||
break;
|
||||
case 'custom_date':
|
||||
if( $type == 'start' ) {
|
||||
$date = get_post_meta( $this->id, 'gce_custom_from', true );
|
||||
$fallback = mktime( 0, 0, 0, date( 'm' ), 1, date( 'Y' ) );
|
||||
} else {
|
||||
$date = get_post_meta( $this->id, 'gce_custom_until', true );
|
||||
$fallback = mktime( 0, 0, 0, date( 'm' ) + 1, 1, date( 'Y' ) );
|
||||
}
|
||||
|
||||
if( ! empty( $date ) ) {
|
||||
$date = explode( '/', $date );
|
||||
$return = mktime( 0, 0, 0, $date[0], $date[1], $date[2] );
|
||||
} else {
|
||||
$return = $fallback;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if( $type == 'start' ) {
|
||||
$return = 0; //any - 1970-01-01 00:00
|
||||
} else {
|
||||
// Set default end time
|
||||
$return = 2145916800;
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
function get_builder() {
|
||||
|
||||
$this->builder = get_post( $this->id )->post_content;
|
||||
|
||||
return $this->builder;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,289 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Custom Post Type functions
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Register Google Calendar Events custom post type
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_setup_cpt() {
|
||||
|
||||
$labels = array(
|
||||
'name' => __( 'Google Calendar Feeds', 'gce' ),
|
||||
'singular_name' => __( 'Feed', 'gce' ),
|
||||
'menu_name' => __( 'GCal Events', 'gce' ),
|
||||
'name_admin_bar' => __( 'Feed', 'gce' ),
|
||||
'add_new' => __( 'Add New', 'gce' ),
|
||||
'add_new_item' => __( 'Add New Feed', 'gce' ),
|
||||
'new_item' => __( 'New Feed', 'gce' ),
|
||||
'edit_item' => __( 'Edit Feed', 'gce' ),
|
||||
'view_item' => __( 'View Feed', 'gce' ),
|
||||
'all_items' => __( 'All GCal Feeds', 'gce' ),
|
||||
'search_items' => __( 'Search GCal Feeds', 'gce' ),
|
||||
'not_found' => __( 'No feeds found.', 'gce' ),
|
||||
'not_found_in_trash' => __( 'No feeds found in Trash.', 'gce' )
|
||||
);
|
||||
|
||||
$args = array(
|
||||
'labels' => $labels,
|
||||
'public' => true, // This removes the 'view' and 'preview' links from what I can tell
|
||||
'publicly_queryable' => true,
|
||||
'show_ui' => true,
|
||||
'show_in_menu' => true,
|
||||
'query_var' => true,
|
||||
'capability_type' => 'post',
|
||||
'has_archive' => false,
|
||||
'hierarchical' => false,
|
||||
'menu_icon' => plugins_url( '/assets/gcal-icon-16x16.png', GCE_MAIN_FILE ),
|
||||
'supports' => array( 'title', 'editor' )
|
||||
);
|
||||
|
||||
register_post_type( 'gce_feed', $args );
|
||||
|
||||
// MUST ONLY RUN ONCE!
|
||||
if( false === get_option( 'gce_cpt_setup' ) ) {
|
||||
flush_rewrite_rules();
|
||||
update_option( 'gce_cpt_setup', 1 );
|
||||
}
|
||||
|
||||
}
|
||||
add_action( 'init', 'gce_setup_cpt' );
|
||||
|
||||
/**
|
||||
* Messages for Feed actions
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_feed_messages( $messages ) {
|
||||
global $post, $post_ID;
|
||||
|
||||
$url1 = '<a href="' . get_permalink( $post_ID ) . '">';
|
||||
$url2 = 'feed';
|
||||
$url3 = '</a>';
|
||||
$s1 = 'Feed';
|
||||
|
||||
$messages['gce_feed'] = array(
|
||||
1 => sprintf( __( '%4$s updated. %1$sView %2$s%3$s', 'gce' ), $url1, $url2, $url3, $s1 ),
|
||||
4 => sprintf( __( '%4$s updated. %1$sView %2$s%3$s', 'gce' ), $url1, $url2, $url3, $s1 ),
|
||||
6 => sprintf( __( '%4$s published. %1$sView %2$s%3$s', 'gce' ), $url1, $url2, $url3, $s1 ),
|
||||
7 => sprintf( __( '%4$s saved. %1$sView %2$s%3$s', 'gce' ), $url1, $url2, $url3, $s1 ),
|
||||
8 => sprintf( __( '%4$s submitted. %1$sView %2$s%3$s', 'gce' ), $url1, $url2, $url3, $s1 ),
|
||||
10 => sprintf( __( '%4$s draft updated. %1$sView %2$s%3$s', 'gce' ), $url1, $url2, $url3, $s1 )
|
||||
);
|
||||
|
||||
return $messages;
|
||||
}
|
||||
add_filter( 'post_updated_messages', 'gce_feed_messages' );
|
||||
|
||||
|
||||
/**
|
||||
* Add post meta to tie in with the Google Calendar Events custom post type
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_cpt_meta() {
|
||||
add_meta_box( 'gce_feed_meta', 'Feed Settings', 'gce_display_meta', 'gce_feed', 'advanced', 'core' );
|
||||
|
||||
// Sidebar meta box below publish section.
|
||||
add_meta_box( 'gce_feed_sidebar_help', 'Helpful Links', 'gce_feed_sidebar_help', 'gce_feed', 'side', 'core' );
|
||||
|
||||
add_meta_box( 'gce_display_options_meta', 'Display Options', 'gce_display_options_meta', 'gce_feed', 'side', 'core' );
|
||||
}
|
||||
add_action( 'add_meta_boxes', 'gce_cpt_meta' );
|
||||
|
||||
/**
|
||||
* Function called to display post meta
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_display_meta() {
|
||||
include_once( GCE_DIR . '/views/admin/gce-feed-meta-display.php' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Function called to display help in sidebar.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_feed_sidebar_help() {
|
||||
include_once( GCE_DIR . '/views/admin/gce-feed-sidebar-help.php' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Function called to display post meta
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_display_options_meta() {
|
||||
include_once( GCE_DIR . '/views/admin/display-options-meta.php' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to save post meta for the feed CPT
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_save_meta( $post_id ) {
|
||||
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
|
||||
return $post_id;
|
||||
}
|
||||
|
||||
// An array to hold all of our post meta ids so we can run them through a loop
|
||||
$post_meta_fields = array(
|
||||
'gce_feed_url',
|
||||
'gce_retrieve_from',
|
||||
'gce_retrieve_until',
|
||||
'gce_retrieve_max',
|
||||
'gce_date_format',
|
||||
'gce_time_format',
|
||||
'gce_timezone_offset',
|
||||
'gce_cache',
|
||||
'gce_multi_day_events',
|
||||
'gce_display_mode',
|
||||
'gce_custom_from',
|
||||
'gce_custom_until',
|
||||
'gce_search_query',
|
||||
'gce_expand_recurring',
|
||||
// Display options
|
||||
'gce_display_start',
|
||||
'gce_display_start_text',
|
||||
'gce_display_end',
|
||||
'gce_display_end_text',
|
||||
'gce_display_separator',
|
||||
'gce_display_location',
|
||||
'gce_display_location_text',
|
||||
'gce_display_description',
|
||||
'gce_display_description_text',
|
||||
'gce_display_description_max',
|
||||
'gce_display_link',
|
||||
'gce_display_link_tab',
|
||||
'gce_display_link_text',
|
||||
'gce_display_simple'
|
||||
);
|
||||
|
||||
$post_meta_fields = apply_filters( 'gce_feed_meta', $post_meta_fields );
|
||||
|
||||
if ( current_user_can( 'edit_post', $post_id ) ) {
|
||||
// Loop through our array and make sure it is posted and not empty in order to update it, otherwise we delete it
|
||||
foreach ( $post_meta_fields as $pmf ) {
|
||||
if ( isset( $_POST[$pmf] ) && ! empty( $_POST[$pmf] ) ) {
|
||||
if( $pmf == 'gce_feed_url' ) {
|
||||
update_post_meta( $post_id, $pmf, esc_url( $_POST[$pmf] ) );
|
||||
} else {
|
||||
update_post_meta( $post_id, $pmf, stripslashes( $_POST[$pmf] ) );
|
||||
}
|
||||
} else {
|
||||
// We want max to be set to 25 by default if nothing is entered
|
||||
if( $pmf == 'gce_retrieve_max' ) {
|
||||
update_post_meta( $post_id, $pmf, 25 );
|
||||
} else {
|
||||
delete_post_meta( $post_id, $pmf );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $post_id;
|
||||
}
|
||||
add_action( 'save_post', 'gce_save_meta' );
|
||||
|
||||
|
||||
/**
|
||||
* Add column headers to our "All Feeds" CPT page
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_add_column_headers( $defaults ) {
|
||||
|
||||
$new_columns = array(
|
||||
'cb' => $defaults['cb'],
|
||||
'feed-id' => 'Feed ID',
|
||||
'feed-sc' => 'Feed Shortcode',
|
||||
'max-events' => 'Max Events',
|
||||
'display-type' => 'Display Type'
|
||||
);
|
||||
|
||||
return array_merge( $defaults, $new_columns );
|
||||
}
|
||||
add_filter( 'manage_gce_feed_posts_columns', 'gce_add_column_headers' );
|
||||
|
||||
|
||||
/**
|
||||
* Fill out the columns
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_column_content( $column_name, $post_ID ) {
|
||||
|
||||
switch ( $column_name ) {
|
||||
|
||||
case 'feed-id':
|
||||
echo $post_ID;
|
||||
break;
|
||||
case 'feed-sc':
|
||||
echo '<code>[gcal id="' . $post_ID . '"]</code>';
|
||||
break;
|
||||
case 'max-events':
|
||||
$max = get_post_meta( $post_ID, 'gce_retrieve_max', true );
|
||||
echo $max;
|
||||
break;
|
||||
case 'display-type':
|
||||
$display = get_post_meta( $post_ID, 'gce_display_mode', true );
|
||||
|
||||
if( $display == 'grid' ) {
|
||||
echo 'Grid';
|
||||
} else if( $display == 'list' ) {
|
||||
echo 'List';
|
||||
} else {
|
||||
echo 'Grouped List';
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
add_action( 'manage_gce_feed_posts_custom_column', 'gce_column_content', 10, 2 );
|
||||
|
||||
/**
|
||||
* Add the "Clear Cache" action to the CPT action links
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_cpt_actions( $actions, $post ) {
|
||||
if( $post->post_type == 'gce_feed' ) {
|
||||
$actions['clear_cache'] = '<a href="' . add_query_arg( array( 'clear_cache' => $post->ID ) ). '">Clear Cache</a>';
|
||||
}
|
||||
|
||||
return $actions;
|
||||
}
|
||||
add_filter( 'post_row_actions', 'gce_cpt_actions', 10, 2 );
|
||||
|
||||
|
||||
/**
|
||||
* Function to clear cache if on the post listing page
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_clear_cache_link() {
|
||||
if( isset( $_REQUEST['clear_cache'] ) ) {
|
||||
$post_id = absint( $_REQUEST['clear_cache'] );
|
||||
|
||||
gce_clear_cache( $post_id );
|
||||
|
||||
settings_errors( 'gce-notices' );
|
||||
}
|
||||
}
|
||||
add_action( 'admin_init', 'gce_clear_cache_link' );
|
||||
|
||||
|
||||
function gce_clear_cache_on_save( $post_id ) {
|
||||
delete_transient( 'gce_feed_' . $post_id );
|
||||
}
|
||||
add_action( 'save_post_gce_feed', 'gce_clear_cache_on_save' );
|
||||
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Function to display the calendar to the screen
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_print_calendar( $feed_ids, $display = 'grid', $args = array(), $widget = false ) {
|
||||
|
||||
$defaults = array(
|
||||
'title_text' => '',
|
||||
'max_events' => 25,
|
||||
'sort' => 'asc',
|
||||
'grouped' => 0,
|
||||
'month' => null,
|
||||
'year' => null,
|
||||
'widget' => 0
|
||||
);
|
||||
|
||||
$args = array_merge( $defaults, $args );
|
||||
|
||||
extract( $args );
|
||||
|
||||
$ids = explode( '-', $feed_ids );
|
||||
|
||||
//Create new display object, passing array of feed id(s)
|
||||
$d = new GCE_Display( $ids, $title_text, $max_events, $sort );
|
||||
$markup = '';
|
||||
|
||||
if( 'grid' == $display ) {
|
||||
|
||||
$markup = '<script type="text/javascript">jQuery(document).ready(function($){gce_ajaxify("' . ( $widget == 1 ? 'gce-widget-' : 'gce-page-grid-' ) . $feed_ids
|
||||
. '", "' . $feed_ids . '", "' . absint( $max_events ) . '", "' . $title_text . '", "' . ( $widget == 1 ? 'widget' : 'page' ) . '");});</script>';
|
||||
|
||||
if( $widget == 1 ) {
|
||||
$markup .= '<div class="gce-widget-grid" id="gce-widget-' . $feed_ids . '">';
|
||||
} else {
|
||||
$markup .= '<div class="gce-page-grid" id="gce-page-grid-' . $feed_ids . '">';
|
||||
}
|
||||
|
||||
$markup .= $d->get_grid( $year, $month, $widget );
|
||||
$markup .= '</div>';
|
||||
|
||||
} else if( 'list' == $display || 'list-grouped' == $display ) {
|
||||
$markup = '<div class="gce-page-list">' . $d->get_list( $grouped ) . '</div>';
|
||||
}
|
||||
|
||||
return $markup;
|
||||
}
|
||||
|
||||
/**
|
||||
* AJAX function for grid pagination
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_ajax() {
|
||||
if ( isset( $_GET['gce_feed_ids'] ) ) {
|
||||
$ids = $_GET['gce_feed_ids'];
|
||||
$title = $_GET['gce_title_text'];
|
||||
$max = $_GET['gce_max_events'];
|
||||
$month = $_GET['gce_month'];
|
||||
$year = $_GET['gce_year'];
|
||||
|
||||
$title = ( 'null' == $title ) ? null : $title;
|
||||
|
||||
$args = array(
|
||||
'title_text' => $title,
|
||||
'max_events' => $max,
|
||||
'month' => $month,
|
||||
'year' => $year,
|
||||
);
|
||||
|
||||
if ( 'page' == $_GET['gce_type'] ) {
|
||||
echo gce_print_calendar( $ids, 'grid', $args );
|
||||
} elseif ( 'widget' == $_GET['gce_type'] ) {
|
||||
$args['widget'] = 1;
|
||||
echo gce_print_calendar( $ids, 'grid', $args );
|
||||
}
|
||||
}
|
||||
die();
|
||||
}
|
||||
add_action( 'wp_ajax_nopriv_gce_ajax', 'gce_ajax' );
|
||||
add_action( 'wp_ajax_gce_ajax', 'gce_ajax' );
|
||||
|
||||
function gce_feed_content( $content ) {
|
||||
global $post;
|
||||
|
||||
if( $post->post_type == 'gce_feed' ) {
|
||||
$content = '[gcal id="' . $post->ID . '"]';
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
add_filter( 'the_content', 'gce_feed_content' );
|
||||
|
||||
/**
|
||||
* Google Analytics campaign URL.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @param string $base_url Plain URL to navigate to
|
||||
* @param string $source GA "source" tracking value
|
||||
* @param string $medium GA "medium" tracking value
|
||||
* @param string $campaign GA "campaign" tracking value
|
||||
* @return string $url Full Google Analytics campaign URL
|
||||
*/
|
||||
function gce_ga_campaign_url( $base_url, $source, $medium, $campaign ) {
|
||||
// $medium examples: 'sidebar_link', 'banner_image'
|
||||
|
||||
$url = add_query_arg( array(
|
||||
'utm_source' => $source,
|
||||
'utm_medium' => $medium,
|
||||
'utm_campaign' => $campaign
|
||||
), $base_url );
|
||||
|
||||
return $url;
|
||||
}
|
||||
@@ -1,83 +1,94 @@
|
||||
<?php
|
||||
# PHP Calendar (version 2.3), written by Keith Devens
|
||||
# http://keithdevens.com/software/php_calendar
|
||||
# see example at http://keithdevens.com/weblog
|
||||
# License: http://keithdevens.com/software/license
|
||||
|
||||
/*
|
||||
Changes made to original PHP Calendar script by me (Ross Hanney):
|
||||
|
||||
- Renamed CSS classes to fit with my plugin
|
||||
- Slight modification of lines 63-71 to use Unix timestamp rather than day number
|
||||
- Renamed function to prevent conflicts
|
||||
- Replaced strftime with date_i18n
|
||||
- Use of $wp_locale to get weekday initials
|
||||
- Replaced htmlentities() with esc_attr() and esc_html()
|
||||
- Other small markup changes
|
||||
- Replaced gmmktime() with mktime()
|
||||
*/
|
||||
|
||||
function gce_generate_calendar( $year, $month, $days = array(), $day_name_length = 3, $month_href = NULL, $first_day = 0, $pn = array() ) {
|
||||
global $wp_locale;
|
||||
|
||||
$first_of_month = mktime( 0, 0, 0, $month, 1, $year );
|
||||
#remember that mktime will automatically correct if invalid dates are entered
|
||||
# for instance, mktime(0,0,0,12,32,1997) will be the date for Jan 1, 1998
|
||||
# this provides a built in "rounding" feature to generate_calendar()
|
||||
|
||||
$day_names = array(); #generate all the day names according to the current locale
|
||||
for ( $n = 0, $t = ( 3 + $first_day ) * 86400; $n < 7; $n++, $t += 86400 ) { #January 4, 1970 was a Sunday
|
||||
$day_names[$n]['full'] = date_i18n( 'l', $t, true );
|
||||
$day_names[$n]['initial'] = $wp_locale->get_weekday_initial( date_i18n( 'l', $t, true ) );
|
||||
}
|
||||
|
||||
list( $month, $year, $month_name, $weekday ) = explode( ',', date_i18n( 'm, Y, F, w', $first_of_month ) );
|
||||
$weekday = ( $weekday + 7 - $first_day ) % 7; #adjust for $first_day
|
||||
$title = esc_html( $month_name ) . ' ' . $year; #note that some locales don't capitalize month and day names
|
||||
|
||||
#Begin calendar. Uses a real <caption>. See http://diveintomark.org/archives/2002/07/03
|
||||
list( $p, $pl ) = each( $pn );
|
||||
list( $n, $nl ) = each( $pn ); #previous and next links, if applicable
|
||||
|
||||
if ( $p )
|
||||
$p = '<span class="gce-prev">' . ( ( $pl ) ? ( '<a class="gce-change-month" title="Previous month" name="' . $pl . '">' . $p . '</a>' ) : $p ) . '</span> ';
|
||||
if ( $n )
|
||||
$n = ' <span class="gce-next">' . ( ( $nl ) ? ( '<a class="gce-change-month" title="Next month" name="' . $nl . '">' . $n . '</a>' ) : $n ) . '</span>';
|
||||
|
||||
$calendar = '<table class="gce-calendar">' . "\n" . '<caption class="gce-caption">' . $p . '<span class="gce-month-title">' . ( ( $month_href ) ? ( '<a href="' . esc_attr( $month_href ) . '">' . $title . '</a>' ) : $title ) . '</span>' . $n . "</caption>\n<tr>";
|
||||
|
||||
if ( $day_name_length ) { #if the day names should be shown ($day_name_length > 0)
|
||||
#if day_name_length is >3, the full name of the day will be printed
|
||||
foreach ( $day_names as $d ) {
|
||||
$calendar .= '<th><abbr title="' . esc_attr( $d['full'] ) . '">' . esc_html( $d['initial'] ) . '</abbr></th>';
|
||||
}
|
||||
|
||||
$calendar .= "</tr>\n<tr>";
|
||||
}
|
||||
|
||||
$time_now = current_time( 'timestamp' );
|
||||
$today = mktime( 0, 0, 0, date( 'm', $time_now ), date( 'd', $time_now ), date( 'Y', $time_now ) );
|
||||
|
||||
if ( $weekday > 0 ) $calendar .= '<td colspan="' . $weekday . '"> </td>'; #initial 'empty' days
|
||||
for ( $day = 1, $days_in_month = date( 't', $first_of_month ); $day <= $days_in_month; $day++, $weekday++ ) {
|
||||
if ( 7 == $weekday ) {
|
||||
$weekday = 0; #start a new week
|
||||
$calendar .= "</tr>\n<tr>";
|
||||
}
|
||||
|
||||
$timestamp = mktime( 0, 0, 0, $month, $day, $year );
|
||||
|
||||
if ( isset( $days[$timestamp] ) && is_array( $days[$timestamp] ) ) {
|
||||
list( $link, $classes, $content ) = $days[$timestamp];
|
||||
$calendar .= '<td' . ( ( $classes ) ? ( ' class="' . $classes . '">' ) : '>' ) . ( ( $link ) ? ( '<a href="' . $link . '"><span class="gce-day-number">' . $day . '</span></a>' . $content ) : '<span class="gce-day-number">' . $day . '</span>' . $content ) . '</td>';
|
||||
}else{
|
||||
$css_class = ( $timestamp < $time_now ) ? 'gce-day-past' : 'gce-day-future';
|
||||
$calendar .= '<td class="' . $css_class . '"><span class="gce-day-number">' . $day . '</span></td>';
|
||||
}
|
||||
}
|
||||
|
||||
if ( 7 != $weekday ) $calendar .= '<td colspan="' . ( 7 - $weekday ) . '"> </td>'; #remaining "empty" days
|
||||
|
||||
return $calendar . "</tr>\n</table>\n";
|
||||
}
|
||||
<?php
|
||||
# PHP Calendar (version 2.3), written by Keith Devens
|
||||
# http://keithdevens.com/software/php_calendar
|
||||
# see example at http://keithdevens.com/weblog
|
||||
# License: http://keithdevens.com/software/license
|
||||
|
||||
/*
|
||||
Changes made to original PHP Calendar script by me (Ross Hanney):
|
||||
|
||||
- Renamed CSS classes to fit with my plugin
|
||||
- Slight modification of lines 63-71 to use Unix timestamp rather than day number
|
||||
- Renamed function to prevent conflicts
|
||||
- Replaced strftime with date_i18n
|
||||
- Use of $wp_locale to get weekday initials
|
||||
- Replaced htmlentities() with esc_attr() and esc_html()
|
||||
- Other small markup changes
|
||||
- Replaced gmmktime() with mktime()
|
||||
*/
|
||||
|
||||
function gce_generate_calendar( $year, $month, $days = array(), $day_name_length = 3, $month_href = NULL, $first_day = 0, $pn = array(), $widget = false ) {
|
||||
global $wp_locale;
|
||||
|
||||
$first_of_month = mktime( 0, 0, 0, $month, 1, $year );
|
||||
#remember that mktime will automatically correct if invalid dates are entered
|
||||
# for instance, mktime(0,0,0,12,32,1997) will be the date for Jan 1, 1998
|
||||
# this provides a built in "rounding" feature to generate_calendar()
|
||||
|
||||
$day_names = array(); #generate all the day names according to the current locale
|
||||
for ( $n = 0, $t = ( 3 + $first_day ) * 86400; $n < 7; $n++, $t += 86400 ) { #January 4, 1970 was a Sunday
|
||||
$day_names[$n]['full'] = date_i18n( 'l', $t, true );
|
||||
$day_names[$n]['initial'] = $wp_locale->get_weekday_initial( date_i18n( 'l', $t, true ) );
|
||||
}
|
||||
|
||||
list( $month, $year, $month_name, $weekday ) = explode( ',', date_i18n( 'm, Y, F, w', $first_of_month ) );
|
||||
$weekday = ( $weekday + 7 - $first_day ) % 7; #adjust for $first_day
|
||||
$title = esc_html( $month_name ) . ' ' . $year; #note that some locales don't capitalize month and day names
|
||||
|
||||
#Begin calendar. Uses a real <caption>. See http://diveintomark.org/archives/2002/07/03
|
||||
list( $p, $pl ) = each( $pn );
|
||||
list( $n, $nl ) = each( $pn ); #previous and next links, if applicable
|
||||
|
||||
if ( $p ) {
|
||||
if( $widget ) {
|
||||
$p = '<span class="gce-prev">' . ( ( $pl ) ? ( '<a class="gce-change-month" title="Previous month" name="' . $pl . '">' . $p . '</a>' ) : $p ) . '</span> ';
|
||||
} else {
|
||||
$p = '<span class="gce-prev">' . ( ( $pl ) ? ( '<a class="gce-change-month" title="Previous month" name="' . $pl . '">' . $p . ' Back</a>' ) : $p ) . '</span> ';
|
||||
}
|
||||
}
|
||||
|
||||
if ( $n ) {
|
||||
if( $widget ) {
|
||||
$n = ' <span class="gce-next">' . ( ( $nl ) ? ( '<a class="gce-change-month" title="Next month" name="' . $nl . '">' . $n . '</a>' ) : $n ) . '</span>';
|
||||
} else {
|
||||
$n = ' <span class="gce-next">' . ( ( $nl ) ? ( '<a class="gce-change-month" title="Next month" name="' . $nl . '">Next ' . $n . '</a>' ) : $n ) . '</span>';
|
||||
}
|
||||
}
|
||||
|
||||
$calendar = '<table class="gce-calendar">' . "\n" . '<caption class="gce-caption">' . $p . '<span class="gce-month-title">' . ( ( $month_href ) ? ( '<a href="' . esc_attr( $month_href ) . '">' . $title . '</a>' ) : $title ) . '</span>' . $n . "</caption>\n<tr>";
|
||||
|
||||
if ( $day_name_length ) { #if the day names should be shown ($day_name_length > 0)
|
||||
#if day_name_length is >3, the full name of the day will be printed
|
||||
foreach ( $day_names as $d ) {
|
||||
$calendar .= '<th><abbr title="' . esc_attr( $d['full'] ) . '">' . esc_html( $d['initial'] ) . '</abbr></th>';
|
||||
}
|
||||
|
||||
$calendar .= "</tr>\n<tr>";
|
||||
}
|
||||
|
||||
$time_now = current_time( 'timestamp' );
|
||||
$today = mktime( 0, 0, 0, date( 'm', $time_now ), date( 'd', $time_now ), date( 'Y', $time_now ) );
|
||||
|
||||
if ( $weekday > 0 ) $calendar .= '<td colspan="' . $weekday . '"> </td>'; #initial 'empty' days
|
||||
for ( $day = 1, $days_in_month = date( 't', $first_of_month ); $day <= $days_in_month; $day++, $weekday++ ) {
|
||||
if ( 7 == $weekday ) {
|
||||
$weekday = 0; #start a new week
|
||||
$calendar .= "</tr>\n<tr>";
|
||||
}
|
||||
|
||||
$timestamp = mktime( 0, 0, 0, $month, $day, $year );
|
||||
|
||||
if ( isset( $days[$timestamp] ) && is_array( $days[$timestamp] ) ) {
|
||||
list( $link, $classes, $content ) = $days[$timestamp];
|
||||
$calendar .= '<td' . ( ( $classes ) ? ( ' class="' . $classes . '">' ) : '>' ) . ( ( $link ) ? ( '<a href="' . $link . '"><span class="gce-day-number">' . $day . '</span></a>' . $content ) : '<span class="gce-day-number">' . $day . '</span>' . $content ) . '</td>';
|
||||
}else{
|
||||
$css_class = ( $timestamp < $time_now ) ? 'gce-day-past' : 'gce-day-future';
|
||||
$calendar .= '<td class="' . $css_class . '"><span class="gce-day-number">' . $day . '</span></td>';
|
||||
}
|
||||
}
|
||||
|
||||
if ( 7 != $weekday ) $calendar .= '<td colspan="' . ( 7 - $weekday ) . '"> </td>'; #remaining "empty" days
|
||||
|
||||
return $calendar . "</tr>\n</table>\n";
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,157 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Register all settings needed for the Settings API.
|
||||
*
|
||||
* @package gce
|
||||
* @subpackage Includes
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
*/
|
||||
|
||||
// Exit if accessed directly.
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Main function to register all of the plugin settings
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_register_settings() {
|
||||
|
||||
$gce_settings = array(
|
||||
|
||||
/* General Settings */
|
||||
'general' => array(
|
||||
'save_settings' => array(
|
||||
'id' => 'save_settings',
|
||||
'name' => __( 'Save Settings', 'gce' ),
|
||||
'desc' => __( 'Save your settings when uninstalling this plugin. Useful when upgrading or re-installing.', 'gce' ),
|
||||
'type' => 'checkbox'
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
/* If the options do not exist then create them for each section */
|
||||
if ( false == get_option( 'gce_settings_general' ) ) {
|
||||
add_option( 'gce_settings_general' );
|
||||
}
|
||||
|
||||
/* Add the General Settings section */
|
||||
add_settings_section(
|
||||
'gce_settings_general',
|
||||
__( 'General Settings', 'gce' ),
|
||||
'__return_false',
|
||||
'gce_settings_general'
|
||||
);
|
||||
|
||||
foreach ( $gce_settings['general'] as $option ) {
|
||||
add_settings_field(
|
||||
'gce_settings_general[' . $option['id'] . ']',
|
||||
$option['name'],
|
||||
function_exists( 'gce_' . $option['type'] . '_callback' ) ? 'gce_' . $option['type'] . '_callback' : 'gce_missing_callback',
|
||||
'gce_settings_general',
|
||||
'gce_settings_general',
|
||||
gce_get_settings_field_args( $option, 'general' )
|
||||
);
|
||||
}
|
||||
|
||||
/* Register all settings or we will get an error when trying to save */
|
||||
register_setting( 'gce_settings_general', 'gce_settings_general', 'gce_settings_sanitize' );
|
||||
|
||||
}
|
||||
add_action( 'admin_init', 'gce_register_settings' );
|
||||
|
||||
/*
|
||||
* Return generic add_settings_field $args parameter array.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @param string $option Single settings option key.
|
||||
* @param string $section Section of settings apge.
|
||||
* @return array $args parameter to use with add_settings_field call.
|
||||
*/
|
||||
function gce_get_settings_field_args( $option, $section ) {
|
||||
$settings_args = array(
|
||||
'id' => $option['id'],
|
||||
'desc' => $option['desc'],
|
||||
'name' => $option['name'],
|
||||
'section' => $section,
|
||||
'size' => isset( $option['size'] ) ? $option['size'] : null,
|
||||
'options' => isset( $option['options'] ) ? $option['options'] : '',
|
||||
'std' => isset( $option['std'] ) ? $option['std'] : ''
|
||||
);
|
||||
|
||||
// Link label to input using 'label_for' argument if text, textarea, password, select, or variations of.
|
||||
// Just add to existing settings args array if needed.
|
||||
if ( in_array( $option['type'], array( 'text', 'select', 'textarea', 'password', 'number' ) ) ) {
|
||||
$settings_args = array_merge( $settings_args, array( 'label_for' => 'gce_settings_' . $section . '[' . $option['id'] . ']' ) );
|
||||
}
|
||||
|
||||
return $settings_args;
|
||||
}
|
||||
|
||||
/*
|
||||
* Single checkbox callback function
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
*/
|
||||
function gce_checkbox_callback( $args ) {
|
||||
global $gce_options;
|
||||
|
||||
$checked = isset( $gce_options[$args['id']] ) ? checked( 1, $gce_options[$args['id']], false ) : '';
|
||||
$html = "\n" . '<input type="checkbox" id="gce_settings_' . $args['section'] . '[' . $args['id'] . ']" name="gce_settings_' . $args['section'] . '[' . $args['id'] . ']" value="1" ' . $checked . '/>' . "\n";
|
||||
|
||||
// Render description text directly to the right in a label if it exists.
|
||||
if ( ! empty( $args['desc'] ) )
|
||||
$html .= '<label for="gce_settings_' . $args['section'] . '[' . $args['id'] . ']"> ' . $args['desc'] . '</label>' . "\n";
|
||||
|
||||
echo $html;
|
||||
}
|
||||
|
||||
/*
|
||||
* Function we can use to sanitize the input data and return it when saving options
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
*/
|
||||
function gce_settings_sanitize( $input ) {
|
||||
//add_settings_error( 'gce-notices', '', '', '' );
|
||||
return $input;
|
||||
}
|
||||
|
||||
/*
|
||||
* Default callback function if correct one does not exist
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
*/
|
||||
function gce_missing_callback( $args ) {
|
||||
printf( __( 'The callback function used for the <strong>%s</strong> setting is missing.', 'gce' ), $args['id'] );
|
||||
}
|
||||
|
||||
/*
|
||||
* Function used to return an array of all of the plugin settings
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
*/
|
||||
function gce_get_settings() {
|
||||
|
||||
// Set default settings
|
||||
// If this is the first time running we need to set the defaults
|
||||
if ( ! get_option( 'gce_upgrade_has_run' ) ) {
|
||||
|
||||
$general = get_option( 'gce_settings_general' );
|
||||
|
||||
$general['save_settings'] = 1;
|
||||
|
||||
update_option( 'gce_settings_general', $general );
|
||||
}
|
||||
|
||||
$general_settings = is_array( get_option( 'gce_settings_general' ) ) ? get_option( 'gce_settings_general' ) : array();
|
||||
|
||||
return $general_settings;
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Shortcode functions
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Adds support for the new [gcal] shortcode
|
||||
*
|
||||
* Supports the old [google-calendar-events] shortcode
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_gcal_shortcode( $attr ) {
|
||||
|
||||
extract( shortcode_atts( array(
|
||||
'id' => null,
|
||||
'display' => '',
|
||||
'max' => 0,
|
||||
'order' => 'asc',
|
||||
'title' => null,
|
||||
'type' => null,
|
||||
), $attr, 'gce_feed' ) );
|
||||
|
||||
// If no ID is specified then return
|
||||
if( empty( $id ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$feed_ids = explode( ',', $id );
|
||||
|
||||
foreach( $feed_ids as $k => $v ) {
|
||||
// Check for an old ID attached to this feed ID first
|
||||
$q = new WP_Query( "post_type=gce_feed&meta_key=old_gce_id&meta_value=$v&order=ASC" );
|
||||
|
||||
if( $q->have_posts() ) {
|
||||
$q->the_post();
|
||||
// Set our ID to the old ID if found
|
||||
$feed_ids[$k] = get_the_ID();
|
||||
$v = get_the_ID();
|
||||
}
|
||||
|
||||
if( empty( $display ) ) {
|
||||
$display = get_post_meta( $v, 'gce_display_mode', true );
|
||||
}
|
||||
}
|
||||
|
||||
// Port over old options
|
||||
if( $type != null ) {
|
||||
if( 'ajax' == $type ) {
|
||||
$display = 'grid';
|
||||
} else {
|
||||
$display = $type;
|
||||
}
|
||||
}
|
||||
|
||||
$args = array(
|
||||
'title_text' => $title,
|
||||
'max_events' => $max,
|
||||
'sort' => $order,
|
||||
'grouped' => ( $display == 'list-grouped' ? 1 : 0 ),
|
||||
'month' => null,
|
||||
'year' => null,
|
||||
'widget' => 0
|
||||
);
|
||||
|
||||
$feed_ids = implode( '-', $feed_ids );
|
||||
|
||||
return gce_print_calendar( $feed_ids, $display, $args );
|
||||
|
||||
}
|
||||
add_shortcode( 'gcal', 'gce_gcal_shortcode' );
|
||||
add_shortcode( 'google-calendar-events', 'gce_gcal_shortcode' );
|
||||
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
* Admin JavaScript functions
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
"use strict";
|
||||
$(function () {
|
||||
|
||||
// Show the hidden text box if custom date is selected (Retrieve From)
|
||||
$('#gce_retrieve_from').on('change', function() {
|
||||
|
||||
if( $(this).val() == 'custom_date' ) {
|
||||
$('#gce_custom_from').show();
|
||||
} else {
|
||||
$('#gce_custom_from').hide();
|
||||
}
|
||||
});
|
||||
|
||||
// Show the hidden text box if custom date is selected (Retrieve Until)
|
||||
$('#gce_retrieve_until').on('change', function() {
|
||||
|
||||
if( $(this).val() == 'custom_date' ) {
|
||||
$('#gce_custom_until').show();
|
||||
} else {
|
||||
$('#gce_custom_until').hide();
|
||||
}
|
||||
});
|
||||
|
||||
// Add jQuery date picker to our 2 custom date fields
|
||||
$('#gce_custom_from').datepicker();
|
||||
$('#gce_custom_until').datepicker();
|
||||
|
||||
});
|
||||
}(jQuery));
|
||||
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
function correct_options(){
|
||||
val = jQuery('select[name="gce_options[use_builder]"]').val();
|
||||
|
||||
if(val == 'true'){
|
||||
jQuery('.gce-simple-display-options').next('.form-table').hide();
|
||||
jQuery('.gce-simple-display-options').hide();
|
||||
jQuery('.gce-simple-display-options').prev('h3').hide();
|
||||
|
||||
jQuery('.gce-event-builder').next('.form-table').show();
|
||||
jQuery('.gce-event-builder').show();
|
||||
jQuery('.gce-event-builder').prev('h3').show();
|
||||
}else{
|
||||
jQuery('.gce-simple-display-options').next('.form-table').show();
|
||||
jQuery('.gce-simple-display-options').show();
|
||||
jQuery('.gce-simple-display-options').prev('h3').show();
|
||||
|
||||
jQuery('.gce-event-builder').next('.form-table').hide();
|
||||
jQuery('.gce-event-builder').hide();
|
||||
jQuery('.gce-event-builder').prev('h3').hide();
|
||||
}
|
||||
}
|
||||
|
||||
jQuery(document).ready(function(){
|
||||
correct_options();
|
||||
|
||||
jQuery('select[name="gce_options[use_builder]"]').change(function(e){
|
||||
correct_options();
|
||||
});
|
||||
});
|
||||
@@ -1,45 +1,58 @@
|
||||
function gce_ajaxify(target, feed_ids, max_events, title_text, type){
|
||||
//Add click event to change month links
|
||||
jQuery('#' + target + ' .gce-change-month').click(function(){
|
||||
//Extract month and year
|
||||
var month_year = jQuery(this).attr('name').split('-', 2);
|
||||
//Add loading text to table caption
|
||||
jQuery('#' + target + ' caption').html(GoogleCalendarEvents.loading);
|
||||
//Send AJAX request
|
||||
jQuery.get(GoogleCalendarEvents.ajaxurl,{
|
||||
action:'gce_ajax',
|
||||
gce_type:type,
|
||||
gce_feed_ids:feed_ids,
|
||||
gce_title_text:title_text,
|
||||
gce_widget_id:target,
|
||||
gce_max_events:max_events,
|
||||
gce_month:month_year[0],
|
||||
gce_year:month_year[1]
|
||||
}, function(data){
|
||||
//Replace existing data with returned AJAX data
|
||||
if(type == 'widget'){
|
||||
jQuery('#' + target).html(data);
|
||||
}else{
|
||||
jQuery('#' + target).replaceWith(data);
|
||||
}
|
||||
gce_tooltips('#' + target + ' .gce-has-events');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function gce_tooltips(target_items){
|
||||
jQuery(target_items).each(function(){
|
||||
//Add qtip to all target items
|
||||
jQuery(this).qtip({
|
||||
content: jQuery(this).children('.gce-event-info'),
|
||||
position: { corner: { target: 'center', tooltip: 'bottomLeft' }, adjust: { screen: true } },
|
||||
hide: { fixed: true, delay: 100, effect: { length: 0 } },
|
||||
show: { solo: true, delay: 0, effect: { length: 0 } },
|
||||
style: { padding: "0", classes: { tooltip: 'gce-qtip', tip: 'gce-qtip-tip', title: 'gce-qtip-title', content: 'gce-qtip-content', active: 'gce-qtip-active' }, border: { width: 0 } }
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
jQuery(document).ready(function(){
|
||||
gce_tooltips('.gce-has-events');
|
||||
|
||||
/**
|
||||
* Public JS functions
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
|
||||
function gce_ajaxify(target, feed_ids, max_events, title_text, type){
|
||||
|
||||
//Add click event to change month links
|
||||
jQuery('#' + target + ' .gce-change-month').click(function(){
|
||||
//Extract month and year
|
||||
var month_year = jQuery(this).attr('name').split('-', 2);
|
||||
//Add loading text to table caption
|
||||
jQuery('#' + target + ' caption').html('Loading...');
|
||||
//Send AJAX request
|
||||
jQuery.get(gce.ajaxurl,{
|
||||
action:'gce_ajax',
|
||||
gce_type:type,
|
||||
gce_feed_ids:feed_ids,
|
||||
gce_title_text:title_text,
|
||||
gce_widget_id:target,
|
||||
gce_max_events:max_events,
|
||||
gce_month:month_year[0],
|
||||
gce_year:month_year[1]
|
||||
}, function(data){
|
||||
//Replace existing data with returned AJAX data
|
||||
if(type == 'widget'){
|
||||
jQuery('#' + target).html(data);
|
||||
}else{
|
||||
//console.log( 'Replacing content...' );
|
||||
jQuery('#' + target).replaceWith(data);
|
||||
}
|
||||
gce_tooltips('#' + target + ' .gce-has-events');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function gce_tooltips(target_items){
|
||||
jQuery(target_items).each(function(){
|
||||
//Add qtip to all target items
|
||||
jQuery(this).qtip({
|
||||
content: jQuery(this).children('.gce-event-info'),
|
||||
position: { corner: { target: 'center', tooltip: 'bottomLeft' }, adjust: { screen: true } },
|
||||
hide: { fixed: true, delay: 100, effect: { length: 0 } },
|
||||
show: { solo: true, delay: 0, effect: { length: 0 } },
|
||||
style: { padding: "0", classes: { tooltip: 'gce-qtip', tip: 'gce-qtip-tip', title: 'gce-qtip-title', content: 'gce-qtip-content', active: 'gce-qtip-active' }, border: { width: 0 } }
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
jQuery(document).ready(function(){
|
||||
gce_tooltips('.gce-has-events');
|
||||
});
|
||||
@@ -1,15 +1,15 @@
|
||||
/*!
|
||||
* jquery.qtip. The jQuery tooltip plugin
|
||||
*
|
||||
* Copyright (c) 2009 Craig Thompson
|
||||
* http://craigsworks.com
|
||||
*
|
||||
* Licensed under MIT
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* Launch : February 2009
|
||||
* Version : 1.0.0-rc3
|
||||
* Released: Tuesday 12th May, 2009 - 00:00
|
||||
* Debug: jquery.qtip.debug.js
|
||||
*/
|
||||
/*!
|
||||
* jquery.qtip. The jQuery tooltip plugin
|
||||
*
|
||||
* Copyright (c) 2009 Craig Thompson
|
||||
* http://craigsworks.com
|
||||
*
|
||||
* Licensed under MIT
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* Launch : February 2009
|
||||
* Version : 1.0.0-rc3
|
||||
* Released: Tuesday 12th May, 2009 - 00:00
|
||||
* Debug: jquery.qtip.debug.js
|
||||
*/
|
||||
(function(f){f.fn.qtip=function(B,u){var y,t,A,s,x,w,v,z;if(typeof B=="string"){if(typeof f(this).data("qtip")!=="object"){f.fn.qtip.log.error.call(self,1,f.fn.qtip.constants.NO_TOOLTIP_PRESENT,false)}if(B=="api"){return f(this).data("qtip").interfaces[f(this).data("qtip").current]}else{if(B=="interfaces"){return f(this).data("qtip").interfaces}}}else{if(!B){B={}}if(typeof B.content!=="object"||(B.content.jquery&&B.content.length>0)){B.content={text:B.content}}if(typeof B.content.title!=="object"){B.content.title={text:B.content.title}}if(typeof B.position!=="object"){B.position={corner:B.position}}if(typeof B.position.corner!=="object"){B.position.corner={target:B.position.corner,tooltip:B.position.corner}}if(typeof B.show!=="object"){B.show={when:B.show}}if(typeof B.show.when!=="object"){B.show.when={event:B.show.when}}if(typeof B.show.effect!=="object"){B.show.effect={type:B.show.effect}}if(typeof B.hide!=="object"){B.hide={when:B.hide}}if(typeof B.hide.when!=="object"){B.hide.when={event:B.hide.when}}if(typeof B.hide.effect!=="object"){B.hide.effect={type:B.hide.effect}}if(typeof B.style!=="object"){B.style={name:B.style}}B.style=c(B.style);s=f.extend(true,{},f.fn.qtip.defaults,B);s.style=a.call({options:s},s.style);s.user=f.extend(true,{},B)}return f(this).each(function(){if(typeof B=="string"){w=B.toLowerCase();A=f(this).qtip("interfaces");if(typeof A=="object"){if(u===true&&w=="destroy"){while(A.length>0){A[A.length-1].destroy()}}else{if(u!==true){A=[f(this).qtip("api")]}for(y=0;y<A.length;y++){if(w=="destroy"){A[y].destroy()}else{if(A[y].status.rendered===true){if(w=="show"){A[y].show()}else{if(w=="hide"){A[y].hide()}else{if(w=="focus"){A[y].focus()}else{if(w=="disable"){A[y].disable(true)}else{if(w=="enable"){A[y].disable(false)}}}}}}}}}}}else{v=f.extend(true,{},s);v.hide.effect.length=s.hide.effect.length;v.show.effect.length=s.show.effect.length;if(v.position.container===false){v.position.container=f(document.body)}if(v.position.target===false){v.position.target=f(this)}if(v.show.when.target===false){v.show.when.target=f(this)}if(v.hide.when.target===false){v.hide.when.target=f(this)}t=f.fn.qtip.interfaces.length;for(y=0;y<t;y++){if(typeof f.fn.qtip.interfaces[y]=="undefined"){t=y;break}}x=new d(f(this),v,t);f.fn.qtip.interfaces[t]=x;if(typeof f(this).data("qtip")==="object"&&f(this).data("qtip")){if(typeof f(this).attr("qtip")==="undefined"){f(this).data("qtip").current=f(this).data("qtip").interfaces.length}f(this).data("qtip").interfaces.push(x)}else{f(this).data("qtip",{current:0,interfaces:[x]})}if(v.content.prerender===false&&v.show.when.event!==false&&v.show.ready!==true){v.show.when.target.bind(v.show.when.event+".qtip-"+t+"-create",{qtip:t},function(C){z=f.fn.qtip.interfaces[C.data.qtip];z.options.show.when.target.unbind(z.options.show.when.event+".qtip-"+C.data.qtip+"-create");z.cache.mouse={x:C.pageX,y:C.pageY};p.call(z);z.options.show.when.target.trigger(z.options.show.when.event)})}else{x.cache.mouse={x:v.show.when.target.offset().left,y:v.show.when.target.offset().top};p.call(x)}}})};function d(u,t,v){var s=this;s.id=v;s.options=t;s.status={animated:false,rendered:false,disabled:false,focused:false};s.elements={target:u.addClass(s.options.style.classes.target),tooltip:null,wrapper:null,content:null,contentWrapper:null,title:null,button:null,tip:null,bgiframe:null};s.cache={mouse:{},position:{},toggle:0};s.timers={};f.extend(s,s.options.api,{show:function(y){var x,z;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"show")}if(s.elements.tooltip.css("display")!=="none"){return s}s.elements.tooltip.stop(true,false);x=s.beforeShow.call(s,y);if(x===false){return s}function w(){if(s.options.position.type!=="static"){s.focus()}s.onShow.call(s,y);if(f.browser.msie){s.elements.tooltip.get(0).style.removeAttribute("filter")}}s.cache.toggle=1;if(s.options.position.type!=="static"){s.updatePosition(y,(s.options.show.effect.length>0))}if(typeof s.options.show.solo=="object"){z=f(s.options.show.solo)}else{if(s.options.show.solo===true){z=f("div.qtip").not(s.elements.tooltip)}}if(z){z.each(function(){if(f(this).qtip("api").status.rendered===true){f(this).qtip("api").hide()}})}if(typeof s.options.show.effect.type=="function"){s.options.show.effect.type.call(s.elements.tooltip,s.options.show.effect.length);s.elements.tooltip.queue(function(){w();f(this).dequeue()})}else{switch(s.options.show.effect.type.toLowerCase()){case"fade":s.elements.tooltip.fadeIn(s.options.show.effect.length,w);break;case"slide":s.elements.tooltip.slideDown(s.options.show.effect.length,function(){w();if(s.options.position.type!=="static"){s.updatePosition(y,true)}});break;case"grow":s.elements.tooltip.show(s.options.show.effect.length,w);break;default:s.elements.tooltip.show(null,w);break}s.elements.tooltip.addClass(s.options.style.classes.active)}return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_SHOWN,"show")},hide:function(y){var x;if(!s.status.rendered){returnLine truncated
|
||||
@@ -1,500 +0,0 @@
|
||||
# Translation of the WordPress plugin Google Calendar Events 0.4 by Ross Hanney.
|
||||
# Copyright (C) 2010 Ross Hanney
|
||||
# This file is distributed under the same license as the Google Calendar Events package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Google Calendar Events 0.4\n"
|
||||
"Report-Msgid-Bugs-To: http://wordpress.org/tag/google-calendar-events\n"
|
||||
"POT-Creation-Date: 2010-08-19 10:31+0000\n"
|
||||
"PO-Revision-Date: 2010-08-31 09:01+0100\n"
|
||||
"Last-Translator: Takács Dániel <daniel.takacs@gmail.com>\n"
|
||||
"Language-Team: Hungarian <daniel.takacs@gmail.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-Language: Hungarian\n"
|
||||
"X-Poedit-Country: Hungary\n"
|
||||
|
||||
#: admin/add.php:9
|
||||
msgid "Add a Feed"
|
||||
msgstr "Csatorna hozzáadása"
|
||||
|
||||
#: admin/add.php:11
|
||||
#: admin/delete.php:11
|
||||
#: admin/edit.php:11
|
||||
msgid "Feed ID"
|
||||
msgstr "Csatorna azonosítója"
|
||||
|
||||
#: admin/add.php:12
|
||||
#: admin/delete.php:12
|
||||
#: admin/edit.php:12
|
||||
msgid "Feed Title"
|
||||
msgstr "Csatorna címe"
|
||||
|
||||
#: admin/add.php:13
|
||||
#: admin/edit.php:13
|
||||
msgid "Feed URL"
|
||||
msgstr "Csatorna URL"
|
||||
|
||||
#: admin/add.php:14
|
||||
#: admin/edit.php:14
|
||||
msgid "Retrieve past events for current month?"
|
||||
msgstr "A jelenlegi hónapban történt, de már eltelt eseményeket is lekérdezzem?"
|
||||
|
||||
#: admin/add.php:15
|
||||
#: admin/edit.php:15
|
||||
msgid "Maximum number of events to retrieve"
|
||||
msgstr "A lekérdezendő események maximális száma"
|
||||
|
||||
#: admin/add.php:16
|
||||
#: admin/edit.php:16
|
||||
msgid "Number of days in the future to retrieve events for"
|
||||
msgstr "A lekérdezendő következő napok száma"
|
||||
|
||||
#: admin/add.php:17
|
||||
#: admin/edit.php:17
|
||||
msgid "Date format"
|
||||
msgstr "Dátum formátuma"
|
||||
|
||||
#: admin/add.php:18
|
||||
#: admin/edit.php:18
|
||||
msgid "Time format"
|
||||
msgstr "Idő formátuma"
|
||||
|
||||
#: admin/add.php:19
|
||||
#: admin/edit.php:19
|
||||
msgid "Timezone adjustment"
|
||||
msgstr "Időzóna beállítása"
|
||||
|
||||
#: admin/add.php:20
|
||||
#: admin/edit.php:20
|
||||
msgid "Cache duration"
|
||||
msgstr "Tároló frissítése"
|
||||
|
||||
#: admin/add.php:21
|
||||
#: admin/edit.php:21
|
||||
msgid "Show multiple day events on each day?"
|
||||
msgstr "A több napos események minden nap külön látszódjanak?"
|
||||
|
||||
#: admin/add.php:23
|
||||
#: admin/edit.php:23
|
||||
msgid "Display Options"
|
||||
msgstr "Megjelenítési beállítások"
|
||||
|
||||
#: admin/add.php:24
|
||||
#: admin/edit.php:24
|
||||
msgid "Display start time / date?"
|
||||
msgstr "Látszódjon a kezdő idő / dátum?"
|
||||
|
||||
#: admin/add.php:25
|
||||
#: admin/edit.php:25
|
||||
msgid "Display end time / date?"
|
||||
msgstr "Látszódjon a befejező idő / dátum?"
|
||||
|
||||
#: admin/add.php:26
|
||||
#: admin/edit.php:26
|
||||
msgid "Separator text / characters"
|
||||
msgstr "Elválasztó szöveg / karakterek"
|
||||
|
||||
#: admin/add.php:27
|
||||
#: admin/edit.php:27
|
||||
msgid "Display location?"
|
||||
msgstr "Látszódjon a hely?"
|
||||
|
||||
#: admin/add.php:28
|
||||
#: admin/edit.php:28
|
||||
msgid "Display description?"
|
||||
msgstr "Látszódjon a leírás?"
|
||||
|
||||
#: admin/add.php:29
|
||||
#: admin/edit.php:29
|
||||
msgid "Display link to event?"
|
||||
msgstr "Látszódjon az eseményre mutató linK:"
|
||||
|
||||
#: admin/add.php:34
|
||||
msgid "Enter the feed details below, then click the Add Feed button."
|
||||
msgstr "Addja meg a csatorna részleteit, majd nyomja meg a Csatorna hozzáadása gombot."
|
||||
|
||||
#: admin/add.php:58
|
||||
#: admin/edit.php:53
|
||||
msgid "Anything you like. 'Upcoming Club Events', for example."
|
||||
msgstr "Ami tetszik, pl. \"A következő Klub programok.\""
|
||||
|
||||
#: admin/add.php:67
|
||||
#: admin/edit.php:64
|
||||
msgid "This will probably be something like: <code>http://www.google.com/calendar/feeds/your-email@gmail.com/public/full</code>."
|
||||
msgstr "Ez valahogy így fog kinézni: <code>http://www.google.com/calendar/feeds/your-email@gmail.com/public/full</code>."
|
||||
|
||||
#: admin/add.php:76
|
||||
#: admin/edit.php:75
|
||||
msgid "If checked, events will be retrieved from the first of this month onwards. If unchecked, events will be retrieved from today onwards."
|
||||
msgstr "Ha be van jelölve, akkor a jelenlegi hónap első napjától lesznek listázva az események, ha nem, akkor csak az adott naptól."
|
||||
|
||||
#: admin/add.php:85
|
||||
#: admin/edit.php:86
|
||||
msgid "The default number of events to retrieve from a Google Calendar feed is 25, but you may want less for a list, or more for a calendar grid."
|
||||
msgstr "A Google Naptár csatornájának alapértelmezett beállítása 25 esemény lekérdezése egyszerre, de ennél lehet többet és kevesebbet is beállítani."
|
||||
|
||||
#: admin/add.php:94
|
||||
#: admin/edit.php:97
|
||||
msgid "The number of days in the future to retrieve events for (from 12:00am today). Leave blank for no day limit."
|
||||
msgstr "Ahány napot lekérdezzen a jövőben (ma déli 12 órától kezdve). Hagyja üresen, ha nem akar limitet beállítani."
|
||||
|
||||
#: admin/add.php:103
|
||||
#: admin/edit.php:108
|
||||
msgid "In <a href=\"http://php.net/manual/en/function.date.php\">PHP date format</a>. Leave this blank if you'd rather stick with the default format for your blog."
|
||||
msgstr "<a href=\"http://php.net/manual/en/function.date.php\">PHP dátum formátum</a>. Hagyja üresen, ha a honlap alapértelmezését szeretné meghagyni."
|
||||
|
||||
#: admin/add.php:112
|
||||
#: admin/edit.php:119
|
||||
msgid "In <a href=\"http://php.net/manual/en/function.date.php\">PHP date format</a>. Again, leave this blank to stick with the default."
|
||||
msgstr "<a href=\"http://php.net/manual/en/function.date.php\">PHP dátum formátum</a>. Hagyja üresen ezt is, ha a honlap alapértelmezését szeretné meghagyni."
|
||||
|
||||
#: admin/add.php:125
|
||||
#: admin/edit.php:134
|
||||
msgid "If you are having problems with dates and times displaying in the wrong timezone, select a city in your required timezone here."
|
||||
msgstr "Ha valami probléma adódik a dátumokkal és az idővel, itt tudja kiválasztani az időzónájának megfelelő várost."
|
||||
|
||||
#: admin/add.php:134
|
||||
#: admin/edit.php:145
|
||||
msgid "The length of time, in seconds, to cache the feed (43200 = 12 hours). If this feed changes regularly, you may want to reduce the cache duration."
|
||||
msgstr "A tároló lejáratának ideje, másodpercben (43200 másodperc = 1 óra). Ha a csatorna rendszeresen frissül, érdemes kisebb időközre állítani."
|
||||
|
||||
#: admin/add.php:143
|
||||
#: admin/edit.php:156
|
||||
msgid "Show events that span multiple days on each day that they span (There are some limitations of this feature to be aware of)."
|
||||
msgstr "A több napon keresztül tartó események az időtartamuk alatt minden egyes nap külön jelenjenek meg. (Néhány korlátozást figyelembe kell venni ennél a lehetőségnél.)"
|
||||
|
||||
#: admin/add.php:154
|
||||
#: admin/edit.php:167
|
||||
msgid "These settings control what information will be displayed for this feed in the tooltip (for grids), or in a list."
|
||||
msgstr "Ezek a beállítások adják meg azt, hogy milyen információk jelenjenek meg a csatornáról a tippek közt (a naptárdobozban) vagy egy listában."
|
||||
|
||||
#: admin/add.php:155
|
||||
#: admin/edit.php:168
|
||||
msgid "You can use some HTML in the text fields, but ensure it is valid or things might go wonky. Text fields can be empty too."
|
||||
msgstr "Használhat HTML-t is a szövegmezőkben, de mindig győződjön meg, hogy szabványos kódot adott meg, különben könnyen összekuszálódhatnak a dolgok. A szövegmezők üresen is maradhatnak."
|
||||
|
||||
#: admin/add.php:161
|
||||
#: admin/edit.php:176
|
||||
msgid "Select how to display the start date / time."
|
||||
msgstr "Válassza ki, hogyan jelenjen meg a kezdő idő / dátum."
|
||||
|
||||
#: admin/add.php:164
|
||||
#: admin/edit.php:179
|
||||
msgid "Don't display start time or date"
|
||||
msgstr "Ne mutassa a kezdő időt vagy dátumot"
|
||||
|
||||
#: admin/add.php:165
|
||||
#: admin/edit.php:180
|
||||
msgid "Display start time"
|
||||
msgstr "Mutassa a kezdő időt"
|
||||
|
||||
#: admin/add.php:166
|
||||
#: admin/edit.php:181
|
||||
msgid "Display start date"
|
||||
msgstr "Mutassa a kezdő dátumot"
|
||||
|
||||
#: admin/add.php:167
|
||||
#: admin/edit.php:182
|
||||
msgid "Display start time and date (in that order)"
|
||||
msgstr "Mutassa a kezdő időt és dátumot (ebben a sorrendben)"
|
||||
|
||||
#: admin/add.php:168
|
||||
#: admin/edit.php:183
|
||||
msgid "Display start date and time (in that order)"
|
||||
msgstr "Mutassa a kezdő dátumot és időt (ebben a sorrendben)"
|
||||
|
||||
#: admin/add.php:171
|
||||
#: admin/edit.php:186
|
||||
msgid "Text to display before the start time."
|
||||
msgstr "A kezdő idő előtt megjelenítendő szöveg."
|
||||
|
||||
#: admin/add.php:179
|
||||
#: admin/edit.php:196
|
||||
msgid "Select how to display the end date / time."
|
||||
msgstr "Válassza ki, hogyan jelenjen meg a befejező idő / dátum."
|
||||
|
||||
#: admin/add.php:182
|
||||
#: admin/edit.php:199
|
||||
msgid "Don't display end time or date"
|
||||
msgstr "Ne mutassa a befejező időt vagy dátumot"
|
||||
|
||||
#: admin/add.php:183
|
||||
#: admin/edit.php:200
|
||||
msgid "Display end time"
|
||||
msgstr "Mutassa a befejező időt"
|
||||
|
||||
#: admin/add.php:184
|
||||
#: admin/edit.php:201
|
||||
msgid "Display end date"
|
||||
msgstr "Mutassa a befejező dátumot"
|
||||
|
||||
#: admin/add.php:185
|
||||
#: admin/edit.php:202
|
||||
msgid "Display end time and date (in that order)"
|
||||
msgstr "Mutassa a befejező időt és dátumot (ebben a sorrendben)"
|
||||
|
||||
#: admin/add.php:186
|
||||
#: admin/edit.php:203
|
||||
msgid "Display end date and time (in that order)"
|
||||
msgstr "Mutassa a befejező dátumot és időt (ebben a sorrendben)"
|
||||
|
||||
#: admin/add.php:189
|
||||
#: admin/edit.php:206
|
||||
msgid "Text to display before the end time."
|
||||
msgstr "A befejező idő előtt megjelenítendő szöveg."
|
||||
|
||||
#: admin/add.php:197
|
||||
#: admin/edit.php:216
|
||||
msgid "If you have chosen to display both the time and date above, enter the text / characters to display between the time and date here (including any spaces)."
|
||||
msgstr "Ha azt választotta feljebb, hogy mind az idő, mind a dátum látszódjék, írja be az elválasztó szöveget / karaktereket, ami az idő és a dátum közt legyen (akármennyi szóközzel)."
|
||||
|
||||
#: admin/add.php:206
|
||||
#: admin/edit.php:227
|
||||
msgid "Show the location of events?"
|
||||
msgstr "Látszódjon az esemény helye?"
|
||||
|
||||
#: admin/add.php:208
|
||||
#: admin/edit.php:229
|
||||
msgid "Text to display before the location."
|
||||
msgstr "A hely előtt megjelenítendő szöveg."
|
||||
|
||||
#: admin/add.php:217
|
||||
msgid "Show the description of events? (URLs in the description will be made into links)."
|
||||
msgstr "Látszódjon az esemény leírása? (A leírásban lévő URL-ek linkként jelennek meg)."
|
||||
|
||||
#: admin/add.php:219
|
||||
#: admin/edit.php:242
|
||||
msgid "Text to display before the description."
|
||||
msgstr "A leírás előtt megjelenítendő szöveg."
|
||||
|
||||
#: admin/add.php:223
|
||||
#: admin/edit.php:246
|
||||
msgid "Maximum number of words to show from description. Leave blank for no limit."
|
||||
msgstr "A leírásból megjelenítendő szavak maximális száma. Hagyja üresen, ha nem akar limitet beállítani."
|
||||
|
||||
#: admin/add.php:232
|
||||
#: admin/edit.php:257
|
||||
msgid "Show a link to the Google Calendar page for an event?"
|
||||
msgstr "Mutasson link a Google Naptárra az eseményeknél?"
|
||||
|
||||
#: admin/add.php:235
|
||||
#: admin/edit.php:260
|
||||
msgid "Links open in a new window / tab?"
|
||||
msgstr "A link új ablakon / fülön nyíljon?"
|
||||
|
||||
#: admin/add.php:237
|
||||
#: admin/edit.php:262
|
||||
msgid "The link text to be displayed."
|
||||
msgstr "A megjelenítendő link szövege"
|
||||
|
||||
#: admin/delete.php:9
|
||||
#: google-calendar-events.php:201
|
||||
msgid "Delete Feed"
|
||||
msgstr "Csatorna törlése"
|
||||
|
||||
#: admin/delete.php:17
|
||||
msgid "Are you want you want to delete this feed? (Remember to remove / adjust any widgets or shortcodes associated with this feed)."
|
||||
msgstr "Biztosan törölni akarja a csatornát? (Ne felejtse el eltávolítani vagy módosítani a csatornára hivatkozó összes dobozt vagy kódrészletet)."
|
||||
|
||||
#: admin/edit.php:9
|
||||
msgid "Edit Feed"
|
||||
msgstr "Csatorna szerkesztése"
|
||||
|
||||
#: admin/edit.php:34
|
||||
msgid "Make any changes you require to the feed details below, then click the Save Changes button."
|
||||
msgstr "Végezze el a szükséges módosításokat alább, majd nyomja meg a Változtatások mentése gombot."
|
||||
|
||||
#: admin/edit.php:240
|
||||
msgid "Show the description of events? (URLs in the description will be made into links)."
|
||||
msgstr "Látszódjon az esemény leírása? (A leírásban lévő URL-ek linkként jelennek meg)."
|
||||
|
||||
#: admin/main.php:2
|
||||
msgid "Add a New Feed"
|
||||
msgstr "Új csatorna hozzáadása"
|
||||
|
||||
#: admin/main.php:4
|
||||
msgid "Click here to add a new feed"
|
||||
msgstr "Kattintson ide új csatorna hozzáadásához"
|
||||
|
||||
#: admin/main.php:4
|
||||
#: google-calendar-events.php:186
|
||||
msgid "Add Feed"
|
||||
msgstr "Csatorna hozzáadása"
|
||||
|
||||
#: admin/main.php:7
|
||||
msgid "Current Feeds"
|
||||
msgstr "Jelenlegi csatornák"
|
||||
|
||||
#: admin/main.php:16
|
||||
msgid "You haven't added any Google Calendar feeds yet."
|
||||
msgstr "Még nem adott hozzá egyetlen Google Naptár csatornát sem."
|
||||
|
||||
#: admin/main.php:24
|
||||
#: admin/main.php:32
|
||||
msgid "ID"
|
||||
msgstr "Azonosító"
|
||||
|
||||
#: admin/main.php:25
|
||||
#: admin/main.php:33
|
||||
msgid "Title"
|
||||
msgstr "Cím"
|
||||
|
||||
#: admin/main.php:26
|
||||
#: admin/main.php:34
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: admin/main.php:47
|
||||
msgid "Edit"
|
||||
msgstr "Szerkeszt"
|
||||
|
||||
#: admin/main.php:47
|
||||
msgid "Delete"
|
||||
msgstr "Töröl"
|
||||
|
||||
#: admin/main.php:61
|
||||
msgid "General Options"
|
||||
msgstr "Beállítások"
|
||||
|
||||
#: admin/main.php:65
|
||||
msgid "Custom stylesheet URL"
|
||||
msgstr "Saját stíluslap elérési útvonala"
|
||||
|
||||
#: admin/main.php:67
|
||||
msgid ""
|
||||
"If you want to make changes to the default CSS, make a copy of <code>google-calendar-events/css/gce-style.css</code> on your server. Make any \r\n"
|
||||
"\t\t\t\tchanges to the copy. Enter the URL to the copied file below."
|
||||
msgstr ""
|
||||
"Ha szeretné megváltoztatni az eredeti CSS-t, készítsen egy másolatot a <code>google-calendar-events/css/gce-style.css</code> fájlról a szerveren. \r\n"
|
||||
"\t\t\t\tVégezze el a módosításokat, majd írja be a másolat URL-jét alább."
|
||||
|
||||
#: admin/main.php:73
|
||||
msgid "Add JavaScript to footer?"
|
||||
msgstr "Adhatok JavaScriptet a lábléchez?"
|
||||
|
||||
#: admin/main.php:75
|
||||
msgid "If you are having issues with tooltips not appearing or the AJAX functionality not working, try ticking the checkbox below."
|
||||
msgstr "Ha nem jelennek meg a tippek, vagy az AJAX-funkciók nem működnek, próbálkozzon az alábbi jelölőnégyzet kipipálásával."
|
||||
|
||||
#: admin/main.php:80
|
||||
msgid "Loading text"
|
||||
msgstr "Töltés közbeni szöveg"
|
||||
|
||||
#: admin/main.php:82
|
||||
msgid "Text to display while calendar data is loading (on AJAX requests)"
|
||||
msgstr "Az AJAX-kérések töltődése során megjelenő szöveg."
|
||||
|
||||
#: admin/main.php:91
|
||||
msgid "Save"
|
||||
msgstr "Mentés"
|
||||
|
||||
#: google-calendar-events.php:148
|
||||
msgid "Settings"
|
||||
msgstr "Beállítások"
|
||||
|
||||
#: google-calendar-events.php:163
|
||||
msgid "New Feed Added Successfully."
|
||||
msgstr "Az új csatorná sikeresen hozzáadta."
|
||||
|
||||
#: google-calendar-events.php:166
|
||||
msgid "Feed Details Updated Successfully."
|
||||
msgstr "A csatorna részletei sikeresen frissültek."
|
||||
|
||||
#: google-calendar-events.php:169
|
||||
msgid "Feed Deleted Successfully."
|
||||
msgstr "A csatorna sikeresen törlődött."
|
||||
|
||||
#. #-#-#-#-# plugin.pot (Google Calendar Events 0.3.1) #-#-#-#-#
|
||||
#. Plugin Name of the plugin/theme
|
||||
#: google-calendar-events.php:176
|
||||
#: widget/gce-widget.php:6
|
||||
msgid "Google Calendar Events"
|
||||
msgstr "Google Naptár Események"
|
||||
|
||||
#: google-calendar-events.php:187
|
||||
#: google-calendar-events.php:195
|
||||
#: google-calendar-events.php:202
|
||||
msgid "Cancel"
|
||||
msgstr "Mégsem"
|
||||
|
||||
#: google-calendar-events.php:194
|
||||
msgid "Save Changes"
|
||||
msgstr "Változások mentése"
|
||||
|
||||
#: google-calendar-events.php:353
|
||||
msgid "No valid Feed IDs have been entered for this shortcode. Please check that you have entered the IDs correctly and that the Feeds have not been deleted."
|
||||
msgstr "Nincs érvényes Csatornaazonosító megadva ehhez a kódrészlethez. Kérem, ellenőrizze, hogy az azonosítót helyesen adta-e meg, és hogy a csatornát nem törölte-e."
|
||||
|
||||
#: google-calendar-events.php:369
|
||||
#: widget/gce-widget.php:76
|
||||
msgid "No feeds have been added yet. You can add a feed in the Google Calendar Events settings."
|
||||
msgstr "Még nem adott meg csatornát. Csatornát a Google Naptár Események beállításánál tud hozzáadni."
|
||||
|
||||
#: google-calendar-events.php:428
|
||||
#: google-calendar-events.php:445
|
||||
#: widget/gce-widget.php:146
|
||||
#: widget/gce-widget.php:158
|
||||
#, php-format
|
||||
msgid "The following feeds were not parsed successfully: %s. Please check that the feed URLs are correct and that the feeds have public sharing enabled."
|
||||
msgstr "A következő csatornákat nem lehetett feldolgozni: %s. Kérem, ellenőrizze, hogy a csatornák URL-je helyes-e, és hogy a csatornák nyilvánossá lettek-e téve."
|
||||
|
||||
#: inc/gce-parser.php:213
|
||||
msgid "There are currently no upcoming events."
|
||||
msgstr "Nincs esemény a közeljövőben."
|
||||
|
||||
#: widget/gce-widget.php:6
|
||||
msgid "Display a list or calendar grid of events from one or more Google Calendar feeds you have added"
|
||||
msgstr "Listát vagy hagyományos naptárat jelenít meg a megadott Google Naptár csatornából vagy csatornákból."
|
||||
|
||||
#: widget/gce-widget.php:40
|
||||
msgid "No valid Feed IDs have been entered for this widget. Please check that you have entered the IDs correctly and that the Feeds have not been deleted."
|
||||
msgstr "Nincs érvényes azonosító adva ehhez a dobozhoz. Kérem, ellenőrizze, hogy helyesen adta-e meg az azonosítót, és hogy a csatoránt nem törölte-e."
|
||||
|
||||
#: widget/gce-widget.php:99
|
||||
msgid "No feeds have been added yet. You can add feeds in the Google Calendar Events settings."
|
||||
msgstr "Még nem adott meg csatornát. Csatornát a Google Naptár Események beállításánál tud hozzáadni."
|
||||
|
||||
#: widget/gce-widget.php:113
|
||||
msgid "Feed IDs to display in this widget, separated by commas (e.g. 1, 2, 4):"
|
||||
msgstr "A dobozban megjelenítendő csatornák azonosítója, vesszővel elválasztva (pl. 1, 2, 4):"
|
||||
|
||||
#: widget/gce-widget.php:117
|
||||
msgid "Display as:"
|
||||
msgstr "Megjelenítés mint:"
|
||||
|
||||
#: widget/gce-widget.php:119
|
||||
msgid "Calendar Grid"
|
||||
msgstr "Naptárdoboz"
|
||||
|
||||
#: widget/gce-widget.php:120
|
||||
msgid "Calendar Grid - with AJAX"
|
||||
msgstr "Naptárdoboz - AJAX"
|
||||
|
||||
#: widget/gce-widget.php:121
|
||||
msgid "List"
|
||||
msgstr "Lista"
|
||||
|
||||
#: widget/gce-widget.php:122
|
||||
msgid "List - grouped by date"
|
||||
msgstr "Lista dátum szerint csoportosítva"
|
||||
|
||||
#. Plugin URI of the plugin/theme
|
||||
msgid "http://www.rhanney.co.uk/plugins/google-calendar-events"
|
||||
msgstr "http://www.rhanney.co.uk/plugins/google-calendar-events"
|
||||
|
||||
#. Description of the plugin/theme
|
||||
msgid "Parses Google Calendar feeds and displays the events as a calendar grid or list on a page, post or widget."
|
||||
msgstr "Google Naptár csatornákat dolgoz fel és jeleníti meg naptárdobozként vagy listában a megadott oldalon, bejegyzésben vagy dobozban."
|
||||
|
||||
#. Author of the plugin/theme
|
||||
msgid "Ross Hanney"
|
||||
msgstr "Ross Hanney"
|
||||
|
||||
#. Author URI of the plugin/theme
|
||||
msgid "http://www.rhanney.co.uk"
|
||||
msgstr "http://www.rhanney.co.uk"
|
||||
|
||||
@@ -1,288 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
WRITTEN OFFER
|
||||
|
||||
The source code for any program binaries or compressed scripts that are
|
||||
included with WordPress can be freely obtained at the following URL:
|
||||
|
||||
http://wordpress.org/download/source/
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
@@ -1,163 +1,217 @@
|
||||
=== Google Calendar Events ===
|
||||
Contributors: rosshanney, pderksen, nickyoung87
|
||||
Tags: google, google calendar, calendar, event, events, ajax, widget
|
||||
Requires at least: 3.7.4
|
||||
Tested up to: 4.0
|
||||
Stable tag: trunk
|
||||
License: GPLv2 or later
|
||||
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
|
||||
Parses Google Calendar feeds and displays the events as a calendar grid or list on a page, post or widget.
|
||||
|
||||
== Description ==
|
||||
|
||||
Parses Google Calendar feeds and displays the events as a calendar grid or list on a page, post or widget.
|
||||
|
||||
= Features =
|
||||
|
||||
* Parses Google Calendar feeds to extract events
|
||||
* Displays events as a list or within a calendar grid
|
||||
* Events from multiple Google Calendar feeds can be shown in a single list / grid
|
||||
* Lists and grids can be displayed in posts, pages or within a widget
|
||||
* Options to change the number of events retrieved, date / time format, cache duration etc
|
||||
* Complete customisation of the event information displayed
|
||||
* Calendar grids can have the ability to change the month displayed
|
||||
|
||||
Please visit the [plugin homepage](http://www.rhanney.co.uk/plugins/google-calendar-events) for how to get started and other help.
|
||||
|
||||
There is also a [demonstration page](http://www.rhanney.co.uk/plugins/google-calendar-events/gce-demo) showing the plugin in action.
|
||||
|
||||
== Installation ==
|
||||
|
||||
Use the automatic installer from within the WordPress admin, or:
|
||||
|
||||
1. Download the `.zip` file by clicking on the Download button on the right
|
||||
1. Unzip the file
|
||||
1. Upload the `google-calendar-events` directory to your `plugins` directory
|
||||
1. Go to the Plugins page from within the WordPress administration
|
||||
1. Click Activate for Google Calendar Events
|
||||
|
||||
After activation a new Google Calendar Events options menu will appear under Settings.
|
||||
|
||||
You can now start adding feeds. Visit the [plugin homepage](http://www.rhanney.co.uk/plugins/google-calendar-events) for a more in-depth guide on getting started.
|
||||
|
||||
== Screenshots ==
|
||||
|
||||
1. The main plugin admin screen.
|
||||
1. The add feed admin screen.
|
||||
1. A page showing a full page calendar grid and various widgets.
|
||||
|
||||
== Changelog ==
|
||||
|
||||
= 0.7.3.1 =
|
||||
* Include missing file: upgrade-notice.php.
|
||||
|
||||
= 0.7.3 =
|
||||
* Added warning about upcoming version 2.0 release.
|
||||
* Added option to save settings upon uninstall.
|
||||
* Tested with WordPress 4.0.
|
||||
|
||||
= 0.7.2 =
|
||||
* Fixed a bug causing the "More details" Google Calendar information to be displayed in the wrong timezone
|
||||
* Fixed a bug that prevented setting the cache duration to 0 from working correctly
|
||||
* Fixed an issue that prevented Ajax from working with FORCE_SSL_ADMIN enabled
|
||||
* Now uses [wp_enqueue_scripts](http://wpdevel.wordpress.com/2011/12/12/use-wp_enqueue_scripts-not-wp_print_styles-to-enqueue-scripts-and-styles-for-the-frontend/)
|
||||
|
||||
= 0.7.1 =
|
||||
* Fixed bug causing AJAX enabled calendar grids to not function correctly
|
||||
* Fixed bug causing all-day events from outside required date range to be displayed
|
||||
* Fixed bug causing tooltip date title heading setting to be ignored
|
||||
* Added further data sanitisation on output
|
||||
* Feeds with no events will now be cached to prevent HTTP requests on every page load
|
||||
|
||||
= 0.7 =
|
||||
* Fixed bug causing event dates / times to be displayed in the wrong timezone
|
||||
* Changed the [link-path] Event Display Builder shortcode to [url]
|
||||
* Fixed an Opera specific CSS issue causing page lists to be hidden
|
||||
* Lists can now be displayed in descending or ascending order
|
||||
* Added [event-id] and [cal-id] Event Display Builder shortcodes
|
||||
* Added an offset parameter for date / time based Event Display Builder shortcodes
|
||||
* Added an autolink parameter for enabling / disabling automatic linking of URLs
|
||||
* Added gce-day-past or gce-day-future classes to calendar grid cells
|
||||
* Cleaned up CSS
|
||||
|
||||
= 0.6 =
|
||||
* Drastically reduced memory usage
|
||||
* Improved feed data caching system
|
||||
* Improved error reporting
|
||||
* General performance and efficiency improvements
|
||||
* Added a few more shortcodes to the event display builder
|
||||
* Other [miscellaneous changes / additions and bug fixes](http://www.rhanney.co.uk/2011/04/29/google-calendar-events-0-6)
|
||||
|
||||
= 0.5 =
|
||||
* Added [event display builder](http://www.rhanney.co.uk/plugins/google-calendar-events/event-display-builder) feature, which vastly improves the customization possibilities of the plugin. This feature encompasses many of the most requested features, such as:
|
||||
- All-day events can be handled differently than 'normal' events
|
||||
- Start and end times / dates can be displayed on the same line (as can any other event information)
|
||||
- HTML (and Markdown) entered in Google Calendar fields can be properly parsed
|
||||
* Start and end times for retrieval of events are now much more flexible
|
||||
* A custom error message for non-admin users can now be specified
|
||||
* No longer loads SimplePie when it is not required
|
||||
|
||||
= 0.4.1 =
|
||||
* Fix / workaround for the long-running timezone bug. Please take a look at [this](http://www.rhanney.co.uk/2011/01/16/google-calendar-events-0-4-1) for more information.
|
||||
* Added additional 'Maximum no. events to display' option to widget / shortcode (mainly to address a further issue caused by the above fix)
|
||||
* i18n related bug fix
|
||||
* Added support for widget_title filter (courtesy of [James](http://lunasea-studios.com))
|
||||
* Added Hungarian (hu_HU) translation ([danieltakacs](http://ek.klog.hu))
|
||||
* Now using minified version of jQuery qTip script
|
||||
|
||||
= 0.4 =
|
||||
* More control over how start and end dates / times are displayed
|
||||
* Events can now be limited to a specified timeframe (number of days)
|
||||
* Events on the same day in lists can now be shown under a single date title
|
||||
* JavaScript can now be added to the footer rather than the header, via an option
|
||||
* The 'Loading...' text can now be customized
|
||||
* Description text can now be limited to a specified number of words
|
||||
* Multi-day events can be shown on each day that they span ([sort of](http://www.rhanney.co.uk/2010/08/19/google-calendar-events-0-4#multiday))
|
||||
* Bug fixes
|
||||
* i18n / l10n fixes
|
||||
|
||||
= 0.3.1 =
|
||||
* l10n / i18n fixes. Dates should now be localized correctly and should maintain localization after an AJAX request
|
||||
* MU / Multi-site issues. Issues preventing adding of feeds have been addressed
|
||||
|
||||
= 0.3 =
|
||||
* Now allows events from multiple Google Calendar feeds to be displayed on a single calendar grid / list
|
||||
* Internationalization support added
|
||||
|
||||
= 0.2.1 =
|
||||
* Added option to allow 'More details' links to open in new window / tab.
|
||||
* Added option to choose a specific timezone for each feed
|
||||
* Line breaks in an event description will now be preserved
|
||||
* Fixed a bug casing the title to not be displayed on lists
|
||||
* Other minor bug fixes
|
||||
|
||||
= 0.2 =
|
||||
* Added customization options for how information is displayed.
|
||||
* Can now display: start time, end time and date, location, description and event link.
|
||||
* Tooltips now using qTip jQuery plugin.
|
||||
|
||||
= 0.1.4 =
|
||||
* More bug fixes.
|
||||
|
||||
= 0.1.3 =
|
||||
* Several bug fixes, including fixing JavaScript problems that prevented tooltips appearing.
|
||||
|
||||
= 0.1.2 =
|
||||
* Bug fixes.
|
||||
|
||||
= 0.1.1 =
|
||||
* Fix to prevent conflicts with other plugins.
|
||||
* Changes to readme.txt.
|
||||
|
||||
= 0.1 =
|
||||
* Initial release.
|
||||
|
||||
== Upgrade Notice ==
|
||||
|
||||
= 0.5 =
|
||||
Event retrieval date / time range is now much more flexible. Also adds event display builder, which allows much greater customization of the event information displayed.
|
||||
|
||||
== Frequently Asked Questions ==
|
||||
|
||||
Please visit the [FAQ page](http://www.rhanney.co.uk/plugins/google-calendar-events/frequently-asked-questions). If you have further questions, leave a comment on the [plugin homepage](http://www.rhanney.co.uk/plugins/google-calendar-events), or [send me an email](http://www.rhanney.co.uk/contact).
|
||||
=== Google Calendar Events ===
|
||||
Contributors: pderksen, nickyoung87, rosshanney
|
||||
Tags: google calendar, google, calendar, events, gcal
|
||||
Requires at least: 3.7.4
|
||||
Tested up to: 4.0
|
||||
Stable tag: trunk
|
||||
License: GPLv2 or later
|
||||
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
|
||||
Parses Google Calendar feeds and displays the events as a calendar grid or list on a page, post or widget.
|
||||
|
||||
== Description ==
|
||||
|
||||
Parses Google Calendar feeds and displays the events as a calendar grid or list on a page, post or widget.
|
||||
|
||||
= Features =
|
||||
|
||||
* Parses Google Calendar feeds to extract events
|
||||
* Displays events as a list or within a calendar grid
|
||||
* Events from multiple Google Calendar feeds can be shown in a single list / grid
|
||||
* Lists and grids can be displayed in posts, pages or within a widget
|
||||
* Options to change the number of events retrieved, date / time format, cache duration etc
|
||||
* Complete customisation of the event information displayed
|
||||
* Calendar grids can have the ability to change the month displayed
|
||||
|
||||
[Plugin Documentation & Getting Started](http://wpdocs.philderksen.com/google-calendar-events/?utm_source=wordpress_org&utm_medium=link&utm_campaign=gce_lite)
|
||||
|
||||
###Feature Requests and Updates###
|
||||
|
||||
* [Public roadmap/feature requests](https://trello.com/b/ZQSzsarY)
|
||||
* [Get notified of major plugin updates](http://eepurl.com/0_VsT)
|
||||
* [Follow this project on Github](https://github.com/pderksen/WP-Google-Calendar-Events)
|
||||
|
||||
This plugin was originally created by [Ross Hanney](http://www.rhanney.co.uk), a web developer based in the UK specialising in WordPress and PHP.
|
||||
|
||||
== Installation ==
|
||||
|
||||
There are three ways to install this plugin.
|
||||
|
||||
= 1. Admin Search =
|
||||
1. In your Admin, go to menu Plugins > Add.
|
||||
1. Search for `Google Calendar`.
|
||||
1. Find the plugin that's labeled `Google Calendar Events`.
|
||||
1. Look for the author name `Phil Derksen` on the plugin.
|
||||
1. Click to install.
|
||||
1. Activate the plugin.
|
||||
1. A new menu item `GCal Events` will appear in the main menu.
|
||||
|
||||
= 2. Download & Upload =
|
||||
1. Download the plugin (a zip file) on the right column of this page.
|
||||
1. In your Admin, go to menu Plugins > Add.
|
||||
1. Select the tab "Upload".
|
||||
1. Upload the .zip file you just downloaded.
|
||||
1. Activate the plugin.
|
||||
1. A new menu item `GCal Events` will appear in the main menu.
|
||||
|
||||
= 3. FTP Upload =
|
||||
1. Download the plugin (.zip file) on the right column of this page.
|
||||
1. Unzip the zip file contents.
|
||||
1. Upload the `google-calendar-events` folder to the `/wp-content/plugins/` directory of your site.
|
||||
1. Activate the plugin through the 'Plugins' menu in WordPress.
|
||||
1. A new menu item `GCal Events` will appear in the main menu.
|
||||
|
||||
== Frequently Asked Questions ==
|
||||
|
||||
[Plugin Documentation & Getting Started](http://wpdocs.philderksen.com/google-calendar-events/?utm_source=wordpress_org&utm_medium=link&utm_campaign=gce_lite)
|
||||
|
||||
== Screenshots ==
|
||||
|
||||
1. Grid display in full page with tooltip
|
||||
1. Grid display in widget
|
||||
1. List display in widget
|
||||
1. Simple display options
|
||||
1. Calendar feed settings
|
||||
1. Calendar widget settings
|
||||
1. Event display builder editor
|
||||
|
||||
== Changelog ==
|
||||
|
||||
= 2.0.1 =
|
||||
|
||||
* Fixed display errors with certain event builder shortcodes.
|
||||
* Added language folder.
|
||||
|
||||
= 2.0.0 =
|
||||
|
||||
* Plugin rewritten from scratch.
|
||||
* Now using custom post types for storing and customizing Google calendar feeds.
|
||||
* Introduced the shortcode `[gcal]` (old shortcode still supported).
|
||||
|
||||
= 0.7.3.1 =
|
||||
|
||||
* Include missing file: upgrade-notice.php.
|
||||
|
||||
= 0.7.3 =
|
||||
|
||||
* Added warning about upcoming version 2.0 release.
|
||||
* Added option to save settings upon uninstall.
|
||||
* Tested with WordPress 4.0.
|
||||
|
||||
= 0.7.2 =
|
||||
|
||||
* Fixed a bug causing the "More details" Google Calendar information to be displayed in the wrong timezone
|
||||
* Fixed a bug that prevented setting the cache duration to 0 from working correctly
|
||||
* Fixed an issue that prevented Ajax from working with FORCE_SSL_ADMIN enabled
|
||||
* Now uses [wp_enqueue_scripts](http://wpdevel.wordpress.com/2011/12/12/use-wp_enqueue_scripts-not-wp_print_styles-to-enqueue-scripts-and-styles-for-the-frontend/)
|
||||
|
||||
= 0.7.1 =
|
||||
|
||||
* Fixed bug causing AJAX enabled calendar grids to not function correctly
|
||||
* Fixed bug causing all-day events from outside required date range to be displayed
|
||||
* Fixed bug causing tooltip date title heading setting to be ignored
|
||||
* Added further data sanitisation on output
|
||||
* Feeds with no events will now be cached to prevent HTTP requests on every page load
|
||||
|
||||
= 0.7 =
|
||||
|
||||
* Fixed bug causing event dates / times to be displayed in the wrong timezone
|
||||
* Changed the [link-path] Event Display Builder shortcode to [url]
|
||||
* Fixed an Opera specific CSS issue causing page lists to be hidden
|
||||
* Lists can now be displayed in descending or ascending order
|
||||
* Added [event-id] and [cal-id] Event Display Builder shortcodes
|
||||
* Added an offset parameter for date / time based Event Display Builder shortcodes
|
||||
* Added an autolink parameter for enabling / disabling automatic linking of URLs
|
||||
* Added gce-day-past or gce-day-future classes to calendar grid cells
|
||||
* Cleaned up CSS
|
||||
|
||||
= 0.6 =
|
||||
|
||||
* Drastically reduced memory usage
|
||||
* Improved feed data caching system
|
||||
* Improved error reporting
|
||||
* General performance and efficiency improvements
|
||||
* Added a few more shortcodes to the event display builder
|
||||
* Other [miscellaneous changes / additions and bug fixes](http://www.rhanney.co.uk/2011/04/29/google-calendar-events-0-6)
|
||||
|
||||
= 0.5 =
|
||||
|
||||
* Added [event display builder](http://www.rhanney.co.uk/plugins/google-calendar-events/event-display-builder) feature, which vastly improves the customization possibilities of the plugin. This feature encompasses many of the most requested features, such as:
|
||||
- All-day events can be handled differently than 'normal' events
|
||||
- Start and end times / dates can be displayed on the same line (as can any other event information)
|
||||
- HTML (and Markdown) entered in Google Calendar fields can be properly parsed
|
||||
* Start and end times for retrieval of events are now much more flexible
|
||||
* A custom error message for non-admin users can now be specified
|
||||
* No longer loads SimplePie when it is not required
|
||||
|
||||
= 0.4.1 =
|
||||
|
||||
* Fix / workaround for the long-running timezone bug. Please take a look at [this](http://www.rhanney.co.uk/2011/01/16/google-calendar-events-0-4-1) for more information.
|
||||
* Added additional 'Maximum no. events to display' option to widget / shortcode (mainly to address a further issue caused by the above fix)
|
||||
* i18n related bug fix
|
||||
* Added support for widget_title filter (courtesy of [James](http://lunasea-studios.com))
|
||||
* Added Hungarian (hu_HU) translation ([danieltakacs](http://ek.klog.hu))
|
||||
* Now using minified version of jQuery qTip script
|
||||
|
||||
= 0.4 =
|
||||
|
||||
* More control over how start and end dates / times are displayed
|
||||
* Events can now be limited to a specified timeframe (number of days)
|
||||
* Events on the same day in lists can now be shown under a single date title
|
||||
* JavaScript can now be added to the footer rather than the header, via an option
|
||||
* The 'Loading...' text can now be customized
|
||||
* Description text can now be limited to a specified number of words
|
||||
* Multi-day events can be shown on each day that they span ([sort of](http://www.rhanney.co.uk/2010/08/19/google-calendar-events-0-4#multiday))
|
||||
* Bug fixes
|
||||
* i18n / l10n fixes
|
||||
|
||||
= 0.3.1 =
|
||||
|
||||
* l10n / i18n fixes. Dates should now be localized correctly and should maintain localization after an AJAX request
|
||||
* MU / Multi-site issues. Issues preventing adding of feeds have been addressed
|
||||
|
||||
= 0.3 =
|
||||
|
||||
* Now allows events from multiple Google Calendar feeds to be displayed on a single calendar grid / list
|
||||
* Internationalization support added
|
||||
|
||||
= 0.2.1 =
|
||||
|
||||
* Added option to allow 'More details' links to open in new window / tab.
|
||||
* Added option to choose a specific timezone for each feed
|
||||
* Line breaks in an event description will now be preserved
|
||||
* Fixed a bug casing the title to not be displayed on lists
|
||||
* Other minor bug fixes
|
||||
|
||||
= 0.2 =
|
||||
|
||||
* Added customization options for how information is displayed.
|
||||
* Can now display: start time, end time and date, location, description and event link.
|
||||
* Tooltips now using qTip jQuery plugin.
|
||||
|
||||
= 0.1.4 =
|
||||
|
||||
* More bug fixes.
|
||||
|
||||
= 0.1.3 =
|
||||
|
||||
* Several bug fixes, including fixing JavaScript problems that prevented tooltips appearing.
|
||||
|
||||
= 0.1.2 =
|
||||
|
||||
* Bug fixes.
|
||||
|
||||
= 0.1.1 =
|
||||
|
||||
* Fix to prevent conflicts with other plugins.
|
||||
* Changes to readme.txt.
|
||||
|
||||
= 0.1 =
|
||||
|
||||
* Initial release.
|
||||
|
||||
== Upgrade Notice ==
|
||||
|
||||
= 2.0.0 =
|
||||
|
||||
This is a major upgrade to a new code base and structure. PLEASE make sure you backup your site before upgrading.
|
||||
|
Before Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 45 KiB |
@@ -1,23 +1,70 @@
|
||||
<?php
|
||||
if ( !defined( 'WP_UNINSTALL_PLUGIN' ) )
|
||||
die();
|
||||
|
||||
$gce_options = get_option( 'gce_options' );
|
||||
|
||||
//Remove any cached feed data
|
||||
foreach ( $gce_options as $gce_feed ) {
|
||||
if ( isset( $gce_feed['id'] ) ) {
|
||||
delete_transient( 'gce_feed_' . $gce_feed['id'] );
|
||||
delete_transient( 'gce_feed_' . $gce_feed['id'] . '_url' );
|
||||
}
|
||||
}
|
||||
|
||||
//Delete plugin options
|
||||
$gce_general = get_option( 'gce_general' );
|
||||
|
||||
if( $gce_general['save_settings'] != true ) {
|
||||
delete_option( 'gce_options' );
|
||||
delete_option( 'gce_general' );
|
||||
delete_option( 'gce_version' );
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* Fired when the plugin is uninstalled.
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
// If uninstall not called from WordPress, then exit
|
||||
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$general = get_option( 'gce_settings_general' );
|
||||
|
||||
// If this is empty then it means it is unchecked and we should delete everything
|
||||
if ( empty( $general['save_settings'] ) ) {
|
||||
|
||||
/*** VERSION 2.0.0 GCE OPTIONS ***/
|
||||
|
||||
// Remove CPTs and transients
|
||||
$feeds = get_posts( array(
|
||||
'post_type' => 'gce_feed',
|
||||
'post_status' => array(
|
||||
'any',
|
||||
'trash',
|
||||
'auto-draft'
|
||||
)
|
||||
));
|
||||
|
||||
foreach( $feeds as $f ) {
|
||||
// delete the transient while we have the post ID available
|
||||
delete_transient( 'gce_feed_' . $f->ID );
|
||||
|
||||
// Now delete the post
|
||||
wp_delete_post( $f->ID, true );
|
||||
}
|
||||
|
||||
// Remove all post meta
|
||||
delete_post_meta_by_key( 'gce_feed_url' );
|
||||
delete_post_meta_by_key( 'gce_retrieve_from' );
|
||||
delete_post_meta_by_key( 'gce_retrieve_until' );
|
||||
delete_post_meta_by_key( 'gce_retrieve_max' );
|
||||
delete_post_meta_by_key( 'gce_date_format' );
|
||||
delete_post_meta_by_key( 'gce_time_format' );
|
||||
delete_post_meta_by_key( 'gce_cache' );
|
||||
delete_post_meta_by_key( 'gce_multi_day_events' );
|
||||
delete_post_meta_by_key( 'gce_display_mode' );
|
||||
delete_post_meta_by_key( 'gce_custom_from' );
|
||||
delete_post_meta_by_key( 'gce_custom_until' );
|
||||
|
||||
// Remove options
|
||||
delete_option( 'gce_upgrade_has_run' );
|
||||
delete_option( 'gce_version' );
|
||||
delete_option( 'gce_settings_general' );
|
||||
delete_option( 'gce_cpt_setup' );
|
||||
|
||||
// Remove widgets
|
||||
delete_option( 'widget_gce_widget' );
|
||||
|
||||
|
||||
/*** OLD GCE VERSION OPTIONS ***/
|
||||
|
||||
delete_option( 'gce_options' );
|
||||
delete_option( 'gce_general' );
|
||||
delete_option( 'gce_clear_old_transients' );
|
||||
delete_option( 'gce_show_upgrade_notice' );
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Represents the view for the administration dashboard.
|
||||
*
|
||||
* This includes the header, options, and other information that should provide
|
||||
* The User Interface to the end user.
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
*/
|
||||
|
||||
// Exit if accessed directly.
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
//global $gce_options;
|
||||
|
||||
?>
|
||||
|
||||
<div class="wrap">
|
||||
<?php settings_errors(); ?>
|
||||
<div id="gce-settings">
|
||||
<div id="gce-settings-content">
|
||||
<h2><?php echo esc_html( get_admin_page_title() ); ?></h2>
|
||||
|
||||
<form method="post" action="options.php">
|
||||
<?php
|
||||
|
||||
settings_fields( 'gce_settings_general' );
|
||||
do_settings_sections( 'gce_settings_general' );
|
||||
|
||||
submit_button();
|
||||
?>
|
||||
</form>
|
||||
</div><!-- #gce-settings-content -->
|
||||
</div><!-- #gce-settings -->
|
||||
</div><!-- .wrap -->
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Display Options Post Meta Output
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
global $post;
|
||||
|
||||
$post_id = $post->ID;
|
||||
|
||||
// Load up all post meta data
|
||||
$gce_display_start = get_post_meta( $post->ID, 'gce_display_start', true );
|
||||
$gce_display_start_text = get_post_meta( $post->ID, 'gce_display_start_text', true );
|
||||
$gce_display_end = get_post_meta( $post->ID, 'gce_display_end', true );
|
||||
$gce_display_end_text = get_post_meta( $post->ID, 'gce_display_end_text', true );
|
||||
$gce_display_separator = get_post_meta( $post->ID, 'gce_display_separator', true );
|
||||
$gce_display_location = get_post_meta( $post->ID, 'gce_display_location', true );
|
||||
$gce_display_location_text = get_post_meta( $post->ID, 'gce_display_location_text', true );
|
||||
$gce_display_description = get_post_meta( $post->ID, 'gce_display_description', true );
|
||||
$gce_display_description_text = get_post_meta( $post->ID, 'gce_display_description_text', true );
|
||||
$gce_display_description_max = get_post_meta( $post->ID, 'gce_display_description_max', true );
|
||||
$gce_display_link = get_post_meta( $post->ID, 'gce_display_link', true );
|
||||
$gce_display_link_tab = get_post_meta( $post->ID, 'gce_display_link_tab', true );
|
||||
$gce_display_link_text = get_post_meta( $post->ID, 'gce_display_link_text', true );
|
||||
$gce_display_simple = get_post_meta( $post->ID, 'gce_display_simple', true );
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<div id="gce-display-options-wrap">
|
||||
<div class="gce-meta-control">
|
||||
<p>
|
||||
<input type="checkbox" name="gce_display_simple" id="gce_display_simple" value="1" <?php checked( $gce_display_simple, '1' ); ?> />
|
||||
<label for="gce_display_simple" id="gce-simple-display-label"><?php _e( 'Check this box to use the simple display options below instead of the Event Builder code on the left.', 'gce' ); ?></label>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="gce-meta-control">
|
||||
<strong><?php _e( 'Start date / time display', 'gce' ); ?></strong>
|
||||
<label class="description" for="gce_display_start"><?php _e( 'Select how to display the start date / time.', 'gce' ); ?></label>
|
||||
<select name="gce_display_start" id="gce_display_start">
|
||||
<option value="none" <?php selected( $gce_display_start, 'none', true ); ?>><?php _e( 'None', 'gce' ); ?></option>
|
||||
<option value="time" <?php selected( $gce_display_start, 'time', true ); ?>><?php _e( 'Start time', 'gce' ); ?></option>
|
||||
<option value="date" <?php selected( $gce_display_start, 'date', true ); ?>><?php _e( 'Start date', 'gce' ); ?></option>
|
||||
<option value="time-date" <?php selected( $gce_display_start, 'time-date', true ); ?>><?php _e( 'Start time and date', 'gce' ); ?></option>
|
||||
<option value="date-time" <?php selected( $gce_display_start, 'date-time', true ); ?>><?php _e( 'Start date and time', 'gce' ); ?></option>
|
||||
</select>
|
||||
<label class="description" for="gce_display_start_text"><?php _e( 'Text to display before the start time.', 'gce' ); ?></label>
|
||||
<input type="text" name="gce_display_start_text" id="gce_display_start_text" value="<?php echo $gce_display_start_text; ?>" />
|
||||
</div>
|
||||
|
||||
<div class="gce-meta-control">
|
||||
<strong><?php _e( 'End time/date display', 'gce' ); ?></strong>
|
||||
<label class="description" for="gce_display_end"><?php _e( 'Select how to display the end date / time.', 'gce' ); ?></label>
|
||||
<select name="gce_display_end" id="gce_display_end">
|
||||
<option value="none" <?php selected( $gce_display_end, 'none', true ); ?>><?php _e( 'None', 'gce' ); ?></option>
|
||||
<option value="time" <?php selected( $gce_display_end, 'time', true ); ?>><?php _e( 'End time', 'gce' ); ?></option>
|
||||
<option value="date" <?php selected( $gce_display_end, 'date', true ); ?>><?php _e( 'End date', 'gce' ); ?></option>
|
||||
<option value="time-date" <?php selected( $gce_display_end, 'time-date', true ); ?>><?php _e( 'End time and date', 'gce' ); ?></option>
|
||||
<option value="date-time" <?php selected( $gce_display_end, 'date-time', true ); ?>><?php _e( 'End date and time', 'gce' ); ?></option>
|
||||
</select>
|
||||
<label class="description" for="gce_display_end_text"><?php _e( 'Text to display before the end time.', 'gce' ); ?></label>
|
||||
<input type="text" name="gce_display_end_text" id="gce_display_end_text" value="<?php echo $gce_display_end_text; ?>" />
|
||||
</div>
|
||||
|
||||
<div class="gce-meta-control">
|
||||
<strong><?php _e( 'Separator', 'gce' ); ?></strong>
|
||||
<label class="description" for="gce_display_separator">
|
||||
<?php _e( 'If you have chosen to display both the time and date above, enter the text / characters to display between the time and date here (including any spaces).' , 'gce' ); ?>
|
||||
</label>
|
||||
<input type="text" name="gce_display_separator" id="gce_display_separator" value="<?php echo $gce_display_separator; ?>" />
|
||||
</div>
|
||||
|
||||
<div class="gce-meta-control">
|
||||
<strong>Location</strong>
|
||||
<p><input type="checkbox" name="gce_display_location" id="gce_display_location" value="1" <?php checked( $gce_display_location, '1' ); ?> />
|
||||
<label for="gce_display_location">Show the location of events?</label></p>
|
||||
<label class="description" for="gce_display_location_text">Text to display before the location.</label>
|
||||
<input type="text" name="gce_display_location_text" id="gce_display_location_text" value="<?php echo $gce_display_location_text; ?>" />
|
||||
</div>
|
||||
|
||||
<div class="gce-meta-control">
|
||||
<strong><?php _e( 'Description', 'gce' ); ?></strong>
|
||||
<p>
|
||||
<input type="checkbox" name="gce_display_description" id="gce_display_description" value="1" <?php checked( $gce_display_description, '1' ); ?> />
|
||||
<label for="gce_display_description"><?php _e( 'Show the description of events? (URLs in the description will be made into links).', 'gce' ); ?></label>
|
||||
</p>
|
||||
<label class="description" for="gce_display_description_text"><?php _e( 'Text to display before the description.', 'gce' ); ?></label>
|
||||
<input type="text" name="gce_display_description_text" id="gce_display_description_text" value="<?php echo $gce_display_description_text; ?>" />
|
||||
<label class="description" for="gce_display_description_max"><?php _e( 'Maximum number of words to show from description. Leave blank for no limit.', 'gce' ); ?></label>
|
||||
<input type="text" name="gce_display_description_max" id="gce_display_description_max" value="<?php echo $gce_display_description_max; ?>" />
|
||||
</div>
|
||||
|
||||
<div class="gce-meta-control">
|
||||
<strong><?php _e( 'Event Link', 'gce' ); ?></strong>
|
||||
<p>
|
||||
<input type="checkbox" name="gce_display_link" id="gce_display_link" value="1" <?php checked( $gce_display_link, '1' ); ?> />
|
||||
<label for="gce_display_link"><?php _e( 'Show a link to the Google Calendar page for an event?', 'gce' ); ?></label>
|
||||
</p>
|
||||
<p>
|
||||
<input type="checkbox" name="gce_display_link_tab" id="gce_display_link_tab" value="1" <?php checked( $gce_display_link_tab, '1' ); ?> />
|
||||
<label for="gce_display_link_tab"><?php _e( 'Links open in a new window / tab?', 'gce' ); ?></label>
|
||||
</p>
|
||||
<label class="description" for="gce_display_link_text"><?php _e( 'The link text to be displayed.', 'gce' ); ?></label>
|
||||
<input type="text" name="gce_display_link_text" id="gce_display_link_text" value="<?php echo $gce_display_link_text; ?>" />
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,230 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Display for Feed Custom Post Types
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
global $post;
|
||||
|
||||
$post_id = $post->ID;
|
||||
|
||||
// Clear the cache if the button was clicked to do so
|
||||
if( isset( $_GET['clear_cache'] ) && $_GET['clear_cache'] == 1 ) {
|
||||
gce_clear_cache( $post_id );
|
||||
}
|
||||
|
||||
// Load up all post meta data
|
||||
$gce_feed_url = get_post_meta( $post->ID, 'gce_feed_url', true );
|
||||
$gce_retrieve_from = get_post_meta( $post->ID, 'gce_retrieve_from', true );
|
||||
$gce_retrieve_until = get_post_meta( $post->ID, 'gce_retrieve_until', true );
|
||||
$gce_retrieve_max = get_post_meta( $post->ID, 'gce_retrieve_max', true );
|
||||
$gce_date_format = get_post_meta( $post->ID, 'gce_date_format', true );
|
||||
$gce_time_format = get_post_meta( $post->ID, 'gce_time_format', true );
|
||||
$gce_cache = get_post_meta( $post->ID, 'gce_cache', true );
|
||||
$gce_multi_day_events = get_post_meta( $post->ID, 'gce_multi_day_events', true );
|
||||
$gce_display_mode = get_post_meta( $post->ID, 'gce_display_mode', true );
|
||||
$gce_custom_from = get_post_meta( $post->ID, 'gce_custom_from', true );
|
||||
$gce_custom_until = get_post_meta( $post->ID, 'gce_custom_until', true );
|
||||
$gce_search_query = get_post_meta( $post->ID, 'gce_search_query', true );
|
||||
$gce_expand_recurring = get_post_meta( $post->ID, 'gce_expand_recurring', true );
|
||||
?>
|
||||
|
||||
<div id="gce-admin-promo">
|
||||
<?php echo __( 'We\'re <strong>smack dab</strong> in the middle of building additional features for this plugin. Have ideas?', 'gce' ); ?>
|
||||
<strong>
|
||||
<a href="https://trello.com/b/ZQSzsarY" target="_blank">
|
||||
<?php echo __( 'Visit our roadmap and tell us what you\'re looking for', 'gce' ); ?>
|
||||
</a>
|
||||
</strong>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<?php echo __( 'Want to know when we release something new?', 'gce' ); ?>
|
||||
<strong>
|
||||
<a href="http://eepurl.com/0_VsT" target="_blank">
|
||||
<?php echo __( 'Get notified of major plugin updates', 'gce' ); ?>
|
||||
</a>
|
||||
</strong>
|
||||
</div>
|
||||
|
||||
<table class="form-table">
|
||||
<tr>
|
||||
<th scope="row"><?php _e( 'Feed Shortcode', 'gce' ); ?></th>
|
||||
<td>
|
||||
<code>[gcal id="<?php echo $post_id; ?>"]</code>
|
||||
<p class="description"><?php _e( 'Copy and paste this shortcode to display this Google Calendar feed in any post or page.', 'gce' ); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_feed_url"><?php _e( 'GCal Feed URL', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<input type="text" class="large-text" name="gce_feed_url" id="gce_feed_url" value="<?php echo $gce_feed_url; ?>" />
|
||||
<p class="description">
|
||||
<?php _e( 'The Google Calendar feed URL.', 'gce' ); ?><br/>
|
||||
<?php _e( 'Example', 'gce' ); ?>: <code>https://www.google.com/calendar/feeds/em3luo1919fjcjum4j874j5ejg%40group.calendar.google.com/public/basic</code><br/>
|
||||
<a href="http://wpdocs.philderksen.com/google-calendar-events/getting-started/find-feed-url/" target="_blank"><?php _e( 'How to find your GCal feed URL', 'gce' ); ?></a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_search_query"><?php _e( 'Search Query', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<input type="text" class="" name="gce_search_query" id="gce_search_query" value="<?php echo $gce_search_query; ?>" />
|
||||
<p class="description"><?php _e( 'Find and show events based on a search query.', 'gce' ); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_expand_recurring"><?php _e( 'Expand Recurring Events?', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="gce_expand_recurring" id="gce_expand_recurring" value="1" <?php checked( $gce_expand_recurring, '1' ); ?> /> <?php _e( 'Yes', 'gce' ); ?>
|
||||
<p class="description"><?php _e( 'This will show recurring events each time they occur, otherwise it will only show the event the first time it occurs.', 'gce' ); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_retrieve_from"><?php _e( 'Retrieve Events From', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<select name="gce_retrieve_from" id="gce_retrieve_from">
|
||||
<option value="today" <?php selected( $gce_retrieve_from, 'today', true ); ?>><?php _e( 'Today', 'gce' ); ?></option>
|
||||
<option value="start_week" <?php selected( $gce_retrieve_from, 'start_week', true ); ?>><?php _e( 'Start of current week', 'gce' ); ?></option>
|
||||
<option value="start_month" <?php selected( $gce_retrieve_from, 'start_month', true ); ?>><?php _e( 'Start of current month', 'gce' ); ?></option>
|
||||
<option value="end_month" <?php selected( $gce_retrieve_from, 'end_month', true ); ?>><?php _e( 'End of current month', 'gce' ); ?></option>
|
||||
<option value="start_time" <?php selected( $gce_retrieve_from, 'start_time', true ); ?>><?php _e( 'The beginning of time', 'gce' ); ?></option>
|
||||
<option value="custom_date" <?php selected( $gce_retrieve_from, 'custom_date', true ); ?>><?php _e( 'Specific date', 'gce' ); ?></option>
|
||||
</select>
|
||||
<input type="text" <?php echo ( $gce_retrieve_from != 'custom_date' ? 'class="gce-admin-hidden" ' : ' ' ); ?> name="gce_custom_from" id="gce_custom_from" value="<?php echo $gce_custom_from; ?>" />
|
||||
<p class="description"><?php _e( 'The point in time at which to start retrieving events.', 'gce' ); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_retrieve_until"><?php _e( 'Retrieve Events Until', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<select name="gce_retrieve_until" id="gce_retrieve_until">
|
||||
<option value="today" <?php selected( $gce_retrieve_until, 'today', true ); ?>><?php _e( 'Today', 'gce' ); ?></option>
|
||||
<option value="start_week" <?php selected( $gce_retrieve_until, 'start_week', true ); ?>><?php _e( 'Start of current week', 'gce' ); ?></option>
|
||||
<option value="start_month" <?php selected( $gce_retrieve_until, 'start_month', true ); ?>><?php _e( 'Start of current month', 'gce' ); ?></option>
|
||||
<option value="end_month" <?php selected( $gce_retrieve_until, 'end_month', true ); ?>><?php _e( 'End of current month', 'gce' ); ?></option>
|
||||
<option value="end_time" <?php selected( $gce_retrieve_until, 'end_time', true ); ?>><?php _e( 'The end of time', 'gce' ); ?></option>
|
||||
<option value="custom_date" <?php selected( $gce_retrieve_until, 'custom_date', true ); ?>><?php _e( 'Specific date', 'gce' ); ?></option>
|
||||
</select>
|
||||
<input type="text" <?php echo ( $gce_retrieve_until != 'custom_date' ? 'class="gce-admin-hidden" ' : ' ' ); ?> name="gce_custom_until" id="gce_custom_until" value="<?php echo $gce_custom_until; ?>" />
|
||||
<p class="description"><?php _e( 'The point in time at which to stop retrieving events.', 'gce' ); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_retrieve_max"><?php _e( 'Max Number of Events', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<input type="text" class="" name="gce_retrieve_max" id="gce_retrieve_max" value="<?php echo $gce_retrieve_max; ?>" />
|
||||
<p class="description"><?php _e( 'Maximum number of events to show.', 'gce' ); ?></p>
|
||||
<td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_date_format"><?php _e( 'Date Format', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<input type="text" class="" name="gce_date_format" id="gce_date_format" value="<?php echo $gce_date_format; ?>" />
|
||||
<p class="description">
|
||||
<?php printf( __( 'Use %sPHP date formatting%s.', 'gce' ), '<a href="http://php.net/manual/en/function.date.php" target="_blank">', '</a>' ); ?>
|
||||
<?php echo _x( 'Leave blank to use the default.', 'References the Date Format option', 'gce' ); ?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_time_format"><?php _e( 'Time Format', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<input type="text" class="" name="gce_time_format" id="gce_time_format" value="<?php echo $gce_time_format; ?>" />
|
||||
<p class="description">
|
||||
<?php printf( __( 'Use %sPHP date formatting%s.', 'gce' ), '<a href="http://php.net/manual/en/function.date.php" target="_blank">', '</a>' ); ?>
|
||||
<?php echo _x( 'Leave blank to use the default.', 'References the Time Format option', 'gce' ); ?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_timezone_offset"><?php _e( 'Timezone Adjustment', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<?php echo gce_add_timezone_field(); ?>
|
||||
<p class="description"><?php _e( 'If you are having problems with dates and times displaying in the wrong timezone, select a city in your required timezone here.', 'gce' ); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_cache"><?php _e( 'Cache Duration', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<input type="text" class="" name="gce_cache" id="gce_cache" value="<?php echo $gce_cache; ?>" />
|
||||
<p class="description"><?php _e( 'The length of time, in seconds, to cache the feed (43200 = 12 hours). If this feed changes regularly, you may want to reduce the cache duration.', 'gce' ); ?></p>
|
||||
<td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_multi_day_events"><?php _e( 'Multiple Day Events', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="gce_multi_day_events" id="gce_multi_day_events" value="1" <?php checked( $gce_multi_day_events, '1' ); ?> /> <?php _e( 'Show on each day', 'gce' ); ?>
|
||||
<p class="description"><?php _e( 'Show events that span multiple days on each day that they span, rather than just the first day.', 'gce' ); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><label for="gce_display_mode"><?php _e( 'Display Mode', 'gce' ); ?></label></th>
|
||||
<td>
|
||||
<select name="gce_display_mode" id="gce_display_mode">
|
||||
<option value="grid" <?php selected( $gce_display_mode, 'grid', true ); ?>><?php _e( 'Grid', 'gce' ); ?></option>
|
||||
<option value="list" <?php selected( $gce_display_mode, 'list', true ); ?>><?php _e( 'List', 'gce' ); ?></option>
|
||||
<option value="list-grouped" <?php selected( $gce_display_mode, 'list-grouped', true ); ?>><?php _e( 'Grouped List', 'gce' ); ?></option>
|
||||
</select>
|
||||
<p class="description"><?php _e( 'Choose how you want your calendar to be displayed.', 'gce' ); ?></p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><?php _e( 'Clear Cache', 'gce' ); ?></th>
|
||||
<td>
|
||||
<a href="<?php echo add_query_arg( array( 'clear_cache' => true ) ); ?>" class="button-secondary"><?php _e( 'Clear Cache', 'gce' ); ?></a>
|
||||
<p class="description">
|
||||
<?php
|
||||
printf( __( 'This will clear your feed cache. This also automatically happens when you save your changes. %s' .
|
||||
'If you make changes you %sMUST%s save first or your changes will be lost.' ), '<br>', '<strong>', '</strong>' );
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<?php
|
||||
/**
|
||||
* Since we have a huge list of Timezones we use this to grab them
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_add_timezone_field() {
|
||||
global $post;
|
||||
|
||||
$gce_timezone_offset = get_post_meta( $post->ID, 'gce_timezone_offset', true );
|
||||
|
||||
require_once( 'timezone-choices.php' );
|
||||
|
||||
$timezone_list = gce_get_timezone_choices();
|
||||
|
||||
//Set selected="selected" for default option
|
||||
if( ! empty( $gce_timezone_offset ) ) {
|
||||
$timezone_list = str_replace(('<option value="' . $gce_timezone_offset . '"'), ('<option value="' . $gce_timezone_offset . '" selected="selected"'), $timezone_list);
|
||||
} else {
|
||||
$timezone_list = str_replace( '<option value="default">Default</option>', '<option value="default" selected="selected">Default</option>', $timezone_list );
|
||||
}
|
||||
|
||||
return $timezone_list;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<div>
|
||||
<ul>
|
||||
<li>
|
||||
<div class="dashicons dashicons-arrow-right-alt2"></div>
|
||||
<a href="<?php echo gce_ga_campaign_url( 'http://wpdocs.philderksen.com/google-calendar-events/', 'gce_lite', 'sidebar_link', 'docs' ); ?>" target="_blank">
|
||||
<?php _e( 'Documentation & Getting Started', 'gce' ); ?></a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="dashicons dashicons-arrow-right-alt2"></div>
|
||||
<a href="http://wordpress.org/support/plugin/google-calendar-events" target="_blank">
|
||||
<?php _e( 'Community Support Forums', 'gce' ); ?></a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="dashicons dashicons-arrow-right-alt2"></div>
|
||||
<a href="http://eepurl.com/0_VsT" target="_blank">
|
||||
<?php _e( 'Get Notified of Major Updates', 'gce' ); ?></a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="dashicons dashicons-arrow-right-alt2"></div>
|
||||
<a href="http://wordpress.org/support/view/plugin-reviews/google-calendar-events" target="_blank">
|
||||
<?php _e( 'Now Accepting 5-Star Reviews!', 'gce' ); ?></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -1,429 +1,443 @@
|
||||
<?php
|
||||
function gce_get_timezone_choices(){
|
||||
return '
|
||||
<select name="gce_options[timezone]">
|
||||
<option value="default">Default</option>
|
||||
<optgroup label="Africa">
|
||||
<option value="Africa/Abidjan">Abidjan</option>
|
||||
<option value="Africa/Accra">Accra</option>
|
||||
<option value="Africa/Addis_Ababa">Addis Ababa</option>
|
||||
<option value="Africa/Algiers">Algiers</option>
|
||||
<option value="Africa/Asmara">Asmara</option>
|
||||
<option value="Africa/Bamako">Bamako</option>
|
||||
<option value="Africa/Bangui">Bangui</option>
|
||||
<option value="Africa/Banjul">Banjul</option>
|
||||
<option value="Africa/Bissau">Bissau</option>
|
||||
<option value="Africa/Blantyre">Blantyre</option>
|
||||
<option value="Africa/Brazzaville">Brazzaville</option>
|
||||
<option value="Africa/Bujumbura">Bujumbura</option>
|
||||
<option value="Africa/Cairo">Cairo</option>
|
||||
<option value="Africa/Casablanca">Casablanca</option>
|
||||
<option value="Africa/Ceuta">Ceuta</option>
|
||||
<option value="Africa/Conakry">Conakry</option>
|
||||
<option value="Africa/Dakar">Dakar</option>
|
||||
<option value="Africa/Dar_es_Salaam">Dar es Salaam</option>
|
||||
<option value="Africa/Djibouti">Djibouti</option>
|
||||
<option value="Africa/Douala">Douala</option>
|
||||
<option value="Africa/El_Aaiun">El Aaiun</option>
|
||||
<option value="Africa/Freetown">Freetown</option>
|
||||
<option value="Africa/Gaborone">Gaborone</option>
|
||||
<option value="Africa/Harare">Harare</option>
|
||||
<option value="Africa/Johannesburg">Johannesburg</option>
|
||||
<option value="Africa/Kampala">Kampala</option>
|
||||
<option value="Africa/Khartoum">Khartoum</option>
|
||||
<option value="Africa/Kigali">Kigali</option>
|
||||
<option value="Africa/Kinshasa">Kinshasa</option>
|
||||
<option value="Africa/Lagos">Lagos</option>
|
||||
<option value="Africa/Libreville">Libreville</option>
|
||||
<option value="Africa/Lome">Lome</option>
|
||||
<option value="Africa/Luanda">Luanda</option>
|
||||
<option value="Africa/Lubumbashi">Lubumbashi</option>
|
||||
<option value="Africa/Lusaka">Lusaka</option>
|
||||
<option value="Africa/Malabo">Malabo</option>
|
||||
<option value="Africa/Maputo">Maputo</option>
|
||||
<option value="Africa/Maseru">Maseru</option>
|
||||
<option value="Africa/Mbabane">Mbabane</option>
|
||||
<option value="Africa/Mogadishu">Mogadishu</option>
|
||||
<option value="Africa/Monrovia">Monrovia</option>
|
||||
<option value="Africa/Nairobi">Nairobi</option>
|
||||
<option value="Africa/Ndjamena">Ndjamena</option>
|
||||
<option value="Africa/Niamey">Niamey</option>
|
||||
<option value="Africa/Nouakchott">Nouakchott</option>
|
||||
<option value="Africa/Ouagadougou">Ouagadougou</option>
|
||||
<option value="Africa/Porto-Novo">Porto-Novo</option>
|
||||
<option value="Africa/Sao_Tome">Sao Tome</option>
|
||||
<option value="Africa/Tripoli">Tripoli</option>
|
||||
<option value="Africa/Tunis">Tunis</option>
|
||||
<option value="Africa/Windhoek">Windhoek</option>
|
||||
</optgroup>
|
||||
<optgroup label="America">
|
||||
<option value="America/Adak">Adak</option>
|
||||
<option value="America/Anchorage">Anchorage</option>
|
||||
<option value="America/Anguilla">Anguilla</option>
|
||||
<option value="America/Antigua">Antigua</option>
|
||||
<option value="America/Araguaina">Araguaina</option>
|
||||
<option value="America/Argentina/Buenos_Aires">Argentina - Buenos Aires</option>
|
||||
<option value="America/Argentina/Catamarca">Argentina - Catamarca</option>
|
||||
<option value="America/Argentina/Cordoba">Argentina - Cordoba</option>
|
||||
<option value="America/Argentina/Jujuy">Argentina - Jujuy</option>
|
||||
<option value="America/Argentina/La_Rioja">Argentina - La Rioja</option>
|
||||
<option value="America/Argentina/Mendoza">Argentina - Mendoza</option>
|
||||
<option value="America/Argentina/Rio_Gallegos">Argentina - Rio Gallegos</option>
|
||||
<option value="America/Argentina/Salta">Argentina - Salta</option>
|
||||
<option value="America/Argentina/San_Juan">Argentina - San Juan</option>
|
||||
<option value="America/Argentina/San_Luis">Argentina - San Luis</option>
|
||||
<option value="America/Argentina/Tucuman">Argentina - Tucuman</option>
|
||||
<option value="America/Argentina/Ushuaia">Argentina - Ushuaia</option>
|
||||
<option value="America/Aruba">Aruba</option>
|
||||
<option value="America/Asuncion">Asuncion</option>
|
||||
<option value="America/Atikokan">Atikokan</option>
|
||||
<option value="America/Bahia">Bahia</option>
|
||||
<option value="America/Barbados">Barbados</option>
|
||||
<option value="America/Belem">Belem</option>
|
||||
<option value="America/Belize">Belize</option>
|
||||
<option value="America/Blanc-Sablon">Blanc-Sablon</option>
|
||||
<option value="America/Boa_Vista">Boa Vista</option>
|
||||
<option value="America/Bogota">Bogota</option>
|
||||
<option value="America/Boise">Boise</option>
|
||||
<option value="America/Cambridge_Bay">Cambridge Bay</option>
|
||||
<option value="America/Campo_Grande">Campo Grande</option>
|
||||
<option value="America/Cancun">Cancun</option>
|
||||
<option value="America/Caracas">Caracas</option>
|
||||
<option value="America/Cayenne">Cayenne</option>
|
||||
<option value="America/Cayman">Cayman</option>
|
||||
<option value="America/Chicago">Chicago</option>
|
||||
<option value="America/Chihuahua">Chihuahua</option>
|
||||
<option value="America/Costa_Rica">Costa Rica</option>
|
||||
<option value="America/Cuiaba">Cuiaba</option>
|
||||
<option value="America/Curacao">Curacao</option>
|
||||
<option value="America/Danmarkshavn">Danmarkshavn</option>
|
||||
<option value="America/Dawson">Dawson</option>
|
||||
<option value="America/Dawson_Creek">Dawson Creek</option>
|
||||
<option value="America/Denver">Denver</option>
|
||||
<option value="America/Detroit">Detroit</option>
|
||||
<option value="America/Dominica">Dominica</option>
|
||||
<option value="America/Edmonton">Edmonton</option>
|
||||
<option value="America/Eirunepe">Eirunepe</option>
|
||||
<option value="America/El_Salvador">El Salvador</option>
|
||||
<option value="America/Fortaleza">Fortaleza</option>
|
||||
<option value="America/Glace_Bay">Glace Bay</option>
|
||||
<option value="America/Godthab">Godthab</option>
|
||||
<option value="America/Goose_Bay">Goose Bay</option>
|
||||
<option value="America/Grand_Turk">Grand Turk</option>
|
||||
<option value="America/Grenada">Grenada</option>
|
||||
<option value="America/Guadeloupe">Guadeloupe</option>
|
||||
<option value="America/Guatemala">Guatemala</option>
|
||||
<option value="America/Guayaquil">Guayaquil</option>
|
||||
<option value="America/Guyana">Guyana</option>
|
||||
<option value="America/Halifax">Halifax</option>
|
||||
<option value="America/Havana">Havana</option>
|
||||
<option value="America/Hermosillo">Hermosillo</option>
|
||||
<option value="America/Indiana/Indianapolis">Indiana - Indianapolis</option>
|
||||
<option value="America/Indiana/Knox">Indiana - Knox</option>
|
||||
<option value="America/Indiana/Marengo">Indiana - Marengo</option>
|
||||
<option value="America/Indiana/Petersburg">Indiana - Petersburg</option>
|
||||
<option value="America/Indiana/Tell_City">Indiana - Tell City</option>
|
||||
<option value="America/Indiana/Vevay">Indiana - Vevay</option>
|
||||
<option value="America/Indiana/Vincennes">Indiana - Vincennes</option>
|
||||
<option value="America/Indiana/Winamac">Indiana - Winamac</option>
|
||||
<option value="America/Inuvik">Inuvik</option>
|
||||
<option value="America/Iqaluit">Iqaluit</option>
|
||||
<option value="America/Jamaica">Jamaica</option>
|
||||
<option value="America/Juneau">Juneau</option>
|
||||
<option value="America/Kentucky/Louisville">Kentucky - Louisville</option>
|
||||
<option value="America/Kentucky/Monticello">Kentucky - Monticello</option>
|
||||
<option value="America/La_Paz">La Paz</option>
|
||||
<option value="America/Lima">Lima</option>
|
||||
<option value="America/Los_Angeles">Los Angeles</option>
|
||||
<option value="America/Maceio">Maceio</option>
|
||||
<option value="America/Managua">Managua</option>
|
||||
<option value="America/Manaus">Manaus</option>
|
||||
<option value="America/Marigot">Marigot</option>
|
||||
<option value="America/Martinique">Martinique</option>
|
||||
<option value="America/Mazatlan">Mazatlan</option>
|
||||
<option value="America/Menominee">Menominee</option>
|
||||
<option value="America/Merida">Merida</option>
|
||||
<option value="America/Mexico_City">Mexico City</option>
|
||||
<option value="America/Miquelon">Miquelon</option>
|
||||
<option value="America/Moncton">Moncton</option>
|
||||
<option value="America/Monterrey">Monterrey</option>
|
||||
<option value="America/Montevideo">Montevideo</option>
|
||||
<option value="America/Montreal">Montreal</option>
|
||||
<option value="America/Montserrat">Montserrat</option>
|
||||
<option value="America/Nassau">Nassau</option>
|
||||
<option value="America/New_York">New York</option>
|
||||
<option value="America/Nipigon">Nipigon</option>
|
||||
<option value="America/Nome">Nome</option>
|
||||
<option value="America/Noronha">Noronha</option>
|
||||
<option value="America/North_Dakota/Center">North Dakota - Center</option>
|
||||
<option value="America/North_Dakota/New_Salem">North Dakota - New Salem</option>
|
||||
<option value="America/Panama">Panama</option>
|
||||
<option value="America/Pangnirtung">Pangnirtung</option>
|
||||
<option value="America/Paramaribo">Paramaribo</option>
|
||||
<option value="America/Phoenix">Phoenix</option>
|
||||
<option value="America/Port-au-Prince">Port-au-Prince</option>
|
||||
<option value="America/Port_of_Spain">Port of Spain</option>
|
||||
<option value="America/Porto_Velho">Porto Velho</option>
|
||||
<option value="America/Puerto_Rico">Puerto Rico</option>
|
||||
<option value="America/Rainy_River">Rainy River</option>
|
||||
<option value="America/Rankin_Inlet">Rankin Inlet</option>
|
||||
<option value="America/Recife">Recife</option>
|
||||
<option value="America/Regina">Regina</option>
|
||||
<option value="America/Resolute">Resolute</option>
|
||||
<option value="America/Rio_Branco">Rio Branco</option>
|
||||
<option value="America/Santarem">Santarem</option>
|
||||
<option value="America/Santiago">Santiago</option>
|
||||
<option value="America/Santo_Domingo">Santo Domingo</option>
|
||||
<option value="America/Sao_Paulo">Sao Paulo</option>
|
||||
<option value="America/Scoresbysund">Scoresbysund</option>
|
||||
<option value="America/Shiprock">Shiprock</option>
|
||||
<option value="America/St_Barthelemy">St Barthelemy</option>
|
||||
<option value="America/St_Johns">St Johns</option>
|
||||
<option value="America/St_Kitts">St Kitts</option>
|
||||
<option value="America/St_Lucia">St Lucia</option>
|
||||
<option value="America/St_Thomas">St Thomas</option>
|
||||
<option value="America/St_Vincent">St Vincent</option>
|
||||
<option value="America/Swift_Current">Swift Current</option>
|
||||
<option value="America/Tegucigalpa">Tegucigalpa</option>
|
||||
<option value="America/Thule">Thule</option>
|
||||
<option value="America/Thunder_Bay">Thunder Bay</option>
|
||||
<option value="America/Tijuana">Tijuana</option>
|
||||
<option value="America/Toronto">Toronto</option>
|
||||
<option value="America/Tortola">Tortola</option>
|
||||
<option value="America/Vancouver">Vancouver</option>
|
||||
<option value="America/Whitehorse">Whitehorse</option>
|
||||
<option value="America/Winnipeg">Winnipeg</option>
|
||||
<option value="America/Yakutat">Yakutat</option>
|
||||
<option value="America/Yellowknife">Yellowknife</option>
|
||||
</optgroup>
|
||||
<optgroup label="Antarctica">
|
||||
<option value="Antarctica/Casey">Casey</option>
|
||||
<option value="Antarctica/Davis">Davis</option>
|
||||
<option value="Antarctica/DumontDUrville">DumontDUrville</option>
|
||||
<option value="Antarctica/Mawson">Mawson</option>
|
||||
<option value="Antarctica/McMurdo">McMurdo</option>
|
||||
<option value="Antarctica/Palmer">Palmer</option>
|
||||
<option value="Antarctica/Rothera">Rothera</option>
|
||||
<option value="Antarctica/South_Pole">South Pole</option>
|
||||
<option value="Antarctica/Syowa">Syowa</option>
|
||||
<option value="Antarctica/Vostok">Vostok</option>
|
||||
</optgroup>
|
||||
<optgroup label="Arctic">
|
||||
<option value="Arctic/Longyearbyen">Longyearbyen</option>
|
||||
</optgroup>
|
||||
<optgroup label="Asia">
|
||||
<option value="Asia/Aden">Aden</option>
|
||||
<option value="Asia/Almaty">Almaty</option>
|
||||
<option value="Asia/Amman">Amman</option>
|
||||
<option value="Asia/Anadyr">Anadyr</option>
|
||||
<option value="Asia/Aqtau">Aqtau</option>
|
||||
<option value="Asia/Aqtobe">Aqtobe</option>
|
||||
<option value="Asia/Ashgabat">Ashgabat</option>
|
||||
<option value="Asia/Baghdad">Baghdad</option>
|
||||
<option value="Asia/Bahrain">Bahrain</option>
|
||||
<option value="Asia/Baku">Baku</option>
|
||||
<option value="Asia/Bangkok">Bangkok</option>
|
||||
<option value="Asia/Beirut">Beirut</option>
|
||||
<option value="Asia/Bishkek">Bishkek</option>
|
||||
<option value="Asia/Brunei">Brunei</option>
|
||||
<option value="Asia/Choibalsan">Choibalsan</option>
|
||||
<option value="Asia/Chongqing">Chongqing</option>
|
||||
<option value="Asia/Colombo">Colombo</option>
|
||||
<option value="Asia/Damascus">Damascus</option>
|
||||
<option value="Asia/Dhaka">Dhaka</option>
|
||||
<option value="Asia/Dili">Dili</option>
|
||||
<option value="Asia/Dubai">Dubai</option>
|
||||
<option value="Asia/Dushanbe">Dushanbe</option>
|
||||
<option value="Asia/Gaza">Gaza</option>
|
||||
<option value="Asia/Harbin">Harbin</option>
|
||||
<option value="Asia/Ho_Chi_Minh">Ho Chi Minh</option>
|
||||
<option value="Asia/Hong_Kong">Hong Kong</option>
|
||||
<option value="Asia/Hovd">Hovd</option>
|
||||
<option value="Asia/Irkutsk">Irkutsk</option>
|
||||
<option value="Asia/Jakarta">Jakarta</option>
|
||||
<option value="Asia/Jayapura">Jayapura</option>
|
||||
<option value="Asia/Jerusalem">Jerusalem</option>
|
||||
<option value="Asia/Kabul">Kabul</option>
|
||||
<option value="Asia/Kamchatka">Kamchatka</option>
|
||||
<option value="Asia/Karachi">Karachi</option>
|
||||
<option value="Asia/Kashgar">Kashgar</option>
|
||||
<option value="Asia/Kathmandu">Kathmandu</option>
|
||||
<option value="Asia/Kolkata">Kolkata</option>
|
||||
<option value="Asia/Krasnoyarsk">Krasnoyarsk</option>
|
||||
<option value="Asia/Kuala_Lumpur">Kuala Lumpur</option>
|
||||
<option value="Asia/Kuching">Kuching</option>
|
||||
<option value="Asia/Kuwait">Kuwait</option>
|
||||
<option value="Asia/Macau">Macau</option>
|
||||
<option value="Asia/Magadan">Magadan</option>
|
||||
<option value="Asia/Makassar">Makassar</option>
|
||||
<option value="Asia/Manila">Manila</option>
|
||||
<option value="Asia/Muscat">Muscat</option>
|
||||
<option value="Asia/Nicosia">Nicosia</option>
|
||||
<option value="Asia/Novosibirsk">Novosibirsk</option>
|
||||
<option value="Asia/Omsk">Omsk</option>
|
||||
<option value="Asia/Oral">Oral</option>
|
||||
<option value="Asia/Phnom_Penh">Phnom Penh</option>
|
||||
<option value="Asia/Pontianak">Pontianak</option>
|
||||
<option value="Asia/Pyongyang">Pyongyang</option>
|
||||
<option value="Asia/Qatar">Qatar</option>
|
||||
<option value="Asia/Qyzylorda">Qyzylorda</option>
|
||||
<option value="Asia/Rangoon">Rangoon</option>
|
||||
<option value="Asia/Riyadh">Riyadh</option>
|
||||
<option value="Asia/Sakhalin">Sakhalin</option>
|
||||
<option value="Asia/Samarkand">Samarkand</option>
|
||||
<option value="Asia/Seoul">Seoul</option>
|
||||
<option value="Asia/Shanghai">Shanghai</option>
|
||||
<option value="Asia/Singapore">Singapore</option>
|
||||
<option value="Asia/Taipei">Taipei</option>
|
||||
<option value="Asia/Tashkent">Tashkent</option>
|
||||
<option value="Asia/Tbilisi">Tbilisi</option>
|
||||
<option value="Asia/Tehran">Tehran</option>
|
||||
<option value="Asia/Thimphu">Thimphu</option>
|
||||
<option value="Asia/Tokyo">Tokyo</option>
|
||||
<option value="Asia/Ulaanbaatar">Ulaanbaatar</option>
|
||||
<option value="Asia/Urumqi">Urumqi</option>
|
||||
<option value="Asia/Vientiane">Vientiane</option>
|
||||
<option value="Asia/Vladivostok">Vladivostok</option>
|
||||
<option value="Asia/Yakutsk">Yakutsk</option>
|
||||
<option value="Asia/Yekaterinburg">Yekaterinburg</option>
|
||||
<option value="Asia/Yerevan">Yerevan</option>
|
||||
</optgroup>
|
||||
<optgroup label="Atlantic">
|
||||
<option value="Atlantic/Azores">Azores</option>
|
||||
<option value="Atlantic/Bermuda">Bermuda</option>
|
||||
<option value="Atlantic/Canary">Canary</option>
|
||||
<option value="Atlantic/Cape_Verde">Cape Verde</option>
|
||||
<option value="Atlantic/Faroe">Faroe</option>
|
||||
<option value="Atlantic/Madeira">Madeira</option>
|
||||
<option value="Atlantic/Reykjavik">Reykjavik</option>
|
||||
<option value="Atlantic/South_Georgia">South Georgia</option>
|
||||
<option value="Atlantic/Stanley">Stanley</option>
|
||||
<option value="Atlantic/St_Helena">St Helena</option>
|
||||
</optgroup>
|
||||
<optgroup label="Australia">
|
||||
<option value="Australia/Adelaide">Adelaide</option>
|
||||
<option value="Australia/Brisbane">Brisbane</option>
|
||||
<option value="Australia/Broken_Hill">Broken Hill</option>
|
||||
<option value="Australia/Currie">Currie</option>
|
||||
<option value="Australia/Darwin">Darwin</option>
|
||||
<option value="Australia/Eucla">Eucla</option>
|
||||
<option value="Australia/Hobart">Hobart</option>
|
||||
<option value="Australia/Lindeman">Lindeman</option>
|
||||
<option value="Australia/Lord_Howe">Lord Howe</option>
|
||||
<option value="Australia/Melbourne">Melbourne</option>
|
||||
<option value="Australia/Perth">Perth</option>
|
||||
<option value="Australia/Sydney">Sydney</option>
|
||||
</optgroup>
|
||||
<optgroup label="Europe">
|
||||
<option value="Europe/Amsterdam">Amsterdam</option>
|
||||
<option value="Europe/Andorra">Andorra</option>
|
||||
<option value="Europe/Athens">Athens</option>
|
||||
<option value="Europe/Belgrade">Belgrade</option>
|
||||
<option value="Europe/Berlin">Berlin</option>
|
||||
<option value="Europe/Bratislava">Bratislava</option>
|
||||
<option value="Europe/Brussels">Brussels</option>
|
||||
<option value="Europe/Bucharest">Bucharest</option>
|
||||
<option value="Europe/Budapest">Budapest</option>
|
||||
<option value="Europe/Chisinau">Chisinau</option>
|
||||
<option value="Europe/Copenhagen">Copenhagen</option>
|
||||
<option value="Europe/Dublin">Dublin</option>
|
||||
<option value="Europe/Gibraltar">Gibraltar</option>
|
||||
<option value="Europe/Guernsey">Guernsey</option>
|
||||
<option value="Europe/Helsinki">Helsinki</option>
|
||||
<option value="Europe/Isle_of_Man">Isle of Man</option>
|
||||
<option value="Europe/Istanbul">Istanbul</option>
|
||||
<option value="Europe/Jersey">Jersey</option>
|
||||
<option value="Europe/Kaliningrad">Kaliningrad</option>
|
||||
<option value="Europe/Kiev">Kiev</option>
|
||||
<option value="Europe/Lisbon">Lisbon</option>
|
||||
<option value="Europe/Ljubljana">Ljubljana</option>
|
||||
<option value="Europe/London">London</option>
|
||||
<option value="Europe/Luxembourg">Luxembourg</option>
|
||||
<option value="Europe/Madrid">Madrid</option>
|
||||
<option value="Europe/Malta">Malta</option>
|
||||
<option value="Europe/Mariehamn">Mariehamn</option>
|
||||
<option value="Europe/Minsk">Minsk</option>
|
||||
<option value="Europe/Monaco">Monaco</option>
|
||||
<option value="Europe/Moscow">Moscow</option>
|
||||
<option value="Europe/Oslo">Oslo</option>
|
||||
<option value="Europe/Paris">Paris</option>
|
||||
<option value="Europe/Podgorica">Podgorica</option>
|
||||
<option value="Europe/Prague">Prague</option>
|
||||
<option value="Europe/Riga">Riga</option>
|
||||
<option value="Europe/Rome">Rome</option>
|
||||
<option value="Europe/Samara">Samara</option>
|
||||
<option value="Europe/San_Marino">San Marino</option>
|
||||
<option value="Europe/Sarajevo">Sarajevo</option>
|
||||
<option value="Europe/Simferopol">Simferopol</option>
|
||||
<option value="Europe/Skopje">Skopje</option>
|
||||
<option value="Europe/Sofia">Sofia</option>
|
||||
<option value="Europe/Stockholm">Stockholm</option>
|
||||
<option value="Europe/Tallinn">Tallinn</option>
|
||||
<option value="Europe/Tirane">Tirane</option>
|
||||
<option value="Europe/Uzhgorod">Uzhgorod</option>
|
||||
<option value="Europe/Vaduz">Vaduz</option>
|
||||
<option value="Europe/Vatican">Vatican</option>
|
||||
<option value="Europe/Vienna">Vienna</option>
|
||||
<option value="Europe/Vilnius">Vilnius</option>
|
||||
<option value="Europe/Volgograd">Volgograd</option>
|
||||
<option value="Europe/Warsaw">Warsaw</option>
|
||||
<option value="Europe/Zagreb">Zagreb</option>
|
||||
<option value="Europe/Zaporozhye">Zaporozhye</option>
|
||||
<option value="Europe/Zurich">Zurich</option>
|
||||
</optgroup>
|
||||
<optgroup label="Indian">
|
||||
<option value="Indian/Antananarivo">Antananarivo</option>
|
||||
<option value="Indian/Chagos">Chagos</option>
|
||||
<option value="Indian/Christmas">Christmas</option>
|
||||
<option value="Indian/Cocos">Cocos</option>
|
||||
<option value="Indian/Comoro">Comoro</option>
|
||||
<option value="Indian/Kerguelen">Kerguelen</option>
|
||||
<option value="Indian/Mahe">Mahe</option>
|
||||
<option value="Indian/Maldives">Maldives</option>
|
||||
<option value="Indian/Mauritius">Mauritius</option>
|
||||
<option value="Indian/Mayotte">Mayotte</option>
|
||||
<option value="Indian/Reunion">Reunion</option>
|
||||
</optgroup>
|
||||
<optgroup label="Pacific">
|
||||
<option value="Pacific/Apia">Apia</option>
|
||||
<option value="Pacific/Auckland">Auckland</option>
|
||||
<option value="Pacific/Chatham">Chatham</option>
|
||||
<option value="Pacific/Easter">Easter</option>
|
||||
<option value="Pacific/Efate">Efate</option>
|
||||
<option value="Pacific/Enderbury">Enderbury</option>
|
||||
<option value="Pacific/Fakaofo">Fakaofo</option>
|
||||
<option value="Pacific/Fiji">Fiji</option>
|
||||
<option value="Pacific/Funafuti">Funafuti</option>
|
||||
<option value="Pacific/Galapagos">Galapagos</option>
|
||||
<option value="Pacific/Gambier">Gambier</option>
|
||||
<option value="Pacific/Guadalcanal">Guadalcanal</option>
|
||||
<option value="Pacific/Guam">Guam</option>
|
||||
<option value="Pacific/Honolulu">Honolulu</option>
|
||||
<option value="Pacific/Johnston">Johnston</option>
|
||||
<option value="Pacific/Kiritimati">Kiritimati</option>
|
||||
<option value="Pacific/Kosrae">Kosrae</option>
|
||||
<option value="Pacific/Kwajalein">Kwajalein</option>
|
||||
<option value="Pacific/Majuro">Majuro</option>
|
||||
<option value="Pacific/Marquesas">Marquesas</option>
|
||||
<option value="Pacific/Midway">Midway</option>
|
||||
<option value="Pacific/Nauru">Nauru</option>
|
||||
<option value="Pacific/Niue">Niue</option>
|
||||
<option value="Pacific/Norfolk">Norfolk</option>
|
||||
<option value="Pacific/Noumea">Noumea</option>
|
||||
<option value="Pacific/Pago_Pago">Pago Pago</option>
|
||||
<option value="Pacific/Palau">Palau</option>
|
||||
<option value="Pacific/Pitcairn">Pitcairn</option>
|
||||
<option value="Pacific/Ponape">Ponape</option>
|
||||
<option value="Pacific/Port_Moresby">Port Moresby</option>
|
||||
<option value="Pacific/Rarotonga">Rarotonga</option>
|
||||
<option value="Pacific/Saipan">Saipan</option>
|
||||
<option value="Pacific/Tahiti">Tahiti</option>
|
||||
<option value="Pacific/Tarawa">Tarawa</option>
|
||||
<option value="Pacific/Tongatapu">Tongatapu</option>
|
||||
<option value="Pacific/Truk">Truk</option>
|
||||
<option value="Pacific/Wake">Wake</option>
|
||||
<option value="Pacific/Wallis">Wallis</option>
|
||||
</optgroup>
|
||||
</select>';
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Timezone functions
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the HTML for the Timezone select box on the CPT screens
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function gce_get_timezone_choices(){
|
||||
return '
|
||||
<select name="gce_timezone_offset" id="gce_timezone_offset">
|
||||
<option value="default">Default</option>
|
||||
<optgroup label="Africa">
|
||||
<option value="Africa/Abidjan">Abidjan</option>
|
||||
<option value="Africa/Accra">Accra</option>
|
||||
<option value="Africa/Addis_Ababa">Addis Ababa</option>
|
||||
<option value="Africa/Algiers">Algiers</option>
|
||||
<option value="Africa/Asmara">Asmara</option>
|
||||
<option value="Africa/Bamako">Bamako</option>
|
||||
<option value="Africa/Bangui">Bangui</option>
|
||||
<option value="Africa/Banjul">Banjul</option>
|
||||
<option value="Africa/Bissau">Bissau</option>
|
||||
<option value="Africa/Blantyre">Blantyre</option>
|
||||
<option value="Africa/Brazzaville">Brazzaville</option>
|
||||
<option value="Africa/Bujumbura">Bujumbura</option>
|
||||
<option value="Africa/Cairo">Cairo</option>
|
||||
<option value="Africa/Casablanca">Casablanca</option>
|
||||
<option value="Africa/Ceuta">Ceuta</option>
|
||||
<option value="Africa/Conakry">Conakry</option>
|
||||
<option value="Africa/Dakar">Dakar</option>
|
||||
<option value="Africa/Dar_es_Salaam">Dar es Salaam</option>
|
||||
<option value="Africa/Djibouti">Djibouti</option>
|
||||
<option value="Africa/Douala">Douala</option>
|
||||
<option value="Africa/El_Aaiun">El Aaiun</option>
|
||||
<option value="Africa/Freetown">Freetown</option>
|
||||
<option value="Africa/Gaborone">Gaborone</option>
|
||||
<option value="Africa/Harare">Harare</option>
|
||||
<option value="Africa/Johannesburg">Johannesburg</option>
|
||||
<option value="Africa/Kampala">Kampala</option>
|
||||
<option value="Africa/Khartoum">Khartoum</option>
|
||||
<option value="Africa/Kigali">Kigali</option>
|
||||
<option value="Africa/Kinshasa">Kinshasa</option>
|
||||
<option value="Africa/Lagos">Lagos</option>
|
||||
<option value="Africa/Libreville">Libreville</option>
|
||||
<option value="Africa/Lome">Lome</option>
|
||||
<option value="Africa/Luanda">Luanda</option>
|
||||
<option value="Africa/Lubumbashi">Lubumbashi</option>
|
||||
<option value="Africa/Lusaka">Lusaka</option>
|
||||
<option value="Africa/Malabo">Malabo</option>
|
||||
<option value="Africa/Maputo">Maputo</option>
|
||||
<option value="Africa/Maseru">Maseru</option>
|
||||
<option value="Africa/Mbabane">Mbabane</option>
|
||||
<option value="Africa/Mogadishu">Mogadishu</option>
|
||||
<option value="Africa/Monrovia">Monrovia</option>
|
||||
<option value="Africa/Nairobi">Nairobi</option>
|
||||
<option value="Africa/Ndjamena">Ndjamena</option>
|
||||
<option value="Africa/Niamey">Niamey</option>
|
||||
<option value="Africa/Nouakchott">Nouakchott</option>
|
||||
<option value="Africa/Ouagadougou">Ouagadougou</option>
|
||||
<option value="Africa/Porto-Novo">Porto-Novo</option>
|
||||
<option value="Africa/Sao_Tome">Sao Tome</option>
|
||||
<option value="Africa/Tripoli">Tripoli</option>
|
||||
<option value="Africa/Tunis">Tunis</option>
|
||||
<option value="Africa/Windhoek">Windhoek</option>
|
||||
</optgroup>
|
||||
<optgroup label="America">
|
||||
<option value="America/Adak">Adak</option>
|
||||
<option value="America/Anchorage">Anchorage</option>
|
||||
<option value="America/Anguilla">Anguilla</option>
|
||||
<option value="America/Antigua">Antigua</option>
|
||||
<option value="America/Araguaina">Araguaina</option>
|
||||
<option value="America/Argentina/Buenos_Aires">Argentina - Buenos Aires</option>
|
||||
<option value="America/Argentina/Catamarca">Argentina - Catamarca</option>
|
||||
<option value="America/Argentina/Cordoba">Argentina - Cordoba</option>
|
||||
<option value="America/Argentina/Jujuy">Argentina - Jujuy</option>
|
||||
<option value="America/Argentina/La_Rioja">Argentina - La Rioja</option>
|
||||
<option value="America/Argentina/Mendoza">Argentina - Mendoza</option>
|
||||
<option value="America/Argentina/Rio_Gallegos">Argentina - Rio Gallegos</option>
|
||||
<option value="America/Argentina/Salta">Argentina - Salta</option>
|
||||
<option value="America/Argentina/San_Juan">Argentina - San Juan</option>
|
||||
<option value="America/Argentina/San_Luis">Argentina - San Luis</option>
|
||||
<option value="America/Argentina/Tucuman">Argentina - Tucuman</option>
|
||||
<option value="America/Argentina/Ushuaia">Argentina - Ushuaia</option>
|
||||
<option value="America/Aruba">Aruba</option>
|
||||
<option value="America/Asuncion">Asuncion</option>
|
||||
<option value="America/Atikokan">Atikokan</option>
|
||||
<option value="America/Bahia">Bahia</option>
|
||||
<option value="America/Barbados">Barbados</option>
|
||||
<option value="America/Belem">Belem</option>
|
||||
<option value="America/Belize">Belize</option>
|
||||
<option value="America/Blanc-Sablon">Blanc-Sablon</option>
|
||||
<option value="America/Boa_Vista">Boa Vista</option>
|
||||
<option value="America/Bogota">Bogota</option>
|
||||
<option value="America/Boise">Boise</option>
|
||||
<option value="America/Cambridge_Bay">Cambridge Bay</option>
|
||||
<option value="America/Campo_Grande">Campo Grande</option>
|
||||
<option value="America/Cancun">Cancun</option>
|
||||
<option value="America/Caracas">Caracas</option>
|
||||
<option value="America/Cayenne">Cayenne</option>
|
||||
<option value="America/Cayman">Cayman</option>
|
||||
<option value="America/Chicago">Chicago</option>
|
||||
<option value="America/Chihuahua">Chihuahua</option>
|
||||
<option value="America/Costa_Rica">Costa Rica</option>
|
||||
<option value="America/Cuiaba">Cuiaba</option>
|
||||
<option value="America/Curacao">Curacao</option>
|
||||
<option value="America/Danmarkshavn">Danmarkshavn</option>
|
||||
<option value="America/Dawson">Dawson</option>
|
||||
<option value="America/Dawson_Creek">Dawson Creek</option>
|
||||
<option value="America/Denver">Denver</option>
|
||||
<option value="America/Detroit">Detroit</option>
|
||||
<option value="America/Dominica">Dominica</option>
|
||||
<option value="America/Edmonton">Edmonton</option>
|
||||
<option value="America/Eirunepe">Eirunepe</option>
|
||||
<option value="America/El_Salvador">El Salvador</option>
|
||||
<option value="America/Fortaleza">Fortaleza</option>
|
||||
<option value="America/Glace_Bay">Glace Bay</option>
|
||||
<option value="America/Godthab">Godthab</option>
|
||||
<option value="America/Goose_Bay">Goose Bay</option>
|
||||
<option value="America/Grand_Turk">Grand Turk</option>
|
||||
<option value="America/Grenada">Grenada</option>
|
||||
<option value="America/Guadeloupe">Guadeloupe</option>
|
||||
<option value="America/Guatemala">Guatemala</option>
|
||||
<option value="America/Guayaquil">Guayaquil</option>
|
||||
<option value="America/Guyana">Guyana</option>
|
||||
<option value="America/Halifax">Halifax</option>
|
||||
<option value="America/Havana">Havana</option>
|
||||
<option value="America/Hermosillo">Hermosillo</option>
|
||||
<option value="America/Indiana/Indianapolis">Indiana - Indianapolis</option>
|
||||
<option value="America/Indiana/Knox">Indiana - Knox</option>
|
||||
<option value="America/Indiana/Marengo">Indiana - Marengo</option>
|
||||
<option value="America/Indiana/Petersburg">Indiana - Petersburg</option>
|
||||
<option value="America/Indiana/Tell_City">Indiana - Tell City</option>
|
||||
<option value="America/Indiana/Vevay">Indiana - Vevay</option>
|
||||
<option value="America/Indiana/Vincennes">Indiana - Vincennes</option>
|
||||
<option value="America/Indiana/Winamac">Indiana - Winamac</option>
|
||||
<option value="America/Inuvik">Inuvik</option>
|
||||
<option value="America/Iqaluit">Iqaluit</option>
|
||||
<option value="America/Jamaica">Jamaica</option>
|
||||
<option value="America/Juneau">Juneau</option>
|
||||
<option value="America/Kentucky/Louisville">Kentucky - Louisville</option>
|
||||
<option value="America/Kentucky/Monticello">Kentucky - Monticello</option>
|
||||
<option value="America/La_Paz">La Paz</option>
|
||||
<option value="America/Lima">Lima</option>
|
||||
<option value="America/Los_Angeles">Los Angeles</option>
|
||||
<option value="America/Maceio">Maceio</option>
|
||||
<option value="America/Managua">Managua</option>
|
||||
<option value="America/Manaus">Manaus</option>
|
||||
<option value="America/Marigot">Marigot</option>
|
||||
<option value="America/Martinique">Martinique</option>
|
||||
<option value="America/Mazatlan">Mazatlan</option>
|
||||
<option value="America/Menominee">Menominee</option>
|
||||
<option value="America/Merida">Merida</option>
|
||||
<option value="America/Mexico_City">Mexico City</option>
|
||||
<option value="America/Miquelon">Miquelon</option>
|
||||
<option value="America/Moncton">Moncton</option>
|
||||
<option value="America/Monterrey">Monterrey</option>
|
||||
<option value="America/Montevideo">Montevideo</option>
|
||||
<option value="America/Montreal">Montreal</option>
|
||||
<option value="America/Montserrat">Montserrat</option>
|
||||
<option value="America/Nassau">Nassau</option>
|
||||
<option value="America/New_York">New York</option>
|
||||
<option value="America/Nipigon">Nipigon</option>
|
||||
<option value="America/Nome">Nome</option>
|
||||
<option value="America/Noronha">Noronha</option>
|
||||
<option value="America/North_Dakota/Center">North Dakota - Center</option>
|
||||
<option value="America/North_Dakota/New_Salem">North Dakota - New Salem</option>
|
||||
<option value="America/Panama">Panama</option>
|
||||
<option value="America/Pangnirtung">Pangnirtung</option>
|
||||
<option value="America/Paramaribo">Paramaribo</option>
|
||||
<option value="America/Phoenix">Phoenix</option>
|
||||
<option value="America/Port-au-Prince">Port-au-Prince</option>
|
||||
<option value="America/Port_of_Spain">Port of Spain</option>
|
||||
<option value="America/Porto_Velho">Porto Velho</option>
|
||||
<option value="America/Puerto_Rico">Puerto Rico</option>
|
||||
<option value="America/Rainy_River">Rainy River</option>
|
||||
<option value="America/Rankin_Inlet">Rankin Inlet</option>
|
||||
<option value="America/Recife">Recife</option>
|
||||
<option value="America/Regina">Regina</option>
|
||||
<option value="America/Resolute">Resolute</option>
|
||||
<option value="America/Rio_Branco">Rio Branco</option>
|
||||
<option value="America/Santarem">Santarem</option>
|
||||
<option value="America/Santiago">Santiago</option>
|
||||
<option value="America/Santo_Domingo">Santo Domingo</option>
|
||||
<option value="America/Sao_Paulo">Sao Paulo</option>
|
||||
<option value="America/Scoresbysund">Scoresbysund</option>
|
||||
<option value="America/Shiprock">Shiprock</option>
|
||||
<option value="America/St_Barthelemy">St Barthelemy</option>
|
||||
<option value="America/St_Johns">St Johns</option>
|
||||
<option value="America/St_Kitts">St Kitts</option>
|
||||
<option value="America/St_Lucia">St Lucia</option>
|
||||
<option value="America/St_Thomas">St Thomas</option>
|
||||
<option value="America/St_Vincent">St Vincent</option>
|
||||
<option value="America/Swift_Current">Swift Current</option>
|
||||
<option value="America/Tegucigalpa">Tegucigalpa</option>
|
||||
<option value="America/Thule">Thule</option>
|
||||
<option value="America/Thunder_Bay">Thunder Bay</option>
|
||||
<option value="America/Tijuana">Tijuana</option>
|
||||
<option value="America/Toronto">Toronto</option>
|
||||
<option value="America/Tortola">Tortola</option>
|
||||
<option value="America/Vancouver">Vancouver</option>
|
||||
<option value="America/Whitehorse">Whitehorse</option>
|
||||
<option value="America/Winnipeg">Winnipeg</option>
|
||||
<option value="America/Yakutat">Yakutat</option>
|
||||
<option value="America/Yellowknife">Yellowknife</option>
|
||||
</optgroup>
|
||||
<optgroup label="Antarctica">
|
||||
<option value="Antarctica/Casey">Casey</option>
|
||||
<option value="Antarctica/Davis">Davis</option>
|
||||
<option value="Antarctica/DumontDUrville">DumontDUrville</option>
|
||||
<option value="Antarctica/Mawson">Mawson</option>
|
||||
<option value="Antarctica/McMurdo">McMurdo</option>
|
||||
<option value="Antarctica/Palmer">Palmer</option>
|
||||
<option value="Antarctica/Rothera">Rothera</option>
|
||||
<option value="Antarctica/South_Pole">South Pole</option>
|
||||
<option value="Antarctica/Syowa">Syowa</option>
|
||||
<option value="Antarctica/Vostok">Vostok</option>
|
||||
</optgroup>
|
||||
<optgroup label="Arctic">
|
||||
<option value="Arctic/Longyearbyen">Longyearbyen</option>
|
||||
</optgroup>
|
||||
<optgroup label="Asia">
|
||||
<option value="Asia/Aden">Aden</option>
|
||||
<option value="Asia/Almaty">Almaty</option>
|
||||
<option value="Asia/Amman">Amman</option>
|
||||
<option value="Asia/Anadyr">Anadyr</option>
|
||||
<option value="Asia/Aqtau">Aqtau</option>
|
||||
<option value="Asia/Aqtobe">Aqtobe</option>
|
||||
<option value="Asia/Ashgabat">Ashgabat</option>
|
||||
<option value="Asia/Baghdad">Baghdad</option>
|
||||
<option value="Asia/Bahrain">Bahrain</option>
|
||||
<option value="Asia/Baku">Baku</option>
|
||||
<option value="Asia/Bangkok">Bangkok</option>
|
||||
<option value="Asia/Beirut">Beirut</option>
|
||||
<option value="Asia/Bishkek">Bishkek</option>
|
||||
<option value="Asia/Brunei">Brunei</option>
|
||||
<option value="Asia/Choibalsan">Choibalsan</option>
|
||||
<option value="Asia/Chongqing">Chongqing</option>
|
||||
<option value="Asia/Colombo">Colombo</option>
|
||||
<option value="Asia/Damascus">Damascus</option>
|
||||
<option value="Asia/Dhaka">Dhaka</option>
|
||||
<option value="Asia/Dili">Dili</option>
|
||||
<option value="Asia/Dubai">Dubai</option>
|
||||
<option value="Asia/Dushanbe">Dushanbe</option>
|
||||
<option value="Asia/Gaza">Gaza</option>
|
||||
<option value="Asia/Harbin">Harbin</option>
|
||||
<option value="Asia/Ho_Chi_Minh">Ho Chi Minh</option>
|
||||
<option value="Asia/Hong_Kong">Hong Kong</option>
|
||||
<option value="Asia/Hovd">Hovd</option>
|
||||
<option value="Asia/Irkutsk">Irkutsk</option>
|
||||
<option value="Asia/Jakarta">Jakarta</option>
|
||||
<option value="Asia/Jayapura">Jayapura</option>
|
||||
<option value="Asia/Jerusalem">Jerusalem</option>
|
||||
<option value="Asia/Kabul">Kabul</option>
|
||||
<option value="Asia/Kamchatka">Kamchatka</option>
|
||||
<option value="Asia/Karachi">Karachi</option>
|
||||
<option value="Asia/Kashgar">Kashgar</option>
|
||||
<option value="Asia/Kathmandu">Kathmandu</option>
|
||||
<option value="Asia/Kolkata">Kolkata</option>
|
||||
<option value="Asia/Krasnoyarsk">Krasnoyarsk</option>
|
||||
<option value="Asia/Kuala_Lumpur">Kuala Lumpur</option>
|
||||
<option value="Asia/Kuching">Kuching</option>
|
||||
<option value="Asia/Kuwait">Kuwait</option>
|
||||
<option value="Asia/Macau">Macau</option>
|
||||
<option value="Asia/Magadan">Magadan</option>
|
||||
<option value="Asia/Makassar">Makassar</option>
|
||||
<option value="Asia/Manila">Manila</option>
|
||||
<option value="Asia/Muscat">Muscat</option>
|
||||
<option value="Asia/Nicosia">Nicosia</option>
|
||||
<option value="Asia/Novosibirsk">Novosibirsk</option>
|
||||
<option value="Asia/Omsk">Omsk</option>
|
||||
<option value="Asia/Oral">Oral</option>
|
||||
<option value="Asia/Phnom_Penh">Phnom Penh</option>
|
||||
<option value="Asia/Pontianak">Pontianak</option>
|
||||
<option value="Asia/Pyongyang">Pyongyang</option>
|
||||
<option value="Asia/Qatar">Qatar</option>
|
||||
<option value="Asia/Qyzylorda">Qyzylorda</option>
|
||||
<option value="Asia/Rangoon">Rangoon</option>
|
||||
<option value="Asia/Riyadh">Riyadh</option>
|
||||
<option value="Asia/Sakhalin">Sakhalin</option>
|
||||
<option value="Asia/Samarkand">Samarkand</option>
|
||||
<option value="Asia/Seoul">Seoul</option>
|
||||
<option value="Asia/Shanghai">Shanghai</option>
|
||||
<option value="Asia/Singapore">Singapore</option>
|
||||
<option value="Asia/Taipei">Taipei</option>
|
||||
<option value="Asia/Tashkent">Tashkent</option>
|
||||
<option value="Asia/Tbilisi">Tbilisi</option>
|
||||
<option value="Asia/Tehran">Tehran</option>
|
||||
<option value="Asia/Thimphu">Thimphu</option>
|
||||
<option value="Asia/Tokyo">Tokyo</option>
|
||||
<option value="Asia/Ulaanbaatar">Ulaanbaatar</option>
|
||||
<option value="Asia/Urumqi">Urumqi</option>
|
||||
<option value="Asia/Vientiane">Vientiane</option>
|
||||
<option value="Asia/Vladivostok">Vladivostok</option>
|
||||
<option value="Asia/Yakutsk">Yakutsk</option>
|
||||
<option value="Asia/Yekaterinburg">Yekaterinburg</option>
|
||||
<option value="Asia/Yerevan">Yerevan</option>
|
||||
</optgroup>
|
||||
<optgroup label="Atlantic">
|
||||
<option value="Atlantic/Azores">Azores</option>
|
||||
<option value="Atlantic/Bermuda">Bermuda</option>
|
||||
<option value="Atlantic/Canary">Canary</option>
|
||||
<option value="Atlantic/Cape_Verde">Cape Verde</option>
|
||||
<option value="Atlantic/Faroe">Faroe</option>
|
||||
<option value="Atlantic/Madeira">Madeira</option>
|
||||
<option value="Atlantic/Reykjavik">Reykjavik</option>
|
||||
<option value="Atlantic/South_Georgia">South Georgia</option>
|
||||
<option value="Atlantic/Stanley">Stanley</option>
|
||||
<option value="Atlantic/St_Helena">St Helena</option>
|
||||
</optgroup>
|
||||
<optgroup label="Australia">
|
||||
<option value="Australia/Adelaide">Adelaide</option>
|
||||
<option value="Australia/Brisbane">Brisbane</option>
|
||||
<option value="Australia/Broken_Hill">Broken Hill</option>
|
||||
<option value="Australia/Currie">Currie</option>
|
||||
<option value="Australia/Darwin">Darwin</option>
|
||||
<option value="Australia/Eucla">Eucla</option>
|
||||
<option value="Australia/Hobart">Hobart</option>
|
||||
<option value="Australia/Lindeman">Lindeman</option>
|
||||
<option value="Australia/Lord_Howe">Lord Howe</option>
|
||||
<option value="Australia/Melbourne">Melbourne</option>
|
||||
<option value="Australia/Perth">Perth</option>
|
||||
<option value="Australia/Sydney">Sydney</option>
|
||||
</optgroup>
|
||||
<optgroup label="Europe">
|
||||
<option value="Europe/Amsterdam">Amsterdam</option>
|
||||
<option value="Europe/Andorra">Andorra</option>
|
||||
<option value="Europe/Athens">Athens</option>
|
||||
<option value="Europe/Belgrade">Belgrade</option>
|
||||
<option value="Europe/Berlin">Berlin</option>
|
||||
<option value="Europe/Bratislava">Bratislava</option>
|
||||
<option value="Europe/Brussels">Brussels</option>
|
||||
<option value="Europe/Bucharest">Bucharest</option>
|
||||
<option value="Europe/Budapest">Budapest</option>
|
||||
<option value="Europe/Chisinau">Chisinau</option>
|
||||
<option value="Europe/Copenhagen">Copenhagen</option>
|
||||
<option value="Europe/Dublin">Dublin</option>
|
||||
<option value="Europe/Gibraltar">Gibraltar</option>
|
||||
<option value="Europe/Guernsey">Guernsey</option>
|
||||
<option value="Europe/Helsinki">Helsinki</option>
|
||||
<option value="Europe/Isle_of_Man">Isle of Man</option>
|
||||
<option value="Europe/Istanbul">Istanbul</option>
|
||||
<option value="Europe/Jersey">Jersey</option>
|
||||
<option value="Europe/Kaliningrad">Kaliningrad</option>
|
||||
<option value="Europe/Kiev">Kiev</option>
|
||||
<option value="Europe/Lisbon">Lisbon</option>
|
||||
<option value="Europe/Ljubljana">Ljubljana</option>
|
||||
<option value="Europe/London">London</option>
|
||||
<option value="Europe/Luxembourg">Luxembourg</option>
|
||||
<option value="Europe/Madrid">Madrid</option>
|
||||
<option value="Europe/Malta">Malta</option>
|
||||
<option value="Europe/Mariehamn">Mariehamn</option>
|
||||
<option value="Europe/Minsk">Minsk</option>
|
||||
<option value="Europe/Monaco">Monaco</option>
|
||||
<option value="Europe/Moscow">Moscow</option>
|
||||
<option value="Europe/Oslo">Oslo</option>
|
||||
<option value="Europe/Paris">Paris</option>
|
||||
<option value="Europe/Podgorica">Podgorica</option>
|
||||
<option value="Europe/Prague">Prague</option>
|
||||
<option value="Europe/Riga">Riga</option>
|
||||
<option value="Europe/Rome">Rome</option>
|
||||
<option value="Europe/Samara">Samara</option>
|
||||
<option value="Europe/San_Marino">San Marino</option>
|
||||
<option value="Europe/Sarajevo">Sarajevo</option>
|
||||
<option value="Europe/Simferopol">Simferopol</option>
|
||||
<option value="Europe/Skopje">Skopje</option>
|
||||
<option value="Europe/Sofia">Sofia</option>
|
||||
<option value="Europe/Stockholm">Stockholm</option>
|
||||
<option value="Europe/Tallinn">Tallinn</option>
|
||||
<option value="Europe/Tirane">Tirane</option>
|
||||
<option value="Europe/Uzhgorod">Uzhgorod</option>
|
||||
<option value="Europe/Vaduz">Vaduz</option>
|
||||
<option value="Europe/Vatican">Vatican</option>
|
||||
<option value="Europe/Vienna">Vienna</option>
|
||||
<option value="Europe/Vilnius">Vilnius</option>
|
||||
<option value="Europe/Volgograd">Volgograd</option>
|
||||
<option value="Europe/Warsaw">Warsaw</option>
|
||||
<option value="Europe/Zagreb">Zagreb</option>
|
||||
<option value="Europe/Zaporozhye">Zaporozhye</option>
|
||||
<option value="Europe/Zurich">Zurich</option>
|
||||
</optgroup>
|
||||
<optgroup label="Indian">
|
||||
<option value="Indian/Antananarivo">Antananarivo</option>
|
||||
<option value="Indian/Chagos">Chagos</option>
|
||||
<option value="Indian/Christmas">Christmas</option>
|
||||
<option value="Indian/Cocos">Cocos</option>
|
||||
<option value="Indian/Comoro">Comoro</option>
|
||||
<option value="Indian/Kerguelen">Kerguelen</option>
|
||||
<option value="Indian/Mahe">Mahe</option>
|
||||
<option value="Indian/Maldives">Maldives</option>
|
||||
<option value="Indian/Mauritius">Mauritius</option>
|
||||
<option value="Indian/Mayotte">Mayotte</option>
|
||||
<option value="Indian/Reunion">Reunion</option>
|
||||
</optgroup>
|
||||
<optgroup label="Pacific">
|
||||
<option value="Pacific/Apia">Apia</option>
|
||||
<option value="Pacific/Auckland">Auckland</option>
|
||||
<option value="Pacific/Chatham">Chatham</option>
|
||||
<option value="Pacific/Easter">Easter</option>
|
||||
<option value="Pacific/Efate">Efate</option>
|
||||
<option value="Pacific/Enderbury">Enderbury</option>
|
||||
<option value="Pacific/Fakaofo">Fakaofo</option>
|
||||
<option value="Pacific/Fiji">Fiji</option>
|
||||
<option value="Pacific/Funafuti">Funafuti</option>
|
||||
<option value="Pacific/Galapagos">Galapagos</option>
|
||||
<option value="Pacific/Gambier">Gambier</option>
|
||||
<option value="Pacific/Guadalcanal">Guadalcanal</option>
|
||||
<option value="Pacific/Guam">Guam</option>
|
||||
<option value="Pacific/Honolulu">Honolulu</option>
|
||||
<option value="Pacific/Johnston">Johnston</option>
|
||||
<option value="Pacific/Kiritimati">Kiritimati</option>
|
||||
<option value="Pacific/Kosrae">Kosrae</option>
|
||||
<option value="Pacific/Kwajalein">Kwajalein</option>
|
||||
<option value="Pacific/Majuro">Majuro</option>
|
||||
<option value="Pacific/Marquesas">Marquesas</option>
|
||||
<option value="Pacific/Midway">Midway</option>
|
||||
<option value="Pacific/Nauru">Nauru</option>
|
||||
<option value="Pacific/Niue">Niue</option>
|
||||
<option value="Pacific/Norfolk">Norfolk</option>
|
||||
<option value="Pacific/Noumea">Noumea</option>
|
||||
<option value="Pacific/Pago_Pago">Pago Pago</option>
|
||||
<option value="Pacific/Palau">Palau</option>
|
||||
<option value="Pacific/Pitcairn">Pitcairn</option>
|
||||
<option value="Pacific/Ponape">Ponape</option>
|
||||
<option value="Pacific/Port_Moresby">Port Moresby</option>
|
||||
<option value="Pacific/Rarotonga">Rarotonga</option>
|
||||
<option value="Pacific/Saipan">Saipan</option>
|
||||
<option value="Pacific/Tahiti">Tahiti</option>
|
||||
<option value="Pacific/Tarawa">Tarawa</option>
|
||||
<option value="Pacific/Tongatapu">Tongatapu</option>
|
||||
<option value="Pacific/Truk">Truk</option>
|
||||
<option value="Pacific/Wake">Wake</option>
|
||||
<option value="Pacific/Wallis">Wallis</option>
|
||||
</optgroup>
|
||||
</select>';
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Widget functions / views
|
||||
*
|
||||
* @package GCE
|
||||
* @author Phil Derksen <pderksen@gmail.com>, Nick Young <mycorpweb@gmail.com>
|
||||
* @license GPL-2.0+
|
||||
* @copyright 2014 Phil Derksen
|
||||
*/
|
||||
|
||||
// Exit if accessed directly.
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class functions for the GCE widgets
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
class GCE_Widget extends WP_Widget {
|
||||
|
||||
function GCE_Widget() {
|
||||
parent::__construct(
|
||||
false, // Adding a name here doesn't seem to affect the upgrade. If widget stuff starts acting weird then check this first though.
|
||||
$name = __( 'Google Calendar Events', 'gce' ),
|
||||
array( 'description' => __( 'Display a list or calendar grid of events from one or more Google Calendar feeds you have added', 'gce' ) )
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Widget HTML output
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function widget( $args, $instance ) {
|
||||
extract( $args );
|
||||
|
||||
//Output before widget stuff
|
||||
echo $before_widget;
|
||||
|
||||
// Check whether any feeds have been added yet
|
||||
if( wp_count_posts( 'gce_feed' )->publish > 0 ) {
|
||||
//Output title stuff
|
||||
$title = empty( $instance['title'] ) ? '' : apply_filters( 'widget_title', $instance['title'] );
|
||||
|
||||
if ( ! empty( $title ) ) {
|
||||
echo $before_title . $title . $after_title;
|
||||
}
|
||||
|
||||
$no_feeds_exist = true;
|
||||
$feed_ids = array();
|
||||
|
||||
if ( ! empty( $instance['id'] ) ) {
|
||||
//Break comma delimited list of feed ids into array
|
||||
$feed_ids = explode( ',', str_replace( ' ', '', $instance['id'] ) );
|
||||
|
||||
//Check each id is an integer, if not, remove it from the array
|
||||
foreach ( $feed_ids as $key => $feed_id ) {
|
||||
if ( 0 == absint( $feed_id ) )
|
||||
unset( $feed_ids[$key] );
|
||||
}
|
||||
|
||||
//If at least one of the feed ids entered exists, set no_feeds_exist to false
|
||||
foreach ( $feed_ids as $feed_id ) {
|
||||
if ( false !== get_post_meta( $feed_id ) )
|
||||
$no_feeds_exist = false;
|
||||
}
|
||||
} else {
|
||||
if ( current_user_can( 'manage_options' ) ) {
|
||||
_e( 'No valid Feed IDs have been entered for this widget. Please check that you have entered the IDs correctly in the widget settings (Appearance > Widgets), and that the Feeds have not been deleted.', 'gce' );
|
||||
}
|
||||
}
|
||||
|
||||
//Check that at least one valid feed id has been entered
|
||||
if ( ! empty( $feed_ids ) ) {
|
||||
//Turns feed_ids back into string or feed ids delimited by '-' ('1-2-3-4' for example)
|
||||
$feed_ids = implode( '-', $feed_ids );
|
||||
|
||||
$title_text = ( ! empty( $instance['display_title_text'] ) ? $instance['display_title_text'] : null );
|
||||
$max_events = ( isset( $instance['max_events'] ) ) ? $instance['max_events'] : 0;
|
||||
$sort_order = ( isset( $instance['order'] ) ) ? $instance['order'] : 'asc';
|
||||
|
||||
$args = array(
|
||||
'title_text' => $title_text,
|
||||
'max_events' => $max_events,
|
||||
'sort' => $sort_order,
|
||||
'month' => null,
|
||||
'year' => null,
|
||||
'widget' => 1
|
||||
);
|
||||
|
||||
if( 'list-grouped' == $instance['display_type'] ) {
|
||||
$args['grouped'] = 1;
|
||||
}
|
||||
|
||||
$markup = gce_print_calendar( $feed_ids, $instance['display_type'], $args, true );
|
||||
|
||||
echo $markup;
|
||||
}
|
||||
} else {
|
||||
if( current_user_can( 'manage_options' ) ) {
|
||||
_e( 'You have not added any feeds yet.', 'gce' );
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//Output after widget stuff
|
||||
echo $after_widget;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update settings when saved
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function update( $new_instance, $old_instance ) {
|
||||
|
||||
$instance = $old_instance;
|
||||
$instance['title'] = esc_html( $new_instance['title'] );
|
||||
$instance['id'] = esc_html( $new_instance['id'] );
|
||||
$instance['display_type'] = esc_html( $new_instance['display_type'] );
|
||||
$instance['max_events'] = absint( $new_instance['max_events'] );
|
||||
$instance['order'] = ( 'asc' == $new_instance['order'] ) ? 'asc' : 'desc';
|
||||
$instance['display_title_text'] = wp_filter_kses( $new_instance['display_title_text'] );
|
||||
|
||||
return $instance;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param type $instanceDisplay widget form in admin
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function form( $instance ) {
|
||||
|
||||
// Check for existing feeds and if there are none then display a message and return
|
||||
if( wp_count_posts( 'gce_feed' )->publish <= 0 ) {
|
||||
echo '<p>' . __( 'There are no feeds created yet.', 'gce' ) .
|
||||
' <a href="' . admin_url( 'edit.php?post_type=gce_feed' ) . '">' . __( 'Add your first feed!', 'gce' ) . '</a>' .
|
||||
'</p>';
|
||||
return;
|
||||
}
|
||||
|
||||
$title = ( isset( $instance['title'] ) ) ? $instance['title'] : '';
|
||||
$ids = ( isset( $instance['id'] ) ) ? $instance['id'] : '';
|
||||
$display_type = ( isset( $instance['display_type'] ) ) ? $instance['display_type'] : 'grid';
|
||||
$max_events = ( isset( $instance['max_events'] ) ) ? $instance['max_events'] : 0;
|
||||
$order = ( isset( $instance['order'] ) ) ? $instance['order'] : 'asc';
|
||||
$display_title = ( isset( $instance['display_title'] ) ) ? $instance['display_title'] : true;
|
||||
$title_text = ( isset( $instance['display_title_text'] ) ) ? $instance['display_title_text'] : 'Events on';
|
||||
|
||||
?>
|
||||
<p>
|
||||
<label for="<?php echo $this->get_field_id( 'title' ); ?>">Title:</label>
|
||||
<input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $title; ?>" class="widefat" />
|
||||
</p>
|
||||
<p>
|
||||
<label for="<?php echo $this->get_field_id( 'id' ); ?>">
|
||||
<?php _e( 'Feeds to display, as a comma separated list (e.g. 101,102,103)', 'gce' ); ?>
|
||||
</label>
|
||||
<input type="text" id="<?php echo $this->get_field_id( 'id' ); ?>" name="<?php echo $this->get_field_name( 'id' ); ?>" value="<?php echo $ids; ?>" class="widefat" />
|
||||
</p>
|
||||
<p>
|
||||
<label for="<?php echo $this->get_field_id( 'display_type' ); ?>"><?php _e( 'Display events as:', 'gce' ); ?></label>
|
||||
<select id="<?php echo $this->get_field_id( 'display_type' ); ?>" name="<?php echo $this->get_field_name( 'display_type' ); ?>" class="widefat">
|
||||
<option value="grid"<?php selected( $display_type, 'grid' ); ?>><?php _e( 'Grid', 'gce' ); ?></option>
|
||||
<!-- <option value="ajax"<?php selected( $display_type, 'ajax' ); ?>><?php _e( 'Calendar Grid - with AJAX', 'gce' ); ?></option> -->
|
||||
<option value="list"<?php selected( $display_type, 'list' ); ?>><?php _e( 'List', 'gce' ); ?></option>
|
||||
<option value="list-grouped"<?php selected( $display_type, 'list-grouped' );?>><?php _e( 'Grouped List', 'gce' ); ?></option>
|
||||
</select>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="<?php echo $this->get_field_id( 'max_events' ); ?>"><?php _e( 'Maximum no. events to display. Enter 0 to show all retrieved.' ); ?></label>
|
||||
<input type="text" id="<?php echo $this->get_field_id( 'max_events' ); ?>" name="<?php echo $this->get_field_name( 'max_events' ); ?>" value="<?php echo $max_events; ?>" class="widefat" />
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="<?php echo $this->get_field_id( 'order' ); ?>"><?php _e( 'Sort order (only applies to lists):' ); ?></label>
|
||||
<select id="<?php echo $this->get_field_id( 'order' ); ?>" name="<?php echo $this->get_field_name( 'order' ); ?>" class="widefat">
|
||||
<option value="asc" <?php selected( $order, 'asc' ); ?>><?php _e( 'Ascending', 'gce' ); ?></option>
|
||||
<option value="desc" <?php selected( $order, 'desc' ); ?>><?php _e( 'Descending', 'gce' ); ?></option>
|
||||
</select>
|
||||
</p>
|
||||
<p>
|
||||
<label for="<?php echo $this->get_field_id( 'display_title' ); ?>"><?php _e( 'Display title on tooltip / list item (e.g. \'Events on 7th March\') Grouped lists always have a title displayed.', 'gce' ); ?></label>
|
||||
<input type="text" class="widefat" id="<?php echo $this->get_field_id( 'display_title_text' ); ?>" name="<?php echo $this->get_field_name( 'display_title_text' ); ?>" value="<?php echo $title_text; ?>" />
|
||||
</p>
|
||||
|
||||
<?php
|
||||
}
|
||||
}
|
||||
add_action( 'widgets_init', create_function( '', 'register_widget("GCE_Widget");' ) );
|
||||
|
||||
@@ -1,242 +0,0 @@
|
||||
<?php
|
||||
class GCE_Widget extends WP_Widget {
|
||||
function GCE_Widget() {
|
||||
parent::WP_Widget(
|
||||
false,
|
||||
$name = __( 'Google Calendar Events', GCE_TEXT_DOMAIN ),
|
||||
array( 'description' => __( 'Display a list or calendar grid of events from one or more Google Calendar feeds you have added', GCE_TEXT_DOMAIN ) )
|
||||
);
|
||||
}
|
||||
|
||||
function widget( $args, $instance ) {
|
||||
extract( $args );
|
||||
|
||||
//Output before widget stuff
|
||||
echo $before_widget;
|
||||
|
||||
//Get saved feed options
|
||||
$options = get_option( GCE_OPTIONS_NAME );
|
||||
|
||||
//Check whether any feeds have been added yet
|
||||
if( is_array( $options ) && ! empty( $options ) ) {
|
||||
//Output title stuff
|
||||
$title = empty( $instance['title'] ) ? '' : apply_filters( 'widget_title', $instance['title'] );
|
||||
|
||||
if ( ! empty( $title ) )
|
||||
echo $before_title . $title . $after_title;
|
||||
|
||||
$no_feeds_exist = true;
|
||||
$feed_ids = array();
|
||||
|
||||
if ( '' != $instance['id'] ) {
|
||||
//Break comma delimited list of feed ids into array
|
||||
$feed_ids = explode( ',', str_replace( ' ', '', $instance['id'] ) );
|
||||
|
||||
//Check each id is an integer, if not, remove it from the array
|
||||
foreach ( $feed_ids as $key => $feed_id ) {
|
||||
if ( 0 == absint( $feed_id ) )
|
||||
unset( $feed_ids[$key] );
|
||||
}
|
||||
|
||||
//If at least one of the feed ids entered exists, set no_feeds_exist to false
|
||||
foreach ( $feed_ids as $feed_id ) {
|
||||
if ( isset($options[$feed_id] ) )
|
||||
$no_feeds_exist = false;
|
||||
}
|
||||
} else {
|
||||
foreach ( $options as $feed ) {
|
||||
$feed_ids[] = $feed['id'];
|
||||
}
|
||||
|
||||
$no_feeds_exist = false;
|
||||
}
|
||||
|
||||
//Check that at least one valid feed id has been entered
|
||||
if ( empty( $feed_ids ) || $no_feeds_exist ) {
|
||||
if ( current_user_can( 'manage_options' ) ) {
|
||||
_e( 'No valid Feed IDs have been entered for this widget. Please check that you have entered the IDs correctly in the widget settings (Appearance > Widgets), and that the Feeds have not been deleted.', GCE_TEXT_DOMAIN );
|
||||
} else {
|
||||
$options = get_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
echo $options['error'];
|
||||
}
|
||||
} else {
|
||||
//Turns feed_ids back into string or feed ids delimited by '-' ('1-2-3-4' for example)
|
||||
$feed_ids = implode( '-', $feed_ids );
|
||||
|
||||
$title_text = ( $instance['display_title'] ) ? $instance['display_title_text'] : null;
|
||||
$max_events = ( isset( $instance['max_events'] ) ) ? $instance['max_events'] : 0;
|
||||
$sort_order = ( isset( $instance['order'] ) ) ? $instance['order'] : 'asc';
|
||||
|
||||
//Output correct widget content based on display type chosen
|
||||
switch ( $instance['display_type'] ) {
|
||||
case 'grid':
|
||||
echo '<div class="gce-widget-grid" id="' . $args['widget_id'] . '-container">';
|
||||
//Output main widget content as grid (no AJAX)
|
||||
gce_widget_content_grid( $feed_ids, $title_text, $max_events, $args['widget_id'] . '-container' );
|
||||
echo '</div>';
|
||||
break;
|
||||
case 'ajax':
|
||||
echo '<div class="gce-widget-grid" id="' . $args['widget_id'] . '-container">';
|
||||
//Output main widget content as grid (with AJAX)
|
||||
gce_widget_content_grid( $feed_ids, $title_text, $max_events, $args['widget_id'] . '-container', true );
|
||||
echo '</div>';
|
||||
break;
|
||||
case 'list':
|
||||
echo '<div class="gce-widget-list" id="' . $args['widget_id'] . '-container">';
|
||||
//Output main widget content as list
|
||||
gce_widget_content_list( $feed_ids, $title_text, $max_events, $sort_order );
|
||||
echo '</div>';
|
||||
break;
|
||||
case 'list-grouped':
|
||||
echo '<div class="gce-widget-list" id="' . $args['widget_id'] . '-container">';
|
||||
//Output main widget content as a grouped list
|
||||
gce_widget_content_list( $feed_ids, $title_text, $max_events, $sort_order, true );
|
||||
echo '</div>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( current_user_can( 'manage_options' ) ) {
|
||||
_e( 'No feeds have been added yet. You can add a feed in the Google Calendar Events settings.', GCE_TEXT_DOMAIN );
|
||||
} else {
|
||||
$options = get_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
echo $options['error'];
|
||||
}
|
||||
}
|
||||
|
||||
//Output after widget stuff
|
||||
echo $after_widget;
|
||||
}
|
||||
|
||||
function update( $new_instance, $old_instance ) {
|
||||
$instance = $old_instance;
|
||||
$instance['title'] = esc_html( $new_instance['title'] );
|
||||
$instance['id'] = esc_html( $new_instance['id'] );
|
||||
$instance['display_type'] = esc_html( $new_instance['display_type'] );
|
||||
$instance['max_events'] = absint( $new_instance['max_events'] );
|
||||
$instance['order'] = ( 'asc' == $new_instance['order'] ) ? 'asc' : 'desc';
|
||||
$instance['display_title'] = ( 'on' == $new_instance['display_title'] ) ? true : false;
|
||||
$instance['display_title_text'] = wp_filter_kses( $new_instance['display_title_text'] );
|
||||
return $instance;
|
||||
}
|
||||
|
||||
function form( $instance ) {
|
||||
//Get saved feed options
|
||||
$options = get_option( GCE_OPTIONS_NAME );
|
||||
|
||||
if ( empty( $options ) ) {
|
||||
//If no feeds or groups ?>
|
||||
<p><?php _e( 'No feeds have been added yet. You can add feeds in the Google Calendar Events settings.', GCE_TEXT_DOMAIN ); ?></p>
|
||||
<?php
|
||||
}else{
|
||||
$title = ( isset( $instance['title'] ) ) ? $instance['title'] : '';
|
||||
$ids = ( isset( $instance['id'] ) ) ? $instance['id'] : '';
|
||||
$display_type = ( isset( $instance['display_type'] ) ) ? $instance['display_type'] : 'grid';
|
||||
$max_events = ( isset( $instance['max_events'] ) ) ? $instance['max_events'] : 0;
|
||||
$order = ( isset( $instance['order'] ) ) ? $instance['order'] : 'asc';
|
||||
$display_title = ( isset($instance['display_title'] ) ) ? $instance['display_title'] : true;
|
||||
$title_text = ( isset($instance['display_title_text'] ) ) ? $instance['display_title_text'] : 'Events on';
|
||||
?>
|
||||
<p>
|
||||
<label for="<?php echo $this->get_field_id( 'title' ); ?>">Title:</label>
|
||||
<input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $title; ?>" class="widefat" />
|
||||
</p><p>
|
||||
<label for="<?php echo $this->get_field_id( 'id' ); ?>">
|
||||
<?php _e( 'Feeds to display, as a comma separated list (e.g. 1, 2, 4). Leave blank to display all feeds:', GCE_TEXT_DOMAIN ); ?>
|
||||
</label>
|
||||
<input type="text" id="<?php echo $this->get_field_id( 'id' ); ?>" name="<?php echo $this->get_field_name( 'id' ); ?>" value="<?php echo $ids; ?>" class="widefat" />
|
||||
</p><p>
|
||||
<label for="<?php echo $this->get_field_id( 'display_type' ); ?>"><?php _e( 'Display events as:', GCE_TEXT_DOMAIN ); ?></label>
|
||||
<select id="<?php echo $this->get_field_id( 'display_type' ); ?>" name="<?php echo $this->get_field_name( 'display_type' ); ?>" class="widefat">
|
||||
<option value="grid"<?php selected( $display_type, 'grid' ); ?>><?php _e( 'Calendar Grid', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="ajax"<?php selected( $display_type, 'ajax' ); ?>><?php _e( 'Calendar Grid - with AJAX', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="list"<?php selected( $display_type, 'list' ); ?>><?php _e( 'List', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="list-grouped"<?php selected( $display_type, 'list-grouped' );?>><?php _e( 'List - grouped by date', GCE_TEXT_DOMAIN ); ?></option>
|
||||
</select>
|
||||
</p><p>
|
||||
<label for="<?php echo $this->get_field_id( 'max_events' ); ?>"><?php _e( 'Maximum no. events to display. Enter 0 to show all retrieved.' ); ?></label>
|
||||
<input type="text" id="<?php echo $this->get_field_id( 'max_events' ); ?>" name="<?php echo $this->get_field_name( 'max_events' ); ?>" value="<?php echo $max_events; ?>" class="widefat" />
|
||||
</p><p>
|
||||
<label for="<?php echo $this->get_field_id( 'order' ); ?>"><?php _e( 'Sort order (only applies to lists):' ); ?></label>
|
||||
<select id="<?php echo $this->get_field_id( 'order' ); ?>" name="<?php echo $this->get_field_name( 'order' ); ?>" class="widefat">
|
||||
<option value="asc"<?php selected( $order, 'asc' ); ?>><?php _e( 'Ascending', GCE_TEXT_DOMAIN ); ?></option>
|
||||
<option value="desc"<?php selected( $order, 'desc' ); ?>><?php _e( 'Descending', GCE_TEXT_DOMAIN ); ?></option>
|
||||
</select>
|
||||
</p><p>
|
||||
<label for="<?php echo $this->get_field_id( 'display_title' ); ?>"><?php _e( 'Display title on tooltip / list item? (e.g. \'Events on 7th March\') Grouped lists always have a title displayed.', GCE_TEXT_DOMAIN ); ?></label>
|
||||
<br />
|
||||
<input type="checkbox" id="<?php echo $this->get_field_id( 'display_title' ); ?>" name="<?php echo $this->get_field_name( 'display_title' ); ?>"<?php checked( $display_title, true ); ?> value="on" />
|
||||
<input type="text" id="<?php echo $this->get_field_id( 'display_title_text' ); ?>" name="<?php echo $this->get_field_name( 'display_title_text' ); ?>" value="<?php echo $title_text; ?>" style="width:90%;" />
|
||||
</p>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function gce_widget_content_grid( $feed_ids, $title_text, $max_events, $widget_id, $ajaxified = false, $month = null, $year = null ) {
|
||||
require_once WP_PLUGIN_DIR . '/' . GCE_PLUGIN_NAME . '/inc/gce-parser.php';
|
||||
|
||||
$ids = explode( '-', $feed_ids );
|
||||
|
||||
//Create new GCE_Parser object, passing array of feed id(s)
|
||||
$grid = new GCE_Parser( $ids, $title_text, $max_events );
|
||||
|
||||
$num_errors = $grid->get_num_errors();
|
||||
|
||||
$markup = '';
|
||||
|
||||
//If there are less errors than feeds parsed, at least one feed must have parsed successfully so continue to display the grid
|
||||
if ( $num_errors < count( $ids ) ) {
|
||||
$ids = esc_attr( $ids );
|
||||
$title_text = isset( $title_text ) ? esc_html( $title_text) : 'null';
|
||||
|
||||
//If there was at least one error, and user is an admin, output error messages
|
||||
if ( $num_errors > 0 && current_user_can( 'manage_options' ) )
|
||||
$markup .= $grid->error_messages();
|
||||
|
||||
//Add AJAX script if required
|
||||
if ( $ajaxified )
|
||||
$markup .= '<script type="text/javascript">jQuery(document).ready(function($){gce_ajaxify("' . $widget_id . '", "' . $feed_ids . '", "' . $max_events . '", "' . $title_text .'", "widget");});</script>';
|
||||
|
||||
$markup .= $grid->get_grid( $year, $month, $ajaxified );
|
||||
} else {
|
||||
//If current user is an admin, display an error message explaining problem. Otherwise, display a 'nice' error messsage
|
||||
if ( current_user_can( 'manage_options' ) ) {
|
||||
$markup .= $grid->error_messages();
|
||||
} else {
|
||||
$options = get_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
$markup .= $options['error'];
|
||||
}
|
||||
}
|
||||
|
||||
echo $markup;
|
||||
}
|
||||
|
||||
function gce_widget_content_list( $feed_ids, $title_text, $max_events, $sort_order, $grouped = false ) {
|
||||
require_once WP_PLUGIN_DIR . '/' . GCE_PLUGIN_NAME . '/inc/gce-parser.php';
|
||||
|
||||
$ids = explode( '-', $feed_ids );
|
||||
|
||||
//Create new GCE_Parser object, passing array of feed id(s)
|
||||
$list = new GCE_Parser( $ids, $title_text, $max_events, $sort_order );
|
||||
|
||||
$num_errors = $list->get_num_errors();
|
||||
|
||||
//If there are less errors than feeds parsed, at least one feed must have parsed successfully so continue to display the list
|
||||
if ( $num_errors < count( $ids ) ) {
|
||||
//If there was at least one error, and user is an admin, output error messages
|
||||
if ( $num_errors > 0 && current_user_can( 'manage_options' ) )
|
||||
echo $list->error_messages();
|
||||
|
||||
echo $list->get_list( $grouped );
|
||||
} else {
|
||||
//If current user is an admin, display an error message explaining problem(s). Otherwise, display a 'nice' error messsage
|
||||
if ( current_user_can( 'manage_options' ) ) {
|
||||
echo $list->error_messages();
|
||||
} else {
|
||||
$options = get_option( GCE_GENERAL_OPTIONS_NAME );
|
||||
echo $options['error'];
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -175,4 +175,9 @@ input.warning:hover, a.warning:hover {
|
||||
|
||||
.ure-dialog {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#ure_admin_menu_access_table tr:hover {
|
||||
background-color: #2ea2cc;
|
||||
color: #ffffff;
|
||||
}
|
||||
@@ -163,6 +163,7 @@ class Ure_Lib extends Garvs_WP_Lib {
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
var ure_current_role = '<?php echo $this->current_role; ?>';
|
||||
var ure_current_role_name = '<?php echo $this->current_role_name; ?>';
|
||||
|
||||
</script>
|
||||
|
||||
@@ -178,6 +179,15 @@ class Ure_Lib extends Garvs_WP_Lib {
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div id="ure_rename_role_dialog" class="ure-modal-dialog" style="padding: 10px;">
|
||||
<form id="ure_rename_role_form" name="ure_rename_role_form" method="POST">
|
||||
<div class="ure-label"><?php esc_html_e('Role name (ID): ', 'ure'); ?></div>
|
||||
<div class="ure-input"><input type="text" name="ren_user_role_id" id="ren_user_role_id" size="25" disabled /></div>
|
||||
<div class="ure-label"><?php esc_html_e('Display Role Name: ', 'ure'); ?></div>
|
||||
<div class="ure-input"><input type="text" name="ren_user_role_name" id="ren_user_role_name" size="25"/></div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div id="ure_delete_role_dialog" class="ure-modal-dialog">
|
||||
<div style="padding:10px;">
|
||||
<div class="ure-label"><?php esc_html_e('Select Role:', 'ure');?></div>
|
||||
@@ -408,6 +418,9 @@ class Ure_Lib extends Garvs_WP_Lib {
|
||||
} else if ($action == 'add-new-role') {
|
||||
// process new role create request
|
||||
$this->notification = $this->add_new_role();
|
||||
} else if ($action == 'rename-role') {
|
||||
// process rename role request
|
||||
$this->notification = $this->rename_role();
|
||||
} else if ($action == 'delete-role') {
|
||||
$this->notification = $this->delete_role();
|
||||
} else if ($action == 'change-default-role') {
|
||||
@@ -885,6 +898,7 @@ class Ure_Lib extends Garvs_WP_Lib {
|
||||
if ($this->multisite) {
|
||||
$caps['manage_network'] = 1;
|
||||
$caps['manage_sites'] = 1;
|
||||
$caps['create_sites'] = 1;
|
||||
$caps['manage_network_users'] = 1;
|
||||
$caps['manage_network_themes'] = 1;
|
||||
$caps['manage_network_plugins'] = 1;
|
||||
@@ -1173,12 +1187,13 @@ class Ure_Lib extends Garvs_WP_Lib {
|
||||
if (!$this->multisite || $super_admin || $add_del_role_for_simple_admin) { // restrict single site admin
|
||||
?>
|
||||
<hr />
|
||||
<button id="ure_add_role" class="ure_toolbar_button">Add New Role</button>
|
||||
<button id="ure_add_role" class="ure_toolbar_button">Add Role</button>
|
||||
<button id="ure_rename_role" class="ure_toolbar_button">Rename Role</button>
|
||||
<?php
|
||||
} // restrict single site admin
|
||||
if (!$this->multisite || $super_admin || !$caps_access_restrict_for_simple_admin) { // restrict single site admin
|
||||
?>
|
||||
<button id="ure_add_capability" class="ure_toolbar_button">Add New Capability</button>
|
||||
<button id="ure_add_capability" class="ure_toolbar_button">Add Capability</button>
|
||||
<?php
|
||||
} // restrict single site admin
|
||||
|
||||
@@ -1744,6 +1759,61 @@ class Ure_Lib extends Garvs_WP_Lib {
|
||||
return $mess;
|
||||
}
|
||||
// end of new_role_create()
|
||||
|
||||
|
||||
/**
|
||||
* process rename role request
|
||||
*
|
||||
* @global WP_Roles $wp_roles
|
||||
*
|
||||
* @return string - message about operation result
|
||||
*
|
||||
*/
|
||||
protected function rename_role() {
|
||||
|
||||
global $wp_roles;
|
||||
|
||||
$mess = '';
|
||||
$user_role_id = filter_input(INPUT_POST, 'user_role_id', FILTER_SANITIZE_STRING);
|
||||
if (empty($user_role_id)) {
|
||||
return esc_html__('Error: Role ID is empty!', 'ure');
|
||||
}
|
||||
$user_role_id = utf8_decode($user_role_id);
|
||||
// sanitize user input for security
|
||||
$match = array();
|
||||
$valid_name = preg_match('/[A-Za-z0-9_\-]*/', $user_role_id, $match);
|
||||
if (!$valid_name || ($valid_name && ($match[0] != $user_role_id))) { // some non-alphanumeric charactes found!
|
||||
return esc_html__('Error: Role ID must contain latin characters, digits, hyphens or underscore only!', 'ure');
|
||||
}
|
||||
$numeric_name = preg_match('/[0-9]*/', $user_role_id, $match);
|
||||
if ($numeric_name && ($match[0] == $user_role_id)) { // numeric name discovered
|
||||
return esc_html__('Error: WordPress does not support numeric Role name (ID). Add latin characters to it.', 'ure');
|
||||
}
|
||||
|
||||
$new_role_name = filter_input(INPUT_POST, 'user_role_name', FILTER_SANITIZE_STRING);
|
||||
if (!empty($new_role_name)) {
|
||||
$new_role_name = sanitize_text_field($new_role_name);
|
||||
} else {
|
||||
return esc_html__('Error: Empty role display name is not allowed.', 'ure');
|
||||
}
|
||||
|
||||
if (!isset($wp_roles)) {
|
||||
$wp_roles = new WP_Roles();
|
||||
}
|
||||
if (!isset($wp_roles->roles[$user_role_id])) {
|
||||
return sprintf('Error! ' . esc_html__('Role %s does not exists', 'ure'), $user_role_id);
|
||||
}
|
||||
$this->current_role = $user_role_id;
|
||||
$this->current_role_name = $new_role_name;
|
||||
|
||||
$old_role_name = $wp_roles->roles[$user_role_id]['name'];
|
||||
$wp_roles->roles[$user_role_id]['name'] = $new_role_name;
|
||||
update_option( $wp_roles->role_key, $wp_roles->roles );
|
||||
$mess = sprintf(esc_html__('Role %s is renamed to %s successfully', 'ure'), $old_role_name, $new_role_name);
|
||||
|
||||
return $mess;
|
||||
}
|
||||
// end of rename_role()
|
||||
|
||||
|
||||
/**
|
||||
@@ -2201,9 +2271,9 @@ class Ure_Lib extends Garvs_WP_Lib {
|
||||
|
||||
<strong><?php esc_html_e('Version:', 'ure');?></strong> <?php echo URE_VERSION; ?><br/><br/>
|
||||
<a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/vladimir.png'; ?>);" target="_blank" href="http://www.shinephp.com/"><?php _e("Author's website", 'ure'); ?></a><br/>
|
||||
<a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/user-role-editor-icon.png'; ?>);" target="_blank" href="http://role-editor.com"><?php _e('Plugin webpage', 'ure'); ?></a><br/>
|
||||
<a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/user-role-editor-icon.png'; ?>);" target="_blank" href="http://role-editor.com/download-plugin"><?php _e('Plugin download', 'ure'); ?></a><br/>
|
||||
<a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/changelog-icon.png'; ?>);" target="_blank" href="http://role-editor.com/changelog"><?php _e('Changelog', 'ure'); ?></a><br/>
|
||||
<a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/user-role-editor-icon.png'; ?>);" target="_blank" href="https://www.role-editor.com"><?php _e('Plugin webpage', 'ure'); ?></a><br/>
|
||||
<a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/user-role-editor-icon.png'; ?>);" target="_blank" href="https://www.role-editor.com/download-plugin"><?php _e('Plugin download', 'ure'); ?></a><br/>
|
||||
<a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/changelog-icon.png'; ?>);" target="_blank" href="https://www.role-editor.com/changelog"><?php _e('Changelog', 'ure'); ?></a><br/>
|
||||
<a class="ure_rsb_link" style="background-image:url(<?php echo URE_PLUGIN_URL . 'images/faq-icon.png'; ?>);" target="_blank" href="http://www.shinephp.com/user-role-editor-wordpress-plugin/#faq"><?php _e('FAQ', 'ure'); ?></a><br/>
|
||||
<hr />
|
||||
<div style="text-align: center;">
|
||||
@@ -2409,7 +2479,7 @@ class Ure_Lib extends Garvs_WP_Lib {
|
||||
$query = "select ID from {$wpdb->users} users
|
||||
where not exists (select user_id from {$wpdb->usermeta}
|
||||
where user_id=users.ID and meta_key='{$blog_prefix}capabilities') or
|
||||
exists (select user_id from wp_usermeta
|
||||
exists (select user_id from {$wpdb->usermeta}
|
||||
where user_id=users.ID and meta_key='{$blog_prefix}capabilities' and meta_value='a:0:{}') ;";
|
||||
$users = $wpdb->get_col($query);
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
/*
|
||||
* main class of User Role Editor WordPress plugin
|
||||
* Author: Vladimir Garagulya
|
||||
* Author email: vladimir@shinephp.com
|
||||
* Author URI: http://shinephp.com
|
||||
* Author email: support@role-editor.com
|
||||
* Author URI: https://www.role-editor.com
|
||||
* License: GPL v2+
|
||||
*
|
||||
*/
|
||||
@@ -93,7 +93,7 @@ class User_Role_Editor {
|
||||
// by other users with 'edit_users' capability
|
||||
if (!$this->lib->user_is_admin($user_id)) {
|
||||
// Exclude administrator role from edit list.
|
||||
add_filter('editable_roles', array($this, 'exclude_admin_role' ) );
|
||||
add_filter('editable_roles', array($this, 'exclude_admin_role' ) );
|
||||
// prohibit any actions with user who has Administrator role
|
||||
add_filter('user_has_cap', array($this, 'not_edit_admin' ), 10, 3);
|
||||
// exclude users with 'Administrator' role from users list
|
||||
@@ -149,7 +149,7 @@ class User_Role_Editor {
|
||||
$query = "select count(ID) from {$wpdb->users} users
|
||||
where not exists (select user_id from {$wpdb->usermeta}
|
||||
where user_id=users.ID and meta_key='{$blog_prefix}capabilities') or
|
||||
exists (select user_id from wp_usermeta
|
||||
exists (select user_id from {$wpdb->usermeta}
|
||||
where user_id=users.ID and meta_key='{$blog_prefix}capabilities' and meta_value='a:0:{}') ;";
|
||||
$users_count = $wpdb->get_var($query);
|
||||
if ($users_count>0) {
|
||||
@@ -875,10 +875,12 @@ class User_Role_Editor {
|
||||
'update' => esc_html__('Update', 'ure'),
|
||||
'confirm_submit' => esc_html__('Please confirm permissions update', 'ure'),
|
||||
'add_new_role_title' => esc_html__('Add New Role', 'ure'),
|
||||
'rename_role_title' => esc_html__('Rename Role', 'ure'),
|
||||
'role_name_required' => esc_html__(' Role name (ID) can not be empty!', 'ure'),
|
||||
'role_name_valid_chars' => esc_html__(' Role name (ID) must contain latin characters, digits, hyphens or underscore only!', 'ure'),
|
||||
'numeric_role_name_prohibited' => esc_html__(' WordPress does not support numeric Role name (ID). Add latin characters to it.', 'ure'),
|
||||
'add_role' => esc_html__('Add Role', 'ure'),
|
||||
'rename_role' => esc_html__('Rename Role', 'ure'),
|
||||
'delete_role' => esc_html__('Delete Role', 'ure'),
|
||||
'cancel' => esc_html__('Cancel', 'ure'),
|
||||
'add_capability' => esc_html__('Add Capability', 'ure'),
|
||||
|
||||
@@ -62,10 +62,7 @@ function ui_button_text(caption) {
|
||||
}
|
||||
|
||||
|
||||
jQuery("#ure_add_role").button({
|
||||
label: ure_data.add_role
|
||||
}).click(function(event){
|
||||
event.preventDefault();
|
||||
function ure_show_add_role_dialog() {
|
||||
jQuery(function($) {
|
||||
$info = $('#ure_add_role_dialog');
|
||||
$info.dialog({
|
||||
@@ -110,8 +107,61 @@ jQuery("#ure_add_role").button({
|
||||
$('#dialog-add-role-button').html(ui_button_text(ure_data.add_role));
|
||||
$('.ui-dialog-buttonpane button:contains("Cancel")').attr("id", "add-role-dialog-cancel-button");
|
||||
$('#add-role-dialog-cancel-button').html(ui_button_text(ure_data.cancel));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
jQuery("#ure_add_role").button({
|
||||
label: ure_data.add_role
|
||||
}).click(function(event) {
|
||||
event.preventDefault();
|
||||
ure_show_add_role_dialog();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function ure_show_rename_role_dialog() {
|
||||
jQuery(function($) {
|
||||
$('#ure_rename_role_dialog').dialog({
|
||||
dialogClass: 'wp-dialog',
|
||||
modal: true,
|
||||
autoOpen: true,
|
||||
closeOnEscape: true,
|
||||
width: 400,
|
||||
height: 230,
|
||||
resizable: false,
|
||||
title: ure_data.rename_role_title,
|
||||
'buttons' : {
|
||||
'Rename Role': function () {
|
||||
var role_id = $('#ren_user_role_id').val();
|
||||
var role_name = $('#ren_user_role_name').val();
|
||||
$(this).dialog('close');
|
||||
$.ure_postGo( ure_data.page_url,
|
||||
{ action: 'rename-role', user_role_id: role_id, user_role_name: role_name, ure_nonce: ure_data.wp_nonce}
|
||||
);
|
||||
},
|
||||
Cancel: function() {
|
||||
$(this).dialog('close');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
$('.ui-dialog-buttonpane button:contains("Rename Role")').attr("id", "dialog-rename-role-button");
|
||||
$('#dialog-rename-role-button').html(ui_button_text(ure_data.rename_role));
|
||||
$('.ui-dialog-buttonpane button:contains("Cancel")').attr("id", "rename-role-dialog-cancel-button");
|
||||
$('#rename-role-dialog-cancel-button').html(ui_button_text(ure_data.cancel));
|
||||
$('#ren_user_role_id').val(ure_current_role);
|
||||
$('#ren_user_role_name').val(ure_current_role_name);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
jQuery("#ure_rename_role").button({
|
||||
label: ure_data.rename_role
|
||||
}).click(function(event) {
|
||||
event.preventDefault();
|
||||
ure_show_rename_role_dialog();
|
||||
});
|
||||
|
||||
|
||||
jQuery("#ure_delete_role").button({
|
||||
label: ure_data.delete_role
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: User Role Editor 2.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-11 11:20+0700\n"
|
||||
"POT-Creation-Date: 2014-09-08 21:33+0700\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Vladimir Garagulya <vladimir@shinephp.com>\n"
|
||||
"Language-Team: ShinePHP.com <vladimir@shinephp.com>\n"
|
||||
@@ -87,97 +87,103 @@ msgstr ""
|
||||
msgid "Allow non super administrators to create, edit, and delete users"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:185
|
||||
#: ../includes/class-user-role-editor.php:195
|
||||
msgid "Change role for users without role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:186
|
||||
#: ../includes/class-user-role-editor.php:196
|
||||
msgid "No rights"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:187
|
||||
#: ../includes/class-user-role-editor.php:197
|
||||
msgid "Provide new role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:271
|
||||
#: ../includes/class-user-role-editor.php:273
|
||||
#: ../includes/class-user-role-editor.php:281
|
||||
#: ../includes/class-user-role-editor.php:283
|
||||
msgid "You do not have permission to edit this user."
|
||||
msgstr "No tienes los suficientes permisos para editar este usuario"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:414
|
||||
#: ../includes/class-user-role-editor.php:424
|
||||
msgid "Capabilities"
|
||||
msgstr "Capacidades"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:507
|
||||
#: ../includes/class-user-role-editor.php:517
|
||||
msgid "Settings"
|
||||
msgstr "Configuración"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:520
|
||||
#: ../includes/class-ure-lib.php:2207
|
||||
#: ../includes/class-user-role-editor.php:530
|
||||
#: ../includes/class-ure-lib.php:2275
|
||||
msgid "Changelog"
|
||||
msgstr "Registro de cambios"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:542
|
||||
#: ../includes/class-user-role-editor.php:552
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:551
|
||||
#: ../includes/class-user-role-editor.php:579
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
#: ../includes/class-ure-lib.php:225
|
||||
#: ../includes/class-user-role-editor.php:561
|
||||
#: ../includes/class-user-role-editor.php:589
|
||||
#: ../includes/class-user-role-editor.php:930
|
||||
#: ../includes/class-ure-lib.php:232
|
||||
msgid "User Role Editor"
|
||||
msgstr "Editor de Roles"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:636
|
||||
#: ../includes/class-user-role-editor.php:654
|
||||
#: ../includes/class-user-role-editor.php:698
|
||||
#: ../includes/class-user-role-editor.php:646
|
||||
#: ../includes/class-user-role-editor.php:664
|
||||
#: ../includes/class-user-role-editor.php:708
|
||||
msgid "User Role Editor options are updated"
|
||||
msgstr "Opciones actualizadas"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:682
|
||||
#: ../includes/class-user-role-editor.php:692
|
||||
#, fuzzy
|
||||
msgid "Default Roles are updated"
|
||||
msgstr "Rol Predeterminado"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:706
|
||||
#: ../includes/class-user-role-editor.php:716
|
||||
msgid ""
|
||||
"You do not have sufficient permissions to manage options for User Role "
|
||||
"Editor."
|
||||
msgstr "Permisos insuficientes para trabajar"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:781
|
||||
#: ../includes/class-user-role-editor.php:791
|
||||
msgid "Insufficient permissions to work with User Role Editor"
|
||||
msgstr "Permisos insuficientes para trabajar con el Editor de Roles"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:835
|
||||
#: ../includes/class-user-role-editor.php:872
|
||||
msgid "Select All"
|
||||
msgstr "Seleccionar todo"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:836
|
||||
#: ../includes/class-user-role-editor.php:873
|
||||
msgid "Unselect All"
|
||||
msgstr "Deseleccionar todo"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:837
|
||||
#: ../includes/class-user-role-editor.php:874
|
||||
msgid "Reverse"
|
||||
msgstr "Revertir"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:838
|
||||
#: ../includes/class-user-role-editor.php:875
|
||||
msgid "Update"
|
||||
msgstr "Actualizar"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:839
|
||||
#: ../includes/class-user-role-editor.php:876
|
||||
msgid "Please confirm permissions update"
|
||||
msgstr "Por favor confirma las actualizaciones de permisos"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:840
|
||||
#: ../includes/class-user-role-editor.php:877
|
||||
msgid "Add New Role"
|
||||
msgstr "Agregar nuevo Rol"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:841
|
||||
#: ../includes/class-user-role-editor.php:878
|
||||
#: ../includes/class-user-role-editor.php:883
|
||||
#, fuzzy
|
||||
msgid "Rename Role"
|
||||
msgstr "Eliminar Rol"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:879
|
||||
msgid " Role name (ID) can not be empty!"
|
||||
msgstr "¡El nombre del Rol (ID) no puede estar vacío!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:842
|
||||
#: ../includes/class-user-role-editor.php:880
|
||||
msgid ""
|
||||
" Role name (ID) must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
@@ -185,66 +191,66 @@ msgstr ""
|
||||
"¡El nombre del Rol (ID) sólo debe contener caracteres alfanuméricos, guiones "
|
||||
"altos o bajos!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:843
|
||||
#: ../includes/class-user-role-editor.php:881
|
||||
msgid ""
|
||||
" WordPress does not support numeric Role name (ID). Add latin characters to "
|
||||
"it."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:844
|
||||
#: ../includes/class-user-role-editor.php:882
|
||||
msgid "Add Role"
|
||||
msgstr "Agregar Rol"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:845
|
||||
#: ../includes/class-user-role-editor.php:884
|
||||
msgid "Delete Role"
|
||||
msgstr "Eliminar Rol"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:846
|
||||
#: ../includes/class-user-role-editor.php:885
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:847
|
||||
#: ../includes/class-user-role-editor.php:886
|
||||
msgid "Add Capability"
|
||||
msgstr "Agregar Capacidad"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:848
|
||||
#: ../includes/class-user-role-editor.php:857
|
||||
#: ../includes/class-user-role-editor.php:887
|
||||
#: ../includes/class-user-role-editor.php:896
|
||||
msgid "Delete Capability"
|
||||
msgstr "Eliminar Capacidades"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:849
|
||||
#: ../includes/class-user-role-editor.php:888
|
||||
msgid "Reset"
|
||||
msgstr "Reiniciar"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:850
|
||||
#: ../includes/class-user-role-editor.php:889
|
||||
msgid "DANGER! Resetting will restore default settings from WordPress Core."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:851
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
msgid ""
|
||||
"If any plugins have changed capabilities in any way upon installation (such "
|
||||
"as S2Member, WooCommerce, and many more), those capabilities will be DELETED!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:852
|
||||
#: ../includes/class-user-role-editor.php:891
|
||||
msgid ""
|
||||
"For more information on how to undo changes and restore plugin capabilities "
|
||||
"go to"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:854
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
msgid "Continue?"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:855
|
||||
#: ../includes/class-user-role-editor.php:894
|
||||
msgid "Default Role"
|
||||
msgstr "Rol Predeterminado"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:856
|
||||
#: ../includes/class-user-role-editor.php:895
|
||||
msgid "Set New Default Role"
|
||||
msgstr "Establecer nuevo Rol"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:858
|
||||
#: ../includes/class-user-role-editor.php:897
|
||||
msgid ""
|
||||
"Warning! Be careful - removing critical capability could crash some plugin "
|
||||
"or other custom code"
|
||||
@@ -252,11 +258,11 @@ msgstr ""
|
||||
"¡Atención! Ten cuidado - Eliminar Capacidadess esenciales podría inhabilitar "
|
||||
"algún plugin o código personalizado"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:859
|
||||
#: ../includes/class-user-role-editor.php:898
|
||||
msgid " Capability name (ID) can not be empty!"
|
||||
msgstr "¡El nombre de la Capacidad (ID) no puede estar vacío!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:860
|
||||
#: ../includes/class-user-role-editor.php:899
|
||||
msgid ""
|
||||
" Capability name (ID) must contain latin characters, digits, hyphens or "
|
||||
"underscore only!"
|
||||
@@ -264,12 +270,12 @@ msgstr ""
|
||||
"¡El nombre de la Capacidad (ID) sólo debe contener caracteres alfanuméricos, "
|
||||
"guiones altos o bajos!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
#: ../includes/class-user-role-editor.php:922
|
||||
#: ../includes/class-user-role-editor.php:933
|
||||
#: ../includes/class-user-role-editor.php:962
|
||||
msgid "Other Roles"
|
||||
msgstr "Otros Roles"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:904
|
||||
#: ../includes/class-user-role-editor.php:944
|
||||
msgid "Edit"
|
||||
msgstr "Editar"
|
||||
|
||||
@@ -303,80 +309,80 @@ msgstr "Filtro rápido:"
|
||||
msgid "Custom capabilities:"
|
||||
msgstr "Capacidades personalizadas:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:143
|
||||
#: ../includes/class-ure-lib.php:140
|
||||
msgid "Error: wrong request"
|
||||
msgstr "Error: Petición inválida"
|
||||
|
||||
#: ../includes/class-ure-lib.php:175
|
||||
#: ../includes/class-ure-lib.php:173 ../includes/class-ure-lib.php:184
|
||||
msgid "Role name (ID): "
|
||||
msgstr "Nombre del Rol (ID):"
|
||||
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
#: ../includes/class-ure-lib.php:175 ../includes/class-ure-lib.php:186
|
||||
msgid "Display Role Name: "
|
||||
msgstr "Mostrar nombre del Rol:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:179
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
msgid "Make copy of: "
|
||||
msgstr "Hacer copia de:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:186
|
||||
#: ../includes/class-ure-lib.php:193
|
||||
msgid "Select Role:"
|
||||
msgstr "Seleccionar Rol:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:201
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
msgid "Delete:"
|
||||
msgstr "Eliminar:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
#: ../includes/class-ure-lib.php:215
|
||||
msgid "Capability name (ID): "
|
||||
msgstr "Nombre de la Capacidad (ID):"
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Error: "
|
||||
msgstr "Error:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Role"
|
||||
msgstr "Rol"
|
||||
|
||||
#: ../includes/class-ure-lib.php:323
|
||||
#: ../includes/class-ure-lib.php:330
|
||||
msgid "does not exist"
|
||||
msgstr "no existe"
|
||||
|
||||
#: ../includes/class-ure-lib.php:366
|
||||
#: ../includes/class-ure-lib.php:373
|
||||
msgid "Role is updated successfully"
|
||||
msgstr "El Rol fue exitosamente actualizado"
|
||||
|
||||
#: ../includes/class-ure-lib.php:368
|
||||
#: ../includes/class-ure-lib.php:375
|
||||
msgid "Roles are updated for all network"
|
||||
msgstr "Roles actualizados en toda la Red"
|
||||
|
||||
#: ../includes/class-ure-lib.php:374
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
msgid "Error occured during role(s) update"
|
||||
msgstr "Ocurrió un error durante la actualización del Rol"
|
||||
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
#: ../includes/class-ure-lib.php:388
|
||||
msgid "User capabilities are updated successfully"
|
||||
msgstr "Las Capacidades de Usuario fueron actualizadas exitosamente"
|
||||
|
||||
#: ../includes/class-ure-lib.php:386
|
||||
#: ../includes/class-ure-lib.php:393
|
||||
msgid "Error occured during user update"
|
||||
msgstr "Ocurrió un error durante la actualización del Usuario"
|
||||
|
||||
#: ../includes/class-ure-lib.php:441
|
||||
#: ../includes/class-ure-lib.php:451
|
||||
msgid "User Roles are restored to WordPress default values. "
|
||||
msgstr ""
|
||||
"Los Roles de Usuario fueron restaurados a los predeterminados de WordPress"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1312
|
||||
#: ../includes/class-ure-lib.php:1317
|
||||
msgid "Help"
|
||||
msgstr "Ayuda"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1662
|
||||
#: ../includes/class-ure-lib.php:1675
|
||||
msgid "Error is occur. Please check the log file."
|
||||
msgstr "Un error ha ocurrido. Por favor revisa el archivo de registro."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1705
|
||||
#: ../includes/class-ure-lib.php:1718 ../includes/class-ure-lib.php:1785
|
||||
msgid ""
|
||||
"Error: Role ID must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
@@ -384,368 +390,386 @@ msgstr ""
|
||||
"Error: ¡La ID del Rol sólo debe contener caracteres alfanuméricos, guiones "
|
||||
"altos o bajos!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1709
|
||||
#: ../includes/class-ure-lib.php:1722 ../includes/class-ure-lib.php:1789
|
||||
msgid ""
|
||||
"Error: WordPress does not support numeric Role name (ID). Add latin "
|
||||
"characters to it."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1724
|
||||
#: ../includes/class-ure-lib.php:1737
|
||||
#, php-format
|
||||
msgid "Role %s exists already"
|
||||
msgstr "El Rol %s ya existe"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1739
|
||||
#: ../includes/class-ure-lib.php:1752
|
||||
msgid "Error is encountered during new role create operation"
|
||||
msgstr "Un error fue encontrado durante la creación del nuevo Rol"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1741
|
||||
#: ../includes/class-ure-lib.php:1754
|
||||
#, php-format
|
||||
msgid "Role %s is created successfully"
|
||||
msgstr "El Rol %s fue creado exitosamente"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1810
|
||||
#: ../includes/class-ure-lib.php:1778
|
||||
msgid "Error: Role ID is empty!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1796
|
||||
msgid "Error: Empty role display name is not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1803
|
||||
#, fuzzy, php-format
|
||||
msgid "Role %s does not exists"
|
||||
msgstr "no existe"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1811
|
||||
#, fuzzy, php-format
|
||||
msgid "Role %s is renamed to %s successfully"
|
||||
msgstr "El Rol %s fue creado exitosamente"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
msgid "Error encountered during role delete operation"
|
||||
msgstr "Un error fue encontrado durante la eliminación del Rol"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1812
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
msgid "Unused roles are deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1814
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#, php-format
|
||||
msgid "Role %s is deleted successfully"
|
||||
msgstr "El Rol %s fue eliminado exitosamente"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1839
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
msgid "Error encountered during default role change operation"
|
||||
msgstr "Un error fue encontrado durante el cambio del Rol predeterminado"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1845
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#, php-format
|
||||
msgid "Default role for new users is set to %s successfully"
|
||||
msgstr "El Rol predeterminado para nuevos usuarios ha sido establecido a %s"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1864
|
||||
#: ../includes/class-ure-lib.php:1932
|
||||
msgid "Editor"
|
||||
msgstr "Editor"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1865
|
||||
#: ../includes/class-ure-lib.php:1933
|
||||
msgid "Author"
|
||||
msgstr "Autor"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1866
|
||||
#: ../includes/class-ure-lib.php:1934
|
||||
msgid "Contributor"
|
||||
msgstr "Contribuyente"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1867
|
||||
#: ../includes/class-ure-lib.php:1935
|
||||
msgid "Subscriber"
|
||||
msgstr "Suscriptor"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1869
|
||||
#: ../includes/class-ure-lib.php:1937
|
||||
msgid "Switch themes"
|
||||
msgstr "Cambiar temas (plantillas)"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1870
|
||||
#: ../includes/class-ure-lib.php:1938
|
||||
msgid "Edit themes"
|
||||
msgstr "Editar temas (plantillas)"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1871
|
||||
#: ../includes/class-ure-lib.php:1939
|
||||
msgid "Activate plugins"
|
||||
msgstr "Activar plugins"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1872
|
||||
#: ../includes/class-ure-lib.php:1940
|
||||
msgid "Edit plugins"
|
||||
msgstr "Editar plugins"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1873
|
||||
#: ../includes/class-ure-lib.php:1941
|
||||
msgid "Edit users"
|
||||
msgstr "Editar usuarios"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1874
|
||||
#: ../includes/class-ure-lib.php:1942
|
||||
msgid "Edit files"
|
||||
msgstr "Editar archivos"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1875
|
||||
#: ../includes/class-ure-lib.php:1943
|
||||
msgid "Manage options"
|
||||
msgstr "Administrar opciones"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1876
|
||||
#: ../includes/class-ure-lib.php:1944
|
||||
msgid "Moderate comments"
|
||||
msgstr "Moderar comentarios"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1877
|
||||
#: ../includes/class-ure-lib.php:1945
|
||||
msgid "Manage categories"
|
||||
msgstr "Administrar categorías"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
#: ../includes/class-ure-lib.php:1946
|
||||
msgid "Manage links"
|
||||
msgstr "Administrar enlaces"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1879
|
||||
#: ../includes/class-ure-lib.php:1947
|
||||
msgid "Upload files"
|
||||
msgstr "Subir archivos"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
#: ../includes/class-ure-lib.php:1948
|
||||
msgid "Import"
|
||||
msgstr "Importar"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1881
|
||||
#: ../includes/class-ure-lib.php:1949
|
||||
msgid "Unfiltered html"
|
||||
msgstr "HTML sin filtrar"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#: ../includes/class-ure-lib.php:1950
|
||||
msgid "Edit posts"
|
||||
msgstr "Editar entradas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1883
|
||||
#: ../includes/class-ure-lib.php:1951
|
||||
msgid "Edit others posts"
|
||||
msgstr "Editar entradas ajenas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1884
|
||||
#: ../includes/class-ure-lib.php:1952
|
||||
msgid "Edit published posts"
|
||||
msgstr "Editar entradas publicadas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1885
|
||||
#: ../includes/class-ure-lib.php:1953
|
||||
msgid "Publish posts"
|
||||
msgstr "Publicar entradas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1886
|
||||
#: ../includes/class-ure-lib.php:1954
|
||||
msgid "Edit pages"
|
||||
msgstr "Editar páginas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1887
|
||||
#: ../includes/class-ure-lib.php:1955
|
||||
msgid "Read"
|
||||
msgstr "Leer"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1888
|
||||
#: ../includes/class-ure-lib.php:1956
|
||||
msgid "Level 10"
|
||||
msgstr "Nivel 10"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1889
|
||||
#: ../includes/class-ure-lib.php:1957
|
||||
msgid "Level 9"
|
||||
msgstr "Nivel 9"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1890
|
||||
#: ../includes/class-ure-lib.php:1958
|
||||
msgid "Level 8"
|
||||
msgstr "Nivel 8"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1891
|
||||
#: ../includes/class-ure-lib.php:1959
|
||||
msgid "Level 7"
|
||||
msgstr "Nivel 7"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1892
|
||||
#: ../includes/class-ure-lib.php:1960
|
||||
msgid "Level 6"
|
||||
msgstr "Nivel 6"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1893
|
||||
#: ../includes/class-ure-lib.php:1961
|
||||
msgid "Level 5"
|
||||
msgstr "Nivel 5"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1894
|
||||
#: ../includes/class-ure-lib.php:1962
|
||||
msgid "Level 4"
|
||||
msgstr "Nivel 4"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1895
|
||||
#: ../includes/class-ure-lib.php:1963
|
||||
msgid "Level 3"
|
||||
msgstr "Nivel 3"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1896
|
||||
#: ../includes/class-ure-lib.php:1964
|
||||
msgid "Level 2"
|
||||
msgstr "Nivel 2"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1897
|
||||
#: ../includes/class-ure-lib.php:1965
|
||||
msgid "Level 1"
|
||||
msgstr "Nivel 1"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1898
|
||||
#: ../includes/class-ure-lib.php:1966
|
||||
msgid "Level 0"
|
||||
msgstr "Nivel 0"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1899
|
||||
#: ../includes/class-ure-lib.php:1967
|
||||
msgid "Edit others pages"
|
||||
msgstr "Editar páginas ajenas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1900
|
||||
#: ../includes/class-ure-lib.php:1968
|
||||
msgid "Edit published pages"
|
||||
msgstr "Editar páginas publicadas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1901
|
||||
#: ../includes/class-ure-lib.php:1969
|
||||
msgid "Publish pages"
|
||||
msgstr "Publicar páginas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1902
|
||||
#: ../includes/class-ure-lib.php:1970
|
||||
msgid "Delete pages"
|
||||
msgstr "Eliminar páginas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1903
|
||||
#: ../includes/class-ure-lib.php:1971
|
||||
msgid "Delete others pages"
|
||||
msgstr "Eliminar páginas ajenas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1904
|
||||
#: ../includes/class-ure-lib.php:1972
|
||||
msgid "Delete published pages"
|
||||
msgstr "Eliminar páginas publicadas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1905
|
||||
#: ../includes/class-ure-lib.php:1973
|
||||
msgid "Delete posts"
|
||||
msgstr "Eliminar entradas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1906
|
||||
#: ../includes/class-ure-lib.php:1974
|
||||
msgid "Delete others posts"
|
||||
msgstr "Eliminar entradas ajenas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
#: ../includes/class-ure-lib.php:1975
|
||||
msgid "Delete published posts"
|
||||
msgstr "Eliminar entradas publicadas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1908
|
||||
#: ../includes/class-ure-lib.php:1976
|
||||
msgid "Delete private posts"
|
||||
msgstr "Eliminar entradas privadas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1909
|
||||
#: ../includes/class-ure-lib.php:1977
|
||||
msgid "Edit private posts"
|
||||
msgstr "Editar entradas privadas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1910
|
||||
#: ../includes/class-ure-lib.php:1978
|
||||
msgid "Read private posts"
|
||||
msgstr "Leer entradas privadas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1911
|
||||
#: ../includes/class-ure-lib.php:1979
|
||||
msgid "Delete private pages"
|
||||
msgstr "Eliminar páginas privadas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1912
|
||||
#: ../includes/class-ure-lib.php:1980
|
||||
msgid "Edit private pages"
|
||||
msgstr "Editar páginas privadas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#: ../includes/class-ure-lib.php:1981
|
||||
msgid "Read private pages"
|
||||
msgstr "Leer páginas privadas"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1914
|
||||
#: ../includes/class-ure-lib.php:1982
|
||||
msgid "Delete users"
|
||||
msgstr "Eliminar usuarios"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1915
|
||||
#: ../includes/class-ure-lib.php:1983
|
||||
msgid "Create users"
|
||||
msgstr "Crear usuarios"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1916
|
||||
#: ../includes/class-ure-lib.php:1984
|
||||
msgid "Unfiltered upload"
|
||||
msgstr "Subir sin filtrado"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1917
|
||||
#: ../includes/class-ure-lib.php:1985
|
||||
msgid "Edit dashboard"
|
||||
msgstr "Editar escritorio"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1918
|
||||
#: ../includes/class-ure-lib.php:1986
|
||||
msgid "Update plugins"
|
||||
msgstr "Actualizar plugins"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1919
|
||||
#: ../includes/class-ure-lib.php:1987
|
||||
msgid "Delete plugins"
|
||||
msgstr "Eliminar plugins"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1920
|
||||
#: ../includes/class-ure-lib.php:1988
|
||||
msgid "Install plugins"
|
||||
msgstr "Instalar plugins"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1921
|
||||
#: ../includes/class-ure-lib.php:1989
|
||||
msgid "Update themes"
|
||||
msgstr "Actualizar temas (plantillas)"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1922
|
||||
#: ../includes/class-ure-lib.php:1990
|
||||
msgid "Install themes"
|
||||
msgstr "Instalar temas (plantillas)"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1923
|
||||
#: ../includes/class-ure-lib.php:1991
|
||||
msgid "Update core"
|
||||
msgstr "Actualizar núcleo"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1924
|
||||
#: ../includes/class-ure-lib.php:1992
|
||||
msgid "List users"
|
||||
msgstr "Listar usuarios"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1925
|
||||
#: ../includes/class-ure-lib.php:1993
|
||||
msgid "Remove users"
|
||||
msgstr "Eliminar usuarios"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1926
|
||||
#: ../includes/class-ure-lib.php:1994
|
||||
msgid "Add users"
|
||||
msgstr "Agregar usuarios"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1927
|
||||
#: ../includes/class-ure-lib.php:1995
|
||||
msgid "Promote users"
|
||||
msgstr "Promover usuarios"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1928
|
||||
#: ../includes/class-ure-lib.php:1996
|
||||
msgid "Edit theme options"
|
||||
msgstr "Editar opciones del tema (plantilla)"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1929
|
||||
#: ../includes/class-ure-lib.php:1997
|
||||
msgid "Delete themes"
|
||||
msgstr "Eliminar temas (plantillas)"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1930
|
||||
#: ../includes/class-ure-lib.php:1998
|
||||
msgid "Export"
|
||||
msgstr "Exportar"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2040
|
||||
#: ../includes/class-ure-lib.php:2108
|
||||
msgid "Error: Capability name must contain latin characters and digits only!"
|
||||
msgstr ""
|
||||
"Error: El nombre de la Capacidad sólo debe contener caracteres alfanuméricos!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2053
|
||||
#: ../includes/class-ure-lib.php:2121
|
||||
#, php-format
|
||||
msgid "Capability %s is added successfully"
|
||||
msgstr "La Capacidad %s fue agregada exitosamente"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2055
|
||||
#: ../includes/class-ure-lib.php:2123
|
||||
#, php-format
|
||||
msgid "Capability %s exists already"
|
||||
msgstr "La Capacidad %s ya existe"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2080
|
||||
#: ../includes/class-ure-lib.php:2148
|
||||
#, php-format
|
||||
msgid "Error! You do not have permission to delete this capability: %s!"
|
||||
msgstr ""
|
||||
"¡Error! No cuentas con suficientes permisos para eliminar esta Capacidad: %s!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2099
|
||||
#: ../includes/class-ure-lib.php:2167
|
||||
#, php-format
|
||||
msgid "Capability %s is removed successfully"
|
||||
msgstr "La Capacidad %s fue eliminada exitosamente"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2203
|
||||
#: ../includes/class-ure-lib.php:2271
|
||||
msgid "Version:"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2204
|
||||
#: ../includes/class-ure-lib.php:2272
|
||||
msgid "Author's website"
|
||||
msgstr "Sitio web del Autor"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2205
|
||||
#: ../includes/class-ure-lib.php:2273
|
||||
msgid "Plugin webpage"
|
||||
msgstr "Página web del Plugin"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2206
|
||||
#: ../includes/class-ure-lib.php:2274
|
||||
#, fuzzy
|
||||
msgid "Plugin download"
|
||||
msgstr "Página web del Plugin"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2208
|
||||
#: ../includes/class-ure-lib.php:2276
|
||||
msgid "FAQ"
|
||||
msgstr "FAQ"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2256
|
||||
#: ../includes/class-ure-lib.php:2324
|
||||
msgid "None"
|
||||
msgstr "Ninguno"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2283
|
||||
#: ../includes/class-ure-lib.php:2351
|
||||
msgid "Delete All Unused Roles"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2307
|
||||
#: ../includes/class-ure-lib.php:2375
|
||||
msgid "— No role for this site —"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: User Role Editor 2.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-11 11:20+0700\n"
|
||||
"POT-Creation-Date: 2014-09-08 21:33+0700\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Vladimir Garagulya <vladimir@shinephp.com>\n"
|
||||
"Language-Team: Morteza Gholami <Morteza.Gholami@Yahoo.Com>\n"
|
||||
@@ -86,139 +86,145 @@ msgstr ""
|
||||
msgid "Allow non super administrators to create, edit, and delete users"
|
||||
msgstr "اجازه به غیر مدیران اصلی برای ایجاد، ویرایش و حذف کاربران"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:185
|
||||
#: ../includes/class-user-role-editor.php:195
|
||||
msgid "Change role for users without role"
|
||||
msgstr "تغییر نقش برای کاربران بدون نقش"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:186
|
||||
#: ../includes/class-user-role-editor.php:196
|
||||
msgid "No rights"
|
||||
msgstr "هیچ حقوقی"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:187
|
||||
#: ../includes/class-user-role-editor.php:197
|
||||
msgid "Provide new role"
|
||||
msgstr "ارائهی نقش جدید"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:271
|
||||
#: ../includes/class-user-role-editor.php:273
|
||||
#: ../includes/class-user-role-editor.php:281
|
||||
#: ../includes/class-user-role-editor.php:283
|
||||
msgid "You do not have permission to edit this user."
|
||||
msgstr "شما اجازهی ویرایش این کاربر را ندارید."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:414
|
||||
#: ../includes/class-user-role-editor.php:424
|
||||
msgid "Capabilities"
|
||||
msgstr "قابلیتها"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:507
|
||||
#: ../includes/class-user-role-editor.php:517
|
||||
msgid "Settings"
|
||||
msgstr "تنظیمات"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:520
|
||||
#: ../includes/class-ure-lib.php:2207
|
||||
#: ../includes/class-user-role-editor.php:530
|
||||
#: ../includes/class-ure-lib.php:2275
|
||||
msgid "Changelog"
|
||||
msgstr "گزارش تغییرات"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:542
|
||||
#: ../includes/class-user-role-editor.php:552
|
||||
msgid "Overview"
|
||||
msgstr "مرور کلی"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:551
|
||||
#: ../includes/class-user-role-editor.php:579
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
#: ../includes/class-ure-lib.php:225
|
||||
#: ../includes/class-user-role-editor.php:561
|
||||
#: ../includes/class-user-role-editor.php:589
|
||||
#: ../includes/class-user-role-editor.php:930
|
||||
#: ../includes/class-ure-lib.php:232
|
||||
msgid "User Role Editor"
|
||||
msgstr "ویرایشگر نقش کاربر"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:636
|
||||
#: ../includes/class-user-role-editor.php:654
|
||||
#: ../includes/class-user-role-editor.php:698
|
||||
#: ../includes/class-user-role-editor.php:646
|
||||
#: ../includes/class-user-role-editor.php:664
|
||||
#: ../includes/class-user-role-editor.php:708
|
||||
msgid "User Role Editor options are updated"
|
||||
msgstr "تنظیمات ویرایشگر نقش کاربر بروز شد"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:682
|
||||
#: ../includes/class-user-role-editor.php:692
|
||||
msgid "Default Roles are updated"
|
||||
msgstr "نقشهای پیش فرض بروز شدند"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:706
|
||||
#: ../includes/class-user-role-editor.php:716
|
||||
msgid ""
|
||||
"You do not have sufficient permissions to manage options for User Role "
|
||||
"Editor."
|
||||
msgstr "شما مجوز کافی برای مدیریت تنظیمات ویرایشگر نقش کاربر را ندارید."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:781
|
||||
#: ../includes/class-user-role-editor.php:791
|
||||
msgid "Insufficient permissions to work with User Role Editor"
|
||||
msgstr "مجوز ناکافی برای کار با ویرایشگر نقش کاربر"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:835
|
||||
#: ../includes/class-user-role-editor.php:872
|
||||
msgid "Select All"
|
||||
msgstr "انتخاب همه"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:836
|
||||
#: ../includes/class-user-role-editor.php:873
|
||||
msgid "Unselect All"
|
||||
msgstr "عدمانتخاب همه"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:837
|
||||
#: ../includes/class-user-role-editor.php:874
|
||||
msgid "Reverse"
|
||||
msgstr "وارونه"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:838
|
||||
#: ../includes/class-user-role-editor.php:875
|
||||
msgid "Update"
|
||||
msgstr "بروزرسانی"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:839
|
||||
#: ../includes/class-user-role-editor.php:876
|
||||
msgid "Please confirm permissions update"
|
||||
msgstr "لطفا مجوز بروزرسانی را تایید کنید"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:840
|
||||
#: ../includes/class-user-role-editor.php:877
|
||||
msgid "Add New Role"
|
||||
msgstr "افزودن نقش جدید"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:841
|
||||
#: ../includes/class-user-role-editor.php:878
|
||||
#: ../includes/class-user-role-editor.php:883
|
||||
#, fuzzy
|
||||
msgid "Rename Role"
|
||||
msgstr "حذف نقش"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:879
|
||||
msgid " Role name (ID) can not be empty!"
|
||||
msgstr " نام نقش (شناسه) نمی تواند خالی باشد!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:842
|
||||
#: ../includes/class-user-role-editor.php:880
|
||||
msgid ""
|
||||
" Role name (ID) must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
msgstr ""
|
||||
" نام نقش (شناسه) باید فقط شامل حروف لاتین، اعداد، خط فاصله یا زیرخط باشد!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:843
|
||||
#: ../includes/class-user-role-editor.php:881
|
||||
msgid ""
|
||||
" WordPress does not support numeric Role name (ID). Add latin characters to "
|
||||
"it."
|
||||
msgstr ""
|
||||
" وردپرس از نام نقش (شناسه) عددی پشتیبانی نمیکند. حروف لاتین به آن اضافه کنید."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:844
|
||||
#: ../includes/class-user-role-editor.php:882
|
||||
msgid "Add Role"
|
||||
msgstr "افزودن نقش"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:845
|
||||
#: ../includes/class-user-role-editor.php:884
|
||||
msgid "Delete Role"
|
||||
msgstr "حذف نقش"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:846
|
||||
#: ../includes/class-user-role-editor.php:885
|
||||
msgid "Cancel"
|
||||
msgstr "لغو"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:847
|
||||
#: ../includes/class-user-role-editor.php:886
|
||||
msgid "Add Capability"
|
||||
msgstr "افزودن قابلیت"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:848
|
||||
#: ../includes/class-user-role-editor.php:857
|
||||
#: ../includes/class-user-role-editor.php:887
|
||||
#: ../includes/class-user-role-editor.php:896
|
||||
msgid "Delete Capability"
|
||||
msgstr "حذف قابلیت"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:849
|
||||
#: ../includes/class-user-role-editor.php:888
|
||||
msgid "Reset"
|
||||
msgstr "بازنشانی"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:850
|
||||
#: ../includes/class-user-role-editor.php:889
|
||||
msgid "DANGER! Resetting will restore default settings from WordPress Core."
|
||||
msgstr "خطر! بازنشانی، تنظیمات پیشفرض را از هستهی وردپرس بازمیگرداند."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:851
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
msgid ""
|
||||
"If any plugins have changed capabilities in any way upon installation (such "
|
||||
"as S2Member, WooCommerce, and many more), those capabilities will be DELETED!"
|
||||
@@ -226,7 +232,7 @@ msgstr ""
|
||||
"اگر هریک از افزونهها پس از نصب به هر نحو قابلیتها را تغییر دهند (مانند "
|
||||
"S2Member ، WooCommerce و بسیاری دیگر) آن قابلیتها حذف خواهند شد!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:852
|
||||
#: ../includes/class-user-role-editor.php:891
|
||||
msgid ""
|
||||
"For more information on how to undo changes and restore plugin capabilities "
|
||||
"go to"
|
||||
@@ -234,19 +240,19 @@ msgstr ""
|
||||
"برای کسب اطلاعات بیشتر درباره چگونگی خنثیسازی تغییرات و ترمیمکردن قابلیت ها "
|
||||
"مراجعه کنید به"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:854
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
msgid "Continue?"
|
||||
msgstr "ادامه؟"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:855
|
||||
#: ../includes/class-user-role-editor.php:894
|
||||
msgid "Default Role"
|
||||
msgstr "نقش پیشفرض"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:856
|
||||
#: ../includes/class-user-role-editor.php:895
|
||||
msgid "Set New Default Role"
|
||||
msgstr "نشاندن نقش پیشفرض جدید"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:858
|
||||
#: ../includes/class-user-role-editor.php:897
|
||||
msgid ""
|
||||
"Warning! Be careful - removing critical capability could crash some plugin "
|
||||
"or other custom code"
|
||||
@@ -254,23 +260,23 @@ msgstr ""
|
||||
"اخطار! مراقب باشید - حذف قابلیت مهم میتواند برخی از افزونهها یا دیگر کدهای "
|
||||
"سفارشی را دچار سانحه کند"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:859
|
||||
#: ../includes/class-user-role-editor.php:898
|
||||
msgid " Capability name (ID) can not be empty!"
|
||||
msgstr " نام قابلیت (شناسه) نمی تواند خالی باشد!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:860
|
||||
#: ../includes/class-user-role-editor.php:899
|
||||
msgid ""
|
||||
" Capability name (ID) must contain latin characters, digits, hyphens or "
|
||||
"underscore only!"
|
||||
msgstr ""
|
||||
" نام قابلیت (شناسه) باید فقط شامل حروف لاتین، اعداد، خط فاصله یا زیرخط باشد!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
#: ../includes/class-user-role-editor.php:922
|
||||
#: ../includes/class-user-role-editor.php:933
|
||||
#: ../includes/class-user-role-editor.php:962
|
||||
msgid "Other Roles"
|
||||
msgstr "دیگر نقشها"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:904
|
||||
#: ../includes/class-user-role-editor.php:944
|
||||
msgid "Edit"
|
||||
msgstr "ویرایش"
|
||||
|
||||
@@ -302,86 +308,86 @@ msgstr "فیلتر سریع:"
|
||||
msgid "Custom capabilities:"
|
||||
msgstr "قابلیتهای سفارشی:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:143
|
||||
#: ../includes/class-ure-lib.php:140
|
||||
msgid "Error: wrong request"
|
||||
msgstr "خطا: درخواست اشتباه"
|
||||
|
||||
#: ../includes/class-ure-lib.php:175
|
||||
#: ../includes/class-ure-lib.php:173 ../includes/class-ure-lib.php:184
|
||||
msgid "Role name (ID): "
|
||||
msgstr "نام نقش (شناسه): "
|
||||
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
#: ../includes/class-ure-lib.php:175 ../includes/class-ure-lib.php:186
|
||||
msgid "Display Role Name: "
|
||||
msgstr "نمایش نام نقش: "
|
||||
|
||||
#: ../includes/class-ure-lib.php:179
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
msgid "Make copy of: "
|
||||
msgstr "ایجاد رونوشت از: "
|
||||
|
||||
#: ../includes/class-ure-lib.php:186
|
||||
#: ../includes/class-ure-lib.php:193
|
||||
msgid "Select Role:"
|
||||
msgstr "انتخاب نقش:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:201
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
msgid "Delete:"
|
||||
msgstr "حذف:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
#: ../includes/class-ure-lib.php:215
|
||||
msgid "Capability name (ID): "
|
||||
msgstr "نام قابلیت (شناسه): "
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Error: "
|
||||
msgstr "خطا: "
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Role"
|
||||
msgstr "نقش"
|
||||
|
||||
#: ../includes/class-ure-lib.php:323
|
||||
#: ../includes/class-ure-lib.php:330
|
||||
msgid "does not exist"
|
||||
msgstr "موجود نمیباشد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:366
|
||||
#: ../includes/class-ure-lib.php:373
|
||||
msgid "Role is updated successfully"
|
||||
msgstr "نقش با موفقیت بروز شد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:368
|
||||
#: ../includes/class-ure-lib.php:375
|
||||
msgid "Roles are updated for all network"
|
||||
msgstr "نقشها برای تمامی شبکه بروز شد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:374
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
msgid "Error occured during role(s) update"
|
||||
msgstr "خطایی در هنگام بروزسانی نقش(ها) رخ داد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
#: ../includes/class-ure-lib.php:388
|
||||
msgid "User capabilities are updated successfully"
|
||||
msgstr "قابلیتهای کاربر با موفقیت بروز شدند"
|
||||
|
||||
#: ../includes/class-ure-lib.php:386
|
||||
#: ../includes/class-ure-lib.php:393
|
||||
msgid "Error occured during user update"
|
||||
msgstr "خطایی در هنگام بروزرسانی کاربر رخ داد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:441
|
||||
#: ../includes/class-ure-lib.php:451
|
||||
msgid "User Roles are restored to WordPress default values. "
|
||||
msgstr "نقشهای کاربر به مقدار پیشفرض وردپرس ترمیم شد."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1312
|
||||
#: ../includes/class-ure-lib.php:1317
|
||||
msgid "Help"
|
||||
msgstr "راهنما"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1662
|
||||
#: ../includes/class-ure-lib.php:1675
|
||||
msgid "Error is occur. Please check the log file."
|
||||
msgstr "خطایی رخ داده است. لطفا فایل گزارش را چک کنید."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1705
|
||||
#: ../includes/class-ure-lib.php:1718 ../includes/class-ure-lib.php:1785
|
||||
msgid ""
|
||||
"Error: Role ID must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
msgstr ""
|
||||
"خطا: شناسهی نقش باید فقط شامل حروف لاتین، اعداد، خط فاصله یا زیرخط باشد!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1709
|
||||
#: ../includes/class-ure-lib.php:1722 ../includes/class-ure-lib.php:1789
|
||||
msgid ""
|
||||
"Error: WordPress does not support numeric Role name (ID). Add latin "
|
||||
"characters to it."
|
||||
@@ -389,359 +395,377 @@ msgstr ""
|
||||
"خطا: وردپرس از نام نقش (شناسه) عددی پشتیبانی نمیکند. حروف لاتین به آن اضافه "
|
||||
"کنید."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1724
|
||||
#: ../includes/class-ure-lib.php:1737
|
||||
#, php-format
|
||||
msgid "Role %s exists already"
|
||||
msgstr "نقش %s از پیش موجود است"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1739
|
||||
#: ../includes/class-ure-lib.php:1752
|
||||
msgid "Error is encountered during new role create operation"
|
||||
msgstr "با خطایی در هنگام عملیات ساخت نقش جدید روبرو شدیم"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1741
|
||||
#: ../includes/class-ure-lib.php:1754
|
||||
#, php-format
|
||||
msgid "Role %s is created successfully"
|
||||
msgstr "نقش %s با موفقیت ایجاد شد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1810
|
||||
#: ../includes/class-ure-lib.php:1778
|
||||
msgid "Error: Role ID is empty!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1796
|
||||
msgid "Error: Empty role display name is not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1803
|
||||
#, fuzzy, php-format
|
||||
msgid "Role %s does not exists"
|
||||
msgstr "موجود نمیباشد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1811
|
||||
#, fuzzy, php-format
|
||||
msgid "Role %s is renamed to %s successfully"
|
||||
msgstr "نقش %s با موفقیت ایجاد شد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
msgid "Error encountered during role delete operation"
|
||||
msgstr "با خطایی در هنگام عملیات حذف نقش روبرو شدیم"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1812
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
msgid "Unused roles are deleted successfully"
|
||||
msgstr "نقشهای استفاده نشده با موفقیت حذف شدند"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1814
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#, php-format
|
||||
msgid "Role %s is deleted successfully"
|
||||
msgstr "نقش %s با موفقیت حذف شد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1839
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
msgid "Error encountered during default role change operation"
|
||||
msgstr "با خطایی در هنگام عملیات تغییر نقش پیشفرض روبرو شدیم"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1845
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#, php-format
|
||||
msgid "Default role for new users is set to %s successfully"
|
||||
msgstr "نقش پیشفرض برای کاربران جدید با موفقیت روی %s نشانده شد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1864
|
||||
#: ../includes/class-ure-lib.php:1932
|
||||
msgid "Editor"
|
||||
msgstr "ویرایشگر"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1865
|
||||
#: ../includes/class-ure-lib.php:1933
|
||||
msgid "Author"
|
||||
msgstr "نویسنده"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1866
|
||||
#: ../includes/class-ure-lib.php:1934
|
||||
msgid "Contributor"
|
||||
msgstr "مشارکتکننده"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1867
|
||||
#: ../includes/class-ure-lib.php:1935
|
||||
msgid "Subscriber"
|
||||
msgstr "مشترک"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1869
|
||||
#: ../includes/class-ure-lib.php:1937
|
||||
msgid "Switch themes"
|
||||
msgstr "تغییر پوستهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1870
|
||||
#: ../includes/class-ure-lib.php:1938
|
||||
msgid "Edit themes"
|
||||
msgstr "ویرایش پوستهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1871
|
||||
#: ../includes/class-ure-lib.php:1939
|
||||
msgid "Activate plugins"
|
||||
msgstr "فعالسازی افزونهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1872
|
||||
#: ../includes/class-ure-lib.php:1940
|
||||
msgid "Edit plugins"
|
||||
msgstr "ویرایش افزونهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1873
|
||||
#: ../includes/class-ure-lib.php:1941
|
||||
msgid "Edit users"
|
||||
msgstr "ویرایش کاربران"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1874
|
||||
#: ../includes/class-ure-lib.php:1942
|
||||
msgid "Edit files"
|
||||
msgstr "ویرایش فایلها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1875
|
||||
#: ../includes/class-ure-lib.php:1943
|
||||
msgid "Manage options"
|
||||
msgstr "مدیریت تنظیمات"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1876
|
||||
#: ../includes/class-ure-lib.php:1944
|
||||
msgid "Moderate comments"
|
||||
msgstr "مدیریت دیدگاهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1877
|
||||
#: ../includes/class-ure-lib.php:1945
|
||||
msgid "Manage categories"
|
||||
msgstr "مدیریت دستهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
#: ../includes/class-ure-lib.php:1946
|
||||
msgid "Manage links"
|
||||
msgstr "مدیریت پیوندها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1879
|
||||
#: ../includes/class-ure-lib.php:1947
|
||||
msgid "Upload files"
|
||||
msgstr "بارگذاری فایلها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
#: ../includes/class-ure-lib.php:1948
|
||||
msgid "Import"
|
||||
msgstr "درونریزی"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1881
|
||||
#: ../includes/class-ure-lib.php:1949
|
||||
msgid "Unfiltered html"
|
||||
msgstr "اچتیامال فیلترنشده"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#: ../includes/class-ure-lib.php:1950
|
||||
msgid "Edit posts"
|
||||
msgstr "ویرایش نوشتهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1883
|
||||
#: ../includes/class-ure-lib.php:1951
|
||||
msgid "Edit others posts"
|
||||
msgstr "ویرایش نوشتهی دیگران"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1884
|
||||
#: ../includes/class-ure-lib.php:1952
|
||||
msgid "Edit published posts"
|
||||
msgstr "ویرایش نوشتههای منتشرشده"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1885
|
||||
#: ../includes/class-ure-lib.php:1953
|
||||
msgid "Publish posts"
|
||||
msgstr "انتشار نوشتهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1886
|
||||
#: ../includes/class-ure-lib.php:1954
|
||||
msgid "Edit pages"
|
||||
msgstr "ویرایش صفحات"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1887
|
||||
#: ../includes/class-ure-lib.php:1955
|
||||
msgid "Read"
|
||||
msgstr "خواندن"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1888
|
||||
#: ../includes/class-ure-lib.php:1956
|
||||
msgid "Level 10"
|
||||
msgstr "سطح ۱۰"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1889
|
||||
#: ../includes/class-ure-lib.php:1957
|
||||
msgid "Level 9"
|
||||
msgstr "سطح ۹"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1890
|
||||
#: ../includes/class-ure-lib.php:1958
|
||||
msgid "Level 8"
|
||||
msgstr "سطح ۸"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1891
|
||||
#: ../includes/class-ure-lib.php:1959
|
||||
msgid "Level 7"
|
||||
msgstr "سطح ۷"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1892
|
||||
#: ../includes/class-ure-lib.php:1960
|
||||
msgid "Level 6"
|
||||
msgstr "سطح ۶"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1893
|
||||
#: ../includes/class-ure-lib.php:1961
|
||||
msgid "Level 5"
|
||||
msgstr "سطح ۵"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1894
|
||||
#: ../includes/class-ure-lib.php:1962
|
||||
msgid "Level 4"
|
||||
msgstr "سطح ۴"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1895
|
||||
#: ../includes/class-ure-lib.php:1963
|
||||
msgid "Level 3"
|
||||
msgstr "سطح ۳"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1896
|
||||
#: ../includes/class-ure-lib.php:1964
|
||||
msgid "Level 2"
|
||||
msgstr "سطح ۲"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1897
|
||||
#: ../includes/class-ure-lib.php:1965
|
||||
msgid "Level 1"
|
||||
msgstr "سطح ۱"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1898
|
||||
#: ../includes/class-ure-lib.php:1966
|
||||
msgid "Level 0"
|
||||
msgstr "سطح ۰"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1899
|
||||
#: ../includes/class-ure-lib.php:1967
|
||||
msgid "Edit others pages"
|
||||
msgstr "ویرایش صفحات دیگران"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1900
|
||||
#: ../includes/class-ure-lib.php:1968
|
||||
msgid "Edit published pages"
|
||||
msgstr "ویرایش صفحات منتشرشده"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1901
|
||||
#: ../includes/class-ure-lib.php:1969
|
||||
msgid "Publish pages"
|
||||
msgstr "انتشار صفحات"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1902
|
||||
#: ../includes/class-ure-lib.php:1970
|
||||
msgid "Delete pages"
|
||||
msgstr "حذف صفحات"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1903
|
||||
#: ../includes/class-ure-lib.php:1971
|
||||
msgid "Delete others pages"
|
||||
msgstr "حذف صفحات دیگران"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1904
|
||||
#: ../includes/class-ure-lib.php:1972
|
||||
msgid "Delete published pages"
|
||||
msgstr "حذف صفحات منتشرشده"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1905
|
||||
#: ../includes/class-ure-lib.php:1973
|
||||
msgid "Delete posts"
|
||||
msgstr "حذف صفحات"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1906
|
||||
#: ../includes/class-ure-lib.php:1974
|
||||
msgid "Delete others posts"
|
||||
msgstr "حذف نوشتههای دیگران"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
#: ../includes/class-ure-lib.php:1975
|
||||
msgid "Delete published posts"
|
||||
msgstr "حذف نوشتههای منتشرشده"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1908
|
||||
#: ../includes/class-ure-lib.php:1976
|
||||
msgid "Delete private posts"
|
||||
msgstr "حذف نوشتههای خصوصی"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1909
|
||||
#: ../includes/class-ure-lib.php:1977
|
||||
msgid "Edit private posts"
|
||||
msgstr "ویرایش نوشتههای خصوصی"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1910
|
||||
#: ../includes/class-ure-lib.php:1978
|
||||
msgid "Read private posts"
|
||||
msgstr "خواندن نوشتههای خصوصی"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1911
|
||||
#: ../includes/class-ure-lib.php:1979
|
||||
msgid "Delete private pages"
|
||||
msgstr "حذف صفحات خصوصی"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1912
|
||||
#: ../includes/class-ure-lib.php:1980
|
||||
msgid "Edit private pages"
|
||||
msgstr "ویرایش صفحات خصوصی"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#: ../includes/class-ure-lib.php:1981
|
||||
msgid "Read private pages"
|
||||
msgstr "خواندن صفحات خصوصی"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1914
|
||||
#: ../includes/class-ure-lib.php:1982
|
||||
msgid "Delete users"
|
||||
msgstr "حذف کاربران"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1915
|
||||
#: ../includes/class-ure-lib.php:1983
|
||||
msgid "Create users"
|
||||
msgstr "ایجاد کاربران"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1916
|
||||
#: ../includes/class-ure-lib.php:1984
|
||||
msgid "Unfiltered upload"
|
||||
msgstr "بارگذاری فیلترشده"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1917
|
||||
#: ../includes/class-ure-lib.php:1985
|
||||
msgid "Edit dashboard"
|
||||
msgstr "ویرایش پیشخوان"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1918
|
||||
#: ../includes/class-ure-lib.php:1986
|
||||
msgid "Update plugins"
|
||||
msgstr "بروزرسانی افزونهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1919
|
||||
#: ../includes/class-ure-lib.php:1987
|
||||
msgid "Delete plugins"
|
||||
msgstr "حذف افزونهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1920
|
||||
#: ../includes/class-ure-lib.php:1988
|
||||
msgid "Install plugins"
|
||||
msgstr "نصب افزونهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1921
|
||||
#: ../includes/class-ure-lib.php:1989
|
||||
msgid "Update themes"
|
||||
msgstr "بروزرسانی پوستهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1922
|
||||
#: ../includes/class-ure-lib.php:1990
|
||||
msgid "Install themes"
|
||||
msgstr "نصب پوستهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1923
|
||||
#: ../includes/class-ure-lib.php:1991
|
||||
msgid "Update core"
|
||||
msgstr "بروزرسانی هسته"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1924
|
||||
#: ../includes/class-ure-lib.php:1992
|
||||
msgid "List users"
|
||||
msgstr "فهرست کاربران"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1925
|
||||
#: ../includes/class-ure-lib.php:1993
|
||||
msgid "Remove users"
|
||||
msgstr "حذف کابران"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1926
|
||||
#: ../includes/class-ure-lib.php:1994
|
||||
msgid "Add users"
|
||||
msgstr "افزودن کاربران"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1927
|
||||
#: ../includes/class-ure-lib.php:1995
|
||||
msgid "Promote users"
|
||||
msgstr "ارتقاء کاربران"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1928
|
||||
#: ../includes/class-ure-lib.php:1996
|
||||
msgid "Edit theme options"
|
||||
msgstr "ویرایش تنظیمات پوسته"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1929
|
||||
#: ../includes/class-ure-lib.php:1997
|
||||
msgid "Delete themes"
|
||||
msgstr "حذف پوستهها"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1930
|
||||
#: ../includes/class-ure-lib.php:1998
|
||||
msgid "Export"
|
||||
msgstr "برونریزی"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2040
|
||||
#: ../includes/class-ure-lib.php:2108
|
||||
msgid "Error: Capability name must contain latin characters and digits only!"
|
||||
msgstr "خطا: نام قابلیت باید فقط شامل حروف لاتین و اعداد باشد!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2053
|
||||
#: ../includes/class-ure-lib.php:2121
|
||||
#, php-format
|
||||
msgid "Capability %s is added successfully"
|
||||
msgstr "قابلیت %s با موفقیت افزوده شد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2055
|
||||
#: ../includes/class-ure-lib.php:2123
|
||||
#, php-format
|
||||
msgid "Capability %s exists already"
|
||||
msgstr "قابلیت %s از پیش موجود است"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2080
|
||||
#: ../includes/class-ure-lib.php:2148
|
||||
#, php-format
|
||||
msgid "Error! You do not have permission to delete this capability: %s!"
|
||||
msgstr "خطا! شما اجازهی حذف این قابلیت را ندارید: %s!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2099
|
||||
#: ../includes/class-ure-lib.php:2167
|
||||
#, php-format
|
||||
msgid "Capability %s is removed successfully"
|
||||
msgstr "قابلیت %s با موفقیت حذف شد"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2203
|
||||
#: ../includes/class-ure-lib.php:2271
|
||||
msgid "Version:"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2204
|
||||
#: ../includes/class-ure-lib.php:2272
|
||||
msgid "Author's website"
|
||||
msgstr "وبگاه نویسنده"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2205
|
||||
#: ../includes/class-ure-lib.php:2273
|
||||
msgid "Plugin webpage"
|
||||
msgstr "صفحه افزونه"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2206
|
||||
#: ../includes/class-ure-lib.php:2274
|
||||
msgid "Plugin download"
|
||||
msgstr "بارگیری افزونه"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2208
|
||||
#: ../includes/class-ure-lib.php:2276
|
||||
msgid "FAQ"
|
||||
msgstr "سوالات مکرر"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2256
|
||||
#: ../includes/class-ure-lib.php:2324
|
||||
msgid "None"
|
||||
msgstr "هیچکدام"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2283
|
||||
#: ../includes/class-ure-lib.php:2351
|
||||
msgid "Delete All Unused Roles"
|
||||
msgstr "حذف همهی نقشهای استفادهنشده"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2307
|
||||
#: ../includes/class-ure-lib.php:2375
|
||||
msgid "— No role for this site —"
|
||||
msgstr "— هیچ نقشی برای این سایت —"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: User Role Editor 2.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-11 11:20+0700\n"
|
||||
"POT-Creation-Date: 2014-09-08 21:33+0700\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Vladimir Garagulya <vladimir@shinephp.com>\n"
|
||||
"Language-Team: http://al-badar.net <nasrulhaq81@gmail.com>\n"
|
||||
@@ -86,59 +86,59 @@ msgstr ""
|
||||
msgid "Allow non super administrators to create, edit, and delete users"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:185
|
||||
#: ../includes/class-user-role-editor.php:195
|
||||
msgid "Change role for users without role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:186
|
||||
#: ../includes/class-user-role-editor.php:196
|
||||
msgid "No rights"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:187
|
||||
#: ../includes/class-user-role-editor.php:197
|
||||
msgid "Provide new role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:271
|
||||
#: ../includes/class-user-role-editor.php:273
|
||||
#: ../includes/class-user-role-editor.php:281
|
||||
#: ../includes/class-user-role-editor.php:283
|
||||
msgid "You do not have permission to edit this user."
|
||||
msgstr "Anda tidak diizinkan untuk menyunting user ini. "
|
||||
|
||||
#: ../includes/class-user-role-editor.php:414
|
||||
#: ../includes/class-user-role-editor.php:424
|
||||
msgid "Capabilities"
|
||||
msgstr "Kemampuan"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:507
|
||||
#: ../includes/class-user-role-editor.php:517
|
||||
msgid "Settings"
|
||||
msgstr "Pengaturan"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:520
|
||||
#: ../includes/class-ure-lib.php:2207
|
||||
#: ../includes/class-user-role-editor.php:530
|
||||
#: ../includes/class-ure-lib.php:2275
|
||||
msgid "Changelog"
|
||||
msgstr "log Perubahan"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:542
|
||||
#: ../includes/class-user-role-editor.php:552
|
||||
msgid "Overview"
|
||||
msgstr "Ikhtisar"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:551
|
||||
#: ../includes/class-user-role-editor.php:579
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
#: ../includes/class-ure-lib.php:225
|
||||
#: ../includes/class-user-role-editor.php:561
|
||||
#: ../includes/class-user-role-editor.php:589
|
||||
#: ../includes/class-user-role-editor.php:930
|
||||
#: ../includes/class-ure-lib.php:232
|
||||
msgid "User Role Editor"
|
||||
msgstr "User Role Editor"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:636
|
||||
#: ../includes/class-user-role-editor.php:654
|
||||
#: ../includes/class-user-role-editor.php:698
|
||||
#: ../includes/class-user-role-editor.php:646
|
||||
#: ../includes/class-user-role-editor.php:664
|
||||
#: ../includes/class-user-role-editor.php:708
|
||||
msgid "User Role Editor options are updated"
|
||||
msgstr "Pilihan User Role Editor diperbarui"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:682
|
||||
#: ../includes/class-user-role-editor.php:692
|
||||
#, fuzzy
|
||||
msgid "Default Roles are updated"
|
||||
msgstr "Peran "
|
||||
|
||||
#: ../includes/class-user-role-editor.php:706
|
||||
#: ../includes/class-user-role-editor.php:716
|
||||
msgid ""
|
||||
"You do not have sufficient permissions to manage options for User Role "
|
||||
"Editor."
|
||||
@@ -146,39 +146,45 @@ msgstr ""
|
||||
"Anda tidak memiliki izin yang memadai untuk mengelola pilihan User Role "
|
||||
"Editor."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:781
|
||||
#: ../includes/class-user-role-editor.php:791
|
||||
msgid "Insufficient permissions to work with User Role Editor"
|
||||
msgstr "Izin yang tidak sesuai untuk bekerja dengan User Role Editor"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:835
|
||||
#: ../includes/class-user-role-editor.php:872
|
||||
msgid "Select All"
|
||||
msgstr "Pilih Semua"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:836
|
||||
#: ../includes/class-user-role-editor.php:873
|
||||
msgid "Unselect All"
|
||||
msgstr "Batalkan Semua"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:837
|
||||
#: ../includes/class-user-role-editor.php:874
|
||||
msgid "Reverse"
|
||||
msgstr "Memutar"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:838
|
||||
#: ../includes/class-user-role-editor.php:875
|
||||
msgid "Update"
|
||||
msgstr "Pembaruan"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:839
|
||||
#: ../includes/class-user-role-editor.php:876
|
||||
msgid "Please confirm permissions update"
|
||||
msgstr "Harap konfirmasi pembaruan izin"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:840
|
||||
#: ../includes/class-user-role-editor.php:877
|
||||
msgid "Add New Role"
|
||||
msgstr "Tambah Peran Baru"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:841
|
||||
#: ../includes/class-user-role-editor.php:878
|
||||
#: ../includes/class-user-role-editor.php:883
|
||||
#, fuzzy
|
||||
msgid "Rename Role"
|
||||
msgstr "Hapus Peran"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:879
|
||||
msgid " Role name (ID) can not be empty!"
|
||||
msgstr "Nama peran (ID) tidak boleh kosong!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:842
|
||||
#: ../includes/class-user-role-editor.php:880
|
||||
msgid ""
|
||||
" Role name (ID) must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
@@ -186,43 +192,43 @@ msgstr ""
|
||||
"Nama peran (ID) harus berisi karakter latin, angka, tanda hubung atau garis "
|
||||
"bawah saja!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:843
|
||||
#: ../includes/class-user-role-editor.php:881
|
||||
msgid ""
|
||||
" WordPress does not support numeric Role name (ID). Add latin characters to "
|
||||
"it."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:844
|
||||
#: ../includes/class-user-role-editor.php:882
|
||||
msgid "Add Role"
|
||||
msgstr "Tambah Peran"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:845
|
||||
#: ../includes/class-user-role-editor.php:884
|
||||
msgid "Delete Role"
|
||||
msgstr "Hapus Peran"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:846
|
||||
#: ../includes/class-user-role-editor.php:885
|
||||
msgid "Cancel"
|
||||
msgstr "Batalkan"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:847
|
||||
#: ../includes/class-user-role-editor.php:886
|
||||
msgid "Add Capability"
|
||||
msgstr "Tambah Kemampuan"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:848
|
||||
#: ../includes/class-user-role-editor.php:857
|
||||
#: ../includes/class-user-role-editor.php:887
|
||||
#: ../includes/class-user-role-editor.php:896
|
||||
msgid "Delete Capability"
|
||||
msgstr "Hapus Kemampuan"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:849
|
||||
#: ../includes/class-user-role-editor.php:888
|
||||
msgid "Reset"
|
||||
msgstr "Atur Ulang"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:850
|
||||
#: ../includes/class-user-role-editor.php:889
|
||||
msgid "DANGER! Resetting will restore default settings from WordPress Core."
|
||||
msgstr ""
|
||||
"BAHAYA! Reset akan mengembalikan pengaturan default dari WordPress Inti."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:851
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
msgid ""
|
||||
"If any plugins have changed capabilities in any way upon installation (such "
|
||||
"as S2Member, WooCommerce, and many more), those capabilities will be DELETED!"
|
||||
@@ -231,7 +237,7 @@ msgstr ""
|
||||
"(seperti S2Member, WooCommerce, dan banyak lagi), kemampuan mereka akan "
|
||||
"DIHAPUS!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:852
|
||||
#: ../includes/class-user-role-editor.php:891
|
||||
msgid ""
|
||||
"For more information on how to undo changes and restore plugin capabilities "
|
||||
"go to"
|
||||
@@ -239,19 +245,19 @@ msgstr ""
|
||||
"Untuk informasi lebih lanjut tentang cara membatalkan perubahan dan "
|
||||
"mengembalikan kemampuan Plugin pergi ke"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:854
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
msgid "Continue?"
|
||||
msgstr "Lanjut?"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:855
|
||||
#: ../includes/class-user-role-editor.php:894
|
||||
msgid "Default Role"
|
||||
msgstr "Peran "
|
||||
|
||||
#: ../includes/class-user-role-editor.php:856
|
||||
#: ../includes/class-user-role-editor.php:895
|
||||
msgid "Set New Default Role"
|
||||
msgstr "Atur Peran Baru Default"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:858
|
||||
#: ../includes/class-user-role-editor.php:897
|
||||
msgid ""
|
||||
"Warning! Be careful - removing critical capability could crash some plugin "
|
||||
"or other custom code"
|
||||
@@ -259,11 +265,11 @@ msgstr ""
|
||||
"Peringatan! Hati-hati - menghapus kemampuan kritis dapat menyebabkan crash "
|
||||
"beberapa Plugin atau kode kustom lainnya"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:859
|
||||
#: ../includes/class-user-role-editor.php:898
|
||||
msgid " Capability name (ID) can not be empty!"
|
||||
msgstr "Nama Kemampuan (ID) tidak boleh kosong!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:860
|
||||
#: ../includes/class-user-role-editor.php:899
|
||||
msgid ""
|
||||
" Capability name (ID) must contain latin characters, digits, hyphens or "
|
||||
"underscore only!"
|
||||
@@ -271,12 +277,12 @@ msgstr ""
|
||||
"Nama Kemampuan (ID) harus mengandung karakter latin, angka, kata penghubung "
|
||||
"atau garis bawah saja!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
#: ../includes/class-user-role-editor.php:922
|
||||
#: ../includes/class-user-role-editor.php:933
|
||||
#: ../includes/class-user-role-editor.php:962
|
||||
msgid "Other Roles"
|
||||
msgstr "Peran Lainnya"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:904
|
||||
#: ../includes/class-user-role-editor.php:944
|
||||
msgid "Edit"
|
||||
msgstr "Sunting"
|
||||
|
||||
@@ -310,79 +316,79 @@ msgstr "Saring Cepat:"
|
||||
msgid "Custom capabilities:"
|
||||
msgstr "Kustom kemampuan:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:143
|
||||
#: ../includes/class-ure-lib.php:140
|
||||
msgid "Error: wrong request"
|
||||
msgstr "Salah: salah permintaan"
|
||||
|
||||
#: ../includes/class-ure-lib.php:175
|
||||
#: ../includes/class-ure-lib.php:173 ../includes/class-ure-lib.php:184
|
||||
msgid "Role name (ID): "
|
||||
msgstr "Nama Peran (ID):"
|
||||
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
#: ../includes/class-ure-lib.php:175 ../includes/class-ure-lib.php:186
|
||||
msgid "Display Role Name: "
|
||||
msgstr "Tampilkan Nama Peran:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:179
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
msgid "Make copy of: "
|
||||
msgstr "buat salinan:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:186
|
||||
#: ../includes/class-ure-lib.php:193
|
||||
msgid "Select Role:"
|
||||
msgstr "Pilih Peran:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:201
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
msgid "Delete:"
|
||||
msgstr "Hapus:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
#: ../includes/class-ure-lib.php:215
|
||||
msgid "Capability name (ID): "
|
||||
msgstr "Nama Kemampuan (ID):"
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Error: "
|
||||
msgstr "Salah:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Role"
|
||||
msgstr "Peran"
|
||||
|
||||
#: ../includes/class-ure-lib.php:323
|
||||
#: ../includes/class-ure-lib.php:330
|
||||
msgid "does not exist"
|
||||
msgstr "tidak ada"
|
||||
|
||||
#: ../includes/class-ure-lib.php:366
|
||||
#: ../includes/class-ure-lib.php:373
|
||||
msgid "Role is updated successfully"
|
||||
msgstr "Peran berhasil diperbarui"
|
||||
|
||||
#: ../includes/class-ure-lib.php:368
|
||||
#: ../includes/class-ure-lib.php:375
|
||||
msgid "Roles are updated for all network"
|
||||
msgstr "Peran diperbarui untuk semua jaringan"
|
||||
|
||||
#: ../includes/class-ure-lib.php:374
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
msgid "Error occured during role(s) update"
|
||||
msgstr "Kesalahan terjadi selama pembaruan peran"
|
||||
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
#: ../includes/class-ure-lib.php:388
|
||||
msgid "User capabilities are updated successfully"
|
||||
msgstr "Kemampuan pengguna berhasil diperbarui"
|
||||
|
||||
#: ../includes/class-ure-lib.php:386
|
||||
#: ../includes/class-ure-lib.php:393
|
||||
msgid "Error occured during user update"
|
||||
msgstr "Kesalahan terjadi sepanjang pembaruan pengguna"
|
||||
|
||||
#: ../includes/class-ure-lib.php:441
|
||||
#: ../includes/class-ure-lib.php:451
|
||||
msgid "User Roles are restored to WordPress default values. "
|
||||
msgstr "Peran Pengguna dikembalikan ke nilai Wordpress default."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1312
|
||||
#: ../includes/class-ure-lib.php:1317
|
||||
msgid "Help"
|
||||
msgstr "Bantuan"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1662
|
||||
#: ../includes/class-ure-lib.php:1675
|
||||
msgid "Error is occur. Please check the log file."
|
||||
msgstr "kesalahan terjadi, Harap periksa log data."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1705
|
||||
#: ../includes/class-ure-lib.php:1718 ../includes/class-ure-lib.php:1785
|
||||
msgid ""
|
||||
"Error: Role ID must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
@@ -390,366 +396,384 @@ msgstr ""
|
||||
"Kesalahan: ID Peran harus mengandung karakter latin, angka, kata penghubung "
|
||||
"dan garis bawah saja!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1709
|
||||
#: ../includes/class-ure-lib.php:1722 ../includes/class-ure-lib.php:1789
|
||||
msgid ""
|
||||
"Error: WordPress does not support numeric Role name (ID). Add latin "
|
||||
"characters to it."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1724
|
||||
#: ../includes/class-ure-lib.php:1737
|
||||
#, php-format
|
||||
msgid "Role %s exists already"
|
||||
msgstr "Peran %s telah ada"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1739
|
||||
#: ../includes/class-ure-lib.php:1752
|
||||
msgid "Error is encountered during new role create operation"
|
||||
msgstr "Kesalahan ditemui selama peran baru membuat operasi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1741
|
||||
#: ../includes/class-ure-lib.php:1754
|
||||
#, php-format
|
||||
msgid "Role %s is created successfully"
|
||||
msgstr "Peran %s berhasil dibuat"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1810
|
||||
#: ../includes/class-ure-lib.php:1778
|
||||
msgid "Error: Role ID is empty!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1796
|
||||
msgid "Error: Empty role display name is not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1803
|
||||
#, fuzzy, php-format
|
||||
msgid "Role %s does not exists"
|
||||
msgstr "tidak ada"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1811
|
||||
#, fuzzy, php-format
|
||||
msgid "Role %s is renamed to %s successfully"
|
||||
msgstr "Peran %s berhasil dibuat"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
msgid "Error encountered during role delete operation"
|
||||
msgstr "Kesalahan ditemui selama operasi penghapusan peran"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1812
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
msgid "Unused roles are deleted successfully"
|
||||
msgstr "Peran yang tidak digunakan berhasil dihapus"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1814
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#, php-format
|
||||
msgid "Role %s is deleted successfully"
|
||||
msgstr "Peran %s berhasil dihapus"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1839
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
msgid "Error encountered during default role change operation"
|
||||
msgstr "Kesalahan ditemui selama operasi perubahan peran standar"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1845
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#, php-format
|
||||
msgid "Default role for new users is set to %s successfully"
|
||||
msgstr "Peran standar untuk pengguna baru diatur ke %s dengan sukses"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1864
|
||||
#: ../includes/class-ure-lib.php:1932
|
||||
msgid "Editor"
|
||||
msgstr "Penyunting"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1865
|
||||
#: ../includes/class-ure-lib.php:1933
|
||||
msgid "Author"
|
||||
msgstr "Pengarang"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1866
|
||||
#: ../includes/class-ure-lib.php:1934
|
||||
msgid "Contributor"
|
||||
msgstr "Kontributor"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1867
|
||||
#: ../includes/class-ure-lib.php:1935
|
||||
msgid "Subscriber"
|
||||
msgstr "Pelanggan"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1869
|
||||
#: ../includes/class-ure-lib.php:1937
|
||||
msgid "Switch themes"
|
||||
msgstr "Ganti tema"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1870
|
||||
#: ../includes/class-ure-lib.php:1938
|
||||
msgid "Edit themes"
|
||||
msgstr "Sunting tema"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1871
|
||||
#: ../includes/class-ure-lib.php:1939
|
||||
msgid "Activate plugins"
|
||||
msgstr "Aktifkan plugin"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1872
|
||||
#: ../includes/class-ure-lib.php:1940
|
||||
msgid "Edit plugins"
|
||||
msgstr "Sunting plugin"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1873
|
||||
#: ../includes/class-ure-lib.php:1941
|
||||
msgid "Edit users"
|
||||
msgstr "Sunting pengguna"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1874
|
||||
#: ../includes/class-ure-lib.php:1942
|
||||
msgid "Edit files"
|
||||
msgstr "Sunting data"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1875
|
||||
#: ../includes/class-ure-lib.php:1943
|
||||
msgid "Manage options"
|
||||
msgstr "kelola pilihan"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1876
|
||||
#: ../includes/class-ure-lib.php:1944
|
||||
msgid "Moderate comments"
|
||||
msgstr "Moderasi komentar"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1877
|
||||
#: ../includes/class-ure-lib.php:1945
|
||||
msgid "Manage categories"
|
||||
msgstr "Kelola kategori"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
#: ../includes/class-ure-lib.php:1946
|
||||
msgid "Manage links"
|
||||
msgstr "Kelola tautan"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1879
|
||||
#: ../includes/class-ure-lib.php:1947
|
||||
msgid "Upload files"
|
||||
msgstr "Unggah data"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
#: ../includes/class-ure-lib.php:1948
|
||||
msgid "Import"
|
||||
msgstr "Impor"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1881
|
||||
#: ../includes/class-ure-lib.php:1949
|
||||
msgid "Unfiltered html"
|
||||
msgstr "HTML tidak tersaring"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#: ../includes/class-ure-lib.php:1950
|
||||
msgid "Edit posts"
|
||||
msgstr "Sunting posting"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1883
|
||||
#: ../includes/class-ure-lib.php:1951
|
||||
msgid "Edit others posts"
|
||||
msgstr "Sunting posting lainnya"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1884
|
||||
#: ../includes/class-ure-lib.php:1952
|
||||
msgid "Edit published posts"
|
||||
msgstr "Sunting posting terpublikasi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1885
|
||||
#: ../includes/class-ure-lib.php:1953
|
||||
msgid "Publish posts"
|
||||
msgstr "Publikasi posting"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1886
|
||||
#: ../includes/class-ure-lib.php:1954
|
||||
msgid "Edit pages"
|
||||
msgstr "Sunting halaman"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1887
|
||||
#: ../includes/class-ure-lib.php:1955
|
||||
msgid "Read"
|
||||
msgstr "Baca"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1888
|
||||
#: ../includes/class-ure-lib.php:1956
|
||||
msgid "Level 10"
|
||||
msgstr "Tingkat 10"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1889
|
||||
#: ../includes/class-ure-lib.php:1957
|
||||
msgid "Level 9"
|
||||
msgstr "Tingkat 9"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1890
|
||||
#: ../includes/class-ure-lib.php:1958
|
||||
msgid "Level 8"
|
||||
msgstr "Tingkat 8"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1891
|
||||
#: ../includes/class-ure-lib.php:1959
|
||||
msgid "Level 7"
|
||||
msgstr "Tingkat 7"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1892
|
||||
#: ../includes/class-ure-lib.php:1960
|
||||
msgid "Level 6"
|
||||
msgstr "Tingkat 6"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1893
|
||||
#: ../includes/class-ure-lib.php:1961
|
||||
msgid "Level 5"
|
||||
msgstr "Tingkat 5"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1894
|
||||
#: ../includes/class-ure-lib.php:1962
|
||||
msgid "Level 4"
|
||||
msgstr "Tingkat 4"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1895
|
||||
#: ../includes/class-ure-lib.php:1963
|
||||
msgid "Level 3"
|
||||
msgstr "Tingkat 3"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1896
|
||||
#: ../includes/class-ure-lib.php:1964
|
||||
msgid "Level 2"
|
||||
msgstr "Tingkat 2"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1897
|
||||
#: ../includes/class-ure-lib.php:1965
|
||||
msgid "Level 1"
|
||||
msgstr "Tingkat 1"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1898
|
||||
#: ../includes/class-ure-lib.php:1966
|
||||
msgid "Level 0"
|
||||
msgstr "Tingkat 0"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1899
|
||||
#: ../includes/class-ure-lib.php:1967
|
||||
msgid "Edit others pages"
|
||||
msgstr "Sunting halaman lainnya"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1900
|
||||
#: ../includes/class-ure-lib.php:1968
|
||||
msgid "Edit published pages"
|
||||
msgstr "Sunting halaman terpublikasi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1901
|
||||
#: ../includes/class-ure-lib.php:1969
|
||||
msgid "Publish pages"
|
||||
msgstr "Publikasi halaman"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1902
|
||||
#: ../includes/class-ure-lib.php:1970
|
||||
msgid "Delete pages"
|
||||
msgstr "Hapus halaman"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1903
|
||||
#: ../includes/class-ure-lib.php:1971
|
||||
msgid "Delete others pages"
|
||||
msgstr "Hapus halaman lainnya"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1904
|
||||
#: ../includes/class-ure-lib.php:1972
|
||||
msgid "Delete published pages"
|
||||
msgstr "Hapus halaman terpublikasi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1905
|
||||
#: ../includes/class-ure-lib.php:1973
|
||||
msgid "Delete posts"
|
||||
msgstr "hapus posting"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1906
|
||||
#: ../includes/class-ure-lib.php:1974
|
||||
msgid "Delete others posts"
|
||||
msgstr "Hapus posting lainnya"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
#: ../includes/class-ure-lib.php:1975
|
||||
msgid "Delete published posts"
|
||||
msgstr "Hapus posting terpublikasi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1908
|
||||
#: ../includes/class-ure-lib.php:1976
|
||||
msgid "Delete private posts"
|
||||
msgstr "Hapus posting pribadi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1909
|
||||
#: ../includes/class-ure-lib.php:1977
|
||||
msgid "Edit private posts"
|
||||
msgstr "Sunting posting pribadi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1910
|
||||
#: ../includes/class-ure-lib.php:1978
|
||||
msgid "Read private posts"
|
||||
msgstr "Baca posting pribadi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1911
|
||||
#: ../includes/class-ure-lib.php:1979
|
||||
msgid "Delete private pages"
|
||||
msgstr "Hapus halaman pribadi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1912
|
||||
#: ../includes/class-ure-lib.php:1980
|
||||
msgid "Edit private pages"
|
||||
msgstr "Sunting halaman pribadi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#: ../includes/class-ure-lib.php:1981
|
||||
msgid "Read private pages"
|
||||
msgstr "baca halaman pribadi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1914
|
||||
#: ../includes/class-ure-lib.php:1982
|
||||
msgid "Delete users"
|
||||
msgstr "Hapus pengguna"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1915
|
||||
#: ../includes/class-ure-lib.php:1983
|
||||
msgid "Create users"
|
||||
msgstr "Buat pengguna"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1916
|
||||
#: ../includes/class-ure-lib.php:1984
|
||||
msgid "Unfiltered upload"
|
||||
msgstr "Unggahan tidak tersaring"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1917
|
||||
#: ../includes/class-ure-lib.php:1985
|
||||
msgid "Edit dashboard"
|
||||
msgstr "Sunting dasbor"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1918
|
||||
#: ../includes/class-ure-lib.php:1986
|
||||
msgid "Update plugins"
|
||||
msgstr "Perbarui plugin"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1919
|
||||
#: ../includes/class-ure-lib.php:1987
|
||||
msgid "Delete plugins"
|
||||
msgstr "Hapus plugin"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1920
|
||||
#: ../includes/class-ure-lib.php:1988
|
||||
msgid "Install plugins"
|
||||
msgstr "Pasang plugin"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1921
|
||||
#: ../includes/class-ure-lib.php:1989
|
||||
msgid "Update themes"
|
||||
msgstr "Perbarui tema"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1922
|
||||
#: ../includes/class-ure-lib.php:1990
|
||||
msgid "Install themes"
|
||||
msgstr "Pasang tema"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1923
|
||||
#: ../includes/class-ure-lib.php:1991
|
||||
msgid "Update core"
|
||||
msgstr "Perbarui inti"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1924
|
||||
#: ../includes/class-ure-lib.php:1992
|
||||
msgid "List users"
|
||||
msgstr "Daftar pengguna"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1925
|
||||
#: ../includes/class-ure-lib.php:1993
|
||||
msgid "Remove users"
|
||||
msgstr "Hapus pengguna"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1926
|
||||
#: ../includes/class-ure-lib.php:1994
|
||||
msgid "Add users"
|
||||
msgstr "Tambah pengguna"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1927
|
||||
#: ../includes/class-ure-lib.php:1995
|
||||
msgid "Promote users"
|
||||
msgstr "Promosi pengguna"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1928
|
||||
#: ../includes/class-ure-lib.php:1996
|
||||
msgid "Edit theme options"
|
||||
msgstr "Sunting pilihan tema"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1929
|
||||
#: ../includes/class-ure-lib.php:1997
|
||||
msgid "Delete themes"
|
||||
msgstr "Hapus tema"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1930
|
||||
#: ../includes/class-ure-lib.php:1998
|
||||
msgid "Export"
|
||||
msgstr "Ekspor"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2040
|
||||
#: ../includes/class-ure-lib.php:2108
|
||||
msgid "Error: Capability name must contain latin characters and digits only!"
|
||||
msgstr "Salah: Kemampuan nama harus mengandung karakter latin dan angka saja!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2053
|
||||
#: ../includes/class-ure-lib.php:2121
|
||||
#, php-format
|
||||
msgid "Capability %s is added successfully"
|
||||
msgstr "Kemampuan %s berhasil ditambahkan"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2055
|
||||
#: ../includes/class-ure-lib.php:2123
|
||||
#, php-format
|
||||
msgid "Capability %s exists already"
|
||||
msgstr "Kemampuan %s telah ada"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2080
|
||||
#: ../includes/class-ure-lib.php:2148
|
||||
#, php-format
|
||||
msgid "Error! You do not have permission to delete this capability: %s!"
|
||||
msgstr "Salah! Anda tidak memiliki izin untuk menghapus kemampuan ini: %s!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2099
|
||||
#: ../includes/class-ure-lib.php:2167
|
||||
#, php-format
|
||||
msgid "Capability %s is removed successfully"
|
||||
msgstr "Kemampuan %s berhasil dihapus"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2203
|
||||
#: ../includes/class-ure-lib.php:2271
|
||||
msgid "Version:"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2204
|
||||
#: ../includes/class-ure-lib.php:2272
|
||||
msgid "Author's website"
|
||||
msgstr "Website pengarang"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2205
|
||||
#: ../includes/class-ure-lib.php:2273
|
||||
msgid "Plugin webpage"
|
||||
msgstr "Halaman web Plugin"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2206
|
||||
#: ../includes/class-ure-lib.php:2274
|
||||
#, fuzzy
|
||||
msgid "Plugin download"
|
||||
msgstr "Halaman web Plugin"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2208
|
||||
#: ../includes/class-ure-lib.php:2276
|
||||
msgid "FAQ"
|
||||
msgstr "FAQ"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2256
|
||||
#: ../includes/class-ure-lib.php:2324
|
||||
msgid "None"
|
||||
msgstr "Nihil"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2283
|
||||
#: ../includes/class-ure-lib.php:2351
|
||||
msgid "Delete All Unused Roles"
|
||||
msgstr "Hapus Peran Tidak Terpakai"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2307
|
||||
#: ../includes/class-ure-lib.php:2375
|
||||
msgid "— No role for this site —"
|
||||
msgstr "— Tidak ada peran untuk situs ini —"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: User Role Editor v.2.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-11 11:20+0700\n"
|
||||
"POT-Creation-Date: 2014-09-08 21:33+0700\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Vladimir Garagulya <vladimir@shinephp.com>\n"
|
||||
"Language-Team: ShinePHP.com <vladimir@shinephp.com>\n"
|
||||
@@ -87,96 +87,101 @@ msgid "Allow non super administrators to create, edit, and delete users"
|
||||
msgstr ""
|
||||
"Разрешить простым администраторам создавать, изменять, удалять пользователей"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:185
|
||||
#: ../includes/class-user-role-editor.php:195
|
||||
msgid "Change role for users without role"
|
||||
msgstr "Изменить роль для пользователей без роли"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:186
|
||||
#: ../includes/class-user-role-editor.php:196
|
||||
msgid "No rights"
|
||||
msgstr "Нет прав"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:187
|
||||
#: ../includes/class-user-role-editor.php:197
|
||||
msgid "Provide new role"
|
||||
msgstr "Выберите новую роль"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:271
|
||||
#: ../includes/class-user-role-editor.php:273
|
||||
#: ../includes/class-user-role-editor.php:281
|
||||
#: ../includes/class-user-role-editor.php:283
|
||||
msgid "You do not have permission to edit this user."
|
||||
msgstr "Нет прав на редактирование этого пользователя"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:414
|
||||
#: ../includes/class-user-role-editor.php:424
|
||||
msgid "Capabilities"
|
||||
msgstr "Возможности"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:507
|
||||
#: ../includes/class-user-role-editor.php:517
|
||||
msgid "Settings"
|
||||
msgstr "Установки"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:520
|
||||
#: ../includes/class-ure-lib.php:2207
|
||||
#: ../includes/class-user-role-editor.php:530
|
||||
#: ../includes/class-ure-lib.php:2275
|
||||
msgid "Changelog"
|
||||
msgstr "Журнал изменений"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:542
|
||||
#: ../includes/class-user-role-editor.php:552
|
||||
msgid "Overview"
|
||||
msgstr "Обзор"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:551
|
||||
#: ../includes/class-user-role-editor.php:579
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
#: ../includes/class-ure-lib.php:225
|
||||
#: ../includes/class-user-role-editor.php:561
|
||||
#: ../includes/class-user-role-editor.php:589
|
||||
#: ../includes/class-user-role-editor.php:930
|
||||
#: ../includes/class-ure-lib.php:232
|
||||
msgid "User Role Editor"
|
||||
msgstr "Редактор ролей пользователей"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:636
|
||||
#: ../includes/class-user-role-editor.php:654
|
||||
#: ../includes/class-user-role-editor.php:698
|
||||
#: ../includes/class-user-role-editor.php:646
|
||||
#: ../includes/class-user-role-editor.php:664
|
||||
#: ../includes/class-user-role-editor.php:708
|
||||
msgid "User Role Editor options are updated"
|
||||
msgstr "Изменения в настройках Редактора ролей пользователей сохранены"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:682
|
||||
#: ../includes/class-user-role-editor.php:692
|
||||
msgid "Default Roles are updated"
|
||||
msgstr "Изменения в роли по-умолчанию сохранены"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:706
|
||||
#: ../includes/class-user-role-editor.php:716
|
||||
msgid ""
|
||||
"You do not have sufficient permissions to manage options for User Role "
|
||||
"Editor."
|
||||
msgstr "У вас нет прав на изменение настроек плагина"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:781
|
||||
#: ../includes/class-user-role-editor.php:791
|
||||
msgid "Insufficient permissions to work with User Role Editor"
|
||||
msgstr "Не достаточно прав для работы с User Role Editor"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:835
|
||||
#: ../includes/class-user-role-editor.php:872
|
||||
msgid "Select All"
|
||||
msgstr "Выбрать все"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:836
|
||||
#: ../includes/class-user-role-editor.php:873
|
||||
msgid "Unselect All"
|
||||
msgstr "Исключить все"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:837
|
||||
#: ../includes/class-user-role-editor.php:874
|
||||
msgid "Reverse"
|
||||
msgstr "Обратить"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:838
|
||||
#: ../includes/class-user-role-editor.php:875
|
||||
msgid "Update"
|
||||
msgstr "Сохранить"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:839
|
||||
#: ../includes/class-user-role-editor.php:876
|
||||
msgid "Please confirm permissions update"
|
||||
msgstr "Пожалуйста, подтвердите продолжение "
|
||||
|
||||
#: ../includes/class-user-role-editor.php:840
|
||||
#: ../includes/class-user-role-editor.php:877
|
||||
msgid "Add New Role"
|
||||
msgstr "Добавить новую роль"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:841
|
||||
#: ../includes/class-user-role-editor.php:878
|
||||
#: ../includes/class-user-role-editor.php:883
|
||||
msgid "Rename Role"
|
||||
msgstr "Переименовать роль"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:879
|
||||
msgid " Role name (ID) can not be empty!"
|
||||
msgstr "Идентификатор роли (ID) не может быть пустым!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:842
|
||||
#: ../includes/class-user-role-editor.php:880
|
||||
msgid ""
|
||||
" Role name (ID) must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
@@ -184,7 +189,7 @@ msgstr ""
|
||||
"Ошибка: идентификатор роли может содержать только латинские буквы, цифры, "
|
||||
"тире и знак подчеркивания"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:843
|
||||
#: ../includes/class-user-role-editor.php:881
|
||||
msgid ""
|
||||
" WordPress does not support numeric Role name (ID). Add latin characters to "
|
||||
"it."
|
||||
@@ -192,38 +197,38 @@ msgstr ""
|
||||
"WordPress не поддерживает цифровые идентификаторы ролей. Начните имя роли с "
|
||||
"латинских символов."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:844
|
||||
#: ../includes/class-user-role-editor.php:882
|
||||
msgid "Add Role"
|
||||
msgstr "Добавить роль"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:845
|
||||
#: ../includes/class-user-role-editor.php:884
|
||||
msgid "Delete Role"
|
||||
msgstr "Удалить роль"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:846
|
||||
#: ../includes/class-user-role-editor.php:885
|
||||
msgid "Cancel"
|
||||
msgstr "Отмена"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:847
|
||||
#: ../includes/class-user-role-editor.php:886
|
||||
msgid "Add Capability"
|
||||
msgstr "Новая возм."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:848
|
||||
#: ../includes/class-user-role-editor.php:857
|
||||
#: ../includes/class-user-role-editor.php:887
|
||||
#: ../includes/class-user-role-editor.php:896
|
||||
msgid "Delete Capability"
|
||||
msgstr "Удалить возм."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:849
|
||||
#: ../includes/class-user-role-editor.php:888
|
||||
msgid "Reset"
|
||||
msgstr "Сброс"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:850
|
||||
#: ../includes/class-user-role-editor.php:889
|
||||
msgid "DANGER! Resetting will restore default settings from WordPress Core."
|
||||
msgstr ""
|
||||
"ВНИМАНИЕ! Очистка восстановит роли по состоянию на момент установки "
|
||||
"WordPress."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:851
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
msgid ""
|
||||
"If any plugins have changed capabilities in any way upon installation (such "
|
||||
"as S2Member, WooCommerce, and many more), those capabilities will be DELETED!"
|
||||
@@ -231,7 +236,7 @@ msgstr ""
|
||||
"Если плагины изменяли пользовательские права после установки WordPress "
|
||||
"(S2Member, WooCommerce и др.), права, созданные плагинами будут УДАЛЕНЫ!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:852
|
||||
#: ../includes/class-user-role-editor.php:891
|
||||
msgid ""
|
||||
"For more information on how to undo changes and restore plugin capabilities "
|
||||
"go to"
|
||||
@@ -239,19 +244,19 @@ msgstr ""
|
||||
"Подробнее о том, как откатить сделанные изменения и восстановить разрешения "
|
||||
"для плагинов, можно узнать здесь"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:854
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
msgid "Continue?"
|
||||
msgstr "Продолжить?"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:855
|
||||
#: ../includes/class-user-role-editor.php:894
|
||||
msgid "Default Role"
|
||||
msgstr "Роль по-умолчанию"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:856
|
||||
#: ../includes/class-user-role-editor.php:895
|
||||
msgid "Set New Default Role"
|
||||
msgstr "Установить"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:858
|
||||
#: ../includes/class-user-role-editor.php:897
|
||||
msgid ""
|
||||
"Warning! Be careful - removing critical capability could crash some plugin "
|
||||
"or other custom code"
|
||||
@@ -259,11 +264,11 @@ msgstr ""
|
||||
"Внимание! Будьте осторожны - удаление критичной возможности может привести к "
|
||||
"прекращеню работы одного из плагинов или другого кода."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:859
|
||||
#: ../includes/class-user-role-editor.php:898
|
||||
msgid " Capability name (ID) can not be empty!"
|
||||
msgstr "Идентификатор возможности (ID) не может быть пустым!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:860
|
||||
#: ../includes/class-user-role-editor.php:899
|
||||
msgid ""
|
||||
" Capability name (ID) must contain latin characters, digits, hyphens or "
|
||||
"underscore only!"
|
||||
@@ -271,12 +276,12 @@ msgstr ""
|
||||
"Ошибка: Наименование возможности должно содержать только латинские буквы и "
|
||||
"цифры, знаки подчеркивания"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
#: ../includes/class-user-role-editor.php:922
|
||||
#: ../includes/class-user-role-editor.php:933
|
||||
#: ../includes/class-user-role-editor.php:962
|
||||
msgid "Other Roles"
|
||||
msgstr "Другие роли"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:904
|
||||
#: ../includes/class-user-role-editor.php:944
|
||||
msgid "Edit"
|
||||
msgstr "Изменить"
|
||||
|
||||
@@ -308,79 +313,79 @@ msgstr "Фильтр:"
|
||||
msgid "Custom capabilities:"
|
||||
msgstr "Дополнительные возможности :"
|
||||
|
||||
#: ../includes/class-ure-lib.php:143
|
||||
#: ../includes/class-ure-lib.php:140
|
||||
msgid "Error: wrong request"
|
||||
msgstr "Ошибка: неверный запрос"
|
||||
|
||||
#: ../includes/class-ure-lib.php:175
|
||||
#: ../includes/class-ure-lib.php:173 ../includes/class-ure-lib.php:184
|
||||
msgid "Role name (ID): "
|
||||
msgstr "Идентификатор роли (ID):"
|
||||
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
#: ../includes/class-ure-lib.php:175 ../includes/class-ure-lib.php:186
|
||||
msgid "Display Role Name: "
|
||||
msgstr "Наименование роли:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:179
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
msgid "Make copy of: "
|
||||
msgstr "Создать копию из:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:186
|
||||
#: ../includes/class-ure-lib.php:193
|
||||
msgid "Select Role:"
|
||||
msgstr "Выбери Роль:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:201
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
msgid "Delete:"
|
||||
msgstr "Удалить"
|
||||
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
#: ../includes/class-ure-lib.php:215
|
||||
msgid "Capability name (ID): "
|
||||
msgstr "Идентификатор (ID):"
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Error: "
|
||||
msgstr "Ошибка:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Role"
|
||||
msgstr "Роль"
|
||||
|
||||
#: ../includes/class-ure-lib.php:323
|
||||
#: ../includes/class-ure-lib.php:330
|
||||
msgid "does not exist"
|
||||
msgstr "не существует"
|
||||
|
||||
#: ../includes/class-ure-lib.php:366
|
||||
#: ../includes/class-ure-lib.php:373
|
||||
msgid "Role is updated successfully"
|
||||
msgstr "Роль изменена успешно"
|
||||
|
||||
#: ../includes/class-ure-lib.php:368
|
||||
#: ../includes/class-ure-lib.php:375
|
||||
msgid "Roles are updated for all network"
|
||||
msgstr "Роли изменены для всей сети"
|
||||
|
||||
#: ../includes/class-ure-lib.php:374
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
msgid "Error occured during role(s) update"
|
||||
msgstr "При изменении роли произошла ошибка"
|
||||
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
#: ../includes/class-ure-lib.php:388
|
||||
msgid "User capabilities are updated successfully"
|
||||
msgstr "Права пользователя изменены успешно"
|
||||
|
||||
#: ../includes/class-ure-lib.php:386
|
||||
#: ../includes/class-ure-lib.php:393
|
||||
msgid "Error occured during user update"
|
||||
msgstr "При изменении прав пользователя произошла ошибка "
|
||||
|
||||
#: ../includes/class-ure-lib.php:441
|
||||
#: ../includes/class-ure-lib.php:451
|
||||
msgid "User Roles are restored to WordPress default values. "
|
||||
msgstr "Роли возвращены к начальному состоянию"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1312
|
||||
#: ../includes/class-ure-lib.php:1317
|
||||
msgid "Help"
|
||||
msgstr "Помощь"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1662
|
||||
#: ../includes/class-ure-lib.php:1675
|
||||
msgid "Error is occur. Please check the log file."
|
||||
msgstr "Произошла ошибка. Проверьте лог-файл."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1705
|
||||
#: ../includes/class-ure-lib.php:1718 ../includes/class-ure-lib.php:1785
|
||||
msgid ""
|
||||
"Error: Role ID must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
@@ -388,7 +393,7 @@ msgstr ""
|
||||
"Ошибка: идентификатор роли (ID) должен содержать только латинские буквы, "
|
||||
"цифры, знак подчеркивания и дефис."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1709
|
||||
#: ../includes/class-ure-lib.php:1722 ../includes/class-ure-lib.php:1789
|
||||
msgid ""
|
||||
"Error: WordPress does not support numeric Role name (ID). Add latin "
|
||||
"characters to it."
|
||||
@@ -396,359 +401,377 @@ msgstr ""
|
||||
"Ошибка: WordPress не поддерживает цифровые идентификаторы ролей. Начните имя "
|
||||
"роли с латинских символов."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1724
|
||||
#: ../includes/class-ure-lib.php:1737
|
||||
#, php-format
|
||||
msgid "Role %s exists already"
|
||||
msgstr "Роль %s уже существует"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1739
|
||||
#: ../includes/class-ure-lib.php:1752
|
||||
msgid "Error is encountered during new role create operation"
|
||||
msgstr "Произошла ошибка при создании новой роли"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1741
|
||||
#: ../includes/class-ure-lib.php:1754
|
||||
#, php-format
|
||||
msgid "Role %s is created successfully"
|
||||
msgstr "Роль %s создана успешно"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1810
|
||||
#: ../includes/class-ure-lib.php:1778
|
||||
msgid "Error: Role ID is empty!"
|
||||
msgstr "Ошибка: пустой идентификатор (ID) роли!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1796
|
||||
msgid "Error: Empty role display name is not allowed."
|
||||
msgstr "Ошибка: пустое наименование роли не допускается"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1803
|
||||
#, php-format
|
||||
msgid "Role %s does not exists"
|
||||
msgstr "Роль %s не существует"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1811
|
||||
#, php-format
|
||||
msgid "Role %s is renamed to %s successfully"
|
||||
msgstr "Роль %s успешно переименована в %s"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
msgid "Error encountered during role delete operation"
|
||||
msgstr "Произошла ошибка при удалении роли"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1812
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
msgid "Unused roles are deleted successfully"
|
||||
msgstr "Неиспользуемые роли удалены успешно"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1814
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#, php-format
|
||||
msgid "Role %s is deleted successfully"
|
||||
msgstr "Роль %s удалена успешно"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1839
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
msgid "Error encountered during default role change operation"
|
||||
msgstr "Произошла ошибка при изменении роли по-умолчанию"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1845
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#, php-format
|
||||
msgid "Default role for new users is set to %s successfully"
|
||||
msgstr "Роль по-умолчанию для новых пользователй изменена на %s успешно."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1864
|
||||
#: ../includes/class-ure-lib.php:1932
|
||||
msgid "Editor"
|
||||
msgstr "Редактор"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1865
|
||||
#: ../includes/class-ure-lib.php:1933
|
||||
msgid "Author"
|
||||
msgstr "Автор"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1866
|
||||
#: ../includes/class-ure-lib.php:1934
|
||||
msgid "Contributor"
|
||||
msgstr "Участник"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1867
|
||||
#: ../includes/class-ure-lib.php:1935
|
||||
msgid "Subscriber"
|
||||
msgstr "Подписчик"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1869
|
||||
#: ../includes/class-ure-lib.php:1937
|
||||
msgid "Switch themes"
|
||||
msgstr "Менять темы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1870
|
||||
#: ../includes/class-ure-lib.php:1938
|
||||
msgid "Edit themes"
|
||||
msgstr "Изменять темы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1871
|
||||
#: ../includes/class-ure-lib.php:1939
|
||||
msgid "Activate plugins"
|
||||
msgstr "Активировать плагины"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1872
|
||||
#: ../includes/class-ure-lib.php:1940
|
||||
msgid "Edit plugins"
|
||||
msgstr "Редактировать плагины"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1873
|
||||
#: ../includes/class-ure-lib.php:1941
|
||||
msgid "Edit users"
|
||||
msgstr "Изменять пользователей"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1874
|
||||
#: ../includes/class-ure-lib.php:1942
|
||||
msgid "Edit files"
|
||||
msgstr "Изменять файлы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1875
|
||||
#: ../includes/class-ure-lib.php:1943
|
||||
msgid "Manage options"
|
||||
msgstr "Управлять установками"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1876
|
||||
#: ../includes/class-ure-lib.php:1944
|
||||
msgid "Moderate comments"
|
||||
msgstr "Модерировать комментарии"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1877
|
||||
#: ../includes/class-ure-lib.php:1945
|
||||
msgid "Manage categories"
|
||||
msgstr "Управлять категориями"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
#: ../includes/class-ure-lib.php:1946
|
||||
msgid "Manage links"
|
||||
msgstr "Управлять ссылками"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1879
|
||||
#: ../includes/class-ure-lib.php:1947
|
||||
msgid "Upload files"
|
||||
msgstr "Загружать файлы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
#: ../includes/class-ure-lib.php:1948
|
||||
msgid "Import"
|
||||
msgstr "Импорт"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1881
|
||||
#: ../includes/class-ure-lib.php:1949
|
||||
msgid "Unfiltered html"
|
||||
msgstr "html без фильтра"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#: ../includes/class-ure-lib.php:1950
|
||||
msgid "Edit posts"
|
||||
msgstr "Изменять статьи"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1883
|
||||
#: ../includes/class-ure-lib.php:1951
|
||||
msgid "Edit others posts"
|
||||
msgstr "Изменять чужие статьи"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1884
|
||||
#: ../includes/class-ure-lib.php:1952
|
||||
msgid "Edit published posts"
|
||||
msgstr "Редактировать опубликованные статьи"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1885
|
||||
#: ../includes/class-ure-lib.php:1953
|
||||
msgid "Publish posts"
|
||||
msgstr "Публиковать статьи"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1886
|
||||
#: ../includes/class-ure-lib.php:1954
|
||||
msgid "Edit pages"
|
||||
msgstr "Изменять страницы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1887
|
||||
#: ../includes/class-ure-lib.php:1955
|
||||
msgid "Read"
|
||||
msgstr "Чтение"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1888
|
||||
#: ../includes/class-ure-lib.php:1956
|
||||
msgid "Level 10"
|
||||
msgstr "Уровень 10"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1889
|
||||
#: ../includes/class-ure-lib.php:1957
|
||||
msgid "Level 9"
|
||||
msgstr "Уровень 9"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1890
|
||||
#: ../includes/class-ure-lib.php:1958
|
||||
msgid "Level 8"
|
||||
msgstr "Уровень 9"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1891
|
||||
#: ../includes/class-ure-lib.php:1959
|
||||
msgid "Level 7"
|
||||
msgstr "Уровень 7"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1892
|
||||
#: ../includes/class-ure-lib.php:1960
|
||||
msgid "Level 6"
|
||||
msgstr "Уровень 6"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1893
|
||||
#: ../includes/class-ure-lib.php:1961
|
||||
msgid "Level 5"
|
||||
msgstr "Уровень 5"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1894
|
||||
#: ../includes/class-ure-lib.php:1962
|
||||
msgid "Level 4"
|
||||
msgstr "Уровень 4"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1895
|
||||
#: ../includes/class-ure-lib.php:1963
|
||||
msgid "Level 3"
|
||||
msgstr "Уровень 3"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1896
|
||||
#: ../includes/class-ure-lib.php:1964
|
||||
msgid "Level 2"
|
||||
msgstr "Уровень 2"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1897
|
||||
#: ../includes/class-ure-lib.php:1965
|
||||
msgid "Level 1"
|
||||
msgstr "Уровень 1"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1898
|
||||
#: ../includes/class-ure-lib.php:1966
|
||||
msgid "Level 0"
|
||||
msgstr "Уровень 0"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1899
|
||||
#: ../includes/class-ure-lib.php:1967
|
||||
msgid "Edit others pages"
|
||||
msgstr "Редактировать чужие страницы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1900
|
||||
#: ../includes/class-ure-lib.php:1968
|
||||
msgid "Edit published pages"
|
||||
msgstr "Редактировать опубликованные страницы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1901
|
||||
#: ../includes/class-ure-lib.php:1969
|
||||
msgid "Publish pages"
|
||||
msgstr "Публиковать страницы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1902
|
||||
#: ../includes/class-ure-lib.php:1970
|
||||
msgid "Delete pages"
|
||||
msgstr "Удалять страницы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1903
|
||||
#: ../includes/class-ure-lib.php:1971
|
||||
msgid "Delete others pages"
|
||||
msgstr "Удалить чужие страницы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1904
|
||||
#: ../includes/class-ure-lib.php:1972
|
||||
msgid "Delete published pages"
|
||||
msgstr "Удалять опубликованные страницы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1905
|
||||
#: ../includes/class-ure-lib.php:1973
|
||||
msgid "Delete posts"
|
||||
msgstr "Удалять статьи"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1906
|
||||
#: ../includes/class-ure-lib.php:1974
|
||||
msgid "Delete others posts"
|
||||
msgstr "Удалять чужие статьи"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
#: ../includes/class-ure-lib.php:1975
|
||||
msgid "Delete published posts"
|
||||
msgstr "Удалять опубликованные статьи"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1908
|
||||
#: ../includes/class-ure-lib.php:1976
|
||||
msgid "Delete private posts"
|
||||
msgstr "Удалять частные статьи"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1909
|
||||
#: ../includes/class-ure-lib.php:1977
|
||||
msgid "Edit private posts"
|
||||
msgstr "Редактировать частные статьи"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1910
|
||||
#: ../includes/class-ure-lib.php:1978
|
||||
msgid "Read private posts"
|
||||
msgstr "Читать частные статьи"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1911
|
||||
#: ../includes/class-ure-lib.php:1979
|
||||
msgid "Delete private pages"
|
||||
msgstr "Удалять частные страницы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1912
|
||||
#: ../includes/class-ure-lib.php:1980
|
||||
msgid "Edit private pages"
|
||||
msgstr "Редактировать частные страницы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#: ../includes/class-ure-lib.php:1981
|
||||
msgid "Read private pages"
|
||||
msgstr "Читать частные страницы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1914
|
||||
#: ../includes/class-ure-lib.php:1982
|
||||
msgid "Delete users"
|
||||
msgstr "Удалять пользователей"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1915
|
||||
#: ../includes/class-ure-lib.php:1983
|
||||
msgid "Create users"
|
||||
msgstr "Создавать пользователей"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1916
|
||||
#: ../includes/class-ure-lib.php:1984
|
||||
msgid "Unfiltered upload"
|
||||
msgstr "Загрузка без фильтра"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1917
|
||||
#: ../includes/class-ure-lib.php:1985
|
||||
msgid "Edit dashboard"
|
||||
msgstr "Изменять панель администратора"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1918
|
||||
#: ../includes/class-ure-lib.php:1986
|
||||
msgid "Update plugins"
|
||||
msgstr "Обновлять плагины"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1919
|
||||
#: ../includes/class-ure-lib.php:1987
|
||||
msgid "Delete plugins"
|
||||
msgstr "Удалять плагины"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1920
|
||||
#: ../includes/class-ure-lib.php:1988
|
||||
msgid "Install plugins"
|
||||
msgstr "Устанавливать плагины"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1921
|
||||
#: ../includes/class-ure-lib.php:1989
|
||||
msgid "Update themes"
|
||||
msgstr "Обновлять темы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1922
|
||||
#: ../includes/class-ure-lib.php:1990
|
||||
msgid "Install themes"
|
||||
msgstr "Устанавливать темы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1923
|
||||
#: ../includes/class-ure-lib.php:1991
|
||||
msgid "Update core"
|
||||
msgstr "Обновлять ядро"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1924
|
||||
#: ../includes/class-ure-lib.php:1992
|
||||
msgid "List users"
|
||||
msgstr "Список пользователей"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1925
|
||||
#: ../includes/class-ure-lib.php:1993
|
||||
msgid "Remove users"
|
||||
msgstr "Удалять пользователей"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1926
|
||||
#: ../includes/class-ure-lib.php:1994
|
||||
msgid "Add users"
|
||||
msgstr "Добавлять пользователей"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1927
|
||||
#: ../includes/class-ure-lib.php:1995
|
||||
msgid "Promote users"
|
||||
msgstr "Продвигать пользователей"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1928
|
||||
#: ../includes/class-ure-lib.php:1996
|
||||
msgid "Edit theme options"
|
||||
msgstr "Изменять настройки темы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1929
|
||||
#: ../includes/class-ure-lib.php:1997
|
||||
msgid "Delete themes"
|
||||
msgstr "Удалять темы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1930
|
||||
#: ../includes/class-ure-lib.php:1998
|
||||
msgid "Export"
|
||||
msgstr "Экспорт"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2040
|
||||
#: ../includes/class-ure-lib.php:2108
|
||||
msgid "Error: Capability name must contain latin characters and digits only!"
|
||||
msgstr "Ошибка: Имя должно содержать только латинские буквы и цифры"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2053
|
||||
#: ../includes/class-ure-lib.php:2121
|
||||
#, php-format
|
||||
msgid "Capability %s is added successfully"
|
||||
msgstr "Возможность %s добавлена успешно"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2055
|
||||
#: ../includes/class-ure-lib.php:2123
|
||||
#, php-format
|
||||
msgid "Capability %s exists already"
|
||||
msgstr "Возможность %s уже существует"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2080
|
||||
#: ../includes/class-ure-lib.php:2148
|
||||
#, php-format
|
||||
msgid "Error! You do not have permission to delete this capability: %s!"
|
||||
msgstr "Ошибка! Вам запрещено удалять эту возможность: %s!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2099
|
||||
#: ../includes/class-ure-lib.php:2167
|
||||
#, php-format
|
||||
msgid "Capability %s is removed successfully"
|
||||
msgstr "Возможность %s удалена успешно"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2203
|
||||
#: ../includes/class-ure-lib.php:2271
|
||||
msgid "Version:"
|
||||
msgstr "Версия:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2204
|
||||
#: ../includes/class-ure-lib.php:2272
|
||||
msgid "Author's website"
|
||||
msgstr "Вебсайт автора"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2205
|
||||
#: ../includes/class-ure-lib.php:2273
|
||||
msgid "Plugin webpage"
|
||||
msgstr "Страница плагина"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2206
|
||||
#: ../includes/class-ure-lib.php:2274
|
||||
msgid "Plugin download"
|
||||
msgstr "Загрузить плагин"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2208
|
||||
#: ../includes/class-ure-lib.php:2276
|
||||
msgid "FAQ"
|
||||
msgstr "Часто задаваемые вопросы"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2256
|
||||
#: ../includes/class-ure-lib.php:2324
|
||||
msgid "None"
|
||||
msgstr "Нет"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2283
|
||||
#: ../includes/class-ure-lib.php:2351
|
||||
msgid "Delete All Unused Roles"
|
||||
msgstr "Удалить все неиспользуемые роли"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2307
|
||||
#: ../includes/class-ure-lib.php:2375
|
||||
msgid "— No role for this site —"
|
||||
msgstr "— Нет роли для этого сайта —"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: user-role-editor\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-11 11:20+0700\n"
|
||||
"POT-Creation-Date: 2014-09-08 21:33+0700\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Vladimir Garagulya <vladimir@shinephp.com>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -89,98 +89,104 @@ msgstr ""
|
||||
msgid "Allow non super administrators to create, edit, and delete users"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:185
|
||||
#: ../includes/class-user-role-editor.php:195
|
||||
#, fuzzy
|
||||
msgid "Change role for users without role"
|
||||
msgstr "Varsayılan Rolü Değiştir"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:186
|
||||
#: ../includes/class-user-role-editor.php:196
|
||||
msgid "No rights"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:187
|
||||
#: ../includes/class-user-role-editor.php:197
|
||||
msgid "Provide new role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:271
|
||||
#: ../includes/class-user-role-editor.php:273
|
||||
#: ../includes/class-user-role-editor.php:281
|
||||
#: ../includes/class-user-role-editor.php:283
|
||||
msgid "You do not have permission to edit this user."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:414
|
||||
#: ../includes/class-user-role-editor.php:424
|
||||
msgid "Capabilities"
|
||||
msgstr "Kabiliyetler"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:507
|
||||
#: ../includes/class-user-role-editor.php:517
|
||||
msgid "Settings"
|
||||
msgstr "Ayarlar"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:520
|
||||
#: ../includes/class-ure-lib.php:2207
|
||||
#: ../includes/class-user-role-editor.php:530
|
||||
#: ../includes/class-ure-lib.php:2275
|
||||
msgid "Changelog"
|
||||
msgstr "Changelog"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:542
|
||||
#: ../includes/class-user-role-editor.php:552
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:551
|
||||
#: ../includes/class-user-role-editor.php:579
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
#: ../includes/class-ure-lib.php:225
|
||||
#: ../includes/class-user-role-editor.php:561
|
||||
#: ../includes/class-user-role-editor.php:589
|
||||
#: ../includes/class-user-role-editor.php:930
|
||||
#: ../includes/class-ure-lib.php:232
|
||||
msgid "User Role Editor"
|
||||
msgstr "Kullanıcı Rol Editörü"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:636
|
||||
#: ../includes/class-user-role-editor.php:654
|
||||
#: ../includes/class-user-role-editor.php:698
|
||||
#: ../includes/class-user-role-editor.php:646
|
||||
#: ../includes/class-user-role-editor.php:664
|
||||
#: ../includes/class-user-role-editor.php:708
|
||||
msgid "User Role Editor options are updated"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:682
|
||||
#: ../includes/class-user-role-editor.php:692
|
||||
#, fuzzy
|
||||
msgid "Default Roles are updated"
|
||||
msgstr "Yeni Kullanıcılar için Varsayılan Rol"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:706
|
||||
#: ../includes/class-user-role-editor.php:716
|
||||
msgid ""
|
||||
"You do not have sufficient permissions to manage options for User Role "
|
||||
"Editor."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:781
|
||||
#: ../includes/class-user-role-editor.php:791
|
||||
msgid "Insufficient permissions to work with User Role Editor"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:835
|
||||
#: ../includes/class-user-role-editor.php:872
|
||||
msgid "Select All"
|
||||
msgstr "Tümünü Seç"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:836
|
||||
#: ../includes/class-user-role-editor.php:873
|
||||
msgid "Unselect All"
|
||||
msgstr "Seçimi Kaldır"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:837
|
||||
#: ../includes/class-user-role-editor.php:874
|
||||
msgid "Reverse"
|
||||
msgstr "Seçimi Tersine Çevir"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:838
|
||||
#: ../includes/class-user-role-editor.php:875
|
||||
msgid "Update"
|
||||
msgstr "Güncelle"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:839
|
||||
#: ../includes/class-user-role-editor.php:876
|
||||
msgid "Please confirm permissions update"
|
||||
msgstr "İzinleri güncelleştirmek için lütfen onaylayın"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:840
|
||||
#: ../includes/class-user-role-editor.php:877
|
||||
msgid "Add New Role"
|
||||
msgstr "Yeni Rol Ekle"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:841
|
||||
#: ../includes/class-user-role-editor.php:878
|
||||
#: ../includes/class-user-role-editor.php:883
|
||||
#, fuzzy
|
||||
msgid "Rename Role"
|
||||
msgstr "Rolü Sil"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:879
|
||||
msgid " Role name (ID) can not be empty!"
|
||||
msgstr "Ad (ID) boş bırakılamaz!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:842
|
||||
#: ../includes/class-user-role-editor.php:880
|
||||
msgid ""
|
||||
" Role name (ID) must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
@@ -188,66 +194,66 @@ msgstr ""
|
||||
"Rol adı (ID) yalnızca latin karakterleri, sayılar, tire veya altçizgiden "
|
||||
"oluşabilir."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:843
|
||||
#: ../includes/class-user-role-editor.php:881
|
||||
msgid ""
|
||||
" WordPress does not support numeric Role name (ID). Add latin characters to "
|
||||
"it."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:844
|
||||
#: ../includes/class-user-role-editor.php:882
|
||||
msgid "Add Role"
|
||||
msgstr "Rol Ekle"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:845
|
||||
#: ../includes/class-user-role-editor.php:884
|
||||
msgid "Delete Role"
|
||||
msgstr "Rolü Sil"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:846
|
||||
#: ../includes/class-user-role-editor.php:885
|
||||
msgid "Cancel"
|
||||
msgstr "İptal"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:847
|
||||
#: ../includes/class-user-role-editor.php:886
|
||||
msgid "Add Capability"
|
||||
msgstr "Kabiliyet Ekle"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:848
|
||||
#: ../includes/class-user-role-editor.php:857
|
||||
#: ../includes/class-user-role-editor.php:887
|
||||
#: ../includes/class-user-role-editor.php:896
|
||||
msgid "Delete Capability"
|
||||
msgstr "Kabiliyeti kaldır"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:849
|
||||
#: ../includes/class-user-role-editor.php:888
|
||||
msgid "Reset"
|
||||
msgstr "Geri al"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:850
|
||||
#: ../includes/class-user-role-editor.php:889
|
||||
msgid "DANGER! Resetting will restore default settings from WordPress Core."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:851
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
msgid ""
|
||||
"If any plugins have changed capabilities in any way upon installation (such "
|
||||
"as S2Member, WooCommerce, and many more), those capabilities will be DELETED!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:852
|
||||
#: ../includes/class-user-role-editor.php:891
|
||||
msgid ""
|
||||
"For more information on how to undo changes and restore plugin capabilities "
|
||||
"go to"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:854
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
msgid "Continue?"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:855
|
||||
#: ../includes/class-user-role-editor.php:894
|
||||
msgid "Default Role"
|
||||
msgstr "Öntanımlı Rol"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:856
|
||||
#: ../includes/class-user-role-editor.php:895
|
||||
msgid "Set New Default Role"
|
||||
msgstr "Yeni Öntanımlı Rol Seç"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:858
|
||||
#: ../includes/class-user-role-editor.php:897
|
||||
msgid ""
|
||||
"Warning! Be careful - removing critical capability could crash some plugin "
|
||||
"or other custom code"
|
||||
@@ -255,11 +261,11 @@ msgstr ""
|
||||
"Uyarı! Dikkatli olun - önemli kabiliyetleri kaldırmak bazı eklentileri veya "
|
||||
"başka özel kodların bozulmasına sebep olabilir"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:859
|
||||
#: ../includes/class-user-role-editor.php:898
|
||||
msgid " Capability name (ID) can not be empty!"
|
||||
msgstr "Ad (ID) boş bırakılamaz!"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:860
|
||||
#: ../includes/class-user-role-editor.php:899
|
||||
msgid ""
|
||||
" Capability name (ID) must contain latin characters, digits, hyphens or "
|
||||
"underscore only!"
|
||||
@@ -267,12 +273,12 @@ msgstr ""
|
||||
"Kabiliyet adı (ID) yalnızca latin karakterleri, sayılar, tire veya "
|
||||
"altçizgiden oluşabilir."
|
||||
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
#: ../includes/class-user-role-editor.php:922
|
||||
#: ../includes/class-user-role-editor.php:933
|
||||
#: ../includes/class-user-role-editor.php:962
|
||||
msgid "Other Roles"
|
||||
msgstr "Diğer Roller"
|
||||
|
||||
#: ../includes/class-user-role-editor.php:904
|
||||
#: ../includes/class-user-role-editor.php:944
|
||||
msgid "Edit"
|
||||
msgstr "Düzenle"
|
||||
|
||||
@@ -305,79 +311,79 @@ msgstr ""
|
||||
msgid "Custom capabilities:"
|
||||
msgstr "Özel Kabiliyetler:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:143
|
||||
#: ../includes/class-ure-lib.php:140
|
||||
msgid "Error: wrong request"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:175
|
||||
#: ../includes/class-ure-lib.php:173 ../includes/class-ure-lib.php:184
|
||||
msgid "Role name (ID): "
|
||||
msgstr "Rol adı (ID):"
|
||||
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
#: ../includes/class-ure-lib.php:175 ../includes/class-ure-lib.php:186
|
||||
msgid "Display Role Name: "
|
||||
msgstr "Görünecek Rol Adı:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:179
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
msgid "Make copy of: "
|
||||
msgstr "Bundan kopyala:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:186
|
||||
#: ../includes/class-ure-lib.php:193
|
||||
msgid "Select Role:"
|
||||
msgstr "Rolü Seçin:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:201
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
msgid "Delete:"
|
||||
msgstr "Sil:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
#: ../includes/class-ure-lib.php:215
|
||||
msgid "Capability name (ID): "
|
||||
msgstr "Yetenek adı (ID): "
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Error: "
|
||||
msgstr "Hata:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Role"
|
||||
msgstr "Rol:"
|
||||
|
||||
#: ../includes/class-ure-lib.php:323
|
||||
#: ../includes/class-ure-lib.php:330
|
||||
msgid "does not exist"
|
||||
msgstr "bulunmuyor"
|
||||
|
||||
#: ../includes/class-ure-lib.php:366
|
||||
#: ../includes/class-ure-lib.php:373
|
||||
msgid "Role is updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:368
|
||||
#: ../includes/class-ure-lib.php:375
|
||||
msgid "Roles are updated for all network"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:374
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
msgid "Error occured during role(s) update"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
#: ../includes/class-ure-lib.php:388
|
||||
msgid "User capabilities are updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:386
|
||||
#: ../includes/class-ure-lib.php:393
|
||||
msgid "Error occured during user update"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:441
|
||||
#: ../includes/class-ure-lib.php:451
|
||||
msgid "User Roles are restored to WordPress default values. "
|
||||
msgstr "Rol yetkileri WordPress öntanımlılarına geri yüklendi."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1312
|
||||
#: ../includes/class-ure-lib.php:1317
|
||||
msgid "Help"
|
||||
msgstr "Yardım"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1662
|
||||
#: ../includes/class-ure-lib.php:1675
|
||||
msgid "Error is occur. Please check the log file."
|
||||
msgstr "Bir hata oluştu. Lütfen günlük dosyasını kontrol edin."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1705
|
||||
#: ../includes/class-ure-lib.php:1718 ../includes/class-ure-lib.php:1785
|
||||
msgid ""
|
||||
"Error: Role ID must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
@@ -385,367 +391,385 @@ msgstr ""
|
||||
"Hata: Rol ID yalnızca latin karakterleri, sayılar, tire veya altçizgiden "
|
||||
"oluşabilir."
|
||||
|
||||
#: ../includes/class-ure-lib.php:1709
|
||||
#: ../includes/class-ure-lib.php:1722 ../includes/class-ure-lib.php:1789
|
||||
msgid ""
|
||||
"Error: WordPress does not support numeric Role name (ID). Add latin "
|
||||
"characters to it."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1724
|
||||
#: ../includes/class-ure-lib.php:1737
|
||||
#, php-format
|
||||
msgid "Role %s exists already"
|
||||
msgstr "%s rolü zaten mevcut"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1739
|
||||
#: ../includes/class-ure-lib.php:1752
|
||||
msgid "Error is encountered during new role create operation"
|
||||
msgstr "Yeni rol oluşturma işlemi sırasında hata"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1741
|
||||
#: ../includes/class-ure-lib.php:1754
|
||||
#, php-format
|
||||
msgid "Role %s is created successfully"
|
||||
msgstr "%s rolü başarıyla oluşturuldu"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1810
|
||||
#: ../includes/class-ure-lib.php:1778
|
||||
msgid "Error: Role ID is empty!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1796
|
||||
msgid "Error: Empty role display name is not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1803
|
||||
#, fuzzy, php-format
|
||||
msgid "Role %s does not exists"
|
||||
msgstr "bulunmuyor"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1811
|
||||
#, fuzzy, php-format
|
||||
msgid "Role %s is renamed to %s successfully"
|
||||
msgstr "%s rolü başarıyla oluşturuldu"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
msgid "Error encountered during role delete operation"
|
||||
msgstr "Rol silme işlemi sırasında hata"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1812
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
msgid "Unused roles are deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1814
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#, php-format
|
||||
msgid "Role %s is deleted successfully"
|
||||
msgstr "%s rolü başarıyla silindi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1839
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
msgid "Error encountered during default role change operation"
|
||||
msgstr "Varsayılan rolü değiştirme işlemi sırasında hata"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1845
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#, php-format
|
||||
msgid "Default role for new users is set to %s successfully"
|
||||
msgstr "Yeni kullanıcılar için varsayılan rol %s olarak başarıyla değiştirildi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1864
|
||||
#: ../includes/class-ure-lib.php:1932
|
||||
msgid "Editor"
|
||||
msgstr "Editör"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1865
|
||||
#: ../includes/class-ure-lib.php:1933
|
||||
msgid "Author"
|
||||
msgstr "Yazar"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1866
|
||||
#: ../includes/class-ure-lib.php:1934
|
||||
msgid "Contributor"
|
||||
msgstr "İçerik Sağlayıcı"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1867
|
||||
#: ../includes/class-ure-lib.php:1935
|
||||
msgid "Subscriber"
|
||||
msgstr "Üye"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1869
|
||||
#: ../includes/class-ure-lib.php:1937
|
||||
msgid "Switch themes"
|
||||
msgstr "Temaları değiştir"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1870
|
||||
#: ../includes/class-ure-lib.php:1938
|
||||
msgid "Edit themes"
|
||||
msgstr "Temaları düzenle"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1871
|
||||
#: ../includes/class-ure-lib.php:1939
|
||||
msgid "Activate plugins"
|
||||
msgstr "Eklentileri aktive et"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1872
|
||||
#: ../includes/class-ure-lib.php:1940
|
||||
msgid "Edit plugins"
|
||||
msgstr "Eklentileri düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1873
|
||||
#: ../includes/class-ure-lib.php:1941
|
||||
msgid "Edit users"
|
||||
msgstr "Kullanıcıları düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1874
|
||||
#: ../includes/class-ure-lib.php:1942
|
||||
msgid "Edit files"
|
||||
msgstr "Dosyaları düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1875
|
||||
#: ../includes/class-ure-lib.php:1943
|
||||
msgid "Manage options"
|
||||
msgstr "Seçenekleri yönetmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1876
|
||||
#: ../includes/class-ure-lib.php:1944
|
||||
msgid "Moderate comments"
|
||||
msgstr "Yorumları yönetmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1877
|
||||
#: ../includes/class-ure-lib.php:1945
|
||||
msgid "Manage categories"
|
||||
msgstr "Kategorileri yönetmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
#: ../includes/class-ure-lib.php:1946
|
||||
msgid "Manage links"
|
||||
msgstr "Linkleri yönetmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1879
|
||||
#: ../includes/class-ure-lib.php:1947
|
||||
msgid "Upload files"
|
||||
msgstr "Dosya yüklemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
#: ../includes/class-ure-lib.php:1948
|
||||
msgid "Import"
|
||||
msgstr "İçeri aktarmak"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1881
|
||||
#: ../includes/class-ure-lib.php:1949
|
||||
msgid "Unfiltered html"
|
||||
msgstr "Filtrelenmemiş HTML"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#: ../includes/class-ure-lib.php:1950
|
||||
msgid "Edit posts"
|
||||
msgstr "Yazıları düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1883
|
||||
#: ../includes/class-ure-lib.php:1951
|
||||
msgid "Edit others posts"
|
||||
msgstr "Başkalarının yazılarını düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1884
|
||||
#: ../includes/class-ure-lib.php:1952
|
||||
msgid "Edit published posts"
|
||||
msgstr "Yayınlanmış yazıları düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1885
|
||||
#: ../includes/class-ure-lib.php:1953
|
||||
msgid "Publish posts"
|
||||
msgstr "Yazıları yayınlamak"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1886
|
||||
#: ../includes/class-ure-lib.php:1954
|
||||
msgid "Edit pages"
|
||||
msgstr "Sayfaları düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1887
|
||||
#: ../includes/class-ure-lib.php:1955
|
||||
msgid "Read"
|
||||
msgstr "Okumak"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1888
|
||||
#: ../includes/class-ure-lib.php:1956
|
||||
msgid "Level 10"
|
||||
msgstr "Seviye 10"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1889
|
||||
#: ../includes/class-ure-lib.php:1957
|
||||
msgid "Level 9"
|
||||
msgstr "Seviye 9"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1890
|
||||
#: ../includes/class-ure-lib.php:1958
|
||||
msgid "Level 8"
|
||||
msgstr "Seviye 8"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1891
|
||||
#: ../includes/class-ure-lib.php:1959
|
||||
msgid "Level 7"
|
||||
msgstr "Seviye 7"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1892
|
||||
#: ../includes/class-ure-lib.php:1960
|
||||
msgid "Level 6"
|
||||
msgstr "Seviye 6"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1893
|
||||
#: ../includes/class-ure-lib.php:1961
|
||||
msgid "Level 5"
|
||||
msgstr "Seviye 5"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1894
|
||||
#: ../includes/class-ure-lib.php:1962
|
||||
msgid "Level 4"
|
||||
msgstr "Seviye 4"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1895
|
||||
#: ../includes/class-ure-lib.php:1963
|
||||
msgid "Level 3"
|
||||
msgstr "Seviye 3"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1896
|
||||
#: ../includes/class-ure-lib.php:1964
|
||||
msgid "Level 2"
|
||||
msgstr "Seviye 2"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1897
|
||||
#: ../includes/class-ure-lib.php:1965
|
||||
msgid "Level 1"
|
||||
msgstr "Seviye 1"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1898
|
||||
#: ../includes/class-ure-lib.php:1966
|
||||
msgid "Level 0"
|
||||
msgstr "Seviye 0"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1899
|
||||
#: ../includes/class-ure-lib.php:1967
|
||||
msgid "Edit others pages"
|
||||
msgstr "Başkalarının sayfalarını düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1900
|
||||
#: ../includes/class-ure-lib.php:1968
|
||||
msgid "Edit published pages"
|
||||
msgstr "Yayınlanmış sayfaları düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1901
|
||||
#: ../includes/class-ure-lib.php:1969
|
||||
msgid "Publish pages"
|
||||
msgstr "Sayfaları yayınlamak"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1902
|
||||
#: ../includes/class-ure-lib.php:1970
|
||||
msgid "Delete pages"
|
||||
msgstr "Sayfaları silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1903
|
||||
#: ../includes/class-ure-lib.php:1971
|
||||
msgid "Delete others pages"
|
||||
msgstr "Başkalarının sayfalarını silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1904
|
||||
#: ../includes/class-ure-lib.php:1972
|
||||
msgid "Delete published pages"
|
||||
msgstr "Yayınlanmış sayfaları silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1905
|
||||
#: ../includes/class-ure-lib.php:1973
|
||||
msgid "Delete posts"
|
||||
msgstr "Yazıları silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1906
|
||||
#: ../includes/class-ure-lib.php:1974
|
||||
msgid "Delete others posts"
|
||||
msgstr "Başkalarının yazılarını silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
#: ../includes/class-ure-lib.php:1975
|
||||
msgid "Delete published posts"
|
||||
msgstr "Yayınlanmış yazıları silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1908
|
||||
#: ../includes/class-ure-lib.php:1976
|
||||
msgid "Delete private posts"
|
||||
msgstr "Özel yazıları silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1909
|
||||
#: ../includes/class-ure-lib.php:1977
|
||||
msgid "Edit private posts"
|
||||
msgstr "Özel yazıları düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1910
|
||||
#: ../includes/class-ure-lib.php:1978
|
||||
msgid "Read private posts"
|
||||
msgstr "Özel yazıları okumak"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1911
|
||||
#: ../includes/class-ure-lib.php:1979
|
||||
msgid "Delete private pages"
|
||||
msgstr "Özel sayfaları silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1912
|
||||
#: ../includes/class-ure-lib.php:1980
|
||||
msgid "Edit private pages"
|
||||
msgstr "Özel sayfaları düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#: ../includes/class-ure-lib.php:1981
|
||||
msgid "Read private pages"
|
||||
msgstr "Özel yazıları okumak"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1914
|
||||
#: ../includes/class-ure-lib.php:1982
|
||||
msgid "Delete users"
|
||||
msgstr "Kullanıcı silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1915
|
||||
#: ../includes/class-ure-lib.php:1983
|
||||
msgid "Create users"
|
||||
msgstr "Kullanıcı oluşturmak"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1916
|
||||
#: ../includes/class-ure-lib.php:1984
|
||||
msgid "Unfiltered upload"
|
||||
msgstr "Filtrelenmemiş dosya yüklemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1917
|
||||
#: ../includes/class-ure-lib.php:1985
|
||||
msgid "Edit dashboard"
|
||||
msgstr "Paneli düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1918
|
||||
#: ../includes/class-ure-lib.php:1986
|
||||
msgid "Update plugins"
|
||||
msgstr "Eklentileri güncellemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1919
|
||||
#: ../includes/class-ure-lib.php:1987
|
||||
msgid "Delete plugins"
|
||||
msgstr "Eklenti silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1920
|
||||
#: ../includes/class-ure-lib.php:1988
|
||||
msgid "Install plugins"
|
||||
msgstr "Eklenti yüklemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1921
|
||||
#: ../includes/class-ure-lib.php:1989
|
||||
msgid "Update themes"
|
||||
msgstr "Temaları güncellemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1922
|
||||
#: ../includes/class-ure-lib.php:1990
|
||||
msgid "Install themes"
|
||||
msgstr "Tema yüklemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1923
|
||||
#: ../includes/class-ure-lib.php:1991
|
||||
msgid "Update core"
|
||||
msgstr "Güncelle"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1924
|
||||
#: ../includes/class-ure-lib.php:1992
|
||||
msgid "List users"
|
||||
msgstr "Kullanıcıları listelemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1925
|
||||
#: ../includes/class-ure-lib.php:1993
|
||||
msgid "Remove users"
|
||||
msgstr "Kullanıcı silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1926
|
||||
#: ../includes/class-ure-lib.php:1994
|
||||
msgid "Add users"
|
||||
msgstr "Kullanıcıları eklemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1927
|
||||
#: ../includes/class-ure-lib.php:1995
|
||||
msgid "Promote users"
|
||||
msgstr "Kullanıcı yükseltmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1928
|
||||
#: ../includes/class-ure-lib.php:1996
|
||||
msgid "Edit theme options"
|
||||
msgstr "Tema ayarlarını düzenlemek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1929
|
||||
#: ../includes/class-ure-lib.php:1997
|
||||
msgid "Delete themes"
|
||||
msgstr "Temaları silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:1930
|
||||
#: ../includes/class-ure-lib.php:1998
|
||||
msgid "Export"
|
||||
msgstr "Dışa aktarmak"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2040
|
||||
#: ../includes/class-ure-lib.php:2108
|
||||
msgid "Error: Capability name must contain latin characters and digits only!"
|
||||
msgstr ""
|
||||
"Hata: Kabiliyet adı yalnızca latin karakterleri ve sayılardan oluşabilir."
|
||||
|
||||
#: ../includes/class-ure-lib.php:2053
|
||||
#: ../includes/class-ure-lib.php:2121
|
||||
#, php-format
|
||||
msgid "Capability %s is added successfully"
|
||||
msgstr "%s kabiliyeti başarıyla eklendi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2055
|
||||
#: ../includes/class-ure-lib.php:2123
|
||||
#, php-format
|
||||
msgid "Capability %s exists already"
|
||||
msgstr "%s kabiliyeti zaten mevcut"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2080
|
||||
#: ../includes/class-ure-lib.php:2148
|
||||
#, php-format
|
||||
msgid "Error! You do not have permission to delete this capability: %s!"
|
||||
msgstr "Hata! Bu kabiliyeti değiştirmek için yetkiniz yok: %s!"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2099
|
||||
#: ../includes/class-ure-lib.php:2167
|
||||
#, php-format
|
||||
msgid "Capability %s is removed successfully"
|
||||
msgstr "%s kabiliyeti başarıyla oluşturuldu"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2203
|
||||
#: ../includes/class-ure-lib.php:2271
|
||||
msgid "Version:"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2204
|
||||
#: ../includes/class-ure-lib.php:2272
|
||||
msgid "Author's website"
|
||||
msgstr "Hazırlayanın websitesi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2205
|
||||
#: ../includes/class-ure-lib.php:2273
|
||||
msgid "Plugin webpage"
|
||||
msgstr "Eklentinin websitesi"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2206
|
||||
#: ../includes/class-ure-lib.php:2274
|
||||
#, fuzzy
|
||||
msgid "Plugin download"
|
||||
msgstr "Başkalarının sayfalarını silmek"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2208
|
||||
#: ../includes/class-ure-lib.php:2276
|
||||
msgid "FAQ"
|
||||
msgstr "SSS"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2256
|
||||
#: ../includes/class-ure-lib.php:2324
|
||||
msgid "None"
|
||||
msgstr "Hiçbiri"
|
||||
|
||||
#: ../includes/class-ure-lib.php:2283
|
||||
#: ../includes/class-ure-lib.php:2351
|
||||
msgid "Delete All Unused Roles"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2307
|
||||
#: ../includes/class-ure-lib.php:2375
|
||||
msgid "— No role for this site —"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: User Role Editor 2.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-11 11:20+0700\n"
|
||||
"POT-Creation-Date: 2014-09-08 21:33+0700\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Vladimir Garagulya <vladimir@shinephp.com>\n"
|
||||
"Language-Team: ShinePHP.com <vladimir@shinephp.com>\n"
|
||||
@@ -83,182 +83,187 @@ msgstr ""
|
||||
msgid "Allow non super administrators to create, edit, and delete users"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:185
|
||||
#: ../includes/class-user-role-editor.php:195
|
||||
msgid "Change role for users without role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:186
|
||||
#: ../includes/class-user-role-editor.php:196
|
||||
msgid "No rights"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:187
|
||||
#: ../includes/class-user-role-editor.php:197
|
||||
msgid "Provide new role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:271
|
||||
#: ../includes/class-user-role-editor.php:273
|
||||
#: ../includes/class-user-role-editor.php:281
|
||||
#: ../includes/class-user-role-editor.php:283
|
||||
msgid "You do not have permission to edit this user."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:414
|
||||
#: ../includes/class-user-role-editor.php:424
|
||||
msgid "Capabilities"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:507
|
||||
#: ../includes/class-user-role-editor.php:517
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:520
|
||||
#: ../includes/class-ure-lib.php:2207
|
||||
#: ../includes/class-user-role-editor.php:530
|
||||
#: ../includes/class-ure-lib.php:2275
|
||||
msgid "Changelog"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:542
|
||||
#: ../includes/class-user-role-editor.php:552
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:551
|
||||
#: ../includes/class-user-role-editor.php:579
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
#: ../includes/class-ure-lib.php:225
|
||||
#: ../includes/class-user-role-editor.php:561
|
||||
#: ../includes/class-user-role-editor.php:589
|
||||
#: ../includes/class-user-role-editor.php:930
|
||||
#: ../includes/class-ure-lib.php:232
|
||||
msgid "User Role Editor"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:636
|
||||
#: ../includes/class-user-role-editor.php:654
|
||||
#: ../includes/class-user-role-editor.php:698
|
||||
#: ../includes/class-user-role-editor.php:646
|
||||
#: ../includes/class-user-role-editor.php:664
|
||||
#: ../includes/class-user-role-editor.php:708
|
||||
msgid "User Role Editor options are updated"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:682
|
||||
#: ../includes/class-user-role-editor.php:692
|
||||
msgid "Default Roles are updated"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:706
|
||||
#: ../includes/class-user-role-editor.php:716
|
||||
msgid ""
|
||||
"You do not have sufficient permissions to manage options for User Role "
|
||||
"Editor."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:781
|
||||
#: ../includes/class-user-role-editor.php:791
|
||||
msgid "Insufficient permissions to work with User Role Editor"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:835
|
||||
#: ../includes/class-user-role-editor.php:872
|
||||
msgid "Select All"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:836
|
||||
#: ../includes/class-user-role-editor.php:873
|
||||
msgid "Unselect All"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:837
|
||||
#: ../includes/class-user-role-editor.php:874
|
||||
msgid "Reverse"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:838
|
||||
#: ../includes/class-user-role-editor.php:875
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:839
|
||||
#: ../includes/class-user-role-editor.php:876
|
||||
msgid "Please confirm permissions update"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:840
|
||||
#: ../includes/class-user-role-editor.php:877
|
||||
msgid "Add New Role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:841
|
||||
#: ../includes/class-user-role-editor.php:878
|
||||
#: ../includes/class-user-role-editor.php:883
|
||||
msgid "Rename Role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:879
|
||||
msgid " Role name (ID) can not be empty!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:842
|
||||
#: ../includes/class-user-role-editor.php:880
|
||||
msgid ""
|
||||
" Role name (ID) must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:843
|
||||
#: ../includes/class-user-role-editor.php:881
|
||||
msgid ""
|
||||
" WordPress does not support numeric Role name (ID). Add latin characters to "
|
||||
"it."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:844
|
||||
#: ../includes/class-user-role-editor.php:882
|
||||
msgid "Add Role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:845
|
||||
#: ../includes/class-user-role-editor.php:884
|
||||
msgid "Delete Role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:846
|
||||
#: ../includes/class-user-role-editor.php:885
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:847
|
||||
#: ../includes/class-user-role-editor.php:886
|
||||
msgid "Add Capability"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:848
|
||||
#: ../includes/class-user-role-editor.php:857
|
||||
#: ../includes/class-user-role-editor.php:887
|
||||
#: ../includes/class-user-role-editor.php:896
|
||||
msgid "Delete Capability"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:849
|
||||
#: ../includes/class-user-role-editor.php:888
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:850
|
||||
#: ../includes/class-user-role-editor.php:889
|
||||
msgid "DANGER! Resetting will restore default settings from WordPress Core."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:851
|
||||
#: ../includes/class-user-role-editor.php:890
|
||||
msgid ""
|
||||
"If any plugins have changed capabilities in any way upon installation (such "
|
||||
"as S2Member, WooCommerce, and many more), those capabilities will be DELETED!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:852
|
||||
#: ../includes/class-user-role-editor.php:891
|
||||
msgid ""
|
||||
"For more information on how to undo changes and restore plugin capabilities "
|
||||
"go to"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:854
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
msgid "Continue?"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:855
|
||||
#: ../includes/class-user-role-editor.php:894
|
||||
msgid "Default Role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:856
|
||||
#: ../includes/class-user-role-editor.php:895
|
||||
msgid "Set New Default Role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:858
|
||||
#: ../includes/class-user-role-editor.php:897
|
||||
msgid ""
|
||||
"Warning! Be careful - removing critical capability could crash some plugin "
|
||||
"or other custom code"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:859
|
||||
#: ../includes/class-user-role-editor.php:898
|
||||
msgid " Capability name (ID) can not be empty!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:860
|
||||
#: ../includes/class-user-role-editor.php:899
|
||||
msgid ""
|
||||
" Capability name (ID) must contain latin characters, digits, hyphens or "
|
||||
"underscore only!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:893
|
||||
#: ../includes/class-user-role-editor.php:922
|
||||
#: ../includes/class-user-role-editor.php:933
|
||||
#: ../includes/class-user-role-editor.php:962
|
||||
msgid "Other Roles"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-user-role-editor.php:904
|
||||
#: ../includes/class-user-role-editor.php:944
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@@ -290,443 +295,461 @@ msgstr ""
|
||||
msgid "Custom capabilities:"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:143
|
||||
#: ../includes/class-ure-lib.php:140
|
||||
msgid "Error: wrong request"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:175
|
||||
#: ../includes/class-ure-lib.php:173 ../includes/class-ure-lib.php:184
|
||||
msgid "Role name (ID): "
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
#: ../includes/class-ure-lib.php:175 ../includes/class-ure-lib.php:186
|
||||
msgid "Display Role Name: "
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:179
|
||||
#: ../includes/class-ure-lib.php:177
|
||||
msgid "Make copy of: "
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:186
|
||||
#: ../includes/class-ure-lib.php:193
|
||||
msgid "Select Role:"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:201
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
msgid "Delete:"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:208
|
||||
#: ../includes/class-ure-lib.php:215
|
||||
msgid "Capability name (ID): "
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Error: "
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:322
|
||||
#: ../includes/class-ure-lib.php:329
|
||||
msgid "Role"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:323
|
||||
#: ../includes/class-ure-lib.php:330
|
||||
msgid "does not exist"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:366
|
||||
#: ../includes/class-ure-lib.php:373
|
||||
msgid "Role is updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:368
|
||||
#: ../includes/class-ure-lib.php:375
|
||||
msgid "Roles are updated for all network"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:374
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
msgid "Error occured during role(s) update"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:381
|
||||
#: ../includes/class-ure-lib.php:388
|
||||
msgid "User capabilities are updated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:386
|
||||
#: ../includes/class-ure-lib.php:393
|
||||
msgid "Error occured during user update"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:441
|
||||
#: ../includes/class-ure-lib.php:451
|
||||
msgid "User Roles are restored to WordPress default values. "
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1312
|
||||
#: ../includes/class-ure-lib.php:1317
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1662
|
||||
#: ../includes/class-ure-lib.php:1675
|
||||
msgid "Error is occur. Please check the log file."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1705
|
||||
#: ../includes/class-ure-lib.php:1718 ../includes/class-ure-lib.php:1785
|
||||
msgid ""
|
||||
"Error: Role ID must contain latin characters, digits, hyphens or underscore "
|
||||
"only!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1709
|
||||
#: ../includes/class-ure-lib.php:1722 ../includes/class-ure-lib.php:1789
|
||||
msgid ""
|
||||
"Error: WordPress does not support numeric Role name (ID). Add latin "
|
||||
"characters to it."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1724
|
||||
#: ../includes/class-ure-lib.php:1737
|
||||
#, php-format
|
||||
msgid "Role %s exists already"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1739
|
||||
#: ../includes/class-ure-lib.php:1752
|
||||
msgid "Error is encountered during new role create operation"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1741
|
||||
#: ../includes/class-ure-lib.php:1754
|
||||
#, php-format
|
||||
msgid "Role %s is created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1810
|
||||
#: ../includes/class-ure-lib.php:1778
|
||||
msgid "Error: Role ID is empty!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1796
|
||||
msgid "Error: Empty role display name is not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1803
|
||||
#, php-format
|
||||
msgid "Role %s does not exists"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1811
|
||||
#, php-format
|
||||
msgid "Role %s is renamed to %s successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
msgid "Error encountered during role delete operation"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1812
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
msgid "Unused roles are deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1814
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#, php-format
|
||||
msgid "Role %s is deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1839
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
msgid "Error encountered during default role change operation"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1845
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#, php-format
|
||||
msgid "Default role for new users is set to %s successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1864
|
||||
#: ../includes/class-ure-lib.php:1932
|
||||
msgid "Editor"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1865
|
||||
#: ../includes/class-ure-lib.php:1933
|
||||
msgid "Author"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1866
|
||||
#: ../includes/class-ure-lib.php:1934
|
||||
msgid "Contributor"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1867
|
||||
#: ../includes/class-ure-lib.php:1935
|
||||
msgid "Subscriber"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1869
|
||||
#: ../includes/class-ure-lib.php:1937
|
||||
msgid "Switch themes"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1870
|
||||
#: ../includes/class-ure-lib.php:1938
|
||||
msgid "Edit themes"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1871
|
||||
#: ../includes/class-ure-lib.php:1939
|
||||
msgid "Activate plugins"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1872
|
||||
#: ../includes/class-ure-lib.php:1940
|
||||
msgid "Edit plugins"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1873
|
||||
#: ../includes/class-ure-lib.php:1941
|
||||
msgid "Edit users"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1874
|
||||
#: ../includes/class-ure-lib.php:1942
|
||||
msgid "Edit files"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1875
|
||||
#: ../includes/class-ure-lib.php:1943
|
||||
msgid "Manage options"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1876
|
||||
#: ../includes/class-ure-lib.php:1944
|
||||
msgid "Moderate comments"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1877
|
||||
#: ../includes/class-ure-lib.php:1945
|
||||
msgid "Manage categories"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1878
|
||||
#: ../includes/class-ure-lib.php:1946
|
||||
msgid "Manage links"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1879
|
||||
#: ../includes/class-ure-lib.php:1947
|
||||
msgid "Upload files"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1880
|
||||
#: ../includes/class-ure-lib.php:1948
|
||||
msgid "Import"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1881
|
||||
#: ../includes/class-ure-lib.php:1949
|
||||
msgid "Unfiltered html"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1882
|
||||
#: ../includes/class-ure-lib.php:1950
|
||||
msgid "Edit posts"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1883
|
||||
#: ../includes/class-ure-lib.php:1951
|
||||
msgid "Edit others posts"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1884
|
||||
#: ../includes/class-ure-lib.php:1952
|
||||
msgid "Edit published posts"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1885
|
||||
#: ../includes/class-ure-lib.php:1953
|
||||
msgid "Publish posts"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1886
|
||||
#: ../includes/class-ure-lib.php:1954
|
||||
msgid "Edit pages"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1887
|
||||
#: ../includes/class-ure-lib.php:1955
|
||||
msgid "Read"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1888
|
||||
#: ../includes/class-ure-lib.php:1956
|
||||
msgid "Level 10"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1889
|
||||
#: ../includes/class-ure-lib.php:1957
|
||||
msgid "Level 9"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1890
|
||||
#: ../includes/class-ure-lib.php:1958
|
||||
msgid "Level 8"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1891
|
||||
#: ../includes/class-ure-lib.php:1959
|
||||
msgid "Level 7"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1892
|
||||
#: ../includes/class-ure-lib.php:1960
|
||||
msgid "Level 6"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1893
|
||||
#: ../includes/class-ure-lib.php:1961
|
||||
msgid "Level 5"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1894
|
||||
#: ../includes/class-ure-lib.php:1962
|
||||
msgid "Level 4"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1895
|
||||
#: ../includes/class-ure-lib.php:1963
|
||||
msgid "Level 3"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1896
|
||||
#: ../includes/class-ure-lib.php:1964
|
||||
msgid "Level 2"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1897
|
||||
#: ../includes/class-ure-lib.php:1965
|
||||
msgid "Level 1"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1898
|
||||
#: ../includes/class-ure-lib.php:1966
|
||||
msgid "Level 0"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1899
|
||||
#: ../includes/class-ure-lib.php:1967
|
||||
msgid "Edit others pages"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1900
|
||||
#: ../includes/class-ure-lib.php:1968
|
||||
msgid "Edit published pages"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1901
|
||||
#: ../includes/class-ure-lib.php:1969
|
||||
msgid "Publish pages"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1902
|
||||
#: ../includes/class-ure-lib.php:1970
|
||||
msgid "Delete pages"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1903
|
||||
#: ../includes/class-ure-lib.php:1971
|
||||
msgid "Delete others pages"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1904
|
||||
#: ../includes/class-ure-lib.php:1972
|
||||
msgid "Delete published pages"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1905
|
||||
#: ../includes/class-ure-lib.php:1973
|
||||
msgid "Delete posts"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1906
|
||||
#: ../includes/class-ure-lib.php:1974
|
||||
msgid "Delete others posts"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1907
|
||||
#: ../includes/class-ure-lib.php:1975
|
||||
msgid "Delete published posts"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1908
|
||||
#: ../includes/class-ure-lib.php:1976
|
||||
msgid "Delete private posts"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1909
|
||||
#: ../includes/class-ure-lib.php:1977
|
||||
msgid "Edit private posts"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1910
|
||||
#: ../includes/class-ure-lib.php:1978
|
||||
msgid "Read private posts"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1911
|
||||
#: ../includes/class-ure-lib.php:1979
|
||||
msgid "Delete private pages"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1912
|
||||
#: ../includes/class-ure-lib.php:1980
|
||||
msgid "Edit private pages"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1913
|
||||
#: ../includes/class-ure-lib.php:1981
|
||||
msgid "Read private pages"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1914
|
||||
#: ../includes/class-ure-lib.php:1982
|
||||
msgid "Delete users"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1915
|
||||
#: ../includes/class-ure-lib.php:1983
|
||||
msgid "Create users"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1916
|
||||
#: ../includes/class-ure-lib.php:1984
|
||||
msgid "Unfiltered upload"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1917
|
||||
#: ../includes/class-ure-lib.php:1985
|
||||
msgid "Edit dashboard"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1918
|
||||
#: ../includes/class-ure-lib.php:1986
|
||||
msgid "Update plugins"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1919
|
||||
#: ../includes/class-ure-lib.php:1987
|
||||
msgid "Delete plugins"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1920
|
||||
#: ../includes/class-ure-lib.php:1988
|
||||
msgid "Install plugins"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1921
|
||||
#: ../includes/class-ure-lib.php:1989
|
||||
msgid "Update themes"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1922
|
||||
#: ../includes/class-ure-lib.php:1990
|
||||
msgid "Install themes"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1923
|
||||
#: ../includes/class-ure-lib.php:1991
|
||||
msgid "Update core"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1924
|
||||
#: ../includes/class-ure-lib.php:1992
|
||||
msgid "List users"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1925
|
||||
#: ../includes/class-ure-lib.php:1993
|
||||
msgid "Remove users"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1926
|
||||
#: ../includes/class-ure-lib.php:1994
|
||||
msgid "Add users"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1927
|
||||
#: ../includes/class-ure-lib.php:1995
|
||||
msgid "Promote users"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1928
|
||||
#: ../includes/class-ure-lib.php:1996
|
||||
msgid "Edit theme options"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1929
|
||||
#: ../includes/class-ure-lib.php:1997
|
||||
msgid "Delete themes"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:1930
|
||||
#: ../includes/class-ure-lib.php:1998
|
||||
msgid "Export"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2040
|
||||
#: ../includes/class-ure-lib.php:2108
|
||||
msgid "Error: Capability name must contain latin characters and digits only!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2053
|
||||
#: ../includes/class-ure-lib.php:2121
|
||||
#, php-format
|
||||
msgid "Capability %s is added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2055
|
||||
#: ../includes/class-ure-lib.php:2123
|
||||
#, php-format
|
||||
msgid "Capability %s exists already"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2080
|
||||
#: ../includes/class-ure-lib.php:2148
|
||||
#, php-format
|
||||
msgid "Error! You do not have permission to delete this capability: %s!"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2099
|
||||
#: ../includes/class-ure-lib.php:2167
|
||||
#, php-format
|
||||
msgid "Capability %s is removed successfully"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2203
|
||||
#: ../includes/class-ure-lib.php:2271
|
||||
msgid "Version:"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2204
|
||||
#: ../includes/class-ure-lib.php:2272
|
||||
msgid "Author's website"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2205
|
||||
#: ../includes/class-ure-lib.php:2273
|
||||
msgid "Plugin webpage"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2206
|
||||
#: ../includes/class-ure-lib.php:2274
|
||||
msgid "Plugin download"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2208
|
||||
#: ../includes/class-ure-lib.php:2276
|
||||
msgid "FAQ"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2256
|
||||
#: ../includes/class-ure-lib.php:2324
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2283
|
||||
#: ../includes/class-ure-lib.php:2351
|
||||
msgid "Delete All Unused Roles"
|
||||
msgstr ""
|
||||
|
||||
#: ../includes/class-ure-lib.php:2307
|
||||
#: ../includes/class-ure-lib.php:2375
|
||||
msgid "— No role for this site —"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ Buy [Pro version](htpp://role-editor.com).
|
||||
Pro version includes extra modules:
|
||||
<ul>
|
||||
<li>Block selected admin menu items for role.</li>
|
||||
<li>Block selected widgets under "Appearance" menu for role.</li>
|
||||
<li>"Export/Import" module. You can export user roles to the local file and import them then to any WordPress site or other sites of the multi-site WordPress network.</li>
|
||||
<li>Roles and Users permissions management via Network Admin for multisite configuration. One click Synchronization to the whole network.</li>
|
||||
<li>Per posts/pages users access management to post/page editing functionality.</li>
|
||||
@@ -83,6 +84,15 @@ Share with me new ideas about plugin further development and link to your site w
|
||||
|
||||
|
||||
== Changelog ==
|
||||
= 4.16 =
|
||||
* 11.09.2014
|
||||
* "create_sites" user capability was added to the list of built-in WordPress user capabilities for WordPress multisite. It does not exist by default. But it is used to control "Add New" button at the "Sites" page under WordPress multisite network admin.
|
||||
* bug fix: WordPress database prefix value was not used in 2 SQL queries related to the "count users without role" module - updated.
|
||||
|
||||
= 4.15 =
|
||||
* 08.09.2014
|
||||
* Rename role button was added to the URE toolbar. It allows to change user role display name (role ID is always the same). Be careful and double think before rename some built-in WordPress role.
|
||||
|
||||
= 4.14.4 =
|
||||
* 08.08.2014
|
||||
* Missed "manage_sites" user capability was added to the list of built-in WordPress capabilities managed by User Role Editor.
|
||||
|
||||
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 146 KiB |
@@ -3,7 +3,7 @@
|
||||
Plugin Name: User Role Editor
|
||||
Plugin URI: http://role-editor.com
|
||||
Description: Change/add/delete WordPress user roles and capabilities.
|
||||
Version: 4.14.4
|
||||
Version: 4.16
|
||||
Author: Vladimir Garagulya
|
||||
Author URI: http://www.shinephp.com
|
||||
Text Domain: ure
|
||||
@@ -23,7 +23,7 @@ if (defined('URE_PLUGIN_URL')) {
|
||||
wp_die('It seems that other version of User Role Editor is active. Please deactivate it before use this version');
|
||||
}
|
||||
|
||||
define('URE_VERSION', '4.14.4');
|
||||
define('URE_VERSION', '4.16');
|
||||
define('URE_PLUGIN_URL', plugin_dir_url(__FILE__));
|
||||
define('URE_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
||||
define('URE_PLUGIN_FILE', basename(__FILE__));
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if( is_single() ): ?>
|
||||
<?php comments_template(); ?>
|
||||
<div class="entry-comments"><?php comments_template(); ?></div>
|
||||
<?php elseif( !is_page() ): ?>
|
||||
<div class="actions-container">
|
||||
<a class="button radius read-more" href="<?php echo get_permalink( get_the_ID() ); ?>">Les hele innlegget</a>
|
||||
|
||||