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?

August 19, 2022, 07:34:44 PM

Login with username, password and session length
Members
  • Total Members: 3843
  • Latest: Tricky
Stats
  • Total Posts: 193479
  • Total Topics: 21088
  • Online today: 60
  • Online ever: 1035
  • (November 26, 2020, 04:45:12 AM)
Users Online
Users: 0
Guests: 44
Total: 44

Author Topic: SMF Calendar Block  (Read 284171 times)

0 Members and 1 Guest are viewing this topic.

Offline bloc

  • Founder
  • *
  • Posts: 5229
    • Bloc
Re: Calendar in a php-block
« Reply #10 on: September 07, 2005, 05:42:03 AM »
Great work, pcw. :)

Miraenda

  • Guest
Re: Calendar in a php-block
« Reply #11 on: September 07, 2005, 06:35:29 AM »
I just added pcw's changed version of the calendar to my main TP testing board - http://skewed3.com/

Looks pretty good, thanks a lot to both Bloc and pcw :D

Moocat

  • Guest
Re: Calendar in a php-block
« Reply #12 on: September 07, 2005, 07:45:12 AM »
using pcw's version i get this when i do the php test:
Code: [Select]
$now = mktime(); $today = date(\'j\',$now); $year = date(\"Y\",$now); $month = date(\"n\",$now); $days = array($today=>array(NULL,NULL,\'\'.$today.\'\')); $day_name_length = 3; $month_href = $scripturl . \'?action=calendar\'; $first_day = 1; $pn = array();$first_of_month = gmmktime(0,0,0,$month,1,$year);
also i'm using helios so the day that is today doesn't appear to be highlighted, it just doesn't appear to be a link. it would be nice if the border on the day worked so its easier to see! ty :)

pcw

  • Guest
Re: Calendar in a php-block
« Reply #13 on: September 07, 2005, 08:06:32 AM »
Search for
Code: [Select]
$days = array($today=>array(NULL,NULL,\'\'.$today.\'\')); in your code and replace it with
Code: [Select]
$days = array($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>'));
This will link your "Today" to the smf-calendar.

^^Feel free to modify the style (css)  ;)

Screenshot for Helios_Multi_TP on my TP
« Last Edit: September 07, 2005, 08:08:12 AM by pcw »

Moocat

  • Guest
Re: Calendar in a php-block
« Reply #14 on: September 07, 2005, 09:03:16 AM »
okay i see the code, and how it should show a white block behind the text for the day, but here is how it shows up, and here is my code.

Code: [Select]
$now = mktime();
         $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; padding: 0px 4px 0px 4px;" href="'.$scripturl.'?action=calendar;sa=post;month='.$month.';year='.$year.';day='.$today.'" target="_self">'.$today.'</a>'));

         $day_name_length = 3;
         $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   = 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 < 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).'">' : '>').
($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)||((($weekday+$first_day) % 7)==6))
{
$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>\n</table>\n";

the code was copied exactly from your original post, and the correction you just suggested was already in place.

as you can see from the below, the current day, the seventh, is only white and barely distinguishable from the other day which are a light-green or light-blue.
screenshot:

Moocat

  • Guest
Re: Calendar in a php-block
« Reply #15 on: September 07, 2005, 09:36:45 AM »
also, with the above code entered, when i click the PHP-test button, to check for errors, it outputs this code:
Code: [Select]
$now = mktime(); $today = date(\'j\',$now); $year = date(\"Y\",$now); $month = date(\"n\",$now); $days = array($today=>array(NULL,NULL,\'\'.$today.\'\')); $day_name_length = 3; $month_href = $scripturl . \'?action=calendar\'; $first_day = 1; $pn = array();$first_of_month = gmmktime(0,0,0,$month,1,$year);
The entire $days thing is exactly like what you had in your code, but it still outputs this for some reason. also, the \'.$today.\' part is a hyperlink to http://www.mysite.com/"/'.$scripturl./'?action=calendar;sa=post;month=\'.$month.\';year=\'.$year.\';day=\'.$today.\'\" within that specific field for php test.
« Last Edit: September 07, 2005, 10:38:59 AM by Moocat »

crip

  • Guest
Re: Calendar in a php-block
« Reply #16 on: September 07, 2005, 09:52:57 AM »
Cool calendar..I like it..thanks guys :)


pcw

  • Guest
Re: Calendar in a php-block
« Reply #17 on: September 07, 2005, 10:16:49 AM »
did u made any changes in u'r Stylesheets (css-file) e.g. background-color for pseudo formats for links?

Moocat

  • Guest
Re: Calendar in a php-block
« Reply #18 on: September 07, 2005, 10:30:36 AM »
its possible, i have many mods installed.i'll try restoring the css files to their originals

Moocat

  • Guest
Re: Calendar in a php-block
« Reply #19 on: September 07, 2005, 10:38:24 AM »
i restored the original style.css file that came with helios_multi11_tp and it still shows up like that screenshot.