TP-Docs
HTML5 Icon HTML5 Icon HTML5 Icon
TP on Social Media

Recent

Welcome to TinyPortal. Please login or sign up.

Members
  • Total Members: 3,963
  • Latest: BiZaJe
Stats
  • Total Posts: 195,917
  • Total Topics: 21,308
  • Online today: 728
  • Online ever: 8,223 (February 19, 2025, 04:35:35 AM)
Users Online
  • Users: 0
  • Guests: 370
  • Total: 370

SMF Calendar Block

Started by Lesmond, September 03, 2005, 11:30:42 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

fangweile

I try to change  0004 to 2004 also but still display December 31, New years also falls in  wrong date, Dec. 31.

Here is my php version:
PHP Version 5.2.8 http://www.php.net/ChangeLog-5.php#5.2.8
Mysql version 5.0.76 Enterprise


mrtrc266

Hello everyone, I'm hoping to get some help here. I created a PHP Block and used this Calendar Code and I love it...exaclty what 'm lookin for.

Only one thing, I don't see the B-Days section and I have a B-Day coming up in 5 days and I get this error...

8: Undefined variable: bdays

In my theme I have it set to show birthdays 7 days in advance.

Everything else shows up fine.

Anyone have any ideas? Does something need to be added to the language file?

Thanks in advance for any help.



IchBin

Are you using the code in the first post of this topic?

mrtrc266

Quote from: IchBinâ,,¢ on December 15, 2008, 05:18:05 PM
Are you using the code in the first post of this topic?

I'm using this code

/******************************************************************************************
*                                                                                         *
* 'Mini' Calendar in phpblock -                                                           *
*                                                                                         *
* Program Parameters/Switches can be specified to change what is displayed and how.       *
*   If highlighting is turned on, only the types of entries which are selected to         *
*   be shown will be highlighted (and have to be shown to guests for guests to see        *
*   highlights). If option of linking the day numbers to calendar event posting form      *
*   is chosen ($date_links_to_posting = true), SMF permissions are in effect and only     *
*   those allowed to post events to the calendar will have this link in effect. For       *
*   $date_links_to_posting = false, and for those not permitted to post events, day       *
*   numbers will link to the full SMF Calendar page. Additionally, if option to show      *
*   a separate 'Post Event' button is chosen ($show_post_event_button = true), it will    *
*   only show for those permitted to post events to the calendar.                         *
*                                                                                         *
* Look for 'NON-ENGLISH' to see section for changing language. This is actually more      *
*   correctly referred to as 'language other than server default' as this Calendar will   *
*   use the server's default LOCALE language for Month and Day names unless overides      *
*   are specified in the code section labeled 'NON-ENGLISH  LABELS, MONTH & DAY NAMES',   *
*   below.                                                                                *
*                                                                                         *
* Once a given day is highlighted, the highlight will not be supplanted. That means       *
*   you may want to modify the order in which highlights are applied in order to set      *
*   desired 'precedence' (i.e. if b-days highlights are applied first, once a given       *
*   day is highlighted with b-day color, it will not be changed to be highlighted         *
*   with event color if an event occurs on the same day; you need to choose an order      *
*   of precedence and sequence the highlighting accordingly by changing the sequence      *
*   of sections in the $order_hilites array. Highlighting will be done in the given       *
*   order.                                                                                *
*                                                                                         *
* Also, if you want the individual B-day/Event/Holiday sections to be ordered in a        *
*   different sequence, you need to change the sequence of entries in the $order_lists    *
*   array.                                                                                *
*                                                                                         *
* Examples of highlighting can be seen in the section 'Highlight colors & backgrounds'    *
*   below. As given, highlighting is done by applying the admin specified calendar        *
*   entry color to the date, bolded, on the default background. Commented example given   *
*   of using bold white on a background box of the admin specified calendar entry color.  *
*                                                                                         *
******************************************************************************************/
global $scripturl, $modSettings, $context, $db_prefix, $user_profile, $user_info, $sourcedir;

/////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//  Program Paramters/Switches Section
//

// use forum's date/time
//$now = mktime() + $modSettings['time_offset'] * 3600;                                 
// include user's time offset to forum date/time
$now = mktime() + (($user_info['time_offset'] + $modSettings['time_offset']) * 3600);

// Order to do highlightling - earlier have precedence
$order_hilites = array('Birthdays', 'Events', 'Holidays');

// Order to show calendar entry lists
$order_lists = array('Birthdays', 'Events', 'Holidays');

// Alignment of calendar entry lists
// $align_list_entries = 'left';
$align_list_entries = 'center';

// Use 'bordercolor' class for 'gridlines' (table background)
$bordercolor_gridlines = false; // Will 'show through' between table cells to act as 'grid lines'
$gridlines_thickness = 2;       // Pixel thickness for table "cellspacing" - only used w/ $bordercolor_gridlines = true;

// Letters to show on calendar for names of each of the days
$day_name_length = 2;

// Selection for first day of the week: 0-Sunday; 1-Monday
$first_day = 1;

// Show B-Day list at all / to guests
$show_bdays = true;
$show_bdays_to_guests = false;

// Show Event list at all / to guests
$show_events = true;
$show_events_to_guests = false;

// Show Holiday list at all / to guests
$show_hdays = true;
$show_hdays_to_guests = true;

// If true, calendar date numbers link to calendar event posting form
//    if not, links to full calendar page
$date_links_to_posting = false;

// Adds 'Post Event' button to bottom of block
$show_post_event_button = false; 

// Highlight events, b-days, holidays (only if they're selected to show at all)
$show_hilites = true;         

$color_sunday = '#D00000';    // comment out to use default text colors -
$color_saturday = '#D00000';  //   can use hex codes with leading '#'
$color_today = 'steelblue';   //   or color names
$bkgrd_today = 'white';

// Default class to use when no other class specified
$class_default = '';
// $class_default = 'smalltext';
// $class_default = 'windowbg2';

// Class to use for column top day names
// $class_day_names = 'titlebg';  // Ex.: titlebg, catbg, catbg2, catbg3, windowbg, windowbg2, windowbg3

// Class to use for 'Today' highlight
$class_today = 'windowbg2';

// Text Labels to use for calendar entry lists
$list_label_bdays =  'Upcoming Birthdays';
$list_label_events = 'Upcoming Events';
$list_label_hdays =  'Upcoming Holidays';

// Colors for text labels on calendar entry lists
$list_label_bdays_color = '#'.$modSettings['cal_bdaycolor'];
$list_label_events_color = '#'.$modSettings['cal_eventcolor'];
$list_label_hdays_color = '#'.$modSettings['cal_holidaycolor'];

// Choose to show 'look-behind' for the various entry types
$show_bdays_past = false;
$show_events_past = false;
$show_hdays_past = false;

// For any of the above chosen, days prior to today to display -
//    use '0' (zero) to use beginning of current month
$past_look_behind_period = 0;

// Class for 'cells' holding text labels on calendar entry lists
// $list_label_class = 'titlebg'; // Ex.: titlebg, catbg, catbg2, catbg3, windowbg, windowbg2, windowbg3

// Class for 'cells' holding calendar entry lists
//   use regular variable for all same class
//   use two-member array to alternate between the two
$list_entry_class = '';
// $list_entry_class = 'windowbg';
// $list_entry_class = array('windowbg2','windowbg3');

///////////////////////////////
//   Highlight colors & backgrounds
//
//   Admin-specified birthday color: $modSettings['cal_bdaycolor']
//   Admin-specified event color:    $modSettings['cal_eventcolor']
//   Admin-specified holiday color:  $modSettings['cal_holidaycolor']

// Highlight bold white on backgound of forum's defined color for date entry type
//
// $hilite_bday_color = 'white';
// $hilite_bday_bkgrd = '#'.$modSettings['cal_bdaycolor'];
// $hilite_bday_bold = true;
// $hilite_bday_class = '';
//
// $hilite_event_color = 'white';
// $hilite_event_bkgrd = '#'.$modSettings['cal_eventcolor'];
// $hilite_event_bold = true;
// $hilite_event_class = '';
//
// $hilite_hday_color = 'white';
// $hilite_hday_bkgrd = '#'.$modSettings['cal_holidaycolor'];
// $hilite_hday_bold = true;
// $hilite_hday_class = '';
////////////////////////////////

// Highlight bolded color for date entry type on default backgound
//
$hilite_bday_color = '#'.$modSettings['cal_bdaycolor'];
// $hilite_bday_bkgrd = '';
$hilite_bday_bold = true;
// $hilite_bday_class = 'windowbg3';
//
$hilite_event_color = '#'.$modSettings['cal_eventcolor'];
// $hilite_event_bkgrd = '';
$hilite_event_bold = true;
// $hilite_event_class = 'windowbg3';
//
$hilite_hday_color = '#'.$modSettings['cal_holidaycolor'];
// $hilite_hday_bkgrd = '';
$hilite_hday_bold = true;
// $hilite_hday_class = 'windowbg3';
////////////////////////////////

/////////////////////////////////////////////// NON-ENGLISH  LABELS, MONTH & DAY NAMES (start)
//
// Non-English Labels, Month and Day Names
//
// To use Month and Day names other than the default on your server,
//   remove the two asterisk '*******' lines (the first starts with '/***'
//   and the second ends '***/') and supply the List Section Labels and the
//   Month and Day names to use per instructions below.
//

/**********************************************************
$list_label_bdays = 'Birthdays';  // Change to labels in language of choice
$list_label_events = 'Events';
$list_label_hdays = 'Holidays';

//
// specify all the day names in desired language
//   if you specify "$first_day = 1;" above, first entry below must be for Monday; e.g:
//      when $first_day = 0;  then $day_names = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
//      when $first_day = 1;  then $day_names = array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');
//   
$day_names = array('Lunes','Martes','Miercoles','Jueves','Viernes','Sabado','Domingo');

//
// specify the month names in desired language
//   
$month_nam = array();
$month_nam['01'] = 'Enero';       
$month_nam['02'] = 'Febrero';
$month_nam['03'] = 'Marzo';
$month_nam['04'] = 'Abril';
$month_nam['05'] = 'Mayo';
$month_nam['06'] = 'Junio';
$month_nam['07'] = 'Julio';
$month_nam['08'] = 'Agosto';
$month_nam['09'] = 'Septiembre';
$month_nam['10'] = 'Octubre';
$month_nam['11'] = 'Noviembre';
$month_nam['12'] = 'Diciembre';
$month_name = $month_nam[date('m',$now)];
//
**********************************************************/
/////////////////////////////////////////////// NON-ENGLISH  LABELS, MONTH & DAY NAMES (end)

//
//  Program Paramters/Switches Section - End
//    (modify below at your own risk!!!)
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////

$hi_bday_color = '';
if (isset($hilite_bday_color)) $hi_bday_color = 'color:'.$hilite_bday_color.'; ';
$hi_bday_bkgrd = '';
if (isset($hilite_bday_bkgrd)) $hi_bday_bkgrd = 'background-color: '.$hilite_bday_bkgrd.'; ';
$hi_bday_fontwt = '';
if (isset($hilite_bday_bold) && $hilite_bday_bold) $hi_bday_fontwt = 'font-weight:bold; ';

$hi_event_color = '';
if (isset($hilite_event_color)) $hi_event_color = 'color:'.$hilite_event_color.'; ';
$hi_event_bkgrd = '';
if (isset($hilite_event_bkgrd)) $hi_event_bkgrd = 'background-color: '.$hilite_event_bkgrd.'; ';
$hi_event_fontwt = '';
if (isset($hilite_event_bold) && $hilite_event_bold) $hi_event_fontwt = 'font-weight:bold; ';

$hi_hday_color = '';
if (isset($hilite_hday_color)) $hi_hday_color = 'color:'.$hilite_hday_color.'; ';
$hi_hday_bkgrd = '';
if (isset($hilite_hday_bkgrd)) $hi_hday_bkgrd = 'background-color: '.$hilite_hday_bkgrd.'; ';
$hi_hday_fontwt = '';
if (isset($hilite_hday_bold) && $hilite_hday_bold) $hi_hday_fontwt = 'font-weight:bold; ';

if (!isset($class_default)) $class_default = 'windowbg';
if ($class_default == '') $class_default = 'windowbg';

$table_bkgrd = 'class="'.$class_default.'" cellspacing="1"';
if ($bordercolor_gridlines) $table_bkgrd = 'class="bordercolor" cellspacing="'.$gridlines_thickness.'"';

$today = strftime('%d', $now);
$year = date('Y',$now);
$month = date('n',$now);
$nowdate = strftime('%Y-%m-%d', $now);

$month_href = $scripturl . '?action=calendar;year='.$year.';month='.$month;

require_once($sourcedir . '/Calendar.php');

$low_date_base = strftime('%Y-%m-%d', $now - 24 * 3600);
$high_date_base = strftime('%Y-%m-%d', $now + $modSettings['cal_days_for_index'] * 24 * 3600);

$low_date = ($show_bdays_past || $show_events_past || $show_hdays_past) ? ( ($past_look_behind_period == 0) ? date('Y',$now).'-'.date('m',$now).'-01' : strftime('%Y-%m-%d', $now - (($past_look_behind_period + 1) * 24 * 3600)) ) : $low_date_base;
$high_date = $high_date_base;

$low_date_ts = strtotime($low_date);

if ($show_events) {
    $events = $show_events_past ? calendarEventArray($low_date, $high_date, false) : calendarEventArray($low_date_base, $high_date, false);
    ksort($events); }


if ($show_hdays) {
    $holidays = $show_hdays_past ? calendarHolidayArray($low_date, $high_date) : calendarHolidayArray($low_date_base, $high_date);
    ksort($holidays); }

$todays_color = isset($color_today) ?'color:'.$color_today.'; ' : '';
$todays_bkgrd = isset($bkgrd_today) ?'background-color:'.$bkgrd_today.'; ' : '';

$stub = '<a class="smalltext" style="'.$todays_color.'font-weight:bold; border:solid 1px black; '.$todays_bkgrd.'padding: 0px 2px 0px 2px;"';

// Highlighted 'Today' Box
if ($date_links_to_posting && allowedTo('calendar_post')) {
    $days = array($today=>array(NULL,$class_today,$stub.' href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.$today.'" target="_self">'.date('j',$now).'</a>'));}
else {
    $days = array($today=>array(NULL,$class_today,$stub.' href="'.htmlspecialchars($month_href).'" target="_self">'.date('j',$now).'</a>'));}

////////////////////////////////////////////////////////////////////////////// HIGHLIGHTING (start)
//
if ($show_hilites) {
    foreach($order_hilites as $hilite_to_do){
        $flag = strtoupper(substr($hilite_to_do,0,1));

///////////////////////////////////////////////// B-Day Highlighting
        if ($flag == 'B') {
            if ($show_bdays) {
                if ($show_bdays_to_guests or !$user_info['is_guest']) {
                    $stub = '<a class="smalltext" style="'. $hi_bday_color . $hi_bday_bkgrd . $hi_bday_fontwt .'padding: 0px 2px 0px 2px;"';
                    if (!isset($hilite_bday_class)) $hilite_bday_class = $class_default;
                    if ($hilite_bday_class == '') $hilite_bday_class = $class_default;
                    foreach($bdays as $startdate => $value)
                        if(!isset($days[substr($startdate,8)]) or !is_array($days[substr($startdate,8)])) {
                            if (substr($startdate,0,7) == substr($nowdate,0,7)) {
                                if ($date_links_to_posting && allowedTo('calendar_post')) {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_bday_class,$stub.' href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.substr($startdate,8).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                                else {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_bday_class,$stub.' href="'.htmlspecialchars($month_href).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                            }
                        }
                }
            }
        }
////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////// Event Highlighting
        if ($flag == 'E') {
            if ($show_events) {
                if ($show_events_to_guests or !$user_info['is_guest']) {
                    $stub = '<a class="smalltext" style="'. $hi_event_color . $hi_event_bkgrd . $hi_event_fontwt .'padding: 0px 2px 0px 2px;"';
                    if (!isset($hilite_event_class)) $hilite_event_class = $class_default;
                    if ($hilite_event_class == '') $hilite_event_class = $class_default;
                    foreach($events as $startdate => $value)
                        if(!isset($days[substr($startdate,8)]) or !is_array($days[substr($startdate,8)])) {
                            if (substr($startdate,0,7) == substr($nowdate,0,7)) {
                                if ($date_links_to_posting && allowedTo('calendar_post')) {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_event_class,$stub.' href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.substr($startdate,8).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                                else {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_event_class,$stub.' href="'.htmlspecialchars($month_href).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                            }
                        }
                }
            }
        }
////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////// Holiday Highlighting
        if ($flag == 'H') {
            if ($show_hdays) {
                if ($show_hdays_to_guests or !$user_info['is_guest']) {
                    $stub = '<a class="smalltext" style="'. $hi_hday_color . $hi_hday_bkgrd . $hi_hday_fontwt .'padding: 0px 2px 0px 2px;"';
                    if (!isset($hilite_hday_class)) $hilite_hday_class = $class_default;
                    if ($hilite_hday_class == '') $hilite_hday_class = $class_default;
                    foreach($holidays as $startdate => $value)
                        if (!isset($days[substr($startdate,8)]) or !is_array($days[substr($startdate,8)])) {
                            if (substr($startdate,0,7) == substr($nowdate,0,7)) {
                                if ($date_links_to_posting && allowedTo('calendar_post')) {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_hday_class,$stub.' href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.substr($startdate,8).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                                else {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_hday_class,$stub.' href="'.htmlspecialchars($month_href).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                            }
                        }
                }
            }
        }
////////////////////////////////////////////////////////////////////
    }
}

////////////////////////////////////////////////////////////////////////////// HIGHLIGHTING (end)

$first_of_month = gmmktime(0,0,0,$month,1,$year);
list($month, $year, $weekday) = explode(',',gmstrftime('%m,%Y,%w',$first_of_month));

if (!isset($month_nam['12'])) {
    $day_names = array();                                      // generate all the day names according to the current locale
    for($n=0,$t=(3+$first_day)*86400; $n<7; $n++,$t+=86400)    // January 4, 1970 was a Sunday
        $day_names[$n] = ucfirst(gmstrftime('%A',$t));         // %A means full textual day name
    list($month, $year, $month_name, $weekday) = explode(',',gmstrftime('%m,%Y,%B,%w',$first_of_month));
}

$weekday = ($weekday + 7 - $first_day) % 7;                // adjust for $first_day
$title   = htmlentities(ucfirst($month_name)).' '.$year;   // note that some locales don't capitalize month and day names

$calendar = '<table '.$table_bkgrd.' align="center">'.'<caption >'.($month_href ? '<a href="'.htmlspecialchars($month_href).'">'.$title.'</a>' : $title).'</caption><tr>';

if (!isset($class_day_names)) $class_day_names = $class_default;
if ($class_day_names == '') $class_day_names = $class_default;
if($day_name_length){                                      #if the day names should be shown ($day_name_length > 0)
    foreach($day_names as $d)
    $calendar .= '<th class="'.$class_day_names.'" align="center" valign="middle" style="padding-left: 0px; padding-right: 0px;font-size: x-small;" abbr="'.htmlentities($d).'">'.htmlentities($day_name_length < 4 ? substr($d,0,$day_name_length) : $d).'</th>';
    $calendar .= '</tr><tr style="text-align:right;">';
    }

if($weekday > 0) $calendar .= '<td class="'.$class_default.'" colspan="'.$weekday.'"> </td>'; #initial 'empty' days

for($day=1,$days_in_month=gmdate('t',$first_of_month); $day<=$days_in_month; $day++,$weekday++){
    if($weekday == 7){
        $weekday   = 0; #start a new week
        $calendar .= '</tr><tr style="text-align:right;">';
        }

    $daynow = sprintf('%02d',$day);
    $col_width = ' width="14%"';
    if ( ((($weekday+$first_day) % 7) == 0) || ((($weekday+$first_day) % 7) == 0) ) $col_width = ' width="15%"';

    if(isset($days[$daynow]) and is_array($days[$daynow])){
        @list($link, $classes, $content) = $days[$daynow];
        if(is_null($content))  $content  = $daynow;
        $calendar .= '<td'.$col_width.' align="center" valign="middle" '.($classes ? ' class="'.htmlspecialchars($classes).'" style="padding: 0px 0px 0px 0px;font-size: x-small;">' : '>').($link ? '<a href="'.htmlspecialchars($link).'">'.$content.'</a>' : $content).'</td>';
        }
    else
        {
        $calendar .= '<td'.$col_width.' class="'.$class_default.'" align="center" valign="middle" style="padding: 0px 0px 0px 0px;font-size: x-small;"><a class="smalltext"';
        if (((($weekday+$first_day) % 7) == 0) && isset($color_sunday))
            $calendar .= ' style="color:'.$color_sunday.';"';
        if (((($weekday+$first_day) % 7) == 6) && isset($color_saturday))
            $calendar .= ' style="color:'.$color_saturday.';"';
        if ($date_links_to_posting && allowedTo('calendar_post')) {
            $calendar .= ' href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.$day.'" target="_self">'.$day.'</a></td>';}
        else {
            $calendar .= ' href="'.htmlspecialchars($month_href).'" target="_self">'.$day.'</a></td>';}
        }
    }

if($weekday != 7) $calendar .= '<td class="'.$class_default.'" colspan="'.(7-$weekday).'"> </td>'; #remaining "empty" days

echo $calendar.'</tr>';

foreach($order_lists as $list_to_do){
    $flag = strtoupper(substr($list_to_do,0,1));

if (!isset($align_list_entries)) $align_list_entries = 'center';
if (isset($align_list_entries))
    if ($align_list_entries <> 'left') $align_list_entries = 'center';

if (!isset($list_label_class)) $list_label_class = $class_default;
if ($list_label_class == '') $list_label_class = $class_default;

if (!isset($list_entry_class)) $list_entry_class = $class_default;
if ($list_entry_class == '') $list_entry_class = $class_default;

/////////////////////////////////////////////////////////////////
//   BIRTHDAY SECTION
//
if(($flag == 'B') and $show_bdays) {
    if($show_bdays_to_guests or !$user_info['is_guest']) {
        if (!empty($bdays))
        {
            echo '<tr'. (isset($list_label_class) ? ' class="'.$list_label_class.'"' : '') .'><td colspan="7" class="smalltext" align="center" style="font-weight: bold; color: ' . $list_label_bdays_color . ';">'.$list_label_bdays.'</td></tr>';
            $ctr = 0;

            foreach($bdays as $startdate => $bday_date)
            {

                if (($startdate >= strftime('%Y-%m-%d', $low_date_ts)) && ($startdate <= strftime('%Y-%m-%d', $now + $modSettings['cal_days_for_index'] * 24 * 3600)))

                foreach ($bday_date as $member)
                {
                    $class_to_use = isset($list_entry_class) ? ( !is_array($list_entry_class) ? ' class="'.$list_entry_class.'"' : ' class="'.$list_entry_class[($ctr++) % count($list_entry_class)].'"') : '';
                    $birthdate = strtotime($startdate);
                    $text_start = !isset($month_nam['12']) ? date("M j",$birthdate) : substr($month_nam[strftime('%m', $birthdate)],0,3) . date(" j",$birthdate);

                    echo '<tr'.$class_to_use.'><td colspan="7" class="smalltext" style="padding: 0px 0px 0px 0px;" width="100%" align="'.$align_list_entries.'">';
                    echo '<a href="', $scripturl, '?action=calendar;year=' . date("Y") . ';month=' . substr($startdate,5,2) . '"><strong>' . $text_start . '</strong></a>';
                    echo ' - ';
                    echo '<a href="' . $scripturl . '?action=profile;u=' . $member['id'] . '" title="' . $txt[92] . ' ' . $member['name'] . '">' . '<font color="'. $member['color']  .'">' . ( ($nowdate == $startdate) ? '<b>' : '') . $member['name'] . (isset($member['age']) ? '(' . $member['age'] . ')' : '') . ( ($nowdate == $startdate) ? '</b>' : '') . '</font>' . '</a>';
                    echo '</td></tr>';
                }

            }
        }
    }
}

/////////////////////////////////////////////////////////////////
//   EVENTS SECTION
//
if(($flag == 'E') and $show_events) {
    if($show_events_to_guests or !$user_info['is_guest']) {

        if (!empty($events))
        {
            $events_printed = array();
            echo '<tr'. (isset($list_label_class) ? ' class="'.$list_label_class.'"' : '') .'><td colspan="7" class="smalltext" align="center" style="font-weight: bold; color: ' . $list_label_events_color . ';">'.$list_label_events.'</td></tr>';
            $ctr = 0;

            foreach ($events as $startdate => $evt_date)
            {

                if (($startdate >= strftime('%Y-%m-%d', $low_date_ts)) && ($startdate <= strftime('%Y-%m-%d', $now + $modSettings['cal_days_for_index'] * 24 * 3600)))

                foreach ($evt_date as $event)
                {
                    if (!in_array($event['id'],$events_printed)) {
                        $events_printed[] = $event['id'];
                        $class_to_use = isset($list_entry_class) ? ( !is_array($list_entry_class) ? ' class="'.$list_entry_class.'"' : ' class="'.$list_entry_class[($ctr++) % count($list_entry_class)].'"') : '';

                        $evt_start = strtotime($event['start_date']);
                        $evt_end = strtotime($event['end_date']);
                        $text_start = !isset($month_nam['12']) ? date("M j",$evt_start) : substr($month_nam[strftime('%m', $evt_start)],0,3) . date(" j",$evt_start);
                        $text_end = ($event['start_date'] == $event['end_date'] ? '' : '-'. (substr($event['start_date'],5,2) == substr($event['end_date'],5,2) ? date("j",$evt_end) : (!isset($month_nam['12']) ? date("M j",$evt_end) : substr($month_nam[strftime('%m', $evt_start)],0,3) . date(" j",$evt_start))));

                        $link = $event['topic'] == 0 ? $event['title'] : '<a href="' . $scripturl . '?topic=' . $event['topic'] . '.0' . '">' . $event['title'] . '</a>';

                        echo '<tr'.$class_to_use.'><td colspan="7" class="smalltext" style="padding: 0px 0px 0px 0px;" width="100%" align="'.$align_list_entries.'">';
                        echo '<a href="', $scripturl, '?action=calendar;year=' . date("Y") . ';month=' . substr($startdate,5,2) . '"><strong>' . $text_start . $text_end . '</strong></a>';
                        echo ' - ';
                        echo  ( ($nowdate >= $event['start_date']) && ($event['end_date'] >= $nowdate) ) ? '<b>'.$link.'</b>' : $link  ;
                        echo '</td></tr>';
                   }
                }


            }
        }
    }
}

/////////////////////////////////////////////////////////////////
//   HOLIDAY SECTION
//
if(($flag == 'H') and $show_hdays) {
    if($show_hdays_to_guests or !$user_info['is_guest']) {

        if (!empty($holidays))
        {
            echo '<tr'. (isset($list_label_class) ? ' class="'.$list_label_class.'"' : '') .'><td colspan="7" class="smalltext" align="center" style="font-weight: bold; color: ' . $list_label_hdays_color . ';">'.$list_label_hdays.'</td></tr>';
            $ctr = 0;

            foreach ($holidays as $hDate => $hday)
            {

                if (($hDate >= strftime('%Y-%m-%d', $low_date_ts)) && ($hDate <= strftime('%Y-%m-%d', $now + $modSettings['cal_days_for_index'] * 24 * 3600)))
                {
                $eventdate = strtotime(date("Y").substr($hDate, 4));
                foreach ($hday as $holiday)
                {
                    $class_to_use = isset($list_entry_class) ? ( !is_array($list_entry_class) ? ' class="'.$list_entry_class.'"' : ' class="'.$list_entry_class[($ctr++) % count($list_entry_class)].'"') : '';
                    $text_start = !isset($month_nam['12']) ? date("M j",$eventdate) : substr($month_nam[strftime('%m', $eventdate)],0,3) . date(" j",$eventdate);

                    echo '<tr'.$class_to_use.'><td colspan="7" class="smalltext" style="padding: 0px 0px 0px 0px;" width="100%" align="'.$align_list_entries.'">';
                    echo '<a href="', $scripturl, '?action=calendar;year=' . date("Y") . ';month=' . substr($startdate,5,2) . '"><strong>' . $text_start . '</strong></a>';
                    echo ' - ';
                    echo $holiday;
                    echo '</td></tr>';
                }

                }

            }
        }
    }
}
}

if ($show_post_event_button) {
        if (allowedTo('calendar_post')) {
            echo '<tr><td colspan="7" class="'.$class_default.'" align="center" valign="middle">';
            echo '<hr/ >';
            echo '<a href="', $scripturl,  '?action=calendar;sa=post;month=', $month, ';year=', $year, ';sesc=', $context['session_id'], '">','<br />', create_button('calendarpe.gif', 'calendar23', 'calendar23', 'align="middle"'), '</a>';
            echo '</td></tr>';
    }
}

echo '</table>';

Smoothbrain

Quote from: IchBinâ,,¢ on December 10, 2008, 04:28:10 PM
Ken, can you look at your database in the calendar_holidays table, and tell me what the eventDate column says for Christmas?

Hi I am having the same problem mentioned.  I am a n00b so could you please direct me as to where I might find this table to change it?  Thanks heaps.

Smoothbrain

#595
Quote from: Smoothbrain on January 07, 2009, 05:12:39 PM
Quote from: IchBinâ,,¢ on December 10, 2008, 04:28:10 PM
Ken, can you look at your database in the calendar_holidays table, and tell me what the eventDate column says for Christmas?

Hi I am having the same problem mentioned.  I am a n00b so could you please direct me as to where I might find this table to change it?  Thanks heaps.


Well I found it but I don't think changing it worked.  I did wind up changing all the holidays (the ones with a constant date were messed up but the ones that change date had the 2, go figure)  I am exploring some other files now to see if i can track down what is going oin, more later.

Smoothbrain

Ok figured a couple things out that may or may not help others. 

There were several instances of incorrect dates (as mentioned above for the Christmas example) in my calendar_holiday and calendar db. You need to correct all of them.

In addition if you are listing moonphases the moonphase db is off but I was unsure what to put as correcting the 0000-00-00 to 2000-00-00 or 2000-01-01 did not fix said problem. You can either turn off moonphases or take out the listing from your block.

If you have repeating even mod and have the date older then today's date it will show that date in your block.  I just edited my repeat event as a workaround as I couldn't really figure out how to get it to show the "next" future date in the block.

Hope this helps.

Herr Inoddorell

#597
Hi to all, I'm using this Code:

/******************************************************************************************
*                                                                                         *
* 'Mini' Calendar in phpblock -                                                           *
*                                                                                         *
* Program Parameters/Switches can be specified to change what is displayed and how.       *
*   If highlighting is turned on, only the types of entries which are selected to         *
*   be shown will be highlighted (and have to be shown to guests for guests to see        *
*   highlights). If option of linking the day numbers to calendar event posting form      *
*   is chosen ($date_links_to_posting = true), SMF permissions are in effect and only     *
*   those allowed to post events to the calendar will have this link in effect. For       *
*   $date_links_to_posting = false, and for those not permitted to post events, day       *
*   numbers will link to the full SMF Calendar page. Additionally, if option to show      *
*   a separate 'Post Event' button is chosen ($show_post_event_button = true), it will    *
*   only show for those permitted to post events to the calendar.                         *
*                                                                                         *
* Look for 'NON-ENGLISH' to see section for changing language. This is actually more      *
*   correctly referred to as 'language other than server default' as this Calendar will   *
*   use the server's default LOCALE language for Month and Day names unless overides      *
*   are specified in the code section labeled 'NON-ENGLISH  LABELS, MONTH & DAY NAMES',   *
*   below.                                                                                *
*                                                                                         *
* Once a given day is highlighted, the highlight will not be supplanted. That means       *
*   you may want to modify the order in which highlights are applied in order to set      *
*   desired 'precedence' (i.e. if b-days highlights are applied first, once a given       *
*   day is highlighted with b-day color, it will not be changed to be highlighted         *
*   with event color if an event occurs on the same day; you need to choose an order      *
*   of precedence and sequence the highlighting accordingly by changing the sequence      *
*   of sections in the $order_hilites array. Highlighting will be done in the given       *
*   order.                                                                                *
*                                                                                         *
* Also, if you want the individual B-day/Event/Holiday sections to be ordered in a        *
*   different sequence, you need to change the sequence of entries in the $order_lists    *
*   array.                                                                                *
*                                                                                         *
* Examples of highlighting can be seen in the section 'Highlight colors & backgrounds'    *
*   below. As given, highlighting is done by applying the admin specified calendar        *
*   entry color to the date, bolded, on the default background. Commented example given   *
*   of using bold white on a background box of the admin specified calendar entry color.  *
*                                                                                         *
******************************************************************************************/
global $scripturl, $modSettings, $context, $db_prefix, $user_profile, $user_info, $sourcedir;

/////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//  Program Paramters/Switches Section
//

// use forum's date/time
//$now = mktime() + $modSettings['time_offset'] * 3600;                                
// include user's time offset to forum date/time
$now = mktime() + (($user_info['time_offset'] + $modSettings['time_offset']) * 3600);

// Order to do highlightling - earlier have precedence
$order_hilites = array('Birthdays', 'Events', 'Holidays');

// Order to show calendar entry lists
$order_lists = array('Birthdays', 'Events', 'Holidays');

// Alignment of calendar entry lists
// $align_list_entries = 'left';
$align_list_entries = 'center';

// Use 'bordercolor' class for 'gridlines' (table background)
$bordercolor_gridlines = false; // Will 'show through' between table cells to act as 'grid lines'
$gridlines_thickness = 2;       // Pixel thickness for table "cellspacing" - only used w/ $bordercolor_gridlines = true;

// Letters to show on calendar for names of each of the days
$day_name_length = 2;

// Selection for first day of the week: 0-Sunday; 1-Monday
$first_day = 1;

// Show B-Day list at all / to guests
$show_bdays = true;
$show_bdays_to_guests = false;

// Show Event list at all / to guests
$show_events = true;
$show_events_to_guests = false;

// Show Holiday list at all / to guests
$show_hdays = true;
$show_hdays_to_guests = true;

// If true, calendar date numbers link to calendar event posting form
//    if not, links to full calendar page
$date_links_to_posting = false;

// Adds 'Post Event' button to bottom of block
$show_post_event_button = false; 

// Highlight events, b-days, holidays (only if they're selected to show at all)
$show_hilites = true;        

$color_sunday = '#D00000';    // comment out to use default text colors -
$color_saturday = '#D00000';  //   can use hex codes with leading '#'
$color_today = 'steelblue';   //   or color names
$bkgrd_today = 'white';

// Default class to use when no other class specified
$class_default = '';
// $class_default = 'smalltext';
// $class_default = 'windowbg2';

// Class to use for column top day names
// $class_day_names = 'titlebg';  // Ex.: titlebg, catbg, catbg2, catbg3, windowbg, windowbg2, windowbg3

// Class to use for 'Today' highlight
$class_today = 'windowbg2';

// Text Labels to use for calendar entry lists
$list_label_bdays =  '______ Birthdays ______';
$list_label_events = '_______ Events _______';
$list_label_hdays =  '______ Holidays ______';

// Colors for text labels on calendar entry lists
$list_label_bdays_color = '#'.$modSettings['cal_bdaycolor'];
$list_label_events_color = '#'.$modSettings['cal_eventcolor'];
$list_label_hdays_color = '#'.$modSettings['cal_holidaycolor'];

// Choose to show 'look-behind' for the various entry types
$show_bdays_past = false;
$show_events_past = false;
$show_hdays_past = false;

// For any of the above chosen, days prior to today to display -
//    use '0' (zero) to use beginning of current month
$past_look_behind_period = 0;

// Class for 'cells' holding text labels on calendar entry lists
// $list_label_class = 'titlebg'; // Ex.: titlebg, catbg, catbg2, catbg3, windowbg, windowbg2, windowbg3

// Class for 'cells' holding calendar entry lists
//   use regular variable for all same class
//   use two-member array to alternate between the two
$list_entry_class = '';
// $list_entry_class = 'windowbg';
// $list_entry_class = array('windowbg2','windowbg3');

///////////////////////////////
//   Highlight colors & backgrounds
//
//   Admin-specified birthday color: $modSettings['cal_bdaycolor']
//   Admin-specified event color:    $modSettings['cal_eventcolor']
//   Admin-specified holiday color:  $modSettings['cal_holidaycolor']

// Highlight bold white on backgound of forum's defined color for date entry type
//
// $hilite_bday_color = 'white';
// $hilite_bday_bkgrd = '#'.$modSettings['cal_bdaycolor'];
// $hilite_bday_bold = true;
// $hilite_bday_class = '';
//
// $hilite_event_color = 'white';
// $hilite_event_bkgrd = '#'.$modSettings['cal_eventcolor'];
// $hilite_event_bold = true;
// $hilite_event_class = '';
//
// $hilite_hday_color = 'white';
// $hilite_hday_bkgrd = '#'.$modSettings['cal_holidaycolor'];
// $hilite_hday_bold = true;
// $hilite_hday_class = '';
////////////////////////////////

// Highlight bolded color for date entry type on default backgound
//
$hilite_bday_color = '#'.$modSettings['cal_bdaycolor'];
// $hilite_bday_bkgrd = '';
$hilite_bday_bold = true;
// $hilite_bday_class = 'windowbg3';
//
$hilite_event_color = '#'.$modSettings['cal_eventcolor'];
// $hilite_event_bkgrd = '';
$hilite_event_bold = true;
// $hilite_event_class = 'windowbg3';
//
$hilite_hday_color = '#'.$modSettings['cal_holidaycolor'];
// $hilite_hday_bkgrd = '';
$hilite_hday_bold = true;
// $hilite_hday_class = 'windowbg3';
////////////////////////////////

/////////////////////////////////////////////// NON-ENGLISH  LABELS, MONTH & DAY NAMES (start)
//
// Non-English Labels, Month and Day Names
//
// To use Month and Day names other than the default on your server,
//   remove the two asterisk '*******' lines (the first starts with '/***'
//   and the second ends '***/') and supply the List Section Labels and the
//   Month and Day names to use per instructions below.
//

/**********************************************************
$list_label_bdays = 'Birthdays';  // Change to labels in language of choice
$list_label_events = 'Events';
$list_label_hdays = 'Holidays';

//
// specify all the day names in desired language
//   if you specify "$first_day = 1;" above, first entry below must be for Monday; e.g:
//      when $first_day = 0;  then $day_names = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
//      when $first_day = 1;  then $day_names = array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');
//  
$day_names = array('Lunes','Martes','Miercoles','Jueves','Viernes','Sabado','Domingo');

//
// specify the month names in desired language
//  
$month_nam = array();
$month_nam['01'] = 'Enero';       
$month_nam['02'] = 'Febrero';
$month_nam['03'] = 'Marzo';
$month_nam['04'] = 'Abril';
$month_nam['05'] = 'Mayo';
$month_nam['06'] = 'Junio';
$month_nam['07'] = 'Julio';
$month_nam['08'] = 'Agosto';
$month_nam['09'] = 'Septiembre';
$month_nam['10'] = 'Octubre';
$month_nam['11'] = 'Noviembre';
$month_nam['12'] = 'Diciembre';
$month_name = $month_nam[date('m',$now)];
//
**********************************************************/
/////////////////////////////////////////////// NON-ENGLISH  LABELS, MONTH & DAY NAMES (end)

//
//  Program Paramters/Switches Section - End
//    (modify below at your own risk!!!)
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////

$hi_bday_color = '';
if (isset($hilite_bday_color)) $hi_bday_color = 'color:'.$hilite_bday_color.'; ';
$hi_bday_bkgrd = '';
if (isset($hilite_bday_bkgrd)) $hi_bday_bkgrd = 'background-color: '.$hilite_bday_bkgrd.'; ';
$hi_bday_fontwt = '';
if (isset($hilite_bday_bold) && $hilite_bday_bold) $hi_bday_fontwt = 'font-weight:bold; ';

$hi_event_color = '';
if (isset($hilite_event_color)) $hi_event_color = 'color:'.$hilite_event_color.'; ';
$hi_event_bkgrd = '';
if (isset($hilite_event_bkgrd)) $hi_event_bkgrd = 'background-color: '.$hilite_event_bkgrd.'; ';
$hi_event_fontwt = '';
if (isset($hilite_event_bold) && $hilite_event_bold) $hi_event_fontwt = 'font-weight:bold; ';

$hi_hday_color = '';
if (isset($hilite_hday_color)) $hi_hday_color = 'color:'.$hilite_hday_color.'; ';
$hi_hday_bkgrd = '';
if (isset($hilite_hday_bkgrd)) $hi_hday_bkgrd = 'background-color: '.$hilite_hday_bkgrd.'; ';
$hi_hday_fontwt = '';
if (isset($hilite_hday_bold) && $hilite_hday_bold) $hi_hday_fontwt = 'font-weight:bold; ';

if (!isset($class_default)) $class_default = 'windowbg';
if ($class_default == '') $class_default = 'windowbg';

$table_bkgrd = 'class="'.$class_default.'" cellspacing="1"';
if ($bordercolor_gridlines) $table_bkgrd = 'class="bordercolor" cellspacing="'.$gridlines_thickness.'"';

$today = strftime('%d', $now);
$year = date('Y',$now);
$month = date('n',$now);
$nowdate = strftime('%Y-%m-%d', $now);

$month_href = $scripturl . '?action=calendar;year='.$year.';month='.$month;

require_once($sourcedir . '/Calendar.php');

$low_date_base = strftime('%Y-%m-%d', $now - 24 * 3600);
$high_date_base = strftime('%Y-%m-%d', $now + $modSettings['cal_days_for_index'] * 24 * 3600);

$low_date = ($show_bdays_past || $show_events_past || $show_hdays_past) ? ( ($past_look_behind_period == 0) ? date('Y',$now).'-'.date('m',$now).'-01' : strftime('%Y-%m-%d', $now - (($past_look_behind_period + 1) * 24 * 3600)) ) : $low_date_base;
$high_date = $high_date_base;

$low_date_ts = strtotime($low_date);

if ($show_bdays) {
    $bdays = $show_bdays_past ? calendarBirthdayArray($low_date, $high_date) : calendarBirthdayArray($low_date_base, $high_date);
    ksort($bdays); }

if ($show_events) {
    $events = $show_events_past ? calendarEventArray($low_date, $high_date, false) : calendarEventArray($low_date_base, $high_date, false);
    ksort($events); }

if ($show_hdays) {
    $holidays = $show_hdays_past ? calendarHolidayArray($low_date, $high_date) : calendarHolidayArray($low_date_base, $high_date);
    ksort($holidays); }

$todays_color = isset($color_today) ?'color:'.$color_today.'; ' : '';
$todays_bkgrd = isset($bkgrd_today) ?'background-color:'.$bkgrd_today.'; ' : '';

$stub = '<a class="smalltext" style="'.$todays_color.'font-weight:bold; border:solid 1px black; '.$todays_bkgrd.'padding: 0px 2px 0px 2px;"';

// Highlighted 'Today' Box
if ($date_links_to_posting && allowedTo('calendar_post')) {
    $days = array($today=>array(NULL,$class_today,$stub.' href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.$today.'" target="_self">'.date('j',$now).'</a>'));}
else {
    $days = array($today=>array(NULL,$class_today,$stub.' href="'.htmlspecialchars($month_href).'" target="_self">'.date('j',$now).'</a>'));}

////////////////////////////////////////////////////////////////////////////// HIGHLIGHTING (start)
//
if ($show_hilites) {
    foreach($order_hilites as $hilite_to_do){
        $flag = strtoupper(substr($hilite_to_do,0,1));

///////////////////////////////////////////////// B-Day Highlighting
        if ($flag == 'B') {
            if ($show_bdays) {
                if ($show_bdays_to_guests or !$user_info['is_guest']) {
                    $stub = '<a class="smalltext" style="'. $hi_bday_color . $hi_bday_bkgrd . $hi_bday_fontwt .'padding: 0px 2px 0px 2px;"';
                    if (!isset($hilite_bday_class)) $hilite_bday_class = $class_default;
                    if ($hilite_bday_class == '') $hilite_bday_class = $class_default;
                    foreach($bdays as $startdate => $value)
                        if(!isset($days[substr($startdate,8)]) or !is_array($days[substr($startdate,8)])) {
                            if (substr($startdate,0,7) == substr($nowdate,0,7)) {
                                if ($date_links_to_posting && allowedTo('calendar_post')) {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_bday_class,$stub.' href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.substr($startdate,8).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                                else {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_bday_class,$stub.' href="'.htmlspecialchars($month_href).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                            }
                        }
                }
            }
        }
////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////// Event Highlighting
        if ($flag == 'E') {
            if ($show_events) {
                if ($show_events_to_guests or !$user_info['is_guest']) {
                    $stub = '<a class="smalltext" style="'. $hi_event_color . $hi_event_bkgrd . $hi_event_fontwt .'padding: 0px 2px 0px 2px;"';
                    if (!isset($hilite_event_class)) $hilite_event_class = $class_default;
                    if ($hilite_event_class == '') $hilite_event_class = $class_default;
                    foreach($events as $startdate => $value)
                        if(!isset($days[substr($startdate,8)]) or !is_array($days[substr($startdate,8)])) {
                            if (substr($startdate,0,7) == substr($nowdate,0,7)) {
                                if ($date_links_to_posting && allowedTo('calendar_post')) {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_event_class,$stub.' href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.substr($startdate,8).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                                else {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_event_class,$stub.' href="'.htmlspecialchars($month_href).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                            }
                        }
                }
            }
        }
////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////// Holiday Highlighting
        if ($flag == 'H') {
            if ($show_hdays) {
                if ($show_hdays_to_guests or !$user_info['is_guest']) {
                    $stub = '<a class="smalltext" style="'. $hi_hday_color . $hi_hday_bkgrd . $hi_hday_fontwt .'padding: 0px 2px 0px 2px;"';
                    if (!isset($hilite_hday_class)) $hilite_hday_class = $class_default;
                    if ($hilite_hday_class == '') $hilite_hday_class = $class_default;
                    foreach($holidays as $startdate => $value)
                        if (!isset($days[substr($startdate,8)]) or !is_array($days[substr($startdate,8)])) {
                            if (substr($startdate,0,7) == substr($nowdate,0,7)) {
                                if ($date_links_to_posting && allowedTo('calendar_post')) {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_hday_class,$stub.' href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.substr($startdate,8).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                                else {
                                    $days[substr($startdate,8)] = array(NULL,$hilite_hday_class,$stub.' href="'.htmlspecialchars($month_href).'" target="_self">'.sprintf('%d',substr($startdate,8)).'</a>');}
                            }
                        }
                }
            }
        }
////////////////////////////////////////////////////////////////////
    }
}

////////////////////////////////////////////////////////////////////////////// HIGHLIGHTING (end)

$first_of_month = gmmktime(0,0,0,$month,1,$year);
list($month, $year, $weekday) = explode(',',gmstrftime('%m,%Y,%w',$first_of_month));

if (!isset($month_nam['12'])) {
    $day_names = array();                                      // generate all the day names according to the current locale
    for($n=0,$t=(3+$first_day)*86400; $n<7; $n++,$t+=86400)    // January 4, 1970 was a Sunday
        $day_names[$n] = ucfirst(gmstrftime('%A',$t));         // %A means full textual day name
    list($month, $year, $month_name, $weekday) = explode(',',gmstrftime('%m,%Y,%B,%w',$first_of_month));
}

$weekday = ($weekday + 7 - $first_day) % 7;                // adjust for $first_day
$title   = htmlentities(ucfirst($month_name)).' '.$year;   // note that some locales don't capitalize month and day names

$calendar = '<table '.$table_bkgrd.' align="center">'.'<caption >'.($month_href ? '<a href="'.htmlspecialchars($month_href).'">'.$title.'</a>' : $title).'</caption><tr>';

if (!isset($class_day_names)) $class_day_names = $class_default;
if ($class_day_names == '') $class_day_names = $class_default;
if($day_name_length){                                      #if the day names should be shown ($day_name_length > 0)
    foreach($day_names as $d)
    $calendar .= '<th class="'.$class_day_names.'" align="center" valign="middle" style="padding-left: 0px; padding-right: 0px;font-size: x-small;" abbr="'.htmlentities($d).'">'.htmlentities($day_name_length < 4 ? substr($d,0,$day_name_length) : $d).'</th>';
    $calendar .= '</tr><tr style="text-align:right;">';
    }

if($weekday > 0) $calendar .= '<td class="'.$class_default.'" colspan="'.$weekday.'"> </td>'; #initial 'empty' days

for($day=1,$days_in_month=gmdate('t',$first_of_month); $day<=$days_in_month; $day++,$weekday++){
    if($weekday == 7){
        $weekday   = 0; #start a new week
        $calendar .= '</tr><tr style="text-align:right;">';
        }

    $daynow = sprintf('%02d',$day);
    $col_width = ' width="14%"';
    if ( ((($weekday+$first_day) % 7) == 0) || ((($weekday+$first_day) % 7) == 0) ) $col_width = ' width="15%"';

    if(isset($days[$daynow]) and is_array($days[$daynow])){
        @list($link, $classes, $content) = $days[$daynow];
        if(is_null($content))  $content  = $daynow;
        $calendar .= '<td'.$col_width.' align="center" valign="middle" '.($classes ? ' class="'.htmlspecialchars($classes).'" style="padding: 0px 0px 0px 0px;font-size: x-small;">' : '>').($link ? '<a href="'.htmlspecialchars($link).'">'.$content.'</a>' : $content).'</td>';
        }
    else
        {
        $calendar .= '<td'.$col_width.' class="'.$class_default.'" align="center" valign="middle" style="padding: 0px 0px 0px 0px;font-size: x-small;"><a class="smalltext"';
        if (((($weekday+$first_day) % 7) == 0) && isset($color_sunday))
            $calendar .= ' style="color:'.$color_sunday.';"';
        if (((($weekday+$first_day) % 7) == 6) && isset($color_saturday))
            $calendar .= ' style="color:'.$color_saturday.';"';
        if ($date_links_to_posting && allowedTo('calendar_post')) {
            $calendar .= ' href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.$day.'" target="_self">'.$day.'</a></td>';}
        else {
            $calendar .= ' href="'.htmlspecialchars($month_href).'" target="_self">'.$day.'</a></td>';}
        }
    }

if($weekday != 7) $calendar .= '<td class="'.$class_default.'" colspan="'.(7-$weekday).'"> </td>'; #remaining "empty" days

echo $calendar.'</tr>';

foreach($order_lists as $list_to_do){
    $flag = strtoupper(substr($list_to_do,0,1));

if (!isset($align_list_entries)) $align_list_entries = 'center';
if (isset($align_list_entries))
    if ($align_list_entries <> 'left') $align_list_entries = 'center';

if (!isset($list_label_class)) $list_label_class = $class_default;
if ($list_label_class == '') $list_label_class = $class_default;

if (!isset($list_entry_class)) $list_entry_class = $class_default;
if ($list_entry_class == '') $list_entry_class = $class_default;

/////////////////////////////////////////////////////////////////
//   BIRTHDAY SECTION
//
if(($flag == 'B') and $show_bdays) {
    if($show_bdays_to_guests or !$user_info['is_guest']) {
        if (!empty($bdays))
        {
            echo '<tr'. (isset($list_label_class) ? ' class="'.$list_label_class.'"' : '') .'><td colspan="7" class="smalltext" align="center" style="font-weight: bold; color: ' . $list_label_bdays_color . ';">'.$list_label_bdays.'</td></tr>';
            $ctr = 0;

            foreach($bdays as $startdate => $bday_date)
            {

                if (($startdate >= strftime('%Y-%m-%d', $low_date_ts)) && ($startdate <= strftime('%Y-%m-%d', $now + $modSettings['cal_days_for_index'] * 24 * 3600)))

                foreach ($bday_date as $member)
                {
                    $class_to_use = isset($list_entry_class) ? ( !is_array($list_entry_class) ? ' class="'.$list_entry_class.'"' : ' class="'.$list_entry_class[($ctr++) % count($list_entry_class)].'"') : '';
                    $birthdate = strtotime($startdate);
                    $text_start = !isset($month_nam['12']) ? date("M j",$birthdate) : substr($month_nam[strftime('%m', $birthdate)],0,3) . date(" j",$birthdate);

                    echo '<tr'.$class_to_use.'><td colspan="7" class="smalltext" style="padding: 0px 0px 0px 0px;" width="100%" align="'.$align_list_entries.'">';
                    echo '<a href="', $scripturl, '?action=calendar;year=' . date("Y") . ';month=' . substr($startdate,5,2) . '"><strong>' . $text_start . '</strong></a>';
                    echo ' - ';
                    echo '<a href="' . $scripturl . '?action=profile;u=' . $member['id'] . '" title="' . $txt[92] . ' ' . $member['name'] . '">' . '<font color="'. $member['color']  .'">' . ( ($nowdate == $startdate) ? '<b>' : '') . $member['name'] . (isset($member['age']) ? '(' . $member['age'] . ')' : '') . ( ($nowdate == $startdate) ? '</b>' : '') . '</font>' . '</a>';
                    echo '</td></tr>';
                }

            }
        }
    }
}

/////////////////////////////////////////////////////////////////
//   EVENTS SECTION
//
if(($flag == 'E') and $show_events) {
    if($show_events_to_guests or !$user_info['is_guest']) {

        if (!empty($events))
        {
            $events_printed = array();
            echo '<tr'. (isset($list_label_class) ? ' class="'.$list_label_class.'"' : '') .'><td colspan="7" class="smalltext" align="center" style="font-weight: bold; color: ' . $list_label_events_color . ';">'.$list_label_events.'</td></tr>';
            $ctr = 0;

            foreach ($events as $startdate => $evt_date)
            {

                if (($startdate >= strftime('%Y-%m-%d', $low_date_ts)) && ($startdate <= strftime('%Y-%m-%d', $now + $modSettings['cal_days_for_index'] * 24 * 3600)))

                foreach ($evt_date as $event)
                {
                    if (!in_array($event['id'],$events_printed)) {
                        $events_printed[] = $event['id'];
                        $class_to_use = isset($list_entry_class) ? ( !is_array($list_entry_class) ? ' class="'.$list_entry_class.'"' : ' class="'.$list_entry_class[($ctr++) % count($list_entry_class)].'"') : '';

                        $evt_start = strtotime($event['start_date']);
                        $evt_end = strtotime($event['end_date']);
                        $text_start = !isset($month_nam['12']) ? date("M j",$evt_start) : substr($month_nam[strftime('%m', $evt_start)],0,3) . date(" j",$evt_start);
                        $text_end = ($event['start_date'] == $event['end_date'] ? '' : '-'. (substr($event['start_date'],5,2) == substr($event['end_date'],5,2) ? date("j",$evt_end) : (!isset($month_nam['12']) ? date("M j",$evt_end) : substr($month_nam[strftime('%m', $evt_start)],0,3) . date(" j",$evt_start))));

                        $link = $event['topic'] == 0 ? $event['title'] : '<a href="' . $scripturl . '?topic=' . $event['topic'] . '.0' . '">' . $event['title'] . '</a>';

                        echo '<tr'.$class_to_use.'><td colspan="7" class="smalltext" style="padding: 0px 0px 0px 0px;" width="100%" align="'.$align_list_entries.'">';
                        echo '<a href="', $scripturl, '?action=calendar;year=' . date("Y") . ';month=' . substr($startdate,5,2) . '"><strong>' . $text_start . $text_end . '</strong></a>';
                        echo ' - ';
                        echo  ( ($nowdate >= $event['start_date']) && ($event['end_date'] >= $nowdate) ) ? '<b>'.$link.'</b>' : $link  ;
                        echo '</td></tr>';
                   }
                }


            }
        }
    }
}

/////////////////////////////////////////////////////////////////
//   HOLIDAY SECTION
//
if(($flag == 'H') and $show_hdays) {
    if($show_hdays_to_guests or !$user_info['is_guest']) {

        if (!empty($holidays))
        {
            echo '<tr'. (isset($list_label_class) ? ' class="'.$list_label_class.'"' : '') .'><td colspan="7" class="smalltext" align="center" style="font-weight: bold; color: ' . $list_label_hdays_color . ';">'.$list_label_hdays.'</td></tr>';
            $ctr = 0;

            foreach ($holidays as $hDate => $hday)
            {

                if (($hDate >= strftime('%Y-%m-%d', $low_date_ts)) && ($hDate <= strftime('%Y-%m-%d', $now + $modSettings['cal_days_for_index'] * 24 * 3600)))
                {
                $eventdate = strtotime(date("Y").substr($hDate, 4));
                foreach ($hday as $holiday)
                {
                    $class_to_use = isset($list_entry_class) ? ( !is_array($list_entry_class) ? ' class="'.$list_entry_class.'"' : ' class="'.$list_entry_class[($ctr++) % count($list_entry_class)].'"') : '';
                    $text_start = !isset($month_nam['12']) ? date("M j",$eventdate) : substr($month_nam[strftime('%m', $eventdate)],0,3) . date(" j",$eventdate);

                    echo '<tr'.$class_to_use.'><td colspan="7" class="smalltext" style="padding: 0px 0px 0px 0px;" width="100%" align="'.$align_list_entries.'">';
                    echo '<a href="', $scripturl, '?action=calendar;year=' . date("Y") . ';month=' . substr($startdate,5,2) . '"><strong>' . $text_start . '</strong></a>';
                    echo ' - ';
                    echo $holiday;
                    echo '</td></tr>';
                }

                }

            }
        }
    }
}
}

if ($show_post_event_button) {
        if (allowedTo('calendar_post')) {
            echo '<tr><td colspan="7" class="'.$class_default.'" align="center" valign="middle">';
            echo '<hr/ >';
            echo '<a href="', $scripturl,  '?action=calendar;sa=post;month=', $month, ';year=', $year, ';sesc=', $context['session_id'], '">','<br />', create_button('calendarpe.gif', 'calendar23', 'calendar23', 'align="middle"'), '</a>';
            echo '</td></tr>';
    }
}

echo '</table>';


What I want to do is to add it the "POST EVENT" button and to see it at the end of the Block. Can someone tell me how to do it?

Thanks in advance!

Cheers!  :laugh:

PS: Sorry for my english  :D.

IchBin

What you're asking for is not really related to the block code snippet. You're asking for this snippet to be included in another customization from the sounds of it. You'd be better off requesting this in the requests board.

Herr Inoddorell

Quote from: IchBin™ on January 09, 2009, 02:00:12 AM
What you're asking for is not really related to the block code snippet. You're asking for this snippet to be included in another customization from the sounds of it. You'd be better off requesting this in the requests board.

Oh, I'm sorry, I'm a little newbie here. I'm going to ask about it in the Request board. Thanks anyway ;).

This website is proudly hosted on Crocweb Cloud Website Hosting.