Login  |  Register
HTML5 Icon HTML5 Icon HTML5 Icon
TP on Social Media

Recent

Welcome, Guest. Please login or register.
Did you miss your activation email?

May 24, 2022, 12:42:41 PM

Login with username, password and session length
Members
Stats
  • Total Posts: 193371
  • Total Topics: 21076
  • Online today: 58
  • Online ever: 1035
  • (November 26, 2020, 04:45:12 AM)
Users Online
Users: 0
Guests: 60
Total: 60

Author Topic: Einige Frage zu TP 2.1.x  (Read 1257 times)

0 Members and 1 Guest are viewing this topic.

Offline @rjen

  • Support Team
  • *
  • Posts: 3236
    • FJR-club Nederland
Re: Einige Frage zu TP 2.1.x
« Reply #10 on: January 21, 2022, 01:00:20 AM »
Try my code in a PHP block..

Note: the functions uses the maximum number of days for the board index: events will only show up within this range.

Check your setting for:
"Max days in advance on board index"

Code: [Select]
global $scripturl, $smcFunc;

$now = time();
$today = date('j',$now);
$year = date("Y",$now);
$month = date("n",$now);
$days = array($today => array(NULL, NULL, '<a class="smalltext" style="color: steelblue; font-weight: bold; border: solid 1px black; background-color: white;" href="'.$scripturl.'?action=calendar;sa=view;month='.$month.';year='.$year.';day='.$today.'" target="_self">'.$today.'</a>'));

$day_name_length = 2;
$month_href = $scripturl . '?action=calendar';
$first_day = 1;
$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()

$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   = $smcFunc['htmlspecialchars'](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).'" style="padding: 4px 2px;">'.htmlentities($day_name_length < 4 ? 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).'" style="padding:1px 6px 1px 1px;">' : ' style="padding:1px 6px 1px 1px;">').
($link ? '<a href="'.htmlspecialchars($link).'?">'.$content.'</a>' : $content).'</td>';
}
else
{
$calendar .= "<td class=\"smalltext\" style=\"padding:1px 5px 1px 4px;font-size: 0.85em;\"><a";
if(((($weekday+$first_day) % 7)==0)||((($weekday+$first_day) % 7)==6))
{
$calendar .= ' style="color:#C00000;"';
}
$calendar .= " href=\"".$scripturl."?action=calendar;sa=view;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>\n</table>\n";

echo '<br/>';
$result = ssi_todaysEvents('array');

if (!empty($result))
{
   echo '<div class="smalltext"><b>Upcoming events:</b></div>';
   echo '<div class="supersmalltext">';
   foreach ($result as $event)
      {
      $temp = explode('-', $event['date']);
      $event['date'] = $temp[2] . '-' . $temp[1] . '-' . $temp[0];
    echo '<a href="' . $event['href'] . '">' . $event['date'] . ' : ' . $event['title'] . '</a><br />';
      }
   echo '</div>';
}
else
{
      echo '<div class="supersmalltext">There are no upcoming events.<br /><br /></div>';
  }
Running Latest TP on SMF2.1 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 (latest Github)
Want to check what php version I am testing on? See: PHP Info

Offline AmaSha

  • Jr. Member
  • **
  • Posts: 23
Re: Einige Frage zu TP 2.1.x
« Reply #11 on: January 27, 2022, 07:52:41 AM »
Hi.

Sorry for the very late reply but I had several appointments with different doctors which made it impossible for me to reply earlier.

First of all, thanks for the code. I put it in the forum as a test and it looks pretty good.

Allow me two comments:

1. Due to the additional calendar, the whole thing looks very bulky, maybe even a bit too big (see IMG_1).

2. There is an appointment (IMG_2) in the SMF calendar for tomorrow (01/28/2022), but it is not (yet) displayed in the small calendar (IMG_3). How can I influence the fact that the appointments are already displayed seven days in advance?

Thanks in advance.

Thomas

Offline @rjen

  • Support Team
  • *
  • Posts: 3236
    • FJR-club Nederland
Re: Einige Frage zu TP 2.1.x
« Reply #12 on: January 27, 2022, 12:14:01 PM »
Note: the functions uses the maximum number of days for the board index: events will only show up within this range.

Check your setting for:
"Max days in advance on board index"


What did you set?
Running Latest TP on SMF2.1 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 (latest Github)
Want to check what php version I am testing on? See: PHP Info

Offline AmaSha

  • Jr. Member
  • **
  • Posts: 23
Re: Einige Frage zu TP 2.1.x
« Reply #13 on: January 28, 2022, 01:00:22 AM »
Hi @arjen.

This is set to 7 days.

Today it also doesn't show our fourm's tenth birthday. The mini-calender says still "There are no upcoming events." But the date is set to the SMF-calender...
 ??? ??? ???

Offline @rjen

  • Support Team
  • *
  • Posts: 3236
    • FJR-club Nederland
Re: Einige Frage zu TP 2.1.x
« Reply #14 on: January 28, 2022, 01:20:15 AM »
Can you share a link to you forum?
Running Latest TP on SMF2.1 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 (latest Github)
Want to check what php version I am testing on? See: PHP Info

Offline AmaSha

  • Jr. Member
  • **
  • Posts: 23
Re: Einige Frage zu TP 2.1.x
« Reply #15 on: January 28, 2022, 03:11:33 AM »
@rjen,

you have a PN...

Offline @rjen

  • Support Team
  • *
  • Posts: 3236
    • FJR-club Nederland
Re: Einige Frage zu TP 2.1.x
« Reply #16 on: January 28, 2022, 03:36:34 AM »
This would be a good explanation...

This block uses standard a SMF SSI function. This means that the users need to be able to see the calendar in order to see the event...

Check the permissions for the users to see the calendar...

Running Latest TP on SMF2.1 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 (latest Github)
Want to check what php version I am testing on? See: PHP Info

Offline AmaSha

  • Jr. Member
  • **
  • Posts: 23
Re: Einige Frage zu TP 2.1.x
« Reply #17 on: January 28, 2022, 03:55:43 AM »
Ah, sorry.

You were in the wrong group - the calender is available after 5 posts.

You may try it again, nwo with 100 posts...
;-)

Offline @rjen

  • Support Team
  • *
  • Posts: 3236
    • FJR-club Nederland
Re: Einige Frage zu TP 2.1.x
« Reply #18 on: January 28, 2022, 04:07:28 AM »
I see the calendar now, but I cannot see why it does not work.

The blockcode works fine for me, so I would need to check the block itself and the settings in you forum to get to an explanation...

To do that I would need admin access.
Running Latest TP on SMF2.1 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 (latest Github)
Want to check what php version I am testing on? See: PHP Info

Offline AmaSha

  • Jr. Member
  • **
  • Posts: 23
Re: Einige Frage zu TP 2.1.x
« Reply #19 on: January 28, 2022, 04:12:22 AM »
@rjen,

you have it!  O0