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

Recent

Welcome to TinyPortal. Please login or sign up.

April 19, 2024, 04:42:43 AM

Login with username, password and session length
Members
  • Total Members: 3,885
  • Latest: Growner
Stats
  • Total Posts: 195,164
  • Total Topics: 21,219
  • Online today: 266
  • Online ever: 3,540 (September 03, 2022, 01:38:54 AM)
Users Online
  • Users: 0
  • Guests: 199
  • Total: 199

SMF Calendar Block

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

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

bloc


Miraenda

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

using pcw's version i get this when i do the php test:

$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

#13
Search for $days = array($today=>array(NULL,NULL,\'\'.$today.\'\')); in your code and replace it with $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

Moocat

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.


$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

#15
also, with the above code entered, when i click the PHP-test button, to check for errors, it outputs this code:
$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.

crip

Cool calendar..I like it..thanks guys :)


pcw

did u made any changes in u'r Stylesheets (css-file) e.g. background-color for pseudo formats for links?

Moocat

its possible, i have many mods installed.i'll try restoring the css files to their originals

Moocat

i restored the original style.css file that came with helios_multi11_tp and it still shows up like that screenshot.