mirror of
https://github.com/e107inc/e107.git
synced 2025-01-17 20:58:30 +01:00
157 lines
3.6 KiB
PHP
157 lines
3.6 KiB
PHP
<?php
|
|
/*
|
|
* e107 website system
|
|
*
|
|
* Copyright (C) 2008-2009 e107 Inc (e107.org)
|
|
* Released under the terms and conditions of the
|
|
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
|
*
|
|
*
|
|
*
|
|
* $Source: /cvs_backup/e107_0.8/e107_plugins/blogcalendar_menu/calendar.php,v $
|
|
* $Revision$
|
|
* $Date$
|
|
* $Author$
|
|
*/
|
|
/*
|
|
| Based on code by: Thomas Bouve (crahan@gmx.net) and
|
|
| and Based on: PHP Calendar by Keith Devens http://www.keithdevens.com/software/php_calendar/
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!defined('e107_INIT')) { exit; }
|
|
|
|
function calendar($req_day, $req_month, $req_year, $links = NULL, $ws = "sunday")
|
|
{
|
|
|
|
$pref = e107::getPref();
|
|
|
|
// prepare the day array
|
|
$darray = e107::getDate()->terms('day-shortest');
|
|
$marray = e107::getDate()->terms('month');
|
|
|
|
// what day does the week start on?
|
|
switch($ws)
|
|
{
|
|
case "monday":
|
|
$ws = "1";
|
|
break;
|
|
|
|
case "sunday":
|
|
array_unshift($darray, array_pop($darray));
|
|
$ws = "0";
|
|
}
|
|
|
|
// what's the padding we should use for the cells?
|
|
$padding = (isset($pref['blogcal_padding']) && $pref['blogcal_padding']) ? $pref['blogcal_padding']: "2";
|
|
|
|
$date = mktime(0, 0, 0, $req_month, 1, $req_year);
|
|
$last_day = date('t', $date);
|
|
$date_info = getdate($date);
|
|
$day_of_week = $date_info['wday'];
|
|
|
|
if ($ws && $day_of_week == 0)
|
|
{
|
|
$day_of_week = 7;
|
|
}
|
|
|
|
// print the daynames
|
|
$calendar = "<table class='table blogcalendar fborder'>";
|
|
$calendar .= '<thead><tr>';
|
|
|
|
foreach($darray as $dheader)
|
|
{
|
|
$calendar .= "<th class='forumheader blogcalendar-day-name'><span class='smalltext'>$dheader</span></th>";
|
|
}
|
|
|
|
$calendar .= "</tr>
|
|
</thead>
|
|
<tbody>";
|
|
$calendar .= '<tr>';
|
|
|
|
$day_of_month = 1;
|
|
$tablerow = 1;
|
|
|
|
// take care of the first "empty" days of the month
|
|
if ($day_of_week-$ws > 0)
|
|
{
|
|
$calendar .= "<td class='muted blogcalendar-day-empty' colspan='";
|
|
$calendar .= $day_of_week-$ws;
|
|
$calendar .= "'> </td>";
|
|
}
|
|
|
|
// print the days of the month (take the $ws into account)
|
|
while ($day_of_month <= $last_day)
|
|
{
|
|
if ($day_of_week-$ws == 7)
|
|
{
|
|
#start a new week
|
|
$calendar .= "</tr><tr>";
|
|
$day_of_week = 0+$ws;
|
|
$tablerow++;
|
|
}
|
|
|
|
if ($day_of_month == $req_day)
|
|
{
|
|
$day_style = isset($links[$day_of_month]) ? "indent blogcalendar-day-active" : "forumheader3 blogcalendar-day";
|
|
}
|
|
else
|
|
{
|
|
$day_style = isset($links[$day_of_month]) ? "indent blogcalendar-day-active " : "forumheader3 blogcalendar-day";
|
|
}
|
|
|
|
$label_style = isset($links[$day_of_month]) ? 'label label-info badge bg-info' : '';
|
|
|
|
$calendar .= "<td class='$day_style' >";
|
|
|
|
$calendar .= isset($links[$day_of_month]) ? "<a class='blogcalendar-day-link' href='".$links[$day_of_month]."'>":"";
|
|
$calendar .= "<span class='smalltext blogcalendar-day-link {$label_style}'>";
|
|
$calendar .= $day_of_month;
|
|
$calendar .= "</span>";
|
|
$calendar .= isset($links[$day_of_month]) ? "</a>" : "";
|
|
|
|
$calendar .= "</td>";
|
|
$day_of_month++;
|
|
$day_of_week++;
|
|
}
|
|
|
|
|
|
|
|
if ($day_of_week-$ws != 7)
|
|
{
|
|
$calendar .= '<td class="blogcalendar-day-empty" colspan="' . (7 - $day_of_week+$ws) . '"> </td>';
|
|
}
|
|
|
|
$calendar .= "</tr>";
|
|
|
|
if ($tablerow != 6)
|
|
{
|
|
$calendar .= "<tr><td class='blogcalendar-day-empty' colspan='7'> </td></tr>";
|
|
}
|
|
|
|
$calendar .= "</tbody></table>";
|
|
|
|
// $calendar .= "tablerow = ".$tablerow;
|
|
|
|
if(deftrue('BOOTSTRAP'))
|
|
{
|
|
$active = date("n-Y") == ($req_month."-".$req_year) ? 'active' : '';
|
|
$text = "<div class='item carousel-item {$active}'>";
|
|
$text .= "<h5>".$marray[$req_month]." ".$req_year."</h5>";
|
|
$text .= $calendar;
|
|
$text .= "</div>";
|
|
}
|
|
else // BC
|
|
{
|
|
$text = $calendar;
|
|
}
|
|
|
|
return $text;
|
|
}
|
|
|