. */ add_action("widgets_init", array('eCalList', 'register')); class eCalList { function control(){ $options = get_option('alien_event_widget'); ?>

prefix . "alevents"; echo $args['before_widget']; echo $args['before_title'] . 'Event List' . $args['after_title']; $options = get_option('alien_event_widget'); $cats = $options['cats']; $limit = $options['many']; $getthese = "("; $i = 0; if ($cats) { foreach ($cats as $catid) { $subcats = get_categories('parent='.$catid.'&hide_empty=0'); foreach ($subcats as $subvalue) { $getthese .= "event_cat = '" . $subvalue->term_id . "' ||"; $gcats = get_categories('parent='.$subvalue->term_id.'&hide_empty=0'); foreach ($gcats as $gvalue) { $getthese .= "event_cat = '" . $gvalue->term_id . "' ||"; } } $i++; if ($i == count($cats)) { $getthese .= "event_cat = '".$catid."'"; } else { $getthese .= "event_cat = '".$catid."' || "; } } } $getthese .= ") && active = '1'"; if ($listQuery = mysql_query("SELECT * FROM " . $event_table . " WHERE " . $getthese . " ORDER BY event_date, event_start LIMIT 50")) { if (mysql_num_rows($listQuery)) { while ($event = mysql_fetch_array($listQuery)) { if ($event['event_repeat'] == "once") { if ($event['event_date'] >= strtotime(date('d F Y'))) { $dates[$event['event_date']][$event['event_id']] = $event['event_name']; } } else if ($event['event_repeat'] == "daily") { if (!$event['end_date'] || $event['end_date'] >= strtotime(date('d F Y'))) { $date = strtotime(date('d F Y')); $dates['$date'][$event['event_id']] = $event['event_name']; } } else if ($event['event_repeat'] == "weekly") { if (!$event['end_date'] || $event['end_date'] >= strtotime(date('d F Y'))) { if (date('l') == date('l', $event['event_date'])) { $nextday = strtotime(date('d F Y')); } else { $nextday = strtotime("next " . date('l', $event['event_date'])); } $dates[$nextday][$event['event_id']] = $event['event_name']; } } else if ($event['event_repeat'] == "monthly") { if (!$event['end_date'] || $event['end_date'] >= strtotime(date('d F Y'))) { if (strtotime(date('d F Y')) > $event['event_date']) { $nextday = mktime(0, 0, 0, date('m')+1, date('d', $event['event_date']), date('Y')); } else { $nextday = $event['event_date']; } $dates[$nextday][$event['event_id']] = $event['event_name']; } } else if ($event['event_repeat'] == "yearly") { if (!$event['end_date'] || $event['end_date'] >= strtotime(date('d F Y'))) { if (strtotime(date('d F Y')) > $event['event_date']) { $nextday = mktime(0, 0, 0, date('m'), date('d', $event['event_date']), date('Y')+1); } else { $nextday = $event['event_date']; } $dates[$nextday][$event['event_id']] = $event['event_name']; } } else { if (!$event['end_date'] || $event['end_date'] >= strtotime(date('d F Y'))) { $date = strtotime(date('d F Y')); $first = date('d', mktime(0, 0, 0, date('m', $date), 0, date('Y', $date))); if ($first > 1) { $nextdate = strtotime("".$event['event_repeat']."" , mktime(0, 0, 0, date('m', $date), 1, date('Y', $date))); } else { $nextdate = strtotime("".$event['event_repeat']."" , mktime(0, 0, 0, date('m', $date), 0, date('Y', $date))); } if ($nextdate < $date) { $first = date('d', mktime(0, 0, 0, date('m', $date)+1, 0, date('Y', $date))); if ($first > 1) { $nextdate = strtotime("".$event['event_repeat']."" , mktime(0, 0, 0, date('m', $date)+1, 1, date('Y', $date))); } else { $nextdate = strtotime("".$event['event_repeat']."" , mktime(0, 0, 0, date('m', $date)+1, 0, date('Y', $date))); } } $dates[$nextdate][$event['event_id']] = $event['event_name']; } } } } } echo ''; echo $args['after_widget']; } function register(){ wp_register_sidebar_widget('Event List', 'Event List', array('eCalList', 'widget')); wp_register_widget_control('Event List', 'Event List', array('eCalList', 'control')); } } function widget_EventsCalendar() { global $wpdb; $events_table = $wpdb->prefix . "alevents"; ?> '; echo '
'; ?> $date || $activerow['end_date'] == 0) { $active[] = strtotime(date('d', $activerow['event_date'])." ".date('F Y', $date)); } } elseif ($activerow['event_repeat'] == "yearly") { if ($activerow['end_date'] > $date || $activerow['end_date'] == 0) { $active[] = strtotime(date('d', $activerow['event_date'])." ".date('F', $activerow['event_date'])." ".date('Y', $date)); } } elseif ($activerow['event_repeat'] == "weekly") { if ($activerow['event_date'] < $date && $activerow['end_date'] < $nextmonth) { if ($activerow['end_date'] == 0) { $onthisday = date('l', $activerow['event_date']); $onthisday = strtotime("first ".$onthisday."", mktime(0, 0, 0, date('m', $date), 0, date('Y', $date))); $numdays = $nextmonth - $onthisday; } else { $onthisday = date('l', $activerow['event_date']); $onthisday = strtotime("first ".$onthisday."", mktime(0, 0, 0, date('m', $date), 0, date('Y', $date))); $numdays = $activerow['end_date'] - $onthisday; } $numdays = round($numdays / (60*60*24*7)); $start = 0; $ndate = 0; while ($start <= $numdays) { $ndate = strtotime("+".$start." weeks", $onthisday); if ($activerow['end_date'] > 0) { if ($ndate < $activerow['end_date']) { $active[] = $ndate; } } else { $active[] = $ndate; } $start++; } } elseif ($activerow['event_date'] < $nextmonth && $activerow['end_date'] < $nextmonth) { $onthisday = date('l', $activerow['event_date']); $onthisday = strtotime("first ".$onthisday."", mktime(0, 0, 0, date('m', $date), 0, date('Y', $date))); if ($activerow['end_date'] > 0) { $numdays = $activerow['end_date'] - $onthisday; $numdays = $numdays / (60*60*24*7); } else { $numdays = 5; } $start = 0; $ndate = 0; while ($start <= $numdays) { $ndate = strtotime("+".$start." weeks", $onthisday); $active[] = $ndate; $start++; } } elseif ($activerow['event_date'] < $date) { $onthisday = date('D', $activerow['event_date']); $onthisday = strtotime("first ".$onthisday."", mktime(0, 0, 0, date('m', $date), 0, date('Y', $date))); $numdays = $activerow['end_date'] - $onthisday; $numdays = $numdays / (60*60*24*7); $start = 0; $ndate = 0; while ($start <= $numdays) { $ndate = strtotime("+".$start." weeks", $onthisday); $active[] = $ndate; $start++; } } else { $numdays = $nextmonth - $activerow['event_date']; $numdays = $numdays / (60*60*24*7); $start = 0; $ndate = 0; while ($start <= $numdays) { $ndate = mktime(0,0,0, date("n", $activerow['event_date']), date("d", $activerow['event_date'])+$start*7, date("Y", $activerow['event_date'])); $active[] = $ndate; $start++; } } } elseif ($activerow['event_repeat'] == "once") { if ($activerow['event_date'] >= $date && $activerow['end_date'] < $nextmonth) { $active[] = $activerow['event_date']; } } else { if ($activerow['end_date'] > $date || $activerow['end_date'] == 0) { $first = date('d', mktime(0, 0, 0, date('m', $date), 0, date('Y', $date))); if ($first > 1) { $thisdate = strtotime("".$activerow['event_repeat']."" , mktime(0, 0, 0, date('m', $date), 1, date('Y', $date))); } else { $thisdate = strtotime("".$activerow['event_repeat']."" , mktime(0, 0, 0, date('m', $date), 0, date('Y', $date))); } $ndate = strtotime(date('d F Y')); if ($thisdate >= $ndate) { $active[] = $thisdate; } } } } $mo_up = $_GET['month']; if (!$mo_up) { $date = gmmktime() + get_option('gmt_offset'); $mo_up = 0; } else { $date = gmmktime() + get_option('gmt_offset'); $date = strtotime("1 ".date('F Y', $date)); $date = strtotime("+".$mo_up." months", $date); } //This puts the day, month, and year in seperate variables $day = date('d', $date) ; $month = date('m', $date) ; $year = date('Y', $date) ; //Here we generate the first day of the month $first_day = mktime(0,0,0,$month, 1, $year) ; //This gets us the month name $title = date('F', $first_day) ; //Here we find out what day of the week the first day of the month falls on $day_of_week = date('D', $first_day) ; //Once we know what day of the week it falls on, we know how many blank days occure before it. If the first day of the week is a Sunday then it would be zero if (get_option('alien_event_week_start') == "sunday") { if ($day_of_week == "Sun") { $blank = 0; } else if ($day_of_week == "Mon") { $blank = 1; } else if ($day_of_week == "Tue") { $blank = 2; } else if ($day_of_week == "Wed") { $blank = 3; } else if ($day_of_week == "Thu") { $blank = 4; } else if ($day_of_week == "Fri") { $blank = 5; } else if ($day_of_week == "Sat") { $blank = 6; } } else if (get_option('alien_event_week_start') == "monday") { if ($day_of_week == "Mon") { $blank = 0; } else if ($day_of_week == "Tue") { $blank = 1; } else if ($day_of_week == "Wed") { $blank = 2; } else if ($day_of_week == "Thu") { $blank = 3; } else if ($day_of_week == "Fri") { $blank = 4; } else if ($day_of_week == "Sat") { $blank = 5; } else if ($day_of_week == "Sun") { $blank = 6; } } $utitle = strtoupper(__($title,'AEC')); //We then determine how many days are in the current month $days_in_month = date('t', $date) ; $nextmonth=$mo_up+1; $prevmonth=$mo_up-1; //Here we start building the table heads echo '
'; echo '
'; if ($_GET) { //print_r($_GET); $url = ""; $firstq = 0; foreach($_GET AS $key => $value) { if ($firstq == 0) { $firstq++; $url .= "&"; if ($key != "month" && $key != "page_id") { $url .= $key."=".$value; } } else { if ($key != "month" && $key != "page_id") { $url .= "&"; $url .= $key."=".$value; } } } if ($firstq > 0) { $url .= "&month="; } else { $url .= "&month="; } if ($mo_up > 0) { ?>< ".__($utitle,'AEC')." $year"; ?>>
0) { ?>< ".__($utitle,'AEC')." $year"; ?>>
'; echo "
"; if (get_option('alien_event_week_start') == "sunday") { echo "
".__('SU','AEC')."
".__('MO','AEC')."
".__('TU','AEC')."
".__('WE','AEC')."
".__('TH','AEC')."
".__('FR','AEC')."
".__('SA','AEC')."
"; } else if (get_option('alien_event_week_start') == "monday") { echo "
".__('MO','AEC')."
".__('TU','AEC')."
".__('WE','AEC')."
".__('TH','AEC')."
".__('FR','AEC')."
".__('SA','AEC')."
".__('SU','AEC')."
"; } echo "
"; echo '
'; //This counts the days in the week, up to 7 $day_count = 1; echo "
"; //first we take care of those blank days while ( $blank > 0 ) { echo "
 
"; $blank = $blank-1; $day_count++; } //sets the first day of the month to 1 $day_num = 1; //count up the days, untill we've done all of them in the month $newmonth = 1; while ( $day_num <= $days_in_month ) { $mot = date('F', gmmktime() + get_option('gmt_offset')); // echo $title.":".$mot; $thisdate = strtotime("".$day_num." ".$title." ".$year.""); if (in_array($thisdate, $active)) { if ($day_num == $day && $title == $mot) { echo "
$day_num
"; } else { echo "
$day_num
"; } } else { if ($day_num == $day && $title == $mot) { echo "
$day_num
"; } else { echo "
$day_num
"; } } $day_num++; $day_count++; //Make sure we start a new row every week if ($day_count > 7) { echo "
"; echo '
'; echo "
"; $day_count = 1; } } //Finaly we finish out the table with some blank details if needed while ( $day_count >1 && $day_count <=7 ) { echo "
 
"; $day_count++; } echo "
"; echo '
'; echo ""; echo ""; } function EventsCalendar_init() { wp_register_sidebar_widget(__('Events Calendar'), __('Events Calendar'), 'widget_EventsCalendar', ''); } add_action("plugins_loaded", "EventsCalendar_init"); ?>