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: 884
  • Online ever: 8,223 (February 19, 2025, 04:35:35 AM)
Users Online
  • Users: 0
  • Guests: 412
  • Total: 412

Smf 2.0+ Calendar Block

Started by illusive817, January 31, 2012, 05:40:10 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

illusive817

im currently using the code i seen ZarPrime post in another topic

<?php
  global $user_info;

    if (!
$user_info['is_guest'])
    {
     
/******************************************************************************************
* '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$options$context$user_info$sourcedir$txt;

// Program Paramters/Switches Section

// use forum's date/time
// 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';

// Use 'bordercolor' class for 'gridlines' (table background)
$bordercolor_gridlines true// 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 = !empty($options['calendar_start_day']) ? $options['calendar_start_day'] : 0;

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

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

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

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

// Adds 'Post Event' button to bottom of block
$show_post_event_button true

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

// Colors for saturday & sunday
$color_sunday '#D00000';    // comment out to use default text colors -
$color_saturday '#D00000';  //   can use hex codes with leading '#'

// Style to use for 'Today' highlight (color & background)
// example:
//  'color:#ff0000; background-color:#ffffff;';
$style_today 'color:steelblue; font-weight:bold;';
// and / or
// Class to use for 'Today' highlight
$class_today 'tborder';

// Default class to use when no other class specified
$class_default 'windowbg';

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

// Class for 'cells' holding text labels on calendar entry lists
$list_label_class 'bordercolor'// 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
// examples:
//  $list_entry_class = 'windowbg';
//  $list_entry_class = array('windowbg2','windowbg3');
$list_entry_class '';

// Highlight style (colors & backgrounds & font)
// example:
//  'font-weight:bold; color:#ff0000; background-color:#ffffff;';
// and / or
// Highlight class (a existing class name)
// example: 
//  'myclassname';
$hilite_bday_style 'font-weight:bold;';
$hilite_bday_class 'birthday'; // default style

$hilite_hday_style 'font-weight:bold;';
$hilite_hday_class 'holiday'; // default style

$hilite_event_style 'font-weight:bold;';
$hilite_event_class 'event'; // default style

// 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;

// 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';
// $list_label_bdays = 'Cumpleaños';  
// $list_label_events = 'Fiestas';
// $list_label_hdays = 'Festivos';

// specify all the day names in desired language
// The Startday is set according the Firstday in the Member profile
$day_names = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
// $day_names = array('Domingo','Lunes','Martes','Miercoles','Jueves','Viernes','Sabado');

// setup the day_names array according the Memberprofile
$i $first_day;
while(!empty(
$i))
{
$fd array_shift($day_names);
array_push($day_names$fd);
$i--;
}

// specify the month names in desired language
$month_nam = array();
$month_nam['01'] = 'January';       
$month_nam['02'] = 'February';
$month_nam['03'] = 'March';
$month_nam['04'] = 'April';
$month_nam['05'] = 'May';
$month_nam['06'] = 'June';
$month_nam['07'] = 'July';
$month_nam['08'] = 'August';
$month_nam['09'] = 'September';
$month_nam['10'] = 'October';
$month_nam['11'] = 'November';
$month_nam['12'] = 'December';

// $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)];
//NAMES (end)

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

if (empty($class_default)) 
$class_default 'windowbg';

if (empty(
$hilite_bday_style))
$hilite_bday_class $class_default;

if (empty(
$hilite_hday_class)) 
$hilite_hday_class $class_default;

if (empty(
$hilite_event_class))
$hilite_event_class $class_default;

$table_bkgrd 'class="'.$class_default.'" cellspacing="1" cellpadding="1" style="margin:0 auto; text-align:center;"';
if (
$bordercolor_gridlines
$table_bkgrd 'class="information" cellspacing="'.$gridlines_thickness.'" cellpadding="1" style="margin:0 auto; text-align:center;"';

$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 '/Subs-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 getBirthdayRange($low_date$high_date) : getBirthdayRange($low_date_base$high_date);
ksort($bdays); 
}

if (
$show_events
{
$events $show_events_past getEventRange($low_date$high_datefalse) : getEventRange($low_date_base$high_datefalse);
ksort($events); 
}

if (
$show_hdays
{
$holidays $show_hdays_past getHolidayRange($low_date$high_date) : getHolidayRange($low_date_base$high_date);
ksort($holidays); 
}

$stub '<a class="smalltext" style="'.$style_today.'padding: 0px 2px 0px 2px;"';
// Highlighted 'Today' Box
if ($date_links_to_posting && allowedTo('calendar_post'))
$days = array($today => array(NULL$class_today$stub.' class="float" 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.' class="float" 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 || !$user_info['is_guest']) 
{
$stub '<a class="smalltext" style="'$hilite_bday_style .'padding: 0px 2px 0px 2px;"';
foreach($bdays as $startdate => $value)
{
if(!isset($days[substr($startdate,8)]) || !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.' class="float" href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.substr($startdate,8).'" target="_self"><span class="'.$hilite_bday_class.'">'.sprintf('%d',substr($startdate,8)).'</span></a>');
else
$days[substr($startdate,8)] = array(NULL$hilite_bday_class$stub.' class="float" href="'.htmlspecialchars($month_href).'" target="_self"><span class="'.$hilite_bday_class.'">'.sprintf('%d',substr($startdate,8)).'</span></a>');
}
}
}
}
}
}

// Event Highlighting
if ($flag == 'E'
{
if ($show_events
{
if ($show_events_to_guests || !$user_info['is_guest']) 
{
$stub '<a class="smalltext" style="'$hilite_event_style .'padding: 0px 2px 0px 2px;"';
foreach($events as $startdate => $value)
{
if(!isset($days[substr($startdate,8)]) || !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.' class="float" href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.substr($startdate,8).'" target="_self"><span class="'.$hilite_event_class.'">'.sprintf('%d',substr($startdate,8)).'</span></a>');
else
$days[substr($startdate,8)] = array(NULL$hilite_event_class$stub.' class="float" href="'.htmlspecialchars($month_href).'" target="_self"><span class="'.$hilite_event_class.'">'.sprintf('%d',substr($startdate,8)).'</span></a>');
}
}
}
}
}
}

// Holiday Highlighting
if ($flag == 'H'
{
if ($show_hdays
{
if ($show_hdays_to_guests || !$user_info['is_guest']) 
{
$stub '<a class="smalltext" style="'$hilite_hday_style .'padding: 0px 2px 0px 2px;"';
foreach($holidays as $startdate => $value)
{
if (!isset($days[substr($startdate,8)]) || !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.' class="float" href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.substr($startdate,8).'" target="_self"><span class="'.$hilite_hday_class.'">'.sprintf('%d',substr($startdate,8)).'</span></a>');
else
$days[substr($startdate,8)] = array(NULL$hilite_hday_class$stub.' class="float" href="'.htmlspecialchars($month_href).'" target="_self"><span class="'.$hilite_hday_class.'">'.sprintf('%d',substr($startdate,8)).'</span></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 $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.'>'.'<caption >'.($month_href '<a class="float" href="'.htmlspecialchars($month_href).'">'.$title.'</a>' $title).'</caption><tr>';

if (empty(
$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.' smalltext" align="center" valign="middle" abbr="'.htmlentities($d).'">'.htmlentities($day_name_length 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]) && 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 class="float "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 .= ' class="float" href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.$day.'" target="_self">'.$day.'</a></td>';
else 
$calendar .= ' class="float" 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';
elseif ($align_list_entries <> 'left'
$align_list_entries 'center';

if (empty($list_label_class)) 
$list_label_class $class_default;

if (empty($list_entry_class)) 
$list_entry_class $class_default;

// BIRTHDAY SECTION
if(($flag == 'B') && $show_bdays
{
if($show_bdays_to_guests || !$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;">'.$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 class="float" href="'$scripturl'?action=calendar;year=' date("Y") . ';month=' substr($startdate,5,2) . '"><strong>' $text_start ':</strong></a> ';
echo '<a class="float" href="' $scripturl '?action=profile;u=' $member['id'] . '" title="' $txt['profile_of'] . ' ' $member['name'] . '">' '<span class="'.$hilite_bday_class.'">' . ( ($nowdate == $startdate) ? '<b>' '') . $member['name'] . (isset($member['age']) ? '(' $member['age'] . ')' '') . ( ($nowdate == $startdate) ? '</b>' '') . '</span>' '</a>';
echo '</td></tr>';
}
}
}
}
}
}

// EVENTS SECTION
if(($flag == 'E') && $show_events
{
if($show_events_to_guests || !$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;">'.$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'] == '<span class="'.$hilite_event_class.'">'$event['title'] .'</span>' '<a class="float" href="' $scripturl '?topic=' $event['topic'] . '.0' '"><span class="'.$hilite_event_class.'">' $event['title'] . '</span></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 class="float" href="'$scripturl'?action=calendar;year=' date("Y") . ';month=' substr($startdate,5,2) . '"><strong>' $text_start $text_end ':</strong></a> ';
echo  ( ($nowdate >= $event['start_date']) && ($event['end_date'] >= $nowdate) ) ? '<b>'.$link.'</b>' $link;
echo '</td></tr>';
}
}
}
}
}
}
}

// HOLIDAY SECTION
if(($flag == 'H') && $show_hdays
{
if($show_hdays_to_guests || !$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;">'.$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($hDate4));
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 class="float" href="'$scripturl'?action=calendar;year=' date("Y") . ';month=' substr($startdate,5,2) . '"><strong>' $text_start ':</strong></a> ';
echo '<span class="'.$hilite_hday_class.'">'.$holiday.'</span>';
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 class="float" href="'$scripturl,  '?action=calendar;sa=post;month='$month';year='$year';sesc='$context['session_id'], '">','<br />'create_button('calendarpe.gif''calendar_post_event''calendar_post_event''align="middle"'), '</a>';
echo '</td></tr>';
}
}

echo 
'</table>';
   }
   else
      echo 
'Sorry, Guests Do Not Have Permission To View Events Calendar.';

?>


What i would to know is if this code can be changed to allow any links clicked can open in my class="float" (had to change name just incase of conflict) a better example of this is if you click on aLink from my webpage www.demiseonline.com it opens in a jquery fancybox , i would like any thing click in the calendar to do the same

2ndly i would like to have it only allow people with appropriate permissions to add an Event
others would only be allowed to view the current events


there use to be a code snippet like this for smf 1+ , but it didnt work with smf 2 and i cant find it anymore =(
Thank you

illusive817

i got everything except the days to open in my jquery fancybox, il update the code in the previous post
i found the code that i use to use for smf1
<?php
    
global $scripturl$modSettings$sourcedir;

require_once(
"Forums/SSI.php");

$now mktime() + $modSettings['time_offset'] * 3600;
         
$today date('j',$now);
         
$year date("Y",$now);
         
$month date("n",$now);
         
$days = array();

         
$day_name_length 3;
         
$month_href $scripturl '?action=calendar';
         
$first_day 0;
         
$pn = array();

$first_of_month gmmktime(0,0,0,$month,1,$year);
#remember that mktime will automatically correct if invalid dates are entered
# for instance, mktime(0,0,0,12,32,1997) will be the date for Jan 1, 1998
# this provides a built in "rounding" feature to generate_calendar()

#retrieve this month events, holydays and birthdays
$days_in_month gmdate('t',$first_of_month);
include_once(
$sourcedir '/Calendar.php');
$low_date $year.'-'.$month.'-01'
$high_date $year.'-'.$month.'-'.$days_in_month;
$events calendarEventArray($low_date$high_date);
$birthdays calendarBirthdayArray($low_date$high_date);

#add important days to the days array
foreach($events as $startdate => $value)
$days[substr($startdate,8)] = array(NULL,NULL,'<a class="smalltext" style="color: steelblue; font-weight: bold; background-color: '.(substr($startdate,8)<$today 'lightblue' 'yellow').'; padding: 0px 4px 0px 4px;" href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.substr($event['start_date'],8).'" target="_self">'.substr($startdate,8).'</a>');

foreach(
$birthdays as $startdate => $value)
$days[substr($startdate,8)] = array(NULL,NULL,'<a class="smalltext" style="color: steelblue; font-weight: bold; background-color: '.(substr($startdate,8)<$today 'lightblue' 'yellow').'; padding: 0px 4px 0px 4px;" href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.substr($birth['start_date'],8).'" target="_self">'.substr($startdate,8).'</a>');

$today_date $year.'-'.($month<10 '0'.$month $month).'-'.$today;

if(empty(
$events[$today_date]))
$days[$today] = array(NULL,NULL,'<a class="smalltext" style="color: steelblue; font-weight: bold; border: solid 1px black; background-color: white; padding: 0px 4px 0px 4px;" href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.$today.'" target="_self">'.$today.'</a>');
else
$days[$today] = array(NULL,NULL,'<a class="smalltext" style="color: steelblue; font-weight: bold; border: solid 1px black; background-color: yellow; padding: 0px 4px 0px 4px;" href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.$today.'" target="_self">'.$today.'</a>');


$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 $first_day) % 7#adjust for $first_day
$title   htmlentities(ucfirst($month_name)).' '.$year;  #note that some locales don't capitalize month and day names

#Begin calendar. Uses a real <caption>. See http://diveintomark.org/archives/2002/07/03
@list($p$pl) = each($pn); @list($n$nl) = each($pn); #previous and next links, if applicable
if($p$p '<span class="smalltext">'.($pl '<a href="'.htmlspecialchars($pl).'">'.$p.'</a>' $p).'</span> ';
if(
$n$n ' <span class="smalltext">'.($nl '<a href="'.htmlspecialchars($nl).'">'.$n.'</a>' $n).'</span>';
$calendar '<table>'."\n".
'<caption >'.$p.($month_href '<a href="'.htmlspecialchars($month_href).'">'.$title.'</a>' $title).$n."</caption>\n<tr>";

if(
$day_name_length){ #if the day names should be shown ($day_name_length > 0)
#if day_name_length is >3, the full name of the day will be printed
foreach($day_names as $d)
$calendar .= '<th class="smalltext" abbr="'.htmlentities($d).'">'.htmlentities($day_name_length substr($d,0,$day_name_length) : $d).'</th>';
$calendar .= "</tr>\n<tr style=\"text-align:right;\">";
}

if(
$weekday 0$calendar .= '<td class="smalltext" 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>\n<tr style=\"text-align:right;\">";
}
if(isset($days[$day]) and is_array($days[$day])){
@list($link$classes$content) = $days[$day];
if(is_null($content))  $content  $day;
$calendar .= '<td "'.($classes ' class="'.htmlspecialchars($classes).'">' '>').
($link '<a href="'.htmlspecialchars($link).'">'.$content.'</a>' $content).'</td>';
}
else 
{
$calendar .= "<td class=\"smalltext\" style=\"padding-right:4px;\"><a";
if(((($weekday+$first_day) % 7)==0))
{
$calendar .= ' style="color:#C00000;"';
}
$calendar .= " href=\"".$scripturl."?action=calendar;sa=post;month=".$month.";year=".$year.";day=".$day."\" target=\"_self\">$day</a></td>";
}
}
if(
$weekday != 7$calendar .= '<td class="smalltext" colspan="'.(7-$weekday).'"> </td>'#remaining "empty" days

echo $calendar.'</tr>';

#crate notice for the next N days events. N is set in Settings.
if (ssi_todaysCalendar('')) {
$result ssi_todaysCalendar('');
if(!empty($result['birthdays'])){
echo '<tr><td><hr></td><td colspan="5" class="smalltext" align="center"><b>Birthdays</b></td><td><hr></td></tr><td colspan="7" class="smalltext">';
$birthdays $result['birthdays'];
echo '
<span style="color: #' 
$modSettings['cal_bdaycolor'] . ';">' $txt['calendar3b'] . '</span><br />';
foreach( $birthdays as $member )
echo '
<a href="'
$scripturl'?action=profile;u='$member['id'], '">'$member['name'], isset($member['age']) ? ' (' $member['age'] . ')' '''</a>''<br />';
echo '</td></tr>';
}
if(!empty($result['events']))
{
echo '<tr><td><hr></td><td colspan="5" class="smalltext" align="center"><b>Upcomings</b></td><td><hr></td></tr><td colspan="7" class="smalltext">';
echo '
<span style="color: #' 
$modSettings['cal_eventcolor'] . ';">' $txt['calendar4b'] . '</span><br /> ';
$events $result['events'];
foreach ($events as $event)
{
echo '
'
.substr($event['start_date'],8).'/'.substr($event['start_date'],2).':';
if ($event['can_edit'])
echo '
<a href="' 
$event['modify_href'] . '" style="color: #FF0000;">*</a> ';
echo '
$event['link'] . '<br />';
}
}
  echo 
'</td></tr>';
}

echo 
'</table>';
?>

Berdie

I would love to use a mini map on my front page and I was wondering how to get this to work on it? I'm using SMF 2.0 and TP 1.104
Thanks for any help.

This website is proudly hosted on Crocweb Cloud Website Hosting.