diff --git a/ddatefunc.php b/ddatefunc.php index c4369fb..c95a117 100644 --- a/ddatefunc.php +++ b/ddatefunc.php @@ -21,7 +21,7 @@ function get_ddate($content, $format = "", $originalRequest = null) { case "get_the_date": case "get_the_time": $post = get_post( $format ); - if ( get_option('dtime_convert') == '1' ) + if (get_option('dtime_convert')) $standard_date = utcm5_convert(mysql2date( 'U', $post->post_date_gmt )); else $standard_date = getdate (mysql2date( 'U', $post->post_date )); @@ -29,13 +29,13 @@ function get_ddate($content, $format = "", $originalRequest = null) { case "get_comment_date": case "get_comment_time": $comment = get_comment( $format ); - if ( get_option('dtime_convert') == '1' ) + if (get_option('dtime_convert')) $standard_date = utcm5_convert(mysql2date( 'U', $comment->comment_date_gmt )); else $standard_date = getdate (mysql2date( 'U', $comment->comment_date )); break; case "now": - if ( get_option('dtime_convert') == '1' ) + if (get_option('dtime_convert')) $standard_date = utcm5_convert(getdate()[0]); else $standard_date = getdate(); @@ -284,6 +284,7 @@ class Discordian_Date_Widget extends WP_Widget { echo "
Today is "; echo get_ddate($content, $format, "now")."."; if ($holiday) echo "
".$holiday.""; + if (get_option('dtime_widget')) echo "

5:55:55

"; echo "
"; $body2 = ob_get_contents(); ob_end_clean(); @@ -364,6 +365,10 @@ function ddatefunc_admin() { update_option('dtime_convert', "1"); else update_option('dtime_convert', "0"); + if (isset($_POST['dtime_widget_checkbox'])) + update_option('dtime_widget', "1"); + else + update_option('dtime_widget', "0"); echo '

'.__('Settings saved.').'

'; } ?> @@ -438,6 +443,19 @@ Examples
+ + Show Erisian time clock in the widget: + +
+ + Erisian time in the widget + + +
+ +
@@ -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.