<?php
/*
Plugin Name: XyzzyB DateDiff
Plugin URI: http://wiki.xyzzyb.com/XyzzyBDateDiff
Description: Displays the difference between the current date and specified dates (either upcoming or previous)
Version: 1.6
Author: Stephen Ball
Author URI: http://blog.xyzzyb.com
*/
/* Changelog 1.5 -> 1.6
BUGFIX
+ updated database use to comply with Wordpress 2.1
/* Changelog 1.4 -> 1.5
FEATURES
+ options for text directly after current, upcoming, and past events
- option to add the text before or after the recurring (year)
- only displays IF show year for recurring events is selected
+ option to show recurring events (yes, no)
!+ option for current event list header text
UI
+ options page design tweak
- change order of past events option now only displays if event order is set to "Number of Days"
BUGFIX
+ slashes are now striped from event titles (e.g. Sarah's Birthday would display as Sarah/'s Birthday)
*/
/* Future Features
+ option to interweave the events
*/
function xyzzyb_datediff_call_event
($today,
$upcoming,
$past) {
$current_settings=get_option
('xyzzyb_datediff_options');
$separator=
$current_settings['event_separator'];
$current_event_header=
$current_settings['current_event_header'];
$current_follow=
$current_settings['current_event_follow_text'];
$upcoming_follow=
$current_settings['upcoming_event_follow_text'];
$past_follow=
$current_settings['past_event_follow_text'];
if ($current_settings['event_order_by']) {
$event_order_by=
$current_settings['event_order_by'];
}
if ($current_settings['upcoming_event_order']) {
$upcoming_event_order=
$current_settings['upcoming_event_order'];
}
if ($current_settings['past_event_order']) {
$past_event_order=
$current_settings['past_event_order'];
}
print '<ul class="xyzzyb_datediff_list">' .
"\n";
if (is_array($today)) {
print '<li><span class="xyzzyb_datediff_current">' .
$current_event_header .
"\n" .
'<ul class="xyzzyb_datediff_today_list">';
foreach ($today as $event) {
xyzzyb_datediff_today
($event);
}
print '</ul></li>';
}
print "$separator\n";
if (is_array($upcoming)) {
if ($event_order_by ==
'diff') {
if ($upcoming_event_order ==
'ASC') {
asort($upcoming);
}
else {
arsort($upcoming);
}
}
foreach ($upcoming as $event=>
$diff) {
xyzzyb_datediff_event
($diff,
$event,
true);
}
}
print "$separator\n";
if (is_array($past)) {
if ($event_order_by ==
'diff') {
if ($past_event_order ==
'ASC') {
asort($past);
}
else {
arsort($past);
}
}
foreach ($past as $event=>
$diff) {
xyzzyb_datediff_event
($diff,
$event,
false);
}
}
print '</ul>';
}
//2007-03-10 : as of wordpress 2.1 $table_* variables are no longer used
function xyzzyb_datediff_display
() {
//global $table_prefix,$wpdb;
global $wpdb;
$current_settings=get_option
('xyzzyb_datediff_options');
$current_follow_text=
$current_settings['current_event_follow_text'];
$upcoming_follow_text=
$current_settings['upcoming_event_follow_text'];
$past_follow_text=
$current_settings['past_event_follow_text'];
$text_after_year=
$current_settings['text_after_year'];
$datediff_table =
$wpdb->
prefix .
"xyzzyb_datediff";
if ($current_settings['event_order_by']) {
$event_order_by=
$current_settings['event_order_by'];
}
else {
$event_order_by=
'date';
}
if ($current_settings['upcoming_event_order']) {
$event_order=
$current_settings['upcoming_event_order'];
}
else {
$upcoming_event_order=
'ASC';
}
$events =
$wpdb->
get_results("SELECT id,event,date,recurring,DATEDIFF(CURRENT_DATE,date) diff FROM $datediff_table ORDER BY $event_order_by $event_order");
foreach ($events as $event) {
if ($event->
recurring &&
$current_settings['display_recurring_events']) {
$show_year=
$current_settings['show_year'];
$event_month=
$wpdb->
get_var("SELECT EXTRACT(MONTH FROM date) FROM $datediff_table WHERE id=$event->id");
$event_day=
$wpdb->
get_var("SELECT EXTRACT(DAY FROM date) FROM $datediff_table WHERE id=$event->id");
$current_year=
$wpdb->
get_var("SELECT EXTRACT(YEAR FROM CURRENT_DATE)");
$recurring_diff=
$wpdb->
get_var("SELECT DATEDIFF(CURRENT_DATE,'$current_year-$event_month-$event_day')");
if (round($current_settings['display_upcoming_events_timeframe'] /
365) <
1) {
$years_to_advance=
1;
}
else {
$years_to_advance=
round($current_settings['display_upcoming_events_timeframe'] /
365);
}
if (round($current_settings['display_past_events_timeframe'] /
365) <
1) {
$years_to_goback=
1;
}
else {
$years_to_goback=
round($current_settings['display_past_events_timeframe'] /
365);
}
# if recurring_diff < 0 == upcoming; if recurring_diff > 0 == prior; if == 0 today
# RECURRING AND CURRENT
if ($recurring_diff==
0 &&
$current_settings['display_current_events']) {
$today_events[]=
$event->
event .
$current_follow_text;
$event_year=
$current_year;
for ($i=
0;
$i<
$years_to_advance;
$i++
) {
$event_year++;
$recurring_diff=
$wpdb->
get_var("SELECT DATEDIFF(CURRENT_DATE,'$event_year-$event_month-$event_day')");
if ($recurring_diff<
0 &&
$current_settings['display_upcoming_events'] &&
abs($recurring_diff)<
$current_settings['display_upcoming_events_timeframe']) {
if ($show_year) {
if ($text_after_year) {
$r_event=
"$event->event" .
"($event_year)$upcoming_follow_text";
}
else {
$r_event=
"$event->event" .
"$upcoming_follow_text ($event_year)";
}
}
else {
$r_event=
$event->
event .
$upcoming_follow_text;
}
$upcoming_events[$r_event]=
abs($recurring_diff);
}
}
$event_year=
$current_year;
for ($i=
0;
$i<
$years_to_goback;
$i++
) {
$event_year--;
$recurring_diff=
$wpdb->
get_var("SELECT DATEDIFF(CURRENT_DATE,'$event_year-$event_month-$event_day')");
if ($recurring_diff>
0 &&
$current_settings['display_past_events'] &&
abs($recurring_diff)<
$current_settings['display_past_events_timeframe']) {
if ($show_year) {
if ($text_after_year) {
$r_event=
"$event->event ($event_year)" .
"$past_follow_text";
}
else {
$r_event=
"$event->event" .
"$past_follow_text ($event_year)";
}
}
else {
$r_event=
$event->
event .
$past_follow_text;
}
$past_events[$r_event]=
abs($recurring_diff);
}
}
}
# RECURRING AND UPCOMING
elseif ($recurring_diff<
0) {
$event_year=
$current_year;
if ($show_year) {
if ($text_after_year) {
$r_event=
"$event->event" .
"($event_year)$upcoming_follow_text";
}
else {
$r_event=
"$event->event" .
"$upcoming_follow_text ($event_year)";
}
}
else {
$r_event=
$event->
event .
$upcoming_follow_text;
}
if ($current_settings['display_upcoming_events'] &&
abs($recurring_diff)<
$current_settings['display_upcoming_events_timeframe']) {
$upcoming_events[$r_event]=
abs($recurring_diff);
}
$event_year=
$current_year;
for ($i=
0;
$i<
$years_to_advance;
$i++
) {
$event_year++;
$recurring_diff=
$wpdb->
get_var("SELECT DATEDIFF(CURRENT_DATE,'$event_year-$event_month-$event_day')");
if ($recurring_diff<
0 &&
$current_settings['display_upcoming_events'] &&
abs($recurring_diff)<
$current_settings['display_upcoming_events_timeframe']) {
if ($show_year) {
if ($text_after_year) {
$r_event=
"$event->event" .
"($event_year)$upcoming_follow_text";
}
else {
$r_event=
"$event->event" .
"$upcoming_follow_text ($event_year)";
}
}
else {
$r_event=
$event->
event .
$upcoming_follow_text;
}
$upcoming_events[$r_event]=
abs($recurring_diff);
}
}
$event_year=
$current_year;
for ($i=
0;
$i<
$years_to_goback;
$i++
) {
$event_year--;
$recurring_diff=
$wpdb->
get_var("SELECT DATEDIFF(CURRENT_DATE,'$event_year-$event_month-$event_day')");
if ($recurring_diff>
0 &&
$current_settings['display_past_events'] &&
abs($recurring_diff)<
$current_settings['display_past_events_timeframe']) {
if ($show_year) {
if ($text_after_year) {
$r_event=
"$event->event ($event_year)" .
"$past_follow_text";
}
else {
$r_event=
"$event->event" .
"$past_follow_text ($event_year)";
}
}
else {
$r_event=
$event->
event .
$past_follow_text;
}
$past_events[$r_event]=
abs($recurring_diff);
}
}
}
# RECURRING AND PAST
elseif ($recurring_diff>
0) {
$event_year=
$current_year;
if ($show_year) {
if ($text_after_year) {
$r_event=
"$event->event ($event_year)" .
"$past_follow_text";
}
else {
$r_event=
"$event->event" .
"$past_follow_text ($event_year)";
}
}
else {
$r_event=
$event->
event .
$past_follow_text;
}
if ($current_settings['display_past_events'] &&
abs($recurring_diff)<
$current_settings['display_past_events_timeframe']) {
$past_events[$r_event]=
$recurring_diff;
}
$event_year=
$current_year;
for ($i=
0;
$i<
$years_to_advance;
$i++
) {
$event_year++;
$recurring_diff=
$wpdb->
get_var("SELECT DATEDIFF(CURRENT_DATE,'$event_year-$event_month-$event_day')");
if ($recurring_diff<
0 &&
$current_settings['display_upcoming_events'] &&
abs($recurring_diff)<
$current_settings['display_upcoming_events_timeframe']) {
if ($show_year) {
if ($text_after_year) {
$r_event=
"$event->event" .
"($event_year)$upcoming_follow_text";
}
else {
$r_event=
"$event->event" .
"$upcoming_follow_text ($event_year)";
}
}
else {
$r_event=
$event->
event .
$upcoming_follow_text;
}
$upcoming_events[$r_event]=
abs($recurring_diff);
}
}
$event_year=
$current_year;
for ($i=
0;
$i<
$years_to_goback;
$i++
) {
$event_year--;
$recurring_diff=
$wpdb->
get_var("SELECT DATEDIFF(CURRENT_DATE,'$event_year-$event_month-$event_day')");
if ($recurring_diff>
0 &&
$current_settings['display_past_events'] &&
abs($recurring_diff)<
$current_settings['display_past_events_timeframe']) {
if ($show_year) {
if ($text_after_year) {
$r_event=
"$event->event ($event_year)" .
"$past_follow_text";
}
else {
$r_event=
"$event->event" .
"$past_follow_text ($event_year)";
}
}
else {
$r_event=
$event->
event .
$past_follow_text;
}
$past_events[$r_event]=
abs($recurring_diff);
}
}
}
}
else {
if ($event->
recurring==
false) {
if ($event->
diff==
0 &&
$current_settings['display_current_events'])
{
$event_string=
"$event->event" .
"$current_follow_text";
$today_events[]=
$event_string;
}
elseif ($event->
diff<
0 &&
$current_settings['display_upcoming_events'] &&
abs($event->
diff)<
$current_settings['display_upcoming_events_timeframe']) {
$event_string=
"$event->event" .
"$upcoming_follow_text";
$upcoming_events[$event_string]=
abs($event->
diff);
}
elseif ($event->
diff>
0 &&
$current_settings['display_past_events'] &&
abs($event->
diff)<
$current_settings['display_past_events_timeframe']) { #event is in the past
$event_string=
"$event->event" .
"$past_follow_text";
$past_events[$event_string]=
abs($event->
diff);
}
}
}
}
xyzzyb_datediff_call_event
($today_events,
$upcoming_events,
$past_events);
}
function xyzzyb_datediff_today
($event) {
$current_settings=get_option
('xyzzyb_datediff_options');
print '<li><span class="xyzzyb_datediff_current_event">' .
stripslashes($event) .
"</span></span></li>\n";
}
function xyzzyb_datediff_event
($diff,
$event,
$upcoming) {
$current_settings=get_option
('xyzzyb_datediff_options');
if ($upcoming) {
print '<li><span class="xyzzyb_datediff_days_until">' .
$diff .
'</span> day';
($diff==
1) ?
print '' :
print 's';
print ' until <span class="xyzzyb_datediff_upcoming_event">' .
stripslashes($event) .
"</span></li>\n";
}
else {
print '<li><span class="xyzzyb_datediff_days_since">' .
$diff .
'</span> day';
($diff==
1) ?
print '' :
print 's';
print ' since <span class="xyzzyb_datediff_past_event">' .
stripslashes($event) .
"</span></li>\n";
}
}
//2007-03-10 : as of wordpress 2.1 $table_* variables are no longer used
function xyzzyb_datediff_install
() {
//following two lines are originals reworked according to function header comment 2007-03-10
//global $table_prefix, $wpdb;
//$datediff_table = $table_prefix . "xyzzyb_datediff";
global $wpdb;
$datediff_table =
$wpdb->
prefix .
"xyzzyb_datediff";
if($wpdb->
get_var("show tables like '$datediff_table'") !=
$datediff_table) {
$sql=
"CREATE TABLE " .
$datediff_table .
" (
id mediumint(9) NOT NULL AUTO_INCREMENT,
event text NOT NULL,
date date NOT NULL,
recurring boolean NOT NULL,
UNIQUE KEY id (id)
);";
require_once(ABSPATH .
'wp-admin/upgrade-functions.php');
dbDelta
($sql);
$first_event =
"XyzzyB DateDiff Installation";
$first_event_date =
$wpdb->
get_var("SELECT CURRENT_DATE()");
$first_event_recurring=
"0";
$insert=
"INSERT INTO " .
$datediff_table .
"(event,date,recurring)
VALUES ('" .
$first_event .
"', '" .
$first_event_date .
"', '" .
$first_event_recurring .
"')";
$results=
$wpdb->
query( $insert );
}
//setup default options
$datediff_options['display_past_events'] =
true;
$datediff_options['display_past_events_timeframe'] =
'14';
$datediff_options['display_current_events'] =
true;
$datediff_options['display_upcoming_events'] =
true;
$datediff_options['display_upcoming_events_timeframe'] =
'14';
$datediff_options['order_option']=
'date';
$datediff_options['event_separator']=
'';
$datediff_options['current_event_follow_text']=
'';
$datediff_options['upcoming_event_follow_text']=
'';
$datediff_options['past_event_follow_text']=
'';
$datediff_options['event_order_by']=
'date';
$datediff_options['upcoming_event_order']=
'ASC';
$datediff_options['past_event_order']=
'ASC';
$datediff_options['show_year']=
false;
$datediff_options['text_after_year']=
false;
$datediff_options['display_recurring_events']=
true;
$datediff_options['current_event_header']=
'Occuring today:';
update_option
('xyzzyb_datediff_options',
$datediff_options);
update_option
('shoutbox_fade_from',
"666666");
update_option
('shoutbox_fade_to',
"FFFFFF");
update_option
('shoutbox_update_seconds',
4000);
}
function xyzzyb_datediff_add_options
() {
if (function_exists('add_options_page')) {
add_options_page
('XyzzyB DateDiff',
'XyzzyB DateDiff',
8,
basename(__FILE__),
'xyzzyb_datediff_options_subpanel');
}
}
//2007-03-10 : as of wordpress 2.1 $table_* variables are no longer used
function xyzzyb_datediff_options_subpanel
() {
//global $table_prefix, $wpdb;
global $wpdb;
$current_settings=get_option
('xyzzyb_datediff_options');
$datediff_table =
$wpdb->
prefix .
"xyzzyb_datediff";
if (isset($_POST['action'])) {
$newevent =
$wpdb->
escape($_POST['newevent']);
$newdate =
$wpdb->
escape($_POST['newdate']);
if ($_POST['recurring']==
'on') {
$recurring =
$wpdb->
escape(1);
}
else {
$recurring =
$wpdb->
escape(0);
}
if (preg_match('/\d{4}\-\d{1,2}\-\d{1,2}/',
$newdate)) {
$wpdb->
query("INSERT INTO $datediff_table (event, date, recurring) VALUES ('$newevent', '$newdate', $recurring)");
}
elseif ($newdate==
'') {
}
else {
print '<div class="error"><strong>The date must be in YYYY-MM-DD format.</div>';
$error=
true;
}
if ($_POST['delete']) {
$events_to_delete=
implode(",",
$_POST['delete']);
$delete_query=
"DELETE FROM " .
$datediff_table .
" WHERE id IN (" .
$events_to_delete .
")";
$wpdb->
query($delete_query);
}
if (!
$error) {
xyzzyb_datediff_save_options
();
print '<div class="updated"><p><strong>Dates and options saved.</strong></p></div>';
}
xyzzyb_datediff_display_options
();
}
else {
xyzzyb_datediff_display_options
();
}
}
//2007-03-10 : as of wordpress 2.1 $table_* variables are no longer used
function xyzzyb_datediff_display_options
() {
//global $table_prefix, $wpdb;
global $wpdb;
$current_settings=get_option
('xyzzyb_datediff_options');
$datediff_table =
$wpdb->
prefix .
"xyzzyb_datediff";
?>
<div
class=wrap id=
"xyzzyb_datediff_options">
<style>
fieldset.options
{
border: 1px solid
#ccc;
margin-bottom: 2em;
}
fieldset.options legend
{
font-family: Georgia,
"Times New Roman",Times,serif;
font-size: 22px;
}
fieldset.stored_events
{
border: 1px solid
#ccc;
margin-bottom: 2em;
}
fieldset.stored_events legend
{
font-family: Georgia,
"Times New Roman",Times,serif;
font-size: 22px;
}
fieldset.new_event
{
border: 1px solid
#ccc;
margin-bottom: 2em;
}
fieldset.new_event legend
{
font-family: Georgia,
"Times New Roman",Times,serif;
font-size: 22px;
}
table.stored_events th
{
border-bottom: 2px solid
#aaa;
}
.option-
header {
text-align: left;
background:
#eee;
}
</style>
<h2>XyzzyB DateDiff Configuration</h2>
<fieldset
class=
"stored_events">
<legend>Stored Events</legend>
<form method=
"post" action=
"<?php echo $_SERVER['PHP_SELF']."?
".$_SERVER['QUERY_STRING']; ?>">
<table
class=
"stored_events">
<tr><th>Event</th><th>Date</th><th>Recurring?</th><th>Delete?</th></tr>
<?php
$order_option=
$current_settings['order_option'];
$stored_events =
$wpdb->
get_results("SELECT id,event,date,recurring FROM $datediff_table ORDER BY $order_option");
foreach ($stored_events as $event) {
$event_string=
'<tr><td>' .
stripslashes($event->
event) .
'</td><td>' .
$event->
date .
'</td>';
if ($event->
recurring) {
$event_string .=
'<td align="center">yes</td>';
}
else {
$event_string .=
'<td align="center">no</td>';
}
$event_string.=
'<td align="center"><input type="checkbox" name="delete[]" value="' .
$event->
id .
'" /></td></tr>';
print $event_string;
}
?>
</table>
</fieldset>
<fieldset
class=
"new_event">
<legend>Add
New Event</legend>
<table>
<tr><td>Event name</td><td><input type=
"text" name=
"newevent" id=
"newevent" /></td>
<tr><td>Event
date (YYYY-MM-DD
)</td><td><input type=
"text" name=
"newdate" id=
"newdate" /></td>
<tr><td>Recurring?</td><td><input type=
"checkbox" name=
"recurring" id=
"recurring" /></td></tr>
</table>
</fieldset>
<fieldset
class=
"options">
<input type=
"hidden" name=
"action" value=
"save_options" />
<legend>Options</legend>
<table>
<tr><th colspan=
"2" class=
"option-header">Event Order</th></tr>
<tr>
<td>Order events by:</td>
<td>Date <input type=
"radio" name=
"event_order_by" value=
"date"
<?php if($current_settings['event_order_by']==
'date') echo 'checked';
?> />
Event <input type=
"radio" name=
"event_order_by" value=
"event"
<?php if($current_settings['event_order_by']==
'event') echo 'checked';
?> />
Number of Days <input type=
"radio" name=
"event_order_by" value=
"diff"
<?php if ($current_settings['event_order_by']==
'diff') echo 'checked';
?> />
</td>
<td><span style=
"font-size: large">
[</span>Ascending <input type=
"radio" name=
"upcoming_event_order" value=
"ASC"
<?php if($current_settings['upcoming_event_order']==
'ASC') echo 'checked';
?> />
Descending <input type=
"radio" name=
"upcoming_event_order" value=
"DESC"
<?php if($current_settings['upcoming_event_order']==
'DESC') echo 'checked';
?> /><span style=
"font-size: large;">
]</span></td>
</tr>
<?php if ($current_settings['event_order_by']==
'diff') { ?>
<tr>
<td>Past event order
(If using
"Number of Days"):</td>
<td>Ascending <input type=
"radio" name=
"past_event_order" value=
"ASC"
<?php if($current_settings['past_event_order']==
'ASC') echo 'checked';
?> />
Descending <input type=
"radio" name=
"past_event_order" value=
"DESC"
<?php if($current_settings['past_event_order']==
'DESC') echo 'checked';
?> />
</td>
</tr>
<?php } ?>
</table>
<br />
<table>
<tr><th colspan=
"2" class=
"option-header">Event Display</th></tr>
<tr>
<td>Display events on the day they occur?</td>
<td><input type=
"checkbox" name=
"display_current_events" id=
"display_current_events"
<?php if($current_settings['display_current_events'] ==
true) echo 'checked';
?> /></td>
</tr>
</tr>
<tr>
<td>Display past events?</td>
<td><input type=
"checkbox" name=
"display_past_events" id=
"display_past_events"
<?php if($current_settings['display_past_events'] ==
true) echo 'checked';
?> /></td>
</tr>
<tr>
<td>Display past events
for how long?</td>
<td><input type=
"text" size=
"2" name=
"display_past_events_timeframe" id=
"display_past_events_timeframe"
value=
"<?php print $current_settings['display_past_events_timeframe'] ?>" /></td>
</tr>
<tr>
<td>Display upcoming events?</td>
<td><input type=
"checkbox" name=
"display_upcoming_events" id=
"display_upcoming_events"
<?php if($current_settings['display_upcoming_events'] ==
true) echo 'checked';
?> /></td>
</tr>
<tr>
<td>Display upcoming events how many days in advance?</td>
<td><input type=
"text" size=
"2" name=
"display_upcoming_events_timeframe" id=
"display_upcoming_events_timeframe"
value=
"<?php print $current_settings['display_upcoming_events_timeframe'] ?>" /></td>
</tr>
<tr>
<td>Display recurring events?</td>
<td><input type=
"checkbox" name=
"display_recurring_events" id=
"display_recurring_events"
<?php if($current_settings['display_recurring_events'] ==
true) echo 'checked';
?> /></td>
</tr>
<tr>
<td>Show year after recurring event?</td>
<td><input type=
"checkbox" name=
"show_year" id=
"show_year"
<?php if($current_settings['show_year'] ==
true) echo 'checked';
?> /></td>
</tr>
</table>
<br />
<table>
<tr><th colspan=
"2" class=
"option-header">Added Text
(all text options can be blank
)</th></tr>
<tr>
<td>Text to precede
current events:</td>
<td><input type=
"text" size=
"14" name=
"current_event_header" id=
"current_event_header"
value=
"<?php print $current_settings['current_event_header'] ?>" /></td>
</td>
</tr>
<tr>
<td>Text to separate event groups:</td>
<td><input type=
"text" size=
"6" name=
"event_separator" id=
"event_separator"
value=
"<?php print $current_settings['event_separator'] ?>" /></td>
</td>
</tr>
<tr>
<td>Text to follow
current events:</td>
<td><input type=
"text" size=
"6" name=
"current_event_follow_text" id=
"current_event_follow_text"
value=
"<?php print $current_settings['current_event_follow_text'] ?>" /></td>
</td>
</tr>
<tr>
<td>Text to follow upcoming events:</td>
<td><input type=
"text" size=
"6" name=
"upcoming_event_follow_text" id=
"upcoming_event_follow_text"
value=
"<?php print $current_settings['upcoming_event_follow_text'] ?>" /></td>
</td>
</tr>
<tr>
<td>Text to follow past events:</td>
<td><input type=
"text" size=
"6" name=
"past_event_follow_text" id=
"past_event_follow_text"
value=
"<?php print $current_settings['past_event_follow_text'] ?>" /></td>
</td>
</tr>
<?php if ($current_settings['show_year']) {?>
<tr><td>Insert text after
(year
) for recurring events?</td>
<td><input type=
"checkbox" name=
"text_after_year" id=
"text_after_year"
<?php if($current_settings['text_after_year'] ==
true) echo 'checked';
?> /></td>
</tr>
<?php } ?>
</table>
<hr />
<table>
<tr>
<td>Order <em>Stored Events</em> display in this options page by:</td>
<td>Date <input type=
"radio" name=
"order_option" value=
"date"
<?php if($current_settings['order_option']==
'date') echo 'checked';
?> />
Event <input type=
"radio" name=
"order_option" value=
"event"
<?php if($current_settings['order_option']==
'event') echo 'checked';
?> /></td>
</tr>
</table>
</fieldset>
<div
class=
"submit">
<input type=
"submit" name=
"info_update" value=
"<?php
_e('Update', 'Localization name')
?>" /></div>
</form>
</div>
<?php
}
function xyzzyb_datediff_save_options
() {
if (array_key_exists('display_past_events',
$_POST)) {
$datediff_options['display_past_events'] =
true;
}
else {
$datediff_options['display_past_events'] =
false;
}
$datediff_options['display_past_events_timeframe']=
$_POST['display_past_events_timeframe'];
if (array_key_exists('display_current_events',
$_POST)) {
$datediff_options['display_current_events'] =
true;
}
else {
$datediff_options['display_current_events'] =
false;
}
if (array_key_exists('display_upcoming_events',
$_POST)) {
$datediff_options['display_upcoming_events'] =
true;
}
else {
$datediff_options['display_upcoming_events'] =
false;
}
$datediff_options['display_upcoming_events_timeframe']=
$_POST['display_upcoming_events_timeframe'];
$datediff_options['order_option']=
$_POST['order_option'];
$datediff_options['event_separator']=
$_POST['event_separator'];
$datediff_options['current_event_header']=
$_POST['current_event_header'];
$datediff_options['current_event_follow_text']=
$_POST['current_event_follow_text'];
$datediff_options['upcoming_event_follow_text']=
$_POST['upcoming_event_follow_text'];
$datediff_options['past_event_follow_text']=
$_POST['past_event_follow_text'];
$datediff_options['event_order_by']=
$_POST['event_order_by'];
$datediff_options['upcoming_event_order']=
$_POST['upcoming_event_order'];
$datediff_options['past_event_order']=
$_POST['past_event_order'];
if (array_key_exists('show_year',
$_POST)) {
$datediff_options['show_year']=
true;
}
else {
$datediff_options['show_year']=
false;
}
if (array_key_exists('display_recurring_events',
$_POST)) {
$datediff_options['display_recurring_events']=
true;
}
else {
$datediff_options['display_recurring_events']=
false;
}
if (array_key_exists('text_after_year',
$_POST)) {
$datediff_options['text_after_year']=
true;
}
else {
$datediff_options['text_after_year']=
false;
}
update_option
('xyzzyb_datediff_options',
$datediff_options);
update_option
('shoutbox_fade_from',
"666666");
update_option
('shoutbox_fade_to',
"FFFFFF");
update_option
('shoutbox_update_seconds',
4000);
}
if (!get_option
('xyzzyb_datediff_options')){
// create default options
$datediff_options['display_past_events'] =
true;
$datediff_options['display_past_events_timeframe'] =
'14';
$datediff_options['display_current_events'] =
true;
$datediff_options['display_upcoming_events'] =
true;
$datediff_options['display_upcoming_events_timeframe'] =
'14';
$datediff_options['order_option']=
'date';
$datediff_options['event_separator']=
'';
$datediff_options['current_event_follow_text']=
'';
$datediff_options['upcoming_event_follow_text']=
'';
$datediff_options['past_event_follow_text']=
'';
$datediff_options['event_order_by']=
'date';
$datediff_options['upcoming_event_order']=
'ASC';
$datediff_options['past_event_order']=
'ASC';
$datediff_options['show_year']=
false;
$datediff_options['text_after_year']=
false;
$datediff_options['display_recurring_events']=
true;
$datediff_options['current_event_header']=
'Occuring today:';
update_option
('xyzzyb_datediff_options',
$datediff_options);
}
if (function_exists('add_action')) {
add_action
('admin_menu',
'xyzzyb_datediff_add_options');
add_action
('activate_xyzzyb_datediff.php',
'xyzzyb_datediff_install');
}