@@ -447,12 +465,12 @@ Examples
Settings';
- array_unshift( $actions, $settings_link );
+ array_unshift($actions, $settings_link);
return $actions;
}
@@ -461,27 +479,36 @@ function ddatefunc_deinstall() {
delete_option('ddatefunc_change');
delete_option('dtimefunc_change');
delete_option('dtime_convert');
+ delete_option('dtime_widget');
}
-add_shortcode( 'today_ddate', 'return_today_ddate' );
-add_action( 'widgets_init', 'register_ddatefunc_widget' );
-add_option( 'ddatefunc_string', '%DD day of %DS, in the yold %DY');
-add_option( 'ddatefunc_change', '1');
-add_option( 'dtimefunc_change', '1');
-add_option( 'dtime_convert', '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' );
+function ddatefunc_init() {
+ wp_enqueue_script('dtime', plugins_url('/dtime.js', __FILE__));
}
-if ( get_option('dtimefunc_change') == '1' ) {
- add_filter( 'get_the_time','get_the_dtime_post' );
- add_filter( 'get_comment_time','get_the_dtime_comment' );
+add_shortcode('today_ddate', 'return_today_ddate');
+add_action('widgets_init', 'register_ddatefunc_widget');
+add_option('ddatefunc_string', '%DD day of %DS, in the yold %DY');
+add_option('ddatefunc_change', '1');
+add_option('dtimefunc_change', '1');
+add_option('dtime_convert', '1');
+add_option('dtime_widget', '1');
+
+add_filter('plugin_action_links', 'ddatefunc_settings', 10, 2);
+add_action('admin_menu', 'ddatefunc_add_admin');
+
+if (get_option('ddatefunc_change')) {
+ add_filter('get_the_date','get_the_ddate_post');
+ add_filter('get_comment_date','get_the_ddate_comment');
}
+if (get_option('dtimefunc_change')) {
+ add_filter('get_the_time','get_the_dtime_post');
+ add_filter('get_comment_time','get_the_dtime_comment');
+}
+
+if (get_option('dtime_widget'))
+ add_action('wp_enqueue_scripts','ddatefunc_init');
+
if (function_exists('register_uninstall_hook'))
register_uninstall_hook(__FILE__, 'ddatefunc_deinstall');
diff --git a/dtime.js b/dtime.js
new file mode 100644
index 0000000..8eb46e0
--- /dev/null
+++ b/dtime.js
@@ -0,0 +1,197 @@
+/*
+* https://gitlab.com/zlax/dtime-js
+* based on:
+*
+* REAL-TIME CLOCK (c) 2009 por Tiago Madeira (http://tiagomadeira.com/)
+* Idealizado por Santaum (http://santaum.org/)
+*
+* All Hail Eris!
+*
+* 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 3 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, see .
+*/
+
+function az(x) {
+ if (x < 10)
+ return "0"+x;
+ return x;
+}
+
+function ly(Y) {
+ return (Y % 4 == 0 && !(Y % 100 == 0 && Y % 400 != 0));
+}
+
+function dy(D, M, Y) {
+ var dm = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
+ if (ly(Y)) {
+ dm[1] = 29;
+ }
+ var d = D;
+ for (var i = 0; i < M-1; i++) {
+ d+= dm[i]
+ }
+ return d;
+}
+
+function dtime(gregorianDate,resultar="default") {
+ // Easter Island Winter Time Zone offset (-5*60*60*1000)
+ var date = new Date(gregorianDate.getTime()-18000000);
+
+ var D = date.getUTCDate();
+ var M = date.getUTCMonth()+1;
+ var Y = date.getUTCFullYear();
+ var d = dy(D, M, Y);
+ var sttiby = 0;
+ if (ly(Y)) {
+ if (d == 60) {
+ sttiby = 1;
+ } else if (d > 60) {
+ d--;
+ }
+ }
+ M = Math.floor(d/73);
+ D = d % 73;
+ if (D == 0) {
+ M--;
+ D = 73;
+ }
+ var ddaystr = dday(D,M,d,sttiby);
+ var seasonnum = M+1;
+ switch (M) {
+ case 0:
+ M = "Chaos";
+ break;
+ case 1:
+ M = "Discord";
+ break;
+ case 2:
+ M = "Confusion";
+ break;
+ case 3:
+ M = "Bureaucracy";
+ break;
+ case 4:
+ M = "Aftermath";
+ break;
+ default:
+ M = "fnord";
+ }
+ Y+= 1166;
+ if (sttiby) {
+ var ddatestr = "St. Tib's Day, "+Y+" YOLD";
+ } else {
+ var ddatestr = M+" "+az(D)+", "+Y+" YOLD";
+ }
+ var h = date.getUTCHours();
+ var m = date.getUTCMinutes();
+ var s = date.getUTCSeconds();
+ var ms = date.getUTCMilliseconds();
+ var e = h*3600000+m*60000+s*1000+ms;
+ var ds = Math.round(e/864);
+ h = Math.floor(ds/10000);
+ ds%= 10000;
+ m = Math.floor(ds/100);
+ ds%= 100;
+ s = ds;
+ switch (resultar) {
+ case "shortsec":
+ return [ddatestr, h+":"+az(m), ":"+az(s), ddaystr];
+ break;
+ case "ddatetime":
+ return [Y, seasonnum, D, h, m, s];
+ break;
+ case "dtimeonly":
+ return h+":"+az(m)+":"+az(s);
+ break;
+ default:
+ var dtimestr = h+":"+az(m)+":"+az(s);
+ return [ddatestr, dtimestr, ddaystr];
+ break;
+ }
+}
+
+function dday(day, season, yearday, sttiby) {
+ var day_list = ["Sweetmorn", "Boomtime", "Pungenday", "Prickle-Prickle", "Setting Orange"];
+ var dweekday = day_list[((yearday-1)%5)];
+ var ddaystr = dweekday;
+ var a_holiday = ["Mungday", "Mojoday", "Syaday", "Zaraday", "Maladay"];
+ var s_holiday = ["Chaoflux", "Discoflux", "Confuflux", "Bureflux", "Afflux"];
+ var m_holiday = ["Chaomas", "Discomas", "Confumas", "Buremas", "Afmas"];
+ var t_holiday = ["Chaosloth", "Discosloth", "Confusloth", "Buresloth", "Afsloth"];
+ var e_holiday = ["Mungeye", "Mojeye", "Syadeye", "Zareye", "Maleye"];
+ if (sttiby) ddaystr = "Celebrate St. Tib's Day";
+ else if (day == 5) ddaystr += ", Celebrate " + a_holiday[season];
+ else if (day == 23) ddaystr += ", Celebrate " + m_holiday[season];
+ else if (day == 27) ddaystr += ", Celebrate " + t_holiday[season];
+ else if (day == 50) ddaystr += ", Celebrate " + s_holiday[season];
+ else if (day == 73) ddaystr += ", Celebrate " + e_holiday[season];
+ else if (season == 0 && day == 8) ddaystr += ", Celebrate Death of Emperor Norton";
+ else if (season == 0 && day == 10) ddaystr += ", Celebrate Backwards/Binary Day";
+ else if (season == 0 && day == 11) ddaystr += ", Celebrate RAW Day";
+ else if (season == 0 && day == 14) ddaystr += ", Celebrate Golden Apple Presentation Day";
+ else if (season == 0 && day == 17) ddaystr += ", Celebrate Joshmas";
+ else if (season == 0 && day == 18) ddaystr += ", Celebrate Pat Pineapple Day";
+ else if (season == 0 && day == 21) ddaystr += ", Celebrate Hug Day";
+ else if (season == 0 && day == 26) ddaystr += ", Celebrate Backwards Day, Traditional";
+ else if (season == 0 && day == 37) ddaystr += ", Celebrate Aaron Burr’s Birthday";
+ else if (season == 0 && day == 51) ddaystr += ", Celebrate Pet Loving Day";
+ else if (season == 0 && day == 69) ddaystr += ", Celebrate Chicken Head Day";
+ else if (season == 0 && day == 72) ddaystr += ", Celebrate Daytime";
+ else if (season == 1 && day == 4) ddaystr += ", Celebrate Grover Cleveland’s Birthday";
+ else if (season == 1 && day == 11) ddaystr += ", Celebrate Discordians for Jesus/Love Your Neighbor Day";
+ else if (season == 1 && day == 18) ddaystr += ", Celebrate Fool’s Day";
+ else if (season == 1 && day == 19) ddaystr += ", Celebrate St. John the Blasphemist’s Day";
+ else if (season == 1 && day == 34) ddaystr += ", Celebrate Omarmas";
+ else if (season == 1 && day == 43) ddaystr += ", Celebrate Universal Ordination Day";
+ else if (season == 1 && day == 68) ddaystr += ", Celebrate Mal-2mas";
+ else if (season == 1 && day == 70) ddaystr += ", Celebrate Jake Day Jr./Day of the Elppin";
+ else if (season == 1 && day == 72) ddaystr += ", Celebrate Towel Day";
+ else if (season == 2 && day == 26) ddaystr += ", Celebrate Imaginary Friend Day";
+ else if (season == 2 && day == 28) ddaystr += ", Celebrate St. George’s Day";
+ else if (season == 2 && day == 30) ddaystr += ", Celebrate Zoog Day";
+ else if (season == 2 && day == 37) ddaystr += ", Celebrate Mid-Year’s Day";
+ else if (season == 2 && day == 40) ddaystr += ", Celebrate X-Day";
+ else if (season == 2 && day == 55) ddaystr += ", Celebrate Mal-2 Day";
+ else if (season == 2 && day == 57) ddaystr += ", Celebrate John Dillinger Day";
+ else if (season == 3 && day == 3) ddaystr += ", Celebrate Multiversal Underwear Day";
+ else if (season == 3 && day == 10) ddaystr += ", Celebrate St. Cecil Day";
+ else if (season == 3 && day == 18) ddaystr += ", Celebrate Spanking Fest";
+ else if (season == 3 && day == 33) ddaystr += ", Celebrate Pussyfoot Day";
+ else if (season == 3 && day == 37) ddaystr += ", Celebrate Mass of Planet Eris/Mass of Eristotle";
+ else if (season == 3 && day == 39) ddaystr += ", Celebrate St. Mammes's Day";
+ else if (season == 3 && day == 41) ddaystr += ", Celebrate Emperor Norton Proclamation Day";
+ else if (season == 3 && day == 55) ddaystr += ", Celebrate Feast of St. John Blasphemist";
+ else if (season == 3 && day == 57) ddaystr += ", Celebrate Shamlicht Kids Club Day";
+ else if (season == 3 && day == 59) ddaystr += ", Celebrate Gonculator Day";
+ else if (season == 3 && day == 60) ddaystr += ", Celebrate Mad Hatter Day";
+ else if (season == 3 && day == 66) ddaystr += ", Celebrate Habeas Corpus Remembrance Day";
+ else if (season == 4 && day == 17) ddaystr += ", Celebrate Pope Night";
+ else if (season == 4 && day == 28) ddaystr += ", Celebrate Ek-sen-triks CluborGuild Day";
+ else if (season == 4 && day == 37) ddaystr += ", Celebrate 537 Day";
+ else if (season == 4 && day == 40) ddaystr += ", Celebrate Omar Day";
+ else if (season == 4 && day == 43) ddaystr += ", Celebrate Day D";
+ else if (season == 4 && day == 46) ddaystr += ", Celebrate Hug Day II";
+ else if (season == 4 && day == 56) ddaystr += ", Celebrate Agnostica";
+ else if (season == 4 && day == 65) ddaystr += ", Celebrate Circlemas";
+ return ddaystr;
+}
+
+function go() {
+ document.getElementById("dtime").innerHTML = dtime(new Date(), "dtimeonly");
+}
+
+window.onload = function() {
+ go();
+ // 1 discordian decimal second = 864 christian milliseconds
+ setInterval(go, 864);
+}
diff --git a/readme.txt b/readme.txt
index ee14324..efd6ede 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,21 +1,21 @@
=== Discordian Date Function ===
Contributors: zlaxyi
Donate link: https://is3.soundragon.su/discordian-date-function
-Tags: date, time, discordian, erisian, widget, eris, discordia, calendar
+Tags: date, time, discordian, erisian, widget, eris, discordia, calendar, ddate, dtime
Requires at least: 2.0
-Tested up to: 5.4
+Tested up to: 6.0
Stable tag: trunk
License: DWTWL 2.55
License URI: https://soundragon.su/license/license.html
This plugin provides Erisian (Discordian) dates and time in Wordpress.
-Also provides shortcode and widget which displays the current date according to the Discordian calendar, with notification of more than 70 holidays.
+Also provides shortcode and widget which displays the current date according to the Discordian calendar, with notification of more than 70 holidays and clock.
== Description ==
This plugin allows WordPress to easily show customizable Erisian dates and time (decimal) instead of the standard Gregorian dates. No theme changes are required.
-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.
+The Discordian Date Function plugin provides a widget which will display the current Erisian time and 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.
@@ -41,10 +41,15 @@ Feel free to ask any questions about this plugin at the [Discordian Date Functio
== Changelog ==
+= 2.555 =
+*Release Date - 52nd day of Confusion, 3188*
+
+* Add optional Erisian time clock to the widget.
+
= 2.5 =
*Release Date - 21st day of Discord, 3186*
-* Add optional [Erisian (decimal) time](https://www.reddit.com/r/Time/comments/fhys8v/erisian_time/) support
+* Add optional [Erisian (decimal) time](https://www.reddit.com/r/Time/comments/fhys8v/erisian_time/) support.
= 0.555 =
*Release Date - 60th day of Chaos, 3186*
@@ -66,5 +71,5 @@ Feel free to ask any questions about this plugin at the [Discordian Date Functio
== Upgrade Notice ==
-= 2.5 =
+= 2.555 =
This version is actual.