[gelöst] Darstellung eines Monats mittels calendar module
Eingetragen von cpritz (91)
am 11.01.2013 - 15:39 Uhr in
am 11.01.2013 - 15:39 Uhr in
Ich möchte gerne eine Monatsansicht erstellen, in der die Tage alle in einer Reihe angezeigt werden. Die Abkürzungen der Wochentage sollen jeweils darunter stehen. Hat jemand eine Idee, wie ich das bewerkstelligen kann? Bei Klick auf einen Tag sollen die Events für diesen Tag angezeigt werden.
- Anmelden oder Registrieren um Kommentare zu schreiben
Das Kalender Modul bringt dir
am 11.01.2013 - 17:38 Uhr
Das Kalender Modul bringt dir einige Theme-Dateien mit, diese kannst du in deinem eigenen Theme überschreiben - so könntest du dann die von dir gewünschte Ausgabe hinbekommen. Wird halt ein bissel Handarbeit - aber machbar ist das..
Du findest die Theme Dateien im Ordner theme des Kalender Moduls.
Wieso möchtest du denn nicht die bekannte Standardansicht eines Kalenders verwenden ? Die ist ja eigentlich jedem Nutzer geläufig.
Die Anzeige der Events zu einem Tag, könntest du dann über einen View realisieren, der einen Contextual Filter auf den jeweiligen Tag hat.
SteffenR
Themeanpassung im Kalender Modul
am 12.01.2013 - 10:13 Uhr
Hallo SteffenR,
vielen Dank für den Hinweis. Ich hatte auch schon mit den Theme-Dateien herum gespielt. Dabei ist mir nicht klar, wie ich die Wochentage den eigentlichen Tagen zuordnen kann. Ich hatte mir die Mini-Kalender-Ansicht (Block) angeschaut. Hast du vielleicht spontan eine Idee, ob es eine entsprechende Funktion im Modul gibt, die dies erledigt?
cpritz
Überschreiben des Template calendar.mini.tpl.php
am 10.05.2013 - 09:03 Uhr
Hier das überschriebene Template:
<?php
/**
* @file
* Template to display a view as a mini calendar month.
*
* @see template_preprocess_calendar_mini.
*
* $day_names: An array of the day of week names for the table header.
* $rows: An array of data for each day of the week.
* $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.
*
* $show_title: If the title should be displayed. Normally false since the title is incorporated
* into the navigation, but sometimes needed, like in the year view of mini calendars.
*
*/
//dsm('Display: '. $display_type .': '. $min_date_formatted .' to '. $max_date_formatted);dsm($day_names);
$params = array(
'view' => $view,
'granularity' => 'month',
'link' => FALSE,
);
?>
<div class="calendar-calendar"><div class="month-view">
<?php if ($show_title): ?>
<div class="date-nav-wrapper clear-block">
<div class="date-nav">
<div class="date-heading">
<?php print theme('date_nav_title', $params) ?>
</div>
</div>
</div>
<?php endif; ?>
<table class="mini">
<thead>
<!--<tr>
<?php //foreach ($day_names as $cell): ?>
<th class="<?php //print $cell['class']; ?>">
<?php //print $cell['data']; ?>
</th>
<?php //endforeach; ?>
</tr>-->
</thead>
<tbody>
<tr cellpadding="5">
<?php $classnames = array();
$classelements = count($classnames);
$counter = 0;
?>
<?php foreach ((array) $rows as $row): ?>
<?php foreach ($row as $cell): ?>
<?php
$classnames[] = $cell['class'];
$dayname = substr($classnames[$counter], 0, 3);
$dayempty = substr($classnames[$counter], 9, 5);
$hasevents = substr($classnames[$counter], -13);
?>
<?php if($dayempty != "empty" && $hasevents == "has-no-events"){ ?>
<td class="dayname <?php print("has-no-events"); ?>">
<?php }elseif($dayempty != "empty"){ ?>
<td class="dayname <?php print("events"); ?>">
<?php } ?>
<?php
if($dayempty != "empty"){
$weekdayname = t('@weekdayname', array('@weekdayname' => $dayname));
switch($weekdayname){
case "mon":
print(t('mo'));
break;
case "tue":
print(t('tu'));
break;
case "wed":
print(t('we'));
break;
case "thu":
print(t('th'));
break;
case "fri":
print(t('fr'));
break;
case "sat":
print(t('sa'));
break;
case "sun":
print(t('su'));
print("<span class='divider'></span>");
break;
}
}
?>
</td>
<?php
$counter++;
?>
<?php endforeach; ?>
<?php endforeach; ?>
</tr>
<tr cellpadding="5" class="calendar-days">
<?php $classnames = array();
$classelements = count($classnames);
$counter = 0;
?>
<?php foreach ((array) $rows as $row): ?>
<?php foreach ($row as $cell): ?>
<?php
$classnames[] = $cell['class'];
$dayname = substr($classnames[$counter], 0, 3);
$dayempty = substr($classnames[$counter], 9, 5);
$hasevents = substr($classnames[$counter], -13);
?>
<?php if($dayempty != "empty"){ ?>
<td id="<?php print $cell['id']; ?>" class="<?php print $cell['class']; ?>">
<?php print $cell['data']; ?>
</td>
<?php
}
$counter++;
?>
<?php endforeach; ?>
<?php endforeach; ?></tr>
</tbody>
</table>
</div></div>