Version update

This commit is contained in:
feder 2017-03-19 14:18:04 +03:00
parent 76d39c002c
commit e817a39bd0
2 changed files with 158 additions and 19 deletions

View File

@ -2,8 +2,8 @@
/* /*
Plugin Name: Discordian Date Function Plugin Name: Discordian Date Function
Plugin URI: https://is3.soundragon.su/discordian-date-function Plugin URI: https://is3.soundragon.su/discordian-date-function
Description: Convert dates in Wordpress to Discordian dates. Also, this plugin provides shortcode and widget used to display the current erisian date with notification of 70 holydays. Based on the Discordian Date plugin by Dan Johnson. Description: Convert dates in Wordpress to customizable Discordian dates. Also, this plugin provides shortcode and widget used to display the current erisian date with notification of 70 holydays. Based on the Discordian Date plugin by Dan Johnson.
Version: 0.5 Version: 0.55
Author: ivan zlax Author: ivan zlax
Author URI: https://is3.soundragon.su/about Author URI: https://is3.soundragon.su/about
*/ */
@ -37,6 +37,7 @@ function get_ddate($content, $format = "", $originalRequest = null) {
$dseason=(int)($yday/73); $dseason=(int)($yday/73);
$name_season=$season_list[$dseason]; $name_season=$season_list[$dseason];
$dday=($yday-(73*$dseason))+1; $dday=($yday-(73*$dseason))+1;
$clear_dday=$dday;
$suff=$dday%10; $suff=$dday%10;
switch ($suff) { switch ($suff) {
@ -54,8 +55,34 @@ function get_ddate($content, $format = "", $originalRequest = null) {
} }
$dweekday=$day_list[($yday%5)]; $dweekday=$day_list[($yday%5)];
$ddate=$dweekday.", the ".$dday." day of ".$name_season.", in the yold ".$dyear;
if ($originalRequest == "now") {
$ddate=$dweekday.", the ".$dday." day of ".$name_season.", in the yold ".$dyear;
} else {
$patterns = array();
$patterns[0] = '%DY';
$patterns[1] = '%DS';
$patterns[2] = '%DD';
$patterns[3] = '%DC';
$patterns[4] = '%DW';
$patterns[5] = '%GY';
$patterns[6] = '%GM';
$patterns[7] = '%GN';
$patterns[8] = '%GD';
$patterns[9] = '%GW';
$replacements = array();
$replacements[0] = $dyear;
$replacements[1] = $name_season;
$replacements[2] = $dday;
$replacements[3] = $clear_dday;
$replacements[4] = $dweekday;
$replacements[5] = $standard_date["year"];
$replacements[6] = $standard_date["month"];
$replacements[7] = $standard_date["mon"];
$replacements[8] = $standard_date["mday"];
$replacements[9] = $standard_date["weekday"];
$ddate = str_replace($patterns, $replacements, get_option('ddatefunc_string'));
}
return $ddate; return $ddate;
} }
@ -77,12 +104,15 @@ class Discordian_Date_Widget extends WP_Widget {
$dday=($yday-(73*$dseason))+1; $dday=($yday-(73*$dseason))+1;
$a_holiday=array("Mungday", "Mojoday", "Syaday", "Zaraday", "Maladay"); $a_holiday=array("Mungday", "Mojoday", "Syaday", "Zaraday", "Maladay");
$s_holiday=array("Chaoflux", "Discoflux", "Confuflux", "Bureflux", "Afflux"); $s_holiday=array("Chaoflux", "Discoflux", "Confuflux", "Bureflux", "Afflux");
$m_holyday=array("Chaomas", "Discomas", "Confumas", "Buremas", "Afmas");
$t_holyday=array("Chaosloth", "Discosloth", "Confusloth", "Buresloth", "Afsloth");
$e_holyday=array("Mungeye", "Mojeye", "Syadeye", "Zareye", "Maleye");
$holyday=""; $holyday="";
if ($dday==5) { if ($dday==5) {
$holyday = " Celebrate ".$a_holiday[$dseason]."."; $holyday = " Celebrate Apostle Day, ".$a_holiday[$dseason].".";
} elseif ($dday==50) { } elseif ($dday==50) {
$holyday = " Celebrate ".$s_holiday[$dseason]."."; $holyday = " Celebrate Flux Day, ".$s_holiday[$dseason].".";
} elseif ($mon==2 && $mday==29) { } elseif ($mon==2 && $mday==29) {
$holyday = " Celebrate St. Tib's Day."; $holyday = " Celebrate St. Tib's Day.";
} elseif ($dseason==2 && $dday==28) { } elseif ($dseason==2 && $dday==28) {
@ -92,11 +122,11 @@ class Discordian_Date_Widget extends WP_Widget {
} elseif ($dseason==4 && $dday==65) { } elseif ($dseason==4 && $dday==65) {
$holyday = " Celebrate Circlemas."; $holyday = " Celebrate Circlemas.";
} elseif ($dday==23) { } elseif ($dday==23) {
$holyday = " Celebrate Synaptyclypse Day."; $holyday = " Celebrate Synaptyclypse Day, ".$m_holiday[$dseason].".";
} elseif ($dday==27) { } elseif ($dday==27) {
$holyday = " Celebrate Sloth Day."; $holyday = " Celebrate Sloth Day, ".$t_holiday[$dseason].".";
} elseif ($dday==73) { } elseif ($dday==73) {
$holyday = " Celebrate Eye Day."; $holyday = " Celebrate Eye Day, ".$e_holiday[$dseason].".";
} elseif ($dseason==0 && $dday==8) { } elseif ($dseason==0 && $dday==8) {
$holyday = " Celebrate Death of Emperor Norton."; $holyday = " Celebrate Death of Emperor Norton.";
} elseif ($dseason==0 && $dday==10) { } elseif ($dseason==0 && $dday==10) {
@ -226,17 +256,17 @@ class Discordian_Date_Widget extends WP_Widget {
} }
} }
function get_the_ddate_post($content, $format){ function get_the_ddate_post($content, $format) {
return get_ddate($content, $format, "get_the_date"); } return get_ddate($content, $format, "get_the_date"); }
function get_the_ddate_comment($content, $format){ function get_the_ddate_comment($content, $format) {
return get_ddate($content, $format, "get_comment_date"); } return get_ddate($content, $format, "get_comment_date"); }
function register_ddatefunc_widget() { function register_ddatefunc_widget() {
register_widget( 'Discordian_Date_Widget' ); register_widget( 'Discordian_Date_Widget' );
} }
function today_ddate(){ function today_ddate() {
echo return_today_hebDate(); echo return_today_hebDate();
} }
@ -244,7 +274,106 @@ function return_today_ddate() {
return get_ddate($content, $format, "now"); return get_ddate($content, $format, "now");
} }
add_shortcode('today_ddate', 'return_today_ddate'); $settings_name = "Discordian Date Function Settings";
function ddatefunc_add_admin() {
global $settings_name;
add_options_page(__('Settings').': '.$settings_name, $settings_name, 'edit_themes', basename(__FILE__), 'ddatefunc_admin');
}
function ddatefunc_admin() {
global $settings_name;
?>
<div class="wrap">
<?php
screen_icon();
echo '<h2>'.$settings_name.'</h2>';
if (isset($_POST['save'])) {
update_option('ddatefunc_string', stripslashes($_POST['textfield']));
if (isset($_POST['checkbox']))
update_option('ddatefunc_change', "1");
else
update_option('ddatefunc_change', "0");
echo '<div id="setting-error-settings_updated" class="updated settings-error"><p><b>'.__('Settings saved.').'</b></p></div>';
}
?>
<form method="post">
<table class="form-table">
<tr valign="top">
<th scope="row">Date string:</th>
<td>
<input name="textfield" class="regular-text" type="text" value="<?php echo get_option('ddatefunc_string'); ?>" >
</td>
</tr>
<tr valign="top">
<th scope="row">Legend:</th>
<td>
<b>%DY</b> - Discordian yold (example: 3180)<br>
<b>%DS</b> - Erisian season name (example: Chaos)<br>
<b>%DD</b> - Discordian season day (example: 5th)<br>
<b>%DC</b> - Clear erisian day number (example: 5)<br>
<b>%DW</b> - Discordian week day (example: Setting Orange)<br>
<b>%GY</b> - Gregorian year (example: 2014)<br>
<b>%GM</b> - Gregorian month (example: January)<br>
<b>%GN</b> - Gregorian month number (example: 1)<br>
<b>%GD</b> - Gregorian month day (example: 5)<br>
<b>%GW</b> - Gregorian weekday (example: Friday)<br>
<br>
Examples<br>
<br>
<b>%DW, the %DD day of %DS, in the yold %DY</b><br> returns:<br><b>Setting Orange, the 5th day of Chaos, in the yold 3180</b><br>
<br>
<b>%DC %DS, %DY (%GN.%GN.%GY)</b><br> returns:<br><b>5 Chaos, 3180 (5.1.2014)</br>
</td>
</tr>
<tr valign="top">
<th scope="row">Convert all post and comments dates:</th>
<td>
<fieldset>
<legend class="screen-reader-text">
<span>Convert to Discordian dates</span>
</legend>
<label for="users_can_register">
<input name="checkbox" id="users_can_register" type="checkbox" value="1" <?php if(get_option('ddatefunc_change')==1) { echo 'checked="checked"'; } ?>>
</label>
</fieldset>
</td>
</tr>
</table>
<div class="submit">
<input name="save" type="submit" class="button-primary" value="<?php echo __('Save Cganges'); ?>" />
</div>
</form>
</div>
<?php
}
function ddatefunc_settings( $actions, $plugin_file ) {
if( false === strpos( $plugin_file, basename(__FILE__) ) )
return $actions;
$settings_link = '<a href="options-general.php?page=ddatefunc.php' .'">Settings</a>';
array_unshift( $actions, $settings_link );
return $actions;
}
function ddatefunc_deinstall() {
delete_option('ddatefunc_string');
delete_option('ddatefunc_change');
}
add_shortcode( 'today_ddate', 'return_today_ddate' );
add_action( 'widgets_init', 'register_ddatefunc_widget' ); add_action( 'widgets_init', 'register_ddatefunc_widget' );
add_filter( 'get_the_date','get_the_ddate_post' ); add_option( 'ddatefunc_string', '%DD day of %DS, in the yold %DY');
add_filter( 'get_comment_date','get_the_ddate_comment' ); add_option( 'ddatefunc_change', '1');
add_filter( 'plugin_action_links', 'ddatefunc_settings', 10, 2 );
add_action( 'admin_menu', 'ddatefunc_add_admin' );
if ( get_option('ddatefunc_change') == '1' ) {
add_filter( 'get_the_date','get_the_ddate_post' );
add_filter( 'get_comment_date','get_the_ddate_comment' );
}
if (function_exists('register_uninstall_hook'))
register_uninstall_hook(__FILE__, 'ddatefunc_deinstall');

View File

@ -13,9 +13,9 @@ Also provides shortcode and widget which displays the current date according to
== Description == == Description ==
This plugin allows WordPress to easily show Erisian dates instead of the standard Gregorian dates. No theme changes are required. This plugin allows WordPress to easily show customizable Erisian dates instead of the standard Gregorian dates. No theme changes are required.
The Discordian Date plugin provides a widget which will display the current date according to the [Discordian calendar](http://en.wikipedia.org/wiki/Discordian_calendar). This functional based on the Discordian Date plugin by Dan Johnson. The Discordian Date Function plugin provides a widget which will display the current date according to the [Discordian calendar](http://en.wikipedia.org/wiki/Discordian_calendar). This functional based on the Discordian Date plugin by Dan Johnson.
And you can add the shortcode [today_ddate] in posts or pages for show the Discordian date of today. And you can add the shortcode [today_ddate] in posts or pages for show the Discordian date of today.
@ -24,6 +24,7 @@ And you can add the shortcode [today_ddate] in posts or pages for show the Disco
1. Extract the files from archive. 1. Extract the files from archive.
1. Upload the folder ddatefunc and its contents to the /wp-content/plugins/ directory. 1. Upload the folder ddatefunc and its contents to the /wp-content/plugins/ directory.
1. Activate the plugin through the 'Plugins' menu in WordPress. 1. Activate the plugin through the 'Plugins' menu in WordPress.
1. Press 'Settings' for customize date string.
1. If you want to add widget: position the widget in an available area on your pages using the Widgets section of your WordPress administration control panel. 1. If you want to add widget: position the widget in an available area on your pages using the Widgets section of your WordPress administration control panel.
1. Use the widget options to give the widget any title you'd like. 1. Use the widget options to give the widget any title you'd like.
1. (Optional) if you want to add the erisian date of today than you need to add <?php today_ddate() ?> where you want. 1. (Optional) if you want to add the erisian date of today than you need to add <?php today_ddate() ?> where you want.
@ -40,10 +41,19 @@ Feel free to ask any questions about this plugin at the [Discordian Date Functio
== Changelog == == Changelog ==
= 0.55 =
*Release Date - 5th day of Discord, 3183*
* Fixed names of some Whollydays.
* Add settings page.
* Add customizable date string.
= 0.5 = = 0.5 =
*Release Date - 2nd day of Discord, 3183*
* First public release. * First public release.
== Upgrade Notice == == Upgrade Notice ==
= 0.5 = = 0.55 =
This version is the first public release. This version is actual.