calendar-week-overlap.tpl.php in Calendar 7.2
Same filename and directory in other branches
Template to display a view as a calendar week with overlapping items
$day_names: An array of the day of week names for the table header. $rows: The rendered data for this week.
For each day of the week, you have: $rows['date'] - the date for this day, formatted as YYYY-MM-DD. $rows['datebox'] - the formatted datebox for this day. $rows['empty'] - empty text for this day, if no items were found. $rows['all_day'] - an array of formatted all day items. $rows['items'] - an array of timed items for the day. $rows['items'][$time_period]['hour'] - the formatted hour for a time period. $rows['items'][$time_period]['ampm'] - the formatted ampm value, if any for a time period. $rows['items'][$time_period]['values'] - An array of formatted items for a time period.
$view: The view. $min_date_formatted: The minimum date for this calendar in the format YYYY-MM-DD HH:MM:SS. $max_date_formatted: The maximum date for this calendar in the format YYYY-MM-DD HH:MM:SS.
See also
template_preprocess_calendar_week.
File
calendar_multiday/theme/calendar-week-overlap.tpl.phpView source
<?php
/**
* @file
* Template to display a view as a calendar week with overlapping items
*
* @see template_preprocess_calendar_week.
*
* $day_names: An array of the day of week names for the table header.
* $rows: The rendered data for this week.
*
* For each day of the week, you have:
* $rows['date'] - the date for this day, formatted as YYYY-MM-DD.
* $rows['datebox'] - the formatted datebox for this day.
* $rows['empty'] - empty text for this day, if no items were found.
* $rows['all_day'] - an array of formatted all day items.
* $rows['items'] - an array of timed items for the day.
* $rows['items'][$time_period]['hour'] - the formatted hour for a time period.
* $rows['items'][$time_period]['ampm'] - the formatted ampm value, if any for a time period.
* $rows['items'][$time_period]['values'] - An array of formatted items for a time period.
*
* $view: The view.
* $min_date_formatted: The minimum date for this calendar in the format YYYY-MM-DD HH:MM:SS.
* $max_date_formatted: The maximum date for this calendar in the format YYYY-MM-DD HH:MM:SS.
*
*/
//dsm('Display: '. $display_type .': '. $min_date_formatted .' to '. $max_date_formatted);
//dsm($rows);
//dsm($items);
?>
<div class="calendar-calendar"><div class="week-view">
<div id="header-container">
<table class="full">
<tbody>
<tr class="holder"><td class="calendar-time-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder margin-right"></td></tr>
<tr>
<th class="calendar-agenda-hour"> </th>
<?php
foreach ($day_names as $cell) {
?>
<th class="<?php
print $cell['class'];
?>">
<?php
print $cell['data'];
?>
</th>
<?php
}
?>
<th class="calendar-day-holder margin-right"></th>
</tr>
</tbody>
</table>
</div>
<div id="multi-day-container">
<table class="full">
<tbody>
<tr class="holder"><td class="calendar-time-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td></tr>
<?php
for ($i = 0; $i < $multiday_rows; $i++) {
?>
<?php
$colpos = 0;
$rowclass = "all-day";
if ($i == 0) {
$rowclass .= " first";
}
if ($i == $multiday_rows - 1) {
$rowclass .= " last";
}
?>
<tr class="<?php
print $rowclass;
?>">
<?php
if ($i == 0 && ($by_hour_count > 0 || !empty($start_times))) {
?>
<td class="<?php
print $agenda_hour_class;
?>" rowspan="<?php
print $multiday_rows;
?>">
<span class="calendar-hour"><?php
print t('All day', array(), array(
'context' => 'datetime',
));
?></span>
</td>
<?php
}
?>
<?php
for ($j = 0; $j < 7; $j++) {
?>
<?php
$cell = empty($all_day[$j][$i]) ? NULL : $all_day[$j][$i];
?>
<?php
if ($cell != NULL && $cell['filled'] && $cell['wday'] == $j) {
?>
<?php
for ($colpos; $colpos < $cell['wday']; $colpos++) {
?>
<?php
$colclass = "calendar-agenda-items multi-day";
if ($colpos == 0) {
$colclass .= " first";
}
if ($colpos == 6) {
$colclass .= " last";
}
?>
<td class="<?php
print $colclass;
?>"><div class="inner"> </div></td>
<?php
}
?>
<?php
$colclass = "calendar-agenda-items multi-day";
if ($colpos == 0) {
$colclass .= " first";
}
if ($colpos == 6) {
$colclass .= " last";
}
?>
<td colspan="<?php
print $cell['colspan'];
?>" class="<?php
print $colclass;
?>">
<div class="inner">
<?php
print $cell['entry'];
?>
</div>
</td>
<?php
$colpos += $cell['colspan'];
?>
<?php
}
?>
<?php
}
?>
<?php
while ($colpos < 7) {
?>
<?php
$colclass = "calendar-agenda-items multi-day no-entry";
if ($colpos == 0) {
$colclass .= " first";
}
if ($colpos == 6) {
$colclass .= " last";
}
?>
<td class="<?php
print $colclass;
?>"><div class="inner"> </div></td>
<?php
$colpos++;
?>
<?php
}
?>
</tr>
<?php
}
?>
<?php
if ($multiday_rows == 0) {
?>
<tr>
<td class="<?php
print $agenda_hour_class;
?>">
<span class="calendar-hour"><?php
print t('All day', array(), array(
'context' => 'datetime',
));
?></span>
</td>
<?php
for ($j = 0; $j < 7; $j++) {
?>
<?php
$colclass = "calendar-agenda-items multi-day no-entry";
if ($j == 0) {
$colclass .= " first";
}
if ($j == 6) {
$colclass .= " last";
}
?>
<td class="<?php
print $colclass;
?>"><div class="inner"> </div></td>
<?php
}
?>
</tr>
<?php
}
?>
<tr class="expand">
<td class="<?php
print $agenda_hour_class;
?>">
<span class="calendar-hour"> </span>
</td>
<?php
for ($j = 0; $j < 7; $j++) {
?>
<?php
$colclass = "calendar-agenda-items multi-day no-entry";
if ($j == 0) {
$colclass .= " first";
}
if ($j == 6) {
$colclass .= " last";
}
?>
<td class="<?php
print $colclass;
?>"><div class="inner"> </div></td>
<?php
}
?>
</tr>
</thead>
</table>
</div>
<div class="header-body-divider"> </div>
<div id="single-day-container">
<script>
try {
// Hide container while it renders... Degrade w/o javascript support
jQuery('#single-day-container').css('visibility','hidden');
}catch(e){
// swallow
}
</script>
<table class="full">
<tbody>
<tr class="holder"><td class="calendar-time-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td><td class="calendar-day-holder"></td></tr>
<tr>
<?php
for ($index = 0; $index < 8; $index++) {
?>
<?php
if ($index == 0) {
?>
<td class="first">
<?php
}
elseif ($index == 7) {
?>
<td class="last">
<?php
}
else {
?>
<td>
<?php
}
?>
<?php
foreach ($start_times as $time_cnt => $start_time) {
?>
<?php
if ($time_cnt == 0) {
$class = 'first ';
}
elseif ($time_cnt == count($start_times) - 1) {
$class = 'last ';
}
else {
$class = '';
}
?>
<?php
if ($index == 0) {
?>
<?php
$time = $items[$start_time];
?>
<div class="<?php
print $class;
?>calendar-agenda-hour">
<span class="calendar-hour"><?php
print $time['hour'];
?></span>
<span class="calendar-ampm"><?php
print $time['ampm'];
?></span>
</div>
<?php
}
else {
?>
<div class="<?php
print $class;
?>calendar-agenda-items single-day">
<div class="half-hour"> </div>
<div class="calendar item-wrapper">
<div class="inner">
<?php
if (!empty($items[$start_time]['values'][$index - 1])) {
?>
<?php
foreach ($items[$start_time]['values'][$index - 1] as $item) {
?>
<?php
if (isset($item['is_first']) && $item['is_first']) {
?>
<div class="item <?php
print $item['class'];
?> first_item">
<?php
}
else {
?>
<div class="item <?php
print $item['class'];
?>">
<?php
}
?>
<?php
print $item['entry'];
?>
</div>
<?php
}
?>
<?php
}
?>
</div>
</div>
</div>
<?php
}
?>
<?php
}
?>
</td>
<?php
}
?>
</tr>
</tbody>
</table>
</div>
<div class="single-day-footer"> </div>
</div></div>
<script>
try {
// Size and position the viewport inline so there are no delays
calendar_resizeViewport(jQuery);
calendar_scrollToFirst(jQuery);
// Show it now that it is complete and positioned
jQuery('#single-day-container').css('visibility','visible');
}catch(e){
// swallow
}
</script>