diff -r 6b96085291d7 -r fb7cd02b9848 web/wp-content/plugins/calendar/calendar.php --- a/web/wp-content/plugins/calendar/calendar.php Tue Jan 05 09:48:24 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2712 +0,0 @@ -get_results("UPDATE ".WP_CALENDAR_TABLE." SET event_author=".$wpdb->get_var("SELECT MIN(ID) FROM ".$wpdb->prefix."users",0,0)." WHERE event_author=".$id); -} - -// Function to add the calendar style into the header -function calendar_wp_head() -{ - global $wpdb; - - // If the calendar isn't installed or upgraded this won't work - check_calendar(); - - $styles = $wpdb->get_results("SELECT config_value FROM " . WP_CALENDAR_CONFIG_TABLE . " WHERE config_item='calendar_style'"); - if (!empty($styles)) - { - foreach ($styles as $style) - { - echo ' -'; - } - } -} - -// Function to deal with adding the calendar menus -function calendar_menu() -{ - global $wpdb; - - // We make use of the Calendar tables so we must have installed Calendar - check_calendar(); - - // Set admin as the only one who can use Calendar for security - $allowed_group = 'manage_options'; - - // Use the database to *potentially* override the above if allowed - $configs = $wpdb->get_results("SELECT config_value FROM " . WP_CALENDAR_CONFIG_TABLE . " WHERE config_item='can_manage_events'"); - if (!empty($configs)) - { - foreach ($configs as $config) - { - $allowed_group = $config->config_value; - } - } - - // Add the admin panel pages for Calendar. Use permissions pulled from above - if (function_exists('add_menu_page')) - { - add_menu_page(__('Calendar','calendar'), __('Calendar','calendar'), $allowed_group, 'calendar', 'edit_calendar'); - } - if (function_exists('add_submenu_page')) - { - add_submenu_page('calendar', __('Manage Calendar','calendar'), __('Manage Calendar','calendar'), $allowed_group, 'calendar', 'edit_calendar'); - add_action( "admin_head", 'calendar_add_javascript' ); - // Note only admin can change calendar options - add_submenu_page('calendar', __('Manage Categories','calendar'), __('Manage Categories','calendar'), 'manage_options', 'calendar-categories', 'manage_categories'); - add_submenu_page('calendar', __('Calendar Config','calendar'), __('Calendar Options','calendar'), 'manage_options', 'calendar-config', 'edit_calendar_config'); - } -} - -// Function to add the javascript to the admin header -function calendar_add_javascript() -{ - echo ' - -'; -} - -// Function to deal with loading the calendar into pages -function calendar_insert($content) -{ - if (preg_match('{CALENDAR}',$content)) - { - $cal_output = calendar(); - $content = str_replace('{CALENDAR}',$cal_output,$content); - } - return $content; -} - -// Function to check what version of Calendar is installed and install if needed -function check_calendar() -{ - // Checks to make sure Calendar is installed, if not it adds the default - // database tables and populates them with test data. If it is, then the - // version is checked through various means and if it is not up to date - // then it is upgraded. - - // Lets see if this is first run and create us a table if it is! - global $wpdb, $initial_style; - - // All this style info will go into the database on a new install - // This looks nice in the Kubrick theme - $initial_style = " .calnk a:hover { - background-position:0 0; - text-decoration:none; - color:#000000; - border-bottom:1px dotted #000000; - } - .calnk a:visited { - text-decoration:none; - color:#000000; - border-bottom:1px dotted #000000; - } - .calnk a { - text-decoration:none; - color:#000000; - border-bottom:1px dotted #000000; - } - .calnk a span { - display:none; - } - .calnk a:hover span { - color:#333333; - background:#F6F79B; - display:block; - position:absolute; - margin-top:1px; - padding:5px; - width:150px; - z-index:100; - } - .calendar-table { - border:none; - width:100%; - } - .calendar-heading { - height:25px; - text-align:center; - border:1px solid #D6DED5; - background-color:#E4EBE3; - } - .calendar-next { - width:25%; - text-align:center; - } - .calendar-prev { - width:25%; - text-align:center; - } - .calendar-month { - width:50%; - text-align:center; - font-weight:bold; - } - .normal-day-heading { - text-align:center; - width:25px; - height:25px; - font-size:0.8em; - border:1px solid #DFE6DE; - background-color:#EBF2EA; - } - .weekend-heading { - text-align:center; - width:25px; - height:25px; - font-size:0.8em; - border:1px solid #DFE6DE; - background-color:#EBF2EA; - color:#FF0000; - } - .day-with-date { - vertical-align:text-top; - text-align:left; - width:60px; - height:60px; - border:1px solid #DFE6DE; - } - .no-events { - - } - .day-without-date { - width:60px; - height:60px; - border:1px solid #E9F0E8; - } - span.weekend { - color:#FF0000; - } - .current-day { - vertical-align:text-top; - text-align:left; - width:60px; - height:60px; - border:1px solid #BFBFBF; - background-color:#E4EBE3; - } - span.event { - font-size:0.75em; - } - .kjo-link { - font-size:0.75em; - text-align:center; - } - .event-title { - text-align:center; - font-weight:bold; - font-size:1.2em; - } - .event-title-break { - width:96%; - margin-left:2%; - margin-right:2%; - margin-top:5px; - margin-bottom:5px; - text-align:center; - height:1px; - background-color:#000000; - } - .event-content-break { - width:96%; - margin-left:2%; - margin-right:2%; - margin-top:5px; - margin-bottom:5px; - text-align:center; - height:1px; - background-color:#000000; - } - .calendar-date-switcher { - height:25px; - text-align:center; - border:1px solid #D6DED5; - background-color:#E4EBE3; - } - .calendar-date-switcher form { - margin:0; - padding:0; - } - .calendar-date-switcher input { - border:1px #D6DED5 solid; - } - .calendar-date-switcher select { - border:1px #D6DED5 solid; - } - .cat-key { - width:100%; - margin-top:10px; - padding:5px; - border:1px solid #D6DED5; - }"; - - - // Assume this is not a new install until we prove otherwise - $new_install = false; - $vone_point_one_upgrade = false; - $vone_point_two_beta_upgrade = false; - - $wp_calendar_exists = false; - $wp_calendar_config_exists = false; - $wp_calendar_config_version_number_exists = false; - - // Determine the calendar version - $tables = $wpdb->get_results("show tables;"); - foreach ( $tables as $table ) - { - foreach ( $table as $value ) - { - if ( $value == WP_CALENDAR_TABLE ) - { - $wp_calendar_exists = true; - } - if ( $value == WP_CALENDAR_CONFIG_TABLE ) - { - $wp_calendar_config_exists = true; - - // We now try and find the calendar version number - // This will be a lot easier than finding other stuff - // in the future. - $version_number = $wpdb->get_var("SELECT config_value FROM " . WP_CALENDAR_CONFIG_TABLE . " WHERE config_item='calendar_version'"); - if ($version_number == "1.2") - { - $wp_calendar_config_version_number_exists = true; - } - } - } - } - - if ($wp_calendar_exists == false && $wp_calendar_config_exists == false) - { - $new_install = true; - } - else if ($wp_calendar_exists == true && $wp_calendar_config_exists == false) - { - $vone_point_one_upgrade = true; - } - else if ($wp_calendar_exists == true && $wp_calendar_config_exists == true && $wp_calendar_config_version_number_exists == false) - { - $vone_point_two_beta_upgrade = true; - } - - // Now we've determined what the current install is or isn't - // we perform operations according to the findings - if ( $new_install == true ) - { - $sql = "CREATE TABLE " . WP_CALENDAR_TABLE . " ( - event_id INT(11) NOT NULL AUTO_INCREMENT , - event_begin DATE NOT NULL , - event_end DATE NOT NULL , - event_title VARCHAR(30) NOT NULL , - event_desc TEXT NOT NULL , - event_time TIME , - event_recur CHAR(1) , - event_repeats INT(3) , - event_author BIGINT(20) UNSIGNED, - PRIMARY KEY (event_id) - )"; - $wpdb->get_results($sql); - $sql = "CREATE TABLE " . WP_CALENDAR_CONFIG_TABLE . " ( - config_item VARCHAR(30) NOT NULL , - config_value TEXT NOT NULL , - PRIMARY KEY (config_item) - )"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='can_manage_events', config_value='edit_posts'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='calendar_style', config_value='".$initial_style."'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='display_author', config_value='false'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='display_jump', config_value='false'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='display_todays', config_value='true'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='display_upcoming', config_value='true'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='display_upcoming_days', config_value=7"; - $wpdb->get_results($sql); - - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='calendar_version', config_value='1.2'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='enable_categories', config_value='false'"; - $wpdb->get_results($sql); - $sql = "ALTER TABLE ".WP_CALENDAR_TABLE." ADD COLUMN event_category BIGINT(20) UNSIGNED"; - $wpdb->get_results($sql); - $sql = "UPDATE " . WP_CALENDAR_TABLE . " SET event_category=1"; - $wpdb->get_results($sql); - $sql = "ALTER TABLE ".WP_CALENDAR_TABLE." ADD COLUMN event_link TEXT"; - $wpdb->get_results($sql); - $sql = "UPDATE " . WP_CALENDAR_TABLE . " SET event_link=''"; - $wpdb->get_results($sql); - $sql = "CREATE TABLE " . WP_CALENDAR_CATEGORIES_TABLE . " ( - category_id INT(11) NOT NULL AUTO_INCREMENT, - category_name VARCHAR(30) NOT NULL , - category_colour VARCHAR(30) NOT NULL , - PRIMARY KEY (category_id) - )"; - $wpdb->get_results($sql); - $sql = "INSERT INTO " . WP_CALENDAR_CATEGORIES_TABLE . " SET category_id=1, category_name='General', category_colour='#F6F79B'"; - $wpdb->get_results($sql); - } - else if ($vone_point_one_upgrade == true) - { - $sql = "ALTER TABLE ".WP_CALENDAR_TABLE." ADD COLUMN event_author BIGINT(20) UNSIGNED"; - $wpdb->get_results($sql); - $sql = "UPDATE ".WP_CALENDAR_TABLE." SET event_author=".$wpdb->get_var("SELECT MIN(ID) FROM ".$wpdb->prefix."users",0,0); - $wpdb->get_results($sql); - $sql = "ALTER TABLE ".WP_CALENDAR_TABLE." MODIFY event_desc TEXT NOT NULL"; - $wpdb->get_results($sql); - $sql = "CREATE TABLE " . WP_CALENDAR_CONFIG_TABLE . " ( - config_item VARCHAR(30) NOT NULL , - config_value TEXT NOT NULL , - PRIMARY KEY (config_item) - )"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='can_manage_events', config_value='edit_posts'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='calendar_style', config_value='".$initial_style."'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='display_author', config_value='false'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='display_jump', config_value='false'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='display_todays', config_value='true'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='display_upcoming', config_value='true'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='display_upcoming_days', config_value=7"; - $wpdb->get_results($sql); - - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='calendar_version', config_value='1.2'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='enable_categories', config_value='false'"; - $wpdb->get_results($sql); - $sql = "ALTER TABLE ".WP_CALENDAR_TABLE." ADD COLUMN event_category BIGINT(20) UNSIGNED"; - $wpdb->get_results($sql); - $sql = "UPDATE " . WP_CALENDAR_TABLE . " SET event_category=1"; - $wpdb->get_results($sql); - $sql = "ALTER TABLE ".WP_CALENDAR_TABLE." ADD COLUMN event_link TEXT"; - $wpdb->get_results($sql); - $sql = "UPDATE " . WP_CALENDAR_TABLE . " SET event_link=''"; - $wpdb->get_results($sql); - $sql = "CREATE TABLE " . WP_CALENDAR_CATEGORIES_TABLE . " ( - category_id INT(11) NOT NULL AUTO_INCREMENT, - category_name VARCHAR(30) NOT NULL , - category_colour VARCHAR(30) NOT NULL , - PRIMARY KEY (category_id) - )"; - $wpdb->get_results($sql); - $sql = "INSERT INTO " . WP_CALENDAR_CATEGORIES_TABLE . " SET category_id=1, category_name='General', category_colour='#F6F79B'"; - $wpdb->get_results($sql); - } - else if ($vone_point_two_beta_upgrade == true) - { - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='calendar_version', config_value='1.2'"; - $wpdb->get_results($sql); - $sql = "INSERT INTO ".WP_CALENDAR_CONFIG_TABLE." SET config_item='enable_categories', config_value='false'"; - $wpdb->get_results($sql); - $sql = "ALTER TABLE ".WP_CALENDAR_TABLE." ADD COLUMN event_category BIGINT(20) UNSIGNED"; - $wpdb->get_results($sql); - $sql = "UPDATE " . WP_CALENDAR_TABLE . " SET event_category=1"; - $wpdb->get_results($sql); - $sql = "ALTER TABLE ".WP_CALENDAR_TABLE." ADD COLUMN event_link TEXT"; - $wpdb->get_results($sql); - $sql = "UPDATE " . WP_CALENDAR_TABLE . " SET event_link=''"; - $wpdb->get_results($sql); - $sql = "CREATE TABLE " . WP_CALENDAR_CATEGORIES_TABLE . " ( - category_id INT(11) NOT NULL AUTO_INCREMENT, - category_name VARCHAR(30) NOT NULL , - category_colour VARCHAR(30) NOT NULL , - PRIMARY KEY (category_id) - )"; - $wpdb->get_results($sql); - $sql = "INSERT INTO " . WP_CALENDAR_CATEGORIES_TABLE . " SET category_id=1, category_name='General', category_colour='#F6F79B'"; - $wpdb->get_results($sql); - $sql = "UPDATE " . WP_CALENDAR_CONFIG_TABLE . " SET config_value='".$initial_style."' WHERE config_item='calendar_style'"; - $wpdb->get_results($sql); - } -} - -// Used on the manage events admin page to display a list of events -function wp_events_display_list() -{ - global $wpdb; - - $events = $wpdb->get_results("SELECT * FROM " . WP_CALENDAR_TABLE . " ORDER BY event_begin DESC"); - - if ( !empty($events) ) - { - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - event_category; - $this_cat = $wpdb->get_row($sql); - ?> - - - - - - -
event_id; ?>event_title; ?>event_desc; ?>event_begin; ?>event_end; ?> - event_recur == 'S') { echo __('Never','calendar'); } - else if ($event->event_recur == 'W') { echo __('Weekly','calendar'); } - else if ($event->event_recur == 'M') { echo __('Monthly','calendar'); } - else if ($event->event_recur == 'Y') { echo __('Yearly','calendar'); } - ?> - - event_recur == 'S') { echo __('N/A','calendar'); } - else if ($event->event_repeats == 0) { echo __('Forever','calendar'); } - else if ($event->event_repeats > 0) { echo $event->event_repeats.' '.__('Times','calendar'); } - ?> - event_author); echo $e->display_name; ?>category_name; ?>
- -

-

".__('Bad Monkey! No banana!','calendar')."

"; - return; - } - else - { - $data = $wpdb->get_results("SELECT * FROM " . WP_CALENDAR_TABLE . " WHERE event_id='" . mysql_escape_string($event_id) . "' LIMIT 1"); - if ( empty($data) ) - { - echo "

".__("An event with that ID couldn't be found",'calendar')."

"; - return; - } - $data = $data[0]; - } - // Recover users entries if they exist; in other words if editing an event went wrong - if (!empty($users_entries)) - { - $data = $users_entries; - } - } - // Deal with possibility that form was submitted but not saved due to error - recover user's entries here - else - { - $data = $users_entries; - } - - ?> - -
- - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- " /> -
- " /> -
event_time))); - } - } - else - { - echo date("H:i"); - } - ?>" /> -
event_repeats != NULL) - { - $repeats = $data->event_repeats; - } - else - { - $repeats = 0; - } - - if ($data->event_recur == "S") - { - $selected_s = 'selected="selected"'; - } - else if ($data->event_recur == "W") - { - $selected_w = 'selected="selected"'; - } - else if ($data->event_recur == "M") - { - $selected_m = 'selected="selected"'; - } - else if ($data->event_recur == "Y") - { - $selected_y = 'selected="selected"'; - } - ?> - - -
- -
-
-
 
-
- -
- - - -= strtotime($begin)) - { - $start_date_ok = 1; - $end_date_ok = 1; - } - else - { - ?> -

:

- -

:

- -

:

- -

:

- -

:

- -

:

- = 0) && ($recur == 'W' || $recur == 'M' || $recur == 'Y'))) - { - $recurring_ok = 1; - } - else - { - ?> -

:

- ID.", event_category=".mysql_escape_string($category).", event_link='".mysql_escape_string($linky)."'"; - - $wpdb->get_results($sql); - - $sql = "SELECT event_id FROM " . WP_CALENDAR_TABLE . " WHERE event_title='" . mysql_escape_string($title) . "'" - . " AND event_desc='" . mysql_escape_string($desc) . "' AND event_begin='" . mysql_escape_string($begin) . "' AND event_end='" . mysql_escape_string($end) . "' AND event_recur='" . mysql_escape_string($recur) . "' AND event_repeats='" . mysql_escape_string($repeats) . "' LIMIT 1"; - $result = $wpdb->get_results($sql); - - if ( empty($result) || empty($result[0]->event_id) ) - { - ?> -

:

- -

- event_title = $title; - $users_entries->event_desc = $desc; - $users_entries->event_begin = $begin; - $users_entries->event_end = $end; - $users_entries->event_time = $time; - $users_entries->event_recur = $recur; - $users_entries->event_repeats = $repeats; - $users_entries->event_category = $category; - $users_entries->event_link = $linky; - } -} -// Permit saving of events that have been edited -elseif ( $action == 'edit_save' ) -{ - $title = !empty($_REQUEST['event_title']) ? $_REQUEST['event_title'] : ''; - $desc = !empty($_REQUEST['event_desc']) ? $_REQUEST['event_desc'] : ''; - $begin = !empty($_REQUEST['event_begin']) ? $_REQUEST['event_begin'] : ''; - $end = !empty($_REQUEST['event_end']) ? $_REQUEST['event_end'] : ''; - $time = !empty($_REQUEST['event_time']) ? $_REQUEST['event_time'] : ''; - $recur = !empty($_REQUEST['event_recur']) ? $_REQUEST['event_recur'] : ''; - $repeats = !empty($_REQUEST['event_repeats']) ? $_REQUEST['event_repeats'] : ''; - $category = !empty($_REQUEST['event_category']) ? $_REQUEST['event_category'] : ''; - $linky = !empty($_REQUEST['event_link']) ? $_REQUEST['event_link'] : ''; - - // Deal with the fools who have left magic quotes turned on - if ( ini_get('magic_quotes_gpc') ) - { - $title = stripslashes($title); - $desc = stripslashes($desc); - $begin = stripslashes($begin); - $end = stripslashes($end); - $time = stripslashes($time); - $recur = stripslashes($recur); - $repeats = stripslashes($repeats); - $category = stripslashes($category); - $linky = stripslashes($linky); - } - - if ( empty($event_id) ) - { - ?> -

:

- = strtotime($begin)) - { - $start_date_ok = 1; - $end_date_ok = 1; - } - else - { - ?> -

:

- -

:

- -

:

- -

:

- -

:

- -

:

- = 0) && ($recur == 'W' || $recur == 'M' || $recur == 'Y'))) - { - $recurring_ok = 1; - } - else - { - ?> -

:

- ID . ", event_category=".mysql_escape_string($category).", event_link='".mysql_escape_string($linky)."' WHERE event_id='" . mysql_escape_string($event_id) . "'"; - - $wpdb->get_results($sql); - - $sql = "SELECT event_id FROM " . WP_CALENDAR_TABLE . " WHERE event_title='" . mysql_escape_string($title) . "'" - . " AND event_desc='" . mysql_escape_string($desc) . "' AND event_begin='" . mysql_escape_string($begin) . "' AND event_end='" . mysql_escape_string($end) . "' AND event_recur='" . mysql_escape_string($recur) . "' AND event_repeats='" . mysql_escape_string($repeats) . "' LIMIT 1"; - $result = $wpdb->get_results($sql); - - if ( empty($result) || empty($result[0]->event_id) ) - { - ?> -

:

- -

- event_title = $title; - $users_entries->event_desc = $desc; - $users_entries->event_begin = $begin; - $users_entries->event_end = $end; - $users_entries->event_time = $time; - $users_entries->event_recur = $recur; - $users_entries->event_repeats = $repeats; - $users_entries->event_category = $category; - $users_entries->event_link = $linky; - $error_with_saving = 1; - } - } -} -// Deal with deleting an event from the database -elseif ( $action == 'delete' ) -{ - if ( empty($event_id) ) - { - ?> -

:

- get_results($sql); - - $sql = "SELECT event_id FROM " . WP_CALENDAR_TABLE . " WHERE event_id='" . mysql_escape_string($event_id) . "'"; - $result = $wpdb->get_results($sql); - - if ( empty($result) || empty($result[0]->event_id) ) - { - ?> -

- -

:

- - -
- -

-

".__("You must provide an event id in order to edit it",'calendar')."

"; - } - else - { - wp_events_edit_form('edit_save', $event_id); - } - } - else - { - ?> -

- - -

- - - -get_results("UPDATE " . WP_CALENDAR_CONFIG_TABLE . " SET config_value = '".$new_perms."' WHERE config_item='can_manage_events'"); - $wpdb->get_results("UPDATE " . WP_CALENDAR_CONFIG_TABLE . " SET config_value = '".$calendar_style."' WHERE config_item='calendar_style'"); - $wpdb->get_results("UPDATE " . WP_CALENDAR_CONFIG_TABLE . " SET config_value = '".$disp_author."' WHERE config_item='display_author'"); - $wpdb->get_results("UPDATE " . WP_CALENDAR_CONFIG_TABLE . " SET config_value = '".$disp_jump."' WHERE config_item='display_jump'"); - $wpdb->get_results("UPDATE " . WP_CALENDAR_CONFIG_TABLE . " SET config_value = '".$disp_todays."' WHERE config_item='display_todays'"); - $wpdb->get_results("UPDATE " . WP_CALENDAR_CONFIG_TABLE . " SET config_value = '".$disp_upcoming."' WHERE config_item='display_upcoming'"); - $wpdb->get_results("UPDATE " . WP_CALENDAR_CONFIG_TABLE . " SET config_value = '".$display_upcoming_days."' WHERE config_item='display_upcoming_days'"); - $wpdb->get_results("UPDATE " . WP_CALENDAR_CONFIG_TABLE . " SET config_value = '".$enable_categories."' WHERE config_item='enable_categories'"); - - // Check to see if we are replacing the original style - if (mysql_escape_string($_POST['reset_styles']) == 'on') - { - $wpdb->get_results("UPDATE " . WP_CALENDAR_CONFIG_TABLE . " SET config_value = '".$initial_style."' WHERE config_item='calendar_style'"); - } - - echo "

".__('Settings saved','calendar').".

"; - } - - // Pull the values out of the database that we need for the form - $configs = $wpdb->get_results("SELECT config_value FROM " . WP_CALENDAR_CONFIG_TABLE . " WHERE config_item='can_manage_events'"); - if (!empty($configs)) - { - foreach ($configs as $config) - { - $allowed_group = $config->config_value; - } - } - - $configs = $wpdb->get_results("SELECT config_value FROM " . WP_CALENDAR_CONFIG_TABLE . " WHERE config_item='calendar_style'"); - if (!empty($configs)) - { - foreach ($configs as $config) - { - $calendar_style = $config->config_value; - } - } - $configs = $wpdb->get_results("SELECT config_value FROM " . WP_CALENDAR_CONFIG_TABLE . " WHERE config_item='display_author'"); - if (!empty($configs)) - { - foreach ($configs as $config) - { - if ($config->config_value == 'true') - { - $yes_disp_author = 'selected="selected"'; - } - else - { - $no_disp_author = 'selected="selected"'; - } - } - } - $configs = $wpdb->get_results("SELECT config_value FROM " . WP_CALENDAR_CONFIG_TABLE . " WHERE config_item='display_jump'"); - if (!empty($configs)) - { - foreach ($configs as $config) - { - if ($config->config_value == 'true') - { - $yes_disp_jump = 'selected="selected"'; - } - else - { - $no_disp_jump = 'selected="selected"'; - } - } - } - $configs = $wpdb->get_results("SELECT config_value FROM " . WP_CALENDAR_CONFIG_TABLE . " WHERE config_item='display_todays'"); - if (!empty($configs)) - { - foreach ($configs as $config) - { - if ($config->config_value == 'true') - { - $yes_disp_todays = 'selected="selected"'; - } - else - { - $no_disp_todays = 'selected="selected"'; - } - } - } - $configs = $wpdb->get_results("SELECT config_value FROM " . WP_CALENDAR_CONFIG_TABLE . " WHERE config_item='display_upcoming'"); - if (!empty($configs)) - { - foreach ($configs as $config) - { - if ($config->config_value == 'true') - { - $yes_disp_upcoming = 'selected="selected"'; - } - else - { - $no_disp_upcoming = 'selected="selected"'; - } - } - } - $configs = $wpdb->get_results("SELECT config_value FROM " . WP_CALENDAR_CONFIG_TABLE . " WHERE config_item='display_upcoming_days'"); - if (!empty($configs)) - { - foreach ($configs as $config) - { - $upcoming_days = $config->config_value; - } - } - $configs = $wpdb->get_results("SELECT config_value FROM " . WP_CALENDAR_CONFIG_TABLE . " WHERE config_item='enable_categories'"); - if (!empty($configs)) - { - foreach ($configs as $config) - { - if ($config->config_value == 'true') - { - $yes_enable_categories = 'selected="selected"'; - } - else - { - $no_enable_categories = 'selected="selected"'; - } - } - } - if ($allowed_group == 'read') { $subscriber_selected='selected="selected"';} - else if ($allowed_group == 'edit_posts') { $contributor_selected='selected="selected"';} - else if ($allowed_group == 'publish_posts') { $author_selected='selected="selected"';} - else if ($allowed_group == 'moderate_comments') { $editor_selected='selected="selected"';} - else if ($allowed_group == 'manage_options') { $admin_selected='selected="selected"';} - - // Now we render the form - ?> - - -
-

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- -
-

-
-
-
 
-
- -
-
- - -get_results($sql); - echo "

".__('Category added successfully','calendar')."

"; - } - else if (isset($_GET['mode']) && isset($_GET['category_id']) && $_GET['mode'] == 'delete') - { - $sql = "DELETE FROM " . WP_CALENDAR_CATEGORIES_TABLE . " WHERE category_id=".mysql_escape_string($_GET['category_id']); - $wpdb->get_results($sql); - $sql = "UPDATE " . WP_CALENDAR_TABLE . " SET event_category=1 WHERE event_category=".mysql_escape_string($_GET['category_id']); - $wpdb->get_results($sql); - echo "

".__('Category deleted successfully','calendar')."

"; - } - else if (isset($_GET['mode']) && isset($_GET['category_id']) && $_GET['mode'] == 'edit' && !isset($_POST['mode'])) - { - $sql = "SELECT * FROM " . WP_CALENDAR_CATEGORIES_TABLE . " WHERE category_id=".mysql_escape_string($_GET['category_id']); - $cur_cat = $wpdb->get_row($sql); - ?> -
-

-
- - -
-
- - - - - - - - - -
:
:
-
-
 
-
- -
-
- get_results($sql); - echo "

".__('Category edited successfully','calendar')."

"; - } - - if ($_GET['mode'] != 'edit' || $_POST['mode'] == 'edit') - { -?> - -
-

-
- - -
-
- - - - - - - - - -
:
:
-
-
 
-
- -
-

-get_results("SELECT * FROM " . WP_CALENDAR_CATEGORIES_TABLE . " ORDER BY category_id ASC"); - - if ( !empty($categories) ) - { - ?> - - - - - - - - - - - - - - - - - category_id == 1) - { - echo ''; - } - else - { - ?> - - - - -
category_id; ?>category_name; ?> '.__('N/A','calendar').'
- '.__('There are no categories in the database - something has gone wrong!','calendar').'

'; - } - -?> -
- -'jan','feb','mar','apr','may','jun','jul','aug','sept','oct','nov','dec'); - $next_year = $cur_year + 1; - - if ($cur_month == 12) - { - return ''.__('Next','calendar').' »'; - } - else - { - $next_month = $cur_month + 1; - $month = $mod_rewrite_months[$next_month]; - return ''.__('Next','calendar').' »'; - } -} - -// Configure the "Previous" link in the calendar -function prev_link($cur_year,$cur_month) -{ - $mod_rewrite_months = array(1=>'jan','feb','mar','apr','may','jun','jul','aug','sept','oct','nov','dec'); - $last_year = $cur_year - 1; - - if ($cur_month == 1) - { - return '« '.__('Prev','calendar').''; - } - else - { - $next_month = $cur_month - 1; - $month = $mod_rewrite_months[$next_month]; - return '« '.__('Prev','calendar').''; - } -} - -// Print upcoming events -function upcoming_events() -{ - global $wpdb; - - // This function cannot be called unless calendar is up to date - check_calendar(); - - // Find out if we should be displaying upcoming events - $display = $wpdb->get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='display_upcoming'",0,0); - - if ($display == 'true') - { - // Get number of days we should go into the future - $future_days = $wpdb->get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='display_upcoming_days'",0,0); - $day_count = 1; - - while ($day_count < $future_days+1) - { - list($y,$m,$d) = split("-",date("Y-m-d",mktime($day_count*24,0,0,date("m"),date("d"),date("Y")))); - $events = grab_events($y,$m,$d); - usort($events, "time_cmp"); - if (count($events) != 0) { - $output .= '
  • '.date(get_option('date_format'),mktime($day_count*24,0,0,date("m"),date("d"),date("Y"))).'
  • '; - } - $day_count = $day_count+1; - } - - if ($output != '') - { - $visual = '
  • '.__('Upcoming Events','calendar').'

  • '; - return $visual; - } - } -} - -// Print todays events -function todays_events() -{ - global $wpdb; - - // This function cannot be called unless calendar is up to date - check_calendar(); - - // Find out if we should be displaying todays events - $display = $wpdb->get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='display_todays'",0,0); - - if ($display == 'true') - { - $output = '
  • '.__('Today\'s Events','calendar').'

  • '; - if (count($events) != 0) - { - return $output; - } - } -} - -// Function to compare time in event objects -function time_cmp($a, $b) -{ - if ($a->event_time == $b->event_time) { - return 0; - } - return ($a->event_time < $b->event_time) ? -1 : 1; -} - -// Used to draw multiple events -function draw_events($events) -{ - // We need to sort arrays of objects by time - usort($events, "time_cmp"); - - // Now process the events - foreach($events as $event) - { - $output .= draw_event($event); - } - return $output; -} - -// Widget todays events -function todays_events_widget() { - global $wpdb; - - // This function cannot be called unless calendar is up to date - check_calendar(); - - // Find out if we should be displaying todays events - $display = $wpdb->get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='display_todays'",0,0); - - if ($display == 'true') - { - $output = ''; - if (count($events) != 0) - { - return $output; - } - } -} - -// Widget upcoming events -function upcoming_events_widget() { - global $wpdb; - - // This function cannot be called unless calendar is up to date - check_calendar(); - - // Find out if we should be displaying upcoming events - $display = $wpdb->get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='display_upcoming'",0,0); - - if ($display == 'true') - { - // Get number of days we should go into the future - $future_days = $wpdb->get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='display_upcoming_days'",0,0); - $day_count = 1; - - while ($day_count < $future_days+1) - { - list($y,$m,$d) = split("-",date("Y-m-d",mktime($day_count*24,0,0,date("m"),date("d"),date("Y")))); - $events = grab_events($y,$m,$d); - usort($events, "time_cmp"); - if (count($events) != 0) { - $output .= '
  • '.date(get_option('date_format'),mktime($day_count*24,0,0,date("m"),date("d"),date("Y"))).'
  • '; - } - $day_count = $day_count+1; - } - - if ($output != '') - { - $visual = ''; - return $visual; - } - } -} - -// The widget to show todays events in the sidebar -function widget_init_calendar_today() { - // Check for required functions - if (!function_exists('register_sidebar_widget')) - return; - - function widget_calendar_today($args) { - extract($args); - $the_title = get_option('calendar_today_widget_title'); - $widget_title = empty($the_title) ? __('Today\'s Events','calendar') : $the_title; - $the_events = todays_events_widget(); - if ($the_events != '') { - echo $before_widget; - echo $before_title . $widget_title . $after_title; - echo $the_events; - echo $after_widget; - } - } - - function widget_calendar_today_control() { - $widget_title = get_option('calendar_today_widget_title'); - if (isset($_POST['calendar_today_widget_title'])) { - update_option('calendar_today_widget_title',strip_tags($_POST['calendar_today_widget_title'])); - } - ?> -

    - -

    - -

    - -

    - get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='display_author'",0,0); - $show_cat = $wpdb->get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='enable_categories'",0,0); - - if ($show_cat == 'true') - { - $sql = "SELECT * FROM " . WP_CALENDAR_CATEGORIES_TABLE . " WHERE category_id=".$event->event_category; - $cat_details = $wpdb->get_row($sql); - $style = "background-color:".$cat_details->category_colour.";"; - } - - $header_details .= '
    '.$event->event_title.'
    '; - if ($event->event_time != "00:00:00") - { - $header_details .= ''.__('Time','calendar').': ' . date(get_option('time_format'), strtotime($event->event_time)) . '
    '; - } - if ($display_author == 'true') - { - $e = get_userdata($event->event_author); - $header_details .= ''.__('Posted by', 'calendar').': '.$e->display_name.'
    '; - } - if ($display_author == 'true' || $event->event_time != "00:00:00") - { - $header_details .= '
    '; - } - if ($event->event_link != '') { $linky = $event->event_link; } - else { $linky = '#'; } - - $details = '
    -* ' . $event->event_title . '' . $header_details . '' . $event->event_desc . ''; - - return $details; -} - -// Draw an event but customise the HTML for use in the widget -function draw_widget_event($event) -{ - global $wpdb; - - // Calendar must be updated to run this function - check_calendar(); - - // Before we do anything we want to know if we - // should display the author and/or show categories. - // We check for this later - $display_author = $wpdb->get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='display_author'",0,0); - $show_cat = $wpdb->get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='enable_categories'",0,0); - - if ($show_cat == 'true') - { - $sql = "SELECT * FROM " . WP_CALENDAR_CATEGORIES_TABLE . " WHERE category_id=".$event->event_category; - $cat_details = $wpdb->get_row($sql); - $style = "background-color:".$cat_details->category_colour.";"; - } - - $header_details .= '
    '.$event->event_title.'
    '; - if ($event->event_time != "00:00:00") - { - $header_details .= ''.__('Time','calendar').': ' . date(get_option('time_format'), strtotime($event->event_time)) . '
    '; - } - if ($display_author == 'true') - { - $e = get_userdata($event->event_author); - $header_details .= ''.__('Posted by','calendar').': '.$e->display_name.'
    '; - } - if ($display_author == 'true' || $event->event_time != "00:00:00") - { - $header_details .= '
    '; - } - if ($event->event_link != '') { $linky = $event->event_link; } - else { $linky = '#'; } - - $details = '' . $event->event_title . '' . $header_details . '' . $event->event_desc . ''; - - return $details; -} - -// Grab all events for the requested date from calendar -function grab_events($y,$m,$d) -{ - global $wpdb; - - $arr_events = array(); - - // Get the date format right - $date = $y . '-' . $m . '-' . $d; - - // Firstly we check for conventional events. These will form the first instance of a recurring event - // or the only instance of a one-off event - $events = $wpdb->get_results("SELECT * FROM " . WP_CALENDAR_TABLE . " WHERE event_begin <= '$date' AND event_end >= '$date' AND event_recur = 'S' ORDER BY event_id"); - if (!empty($events)) - { - foreach($events as $event) - { - array_push($arr_events, $event); - } - } - - // Even if there were results for that query, we may still have events recurring - // from the past on this day. We now methodically check the for these events - - /* - The yearly code - easy because the day and month will be the same, so we return all yearly - events that match the date part. Out of these we show those with a repeat of 0, and fast-foward - a number of years for those with a value more than 0. Those that land in the future are displayed. - */ - - - // Deal with forever recurring year events - $events = $wpdb->get_results("SELECT * FROM " . WP_CALENDAR_TABLE . " WHERE event_recur = 'Y' AND EXTRACT(YEAR FROM '$date') >= EXTRACT(YEAR FROM event_begin) AND event_repeats = 0 ORDER BY event_id"); - - if (!empty($events)) - { - foreach($events as $event) - { - // This is going to get complex so lets setup what we would place in for - // an event so we can drop it in with ease - - // Technically we don't care about the years, but we need to find out if the - // event spans the turn of a year so we can deal with it appropriately. - $year_begin = date('Y',strtotime($event->event_begin)); - $year_end = date('Y',strtotime($event->event_end)); - - if ($year_begin == $year_end) - { - if (date('m-d',strtotime($event->event_begin)) <= date('m-d',strtotime($date)) && - date('m-d',strtotime($event->event_end)) >= date('m-d',strtotime($date))) - { - array_push($arr_events, $event); - } - } - else if ($year_begin < $year_end) - { - if (date('m-d',strtotime($event->event_begin)) <= date('m-d',strtotime($date)) || - date('m-d',strtotime($event->event_end)) >= date('m-d',strtotime($date))) - { - array_push($arr_events, $event); - } - } - } - } - - // Now the ones that happen a finite number of times - $events = $wpdb->get_results("SELECT * FROM " . WP_CALENDAR_TABLE . " WHERE event_recur = 'Y' AND EXTRACT(YEAR FROM '$date') >= EXTRACT(YEAR FROM event_begin) AND event_repeats != 0 AND (EXTRACT(YEAR FROM '$date')-EXTRACT(YEAR FROM event_begin)) <= event_repeats ORDER BY event_id"); - if (!empty($events)) - { - foreach($events as $event) - { - // This is going to get complex so lets setup what we would place in for - // an event so we can drop it in with ease - - // Technically we don't care about the years, but we need to find out if the - // event spans the turn of a year so we can deal with it appropriately. - $year_begin = date('Y',strtotime($event->event_begin)); - $year_end = date('Y',strtotime($event->event_end)); - - if ($year_begin == $year_end) - { - if (date('m-d',strtotime($event->event_begin)) <= date('m-d',strtotime($date)) && - date('m-d',strtotime($event->event_end)) >= date('m-d',strtotime($date))) - { - array_push($arr_events, $event); - } - } - else if ($year_begin < $year_end) - { - if (date('m-d',strtotime($event->event_begin)) <= date('m-d',strtotime($date)) || - date('m-d',strtotime($event->event_end)) >= date('m-d',strtotime($date))) - { - array_push($arr_events, $event); - } - } - } - } - - /* - The monthly code - just as easy because as long as the day of the month is correct, then we - show the event - */ - - // The monthly events that never stop recurring - $events = $wpdb->get_results("SELECT * FROM " . WP_CALENDAR_TABLE . " WHERE event_recur = 'M' AND EXTRACT(YEAR FROM '$date') >= EXTRACT(YEAR FROM event_begin) AND event_repeats = 0 ORDER BY event_id"); - if (!empty($events)) - { - foreach($events as $event) - { - // This is going to get complex so lets setup what we would place in for - // an event so we can drop it in with ease - - // Technically we don't care about the years or months, but we need to find out if the - // event spans the turn of a year or month so we can deal with it appropriately. - $month_begin = date('m',strtotime($event->event_begin)); - $month_end = date('m',strtotime($event->event_end)); - - if ($month_begin == $month_end) - { - if (date('d',strtotime($event->event_begin)) <= date('d',strtotime($date)) && - date('d',strtotime($event->event_end)) >= date('d',strtotime($date))) - { - array_push($arr_events, $event); - } - } - else if ($month_begin < $month_end) - { - if ( ($event->event_begin <= date('Y-m-d',strtotime($date))) && (date('d',strtotime($event->event_begin)) <= date('d',strtotime($date)) || - date('d',strtotime($event->event_end)) >= date('d',strtotime($date))) ) - { - array_push($arr_events, $event); - } - } - } - } - - - // Now the ones that happen a finite number of times - $events = $wpdb->get_results("SELECT * FROM " . WP_CALENDAR_TABLE . " WHERE event_recur = 'M' AND EXTRACT(YEAR FROM '$date') >= EXTRACT(YEAR FROM event_begin) AND event_repeats != 0 AND (PERIOD_DIFF(EXTRACT(YEAR_MONTH FROM '$date'),EXTRACT(YEAR_MONTH FROM event_begin))) <= event_repeats ORDER BY event_id"); - if (!empty($events)) - { - foreach($events as $event) - { - // This is going to get complex so lets setup what we would place in for - // an event so we can drop it in with ease - - // Technically we don't care about the years or months, but we need to find out if the - // event spans the turn of a year or month so we can deal with it appropriately. - $month_begin = date('m',strtotime($event->event_begin)); - $month_end = date('m',strtotime($event->event_end)); - - if ($month_begin == $month_end) - { - if (date('d',strtotime($event->event_begin)) <= date('d',strtotime($date)) && - date('d',strtotime($event->event_end)) >= date('d',strtotime($date))) - { - array_push($arr_events, $event); - } - } - else if ($month_begin < $month_end) - { - if ( ($event->event_begin <= date('Y-m-d',strtotime($date))) && (date('d',strtotime($event->event_begin)) <= date('d',strtotime($date)) || - date('d',strtotime($event->event_end)) >= date('d',strtotime($date))) ) - { - array_push($arr_events, $event); - } - } - } - } - - - /* - Weekly - well isn't this fun! We need to scan all weekly events, find what day they fell on - and see if that matches the current day. If it does, we check to see if the repeats are 0. - If they are, display the event, if not, we fast forward from the original day in week blocks - until the number is exhausted. If the date we arrive at is in the future, display the event. - */ - - // The weekly events that never stop recurring - $events = $wpdb->get_results("SELECT * FROM " . WP_CALENDAR_TABLE . " WHERE event_recur = 'W' AND '$date' >= event_begin AND event_repeats = 0 ORDER BY event_id"); - if (!empty($events)) - { - foreach($events as $event) - { - // This is going to get complex so lets setup what we would place in for - // an event so we can drop it in with ease - - // Now we are going to check to see what day the original event - // fell on and see if the current date is both after it and on - // the correct day. If it is, display the event! - $day_start_event = date('D',strtotime($event->event_begin)); - $day_end_event = date('D',strtotime($event->event_end)); - $current_day = date('D',strtotime($date)); - - $plan = array(); - $plan['Mon'] = 1; - $plan['Tue'] = 2; - $plan['Wed'] = 3; - $plan['Thu'] = 4; - $plan['Fri'] = 5; - $plan['Sat'] = 6; - $plan['Sun'] = 7; - - if ($plan[$day_start_event] > $plan[$day_end_event]) - { - if (($plan[$day_start_event] <= $plan[$current_day]) || ($plan[$current_day] <= $plan[$day_end_event])) - { - array_push($arr_events, $event); - } - } - else if (($plan[$day_start_event] < $plan[$day_end_event]) || ($plan[$day_start_event]== $plan[$day_end_event])) - { - if (($plan[$day_start_event] <= $plan[$current_day]) && ($plan[$current_day] <= $plan[$day_end_event])) - { - array_push($arr_events, $event); - } - } - - } - } - - // The weekly events that have a limit on how many times they occur - $events = $wpdb->get_results("SELECT * FROM " . WP_CALENDAR_TABLE . " WHERE event_recur = 'W' AND '$date' >= event_begin AND event_repeats != 0 AND (event_repeats*7) >= (TO_DAYS('$date') - TO_DAYS(event_end)) ORDER BY event_id"); - if (!empty($events)) - { - foreach($events as $event) - { - // This is going to get complex so lets setup what we would place in for - // an event so we can drop it in with ease - - // Now we are going to check to see what day the original event - // fell on and see if the current date is both after it and on - // the correct day. If it is, display the event! - $day_start_event = date('D',strtotime($event->event_begin)); - $day_end_event = date('D',strtotime($event->event_end)); - $current_day = date('D',strtotime($date)); - - $plan = array(); - $plan['Mon'] = 1; - $plan['Tue'] = 2; - $plan['Wed'] = 3; - $plan['Thu'] = 4; - $plan['Fri'] = 5; - $plan['Sat'] = 6; - $plan['Sun'] = 7; - - if ($plan[$day_start_event] > $plan[$day_end_event]) - { - if (($plan[$day_start_event] <= $plan[$current_day]) || ($plan[$current_day] <= $plan[$day_end_event])) - { - array_push($arr_events, $event); - } - } - else if (($plan[$day_start_event] < $plan[$day_end_event]) || ($plan[$day_start_event]== $plan[$day_end_event])) - { - if (($plan[$day_start_event] <= $plan[$current_day]) && ($plan[$current_day] <= $plan[$day_end_event])) - { - array_push($arr_events, $event); - } - } - - } - } - - return $arr_events; -} - - -// Actually do the printing of the calendar -// Compared to searching for and displaying events -// this bit is really rather easy! -function calendar() -{ - global $wpdb; - - // First things first, make sure calendar is up to date - check_calendar(); - - // Deal with the week not starting on a monday - if (get_option('start_of_week') == 0) - { - $name_days = array(1=>__('Sunday','calendar'),__('Monday','calendar'),__('Tuesday','calendar'),__('Wednesday','calendar'),__('Thursday','calendar'),__('Friday','calendar'),__('Saturday','calendar')); - } - // Choose Monday if anything other than Sunday is set - else - { - $name_days = array(1=>__('Monday','calendar'),__('Tuesday','calendar'),__('Wednesday','calendar'),__('Thursday','calendar'),__('Friday','calendar'),__('Saturday','calendar'),__('Sunday','calendar')); - } - - // Carry on with the script - $name_months = array(1=>__('January','calendar'),__('February','calendar'),__('March','calendar'),__('April','calendar'),__('May','calendar'),__('June','calendar'),__('July','calendar'),__('August','calendar'),__('September','calendar'),__('October','calendar'),__('November','calendar'),__('December','calendar')); - - // If we don't pass arguments we want a calendar that is relevant to today - if (empty($_GET['month']) || empty($_GET['yr'])) - { - $c_year = date("Y"); - $c_month = date("m"); - $c_day = date("d"); - } - - // Years get funny if we exceed 3000, so we use this check - if ($_GET['yr'] <= 3000 && $_GET['yr'] >= 0) - { - // This is just plain nasty and all because of permalinks - // which are no longer used, this will be cleaned up soon - if ($_GET['month'] == 'jan' || $_GET['month'] == 'feb' || $_GET['month'] == 'mar' || $_GET['month'] == 'apr' || $_GET['month'] == 'may' || $_GET['month'] == 'jun' || $_GET['month'] == 'jul' || $_GET['month'] == 'aug' || $_GET['month'] == 'sept' || $_GET['month'] == 'oct' || $_GET['month'] == 'nov' || $_GET['month'] == 'dec') - { - - // Again nasty code to map permalinks into something - // databases can understand. This will be cleaned up - $c_year = mysql_escape_string($_GET['yr']); - if ($_GET['month'] == 'jan') { $t_month = 1; } - else if ($_GET['month'] == 'feb') { $t_month = 2; } - else if ($_GET['month'] == 'mar') { $t_month = 3; } - else if ($_GET['month'] == 'apr') { $t_month = 4; } - else if ($_GET['month'] == 'may') { $t_month = 5; } - else if ($_GET['month'] == 'jun') { $t_month = 6; } - else if ($_GET['month'] == 'jul') { $t_month = 7; } - else if ($_GET['month'] == 'aug') { $t_month = 8; } - else if ($_GET['month'] == 'sept') { $t_month = 9; } - else if ($_GET['month'] == 'oct') { $t_month = 10; } - else if ($_GET['month'] == 'nov') { $t_month = 11; } - else if ($_GET['month'] == 'dec') { $t_month = 12; } - $c_month = $t_month; - $c_day = date("d"); - } - // No valid month causes the calendar to default to today - else - { - $c_year = date("Y"); - $c_month = date("m"); - $c_day = date("d"); - } - } - // No valid year causes the calendar to default to today - else - { - $c_year = date("Y"); - $c_month = date("m"); - $c_day = date("d"); - } - - // Fix the days of the week if week start is not on a monday - if (get_option('start_of_week') == 0) - { - $first_weekday = date("w",mktime(0,0,0,$c_month,1,$c_year)); - $first_weekday = ($first_weekday==0?1:$first_weekday+1); - } - // Otherwise assume the week starts on a Monday. Anything other - // than Sunday or Monday is just plain odd - else - { - $first_weekday = date("w",mktime(0,0,0,$c_month,1,$c_year)); - $first_weekday = ($first_weekday==0?7:$first_weekday); - } - - $days_in_month = date("t", mktime (0,0,0,$c_month,1,$c_year)); - - // Start the table and add the header and naviagtion - $calendar_body .= ' - -'; - - // We want to know if we should display the date switcher - $date_switcher = $wpdb->get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='display_jump'",0,0); - - if ($date_switcher == 'true') - { - $calendar_body .= ' - - -'; - } - - // The header of the calendar table and the links. Note calls to link functions - $calendar_body .= ' - - -'; - - // Print the headings of the days of the week - $calendar_body .= ' -'; - for ($i=1; $i<=7; $i++) - { - // Colours need to be different if the starting day of the week is different - if (get_option('start_of_week') == 0) - { - $calendar_body .= ' -'; - } - else - { - $calendar_body .= ' -'; - } - } - $calendar_body .= ' -'; - - for ($i=1; $i<=$days_in_month;) - { - $calendar_body .= ' -'; - for ($ii=1; $ii<=7; $ii++) - { - if ($ii==$first_weekday && $i==1) - { - $go = TRUE; - } - elseif ($i > $days_in_month ) - { - $go = FALSE; - } - - if ($go) - { - // Colours again, this time for the day numbers - if (get_option('start_of_week') == 0) - { - // This bit of code is for styles believe it or not. - $grabbed_events = grab_events($c_year,$c_month,$i); - $no_events_class = ''; - if (!count($grabbed_events)) - { - $no_events_class = ' no-events'; - } - $calendar_body .= ' -'; - } - else - { - $grabbed_events = grab_events($c_year,$c_month,$i); - $no_events_class = ''; - if (!count($grabbed_events)) - { - $no_events_class = ' no-events'; - } - $calendar_body .= ' -'; - } - } - else - { - $calendar_body .= ' -'; - } - } - $calendar_body .= ' -'; - } - $show_cat = $wpdb->get_var("SELECT config_value FROM ".WP_CALENDAR_CONFIG_TABLE." WHERE config_item='enable_categories'",0,0); - - if ($show_cat == 'true') - { - $sql = "SELECT * FROM " . WP_CALENDAR_CATEGORIES_TABLE . " ORDER BY category_name ASC"; - $cat_details = $wpdb->get_results($sql); - $calendar_body .= ' -'; - } - $calendar_body .= '
    -
    -'; - $qsa = array(); - parse_str($_SERVER['QUERY_STRING'],$qsa); - foreach ($qsa as $name => $argument) - { - if ($name != 'month' && $name != 'yr') - { - $calendar_body .= ' -'; - } - } - function month_comparison($month) - { - $current_month = strtolower(date("M", time())); - if (isset($_GET['yr']) && isset($_GET['month'])) - { - if ($month == $_GET['month']) - { - return ' selected="selected"'; - } - } - elseif ($month == $current_month) - { - return ' selected="selected"'; - } - } - // We build the months in the switcher - $calendar_body .= ' - '.__('Month','calendar').': - '.__('Year','calendar').': - -
    -
    - - - - - - -
    ' . prev_link($c_year,$c_month) . ''.$name_months[(int)$c_month].' '.$c_year.'' . next_link($c_year,$c_month) . '
    -
    '.$name_days[$i].''.$name_days[$i].'
    1?'':'class="weekend"').'>'.$i++.'' . draw_events($grabbed_events) . ''.$i++.'' . draw_events($grabbed_events) . ' 
    - - -'; - foreach($cat_details as $cat_detail) - { - $calendar_body .= ''; - } - $calendar_body .= '
    '.__('Category Key','calendar').'
    '.$cat_detail->category_name.'
    -
    -'; - - // A little link to yours truely. See the README if you wish to remove this - $calendar_body .= ' -'; - - // Phew! After that bit of string building, spit it all out. - // The actual printing is done by the calling function. - return $calendar_body; -} - -?>