FeWo Belegungsplan mit Bordmitteln & datepicker m. Event Vorbelegung
Hallo,
versuchsweise wollte ich einen FeWo Belegungsplan nur mit Bordmitteln erstellen. Soweit bin ich gekommen:
1) Bezieht sich auf Contao 3.5.8
a) Ein Event-Archiv mit den Reservierungen (Events) je FeWo Objekt erstellen
b) Ein weiteres Event-Archiv - nennen wir es "show-kalender-link".
In diesem Archiv existiert nur ein Event z.B. 01.01.2016 - mit aktivierter Wiederholung / Intervall 1 Jahr und unbefristeten Wiederholungen.
Das führt dazu das z.B. beim Minikalender wieder vor/zurück geblättert werden kann.
(Hinweis: Dieser Schritt ist bei Nutzung der Erweiterung [calendar_extended] nicht notwendig.)
c) Das Template cal_mini.html5 ändern - s.u..
Die Änderungen setzt die CSS Klasse .hide damit die Anzeige des Archivs "show-kalender-link" unterdrückt werden kann.
Weiterhin werden je Event die CSS Klassen .startevent und .endevent gesetzt - Darüber könnte man diese gesondert darstellen.
c1) Ein Modul vom Typ Kalender erstellen und hierbei sicherstellen das das untere Template herangezogen wird (falls umbenannt).
In den Moduleinstellungen beide Archive auswählen und die 'Verkürzte Darstellung' deaktiviert (lassen)!!!
d) Das von Spooky genannte Script einbauen - https://community.contao.org/de/show...l=1#post350838
Status:
Darüber erhält man eine MiniKalender Funktion (Darstellung kann ja auch über die ganze Breite gehen) mit monatlichen Vor/Zurück Blättern ohne das die Seite neu geladen werden muß.
Zusätzlich kann man die jeweiligen Start/End Datumsangaben also Anfahrt/Abreise gesondert stylen.
Das kann man so also gebrauchen ...
(Funktioniert dann aber nur mit einem Kalender je Seite)
Datei cal_mini.html5:
PHP-Code:
<table class="minicalendar">
<thead>
<tr>
<th class="head previous"><?php if ($this->prevHref): ?><a href="<?= $this->prevHref ?>" rel="nofollow" title="<?= $this->prevTitle ?>"><?= $this->prevLabel ?></a><?php else: ?> <?php endif; ?></th>
<th colspan="5" class="head current"><?= $this->current ?></th>
<th class="head next"><?php if ($this->nextHref): ?><a href="<?= $this->nextHref ?>" rel="nofollow" title="<?= $this->nextTitle ?>"><?= $this->nextLabel ?></a><?php else: ?> <?php endif; ?></th>
</tr>
<tr>
<?php foreach ($this->days as $i=>$day): ?>
<th class="label<?= $day['class'] ?>"><?= utf8_substr($day['name'], 0, $this->substr) ?><span class="invisible"><?= utf8_substr($day['name'], $this->substr) ?></span></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<?php foreach ($this->weeks as $class=>$week): ?>
<tr class="<?= $class ?>">
<?php foreach ($week as $day): ?>
<?php if ($day['href']): ?>
<?php // get date of each weekday
$strdateDayOfWeek = explode("=", $day['href']);
$dateDayOfWeek = strtotime($strdateDayOfWeek[1]);
foreach($day['events'] as $event) {
// mark if weekdate equals event-start or event-end
if($dateDayOfWeek == $event['startDate']) {
$day['class'] = $day['class'].' startevent';
}
elseif($dateDayOfWeek == $event['endDate']) {
$day['class'] = $day['class'].' endevent';
}
// mark helper event-archiv
if ($event['calendar']->title == 'show-kalender-link') {
$day['class'] = $day['class'].' hide';
}
}
?>
<td class="<?= $day['class'] ?>"><a href="<?= $day['href'] ?>" title="<?= $day['title'] ?>"><?= $day['label'] ?></a></td>
<?php else: ?>
<td class="<?= $day['class'] ?>"><?= $day['label'] ?></td>
<?php endif; ?>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
Offen / Hilfe:
- Darstellung mehrerer Minikalender - s. https://community.contao.org/de/show...l=1#post402314
Eventuell fällt euch dazu noch etwas ein ...
UPDATE:
Hierzu gibt es einen neuen Beitrag der wohl zu funktioniert!
- Keine doppelten Datumseinträge in einem Event-Archiv: Dies wird wohl ohne Erweiterung nicht fluppen - aber Kester ist dran: s. https://community.contao.org/de/show...l=1#post402483
Frank