Hey Kirby Fan´s !
First - sorry for my bad english …
i have a simple Question for my EventCalendar. It´s works fine, but i want to limited the events whithout deleting in the Panel.
Example
- 10 Events in the Future
- 3 Events in History
I think, i must be limited in the Loop with limit($limit)
foreach($site->find(‘kalender’)->calendar()->toStructure()->sortBy(‘date’, ‘desc’)->limit($site->find(‘kalender’)->neu()) as $event) :
Calendar.php
<?php // Deutsche Monatsausgabe im Array //
$monatsnamen = array(1=>"Jan",2=>"Feb",3=>"Mär",4=>"Apr",5=>"Mai",6=>"Jun",7=>"Jul",8=>"Aug",9=>"Sep",10=>"Okt",11=>"Nov",12=>"Dez",
"Jan"=>"Januar","Feb"=>"Februar","Mar"=>"März","Apr"=>"April","May"=>"Mai","June"=>"July","Aug"=>"August","Sept"=>"September","Oct"=>"Oktober","Nov"=>"November","Dec"=>"Dezember");?>
<h2> Kalender</h2>
<div class="col-xs-offset-4 col-xs-4">
<?php foreach($site->find('kalender')->calendar()->toStructure()->sortBy('date', 'desc') as $event) :
$heute = new DateTime(date("d.m.Y")); // Aktuelles Datum //
$zukunft = new DateTime(date('d.m.Y',$event->date())); // Datum vom Kalendereintrag //
$interval = $heute->diff($zukunft); // Differnz zwischen Aktuellem und Kalendereintrag Datum ermitteln //
$mon_char = substr($interval->format('%R%m'), 0, 1); // Ermittle, ob +/- Monate zur Differenz //
$mon_int = substr($interval->format('%R%m'), 1); // Ermittle die Anzahl der Monate zur Differenz //
$day_char = substr($interval->format('%R%d'), 0, 1); // Ermittle, ob +/- Tage zur Differenz //
$day_int = substr($interval->format('%R%d'), 1); // Ermittle die Anzahl der Tage zur Differenz //
if($mon_int==1){$mon_txt=" Monat ";}else{$mon_txt=" Monaten ";}; // Abfrage, ob 1 Monat oder x Monate //
if($day_int==1){$day_txt=" Tag ";}else{$day_txt= " Tagen";}; // Abfrage, ob 1 Tag oder x Tage // ?>
<div class="media event col-xs-12">
<div class="media-left media-middle">
<a href="#">
<span class="date">
<span class="month">
<?php echo $monatsnamen[date('n',$event->date())]; // Monat//?>
</span>
<span class="day">
<?php echo date('d',$event->date()); // Tag // ?>
</span>
</span>
</a>
</div>
<div class="media-body">
<h4 class="media-heading"><?php echo $event->headline(); // Kalendereintrag Ueberschrift //?></h4>
<span class="meta">
<?php echo "Wo: " . $event->place() . "</br>";// Ort //
echo "Datum: " . date('d. ',$event->date()) . $monatsnamen[date('M',$event->date())] . date(' Y',$event->date()) . " - "; // Datum und Differenz //
if($mon_char == '+' and $day_char = '+') :
if($mon_int > 0 AND $day_int > 0) : // in 3 Monate(n) und 15 Tage(n) //
echo "in " . $mon_int . $mon_txt . "und " . $day_int . $day_txt;
elseif ($mon_int == 0 and $day_int > 0): // in 15 Tage(n)//
if($day_int == 1):
echo "Morgen";
else:
echo "in " . $day_int . $day_txt;
endif;
elseif ($mon_int == 0 and $day_int == 0): // Heute //
echo "Heute";
endif;
else:
if($mon_int > 0 AND $day_int > 0) : // vor 2 Monate(n) und 3 Tage(n) //
echo "vor " . $mon_int . $mon_txt . " und " . $day_int . $day_txt;
elseif ($mon_int == 0 and $day_int > 0): // vor 15 Tagen //
if($day_int == 1):
echo "Gestern";
else:
echo "vor " . $day_int . $day_txt;
endif;
endif;
endif;
echo "</br>";
if(!empty($event->starttime() OR $event->endtime())) : // Abfrage ob Uhrzeit gesetzt wurde //
echo "Uhrzeit: ";
if($event->starttime() != ""):
echo $event->starttime() . " Uhr";
endif;
if($event->endtime() != ""):
echo " - " . $event->endtime() . " Uhr";
endif;
echo "</br>";
endif;?>
</span>
</div>
</div>
<?php endforeach ?>
</div>
Blueprint of the Calendar
title: Kalender
deletable: false
options:
preview: false
template: false
status: false
url: false
pages: false
files: false
fields:
neu:
label: Neue Einträge
type: number
min: 1
max: 20
width: 1/5
alt:
label: Alte Einträge
type: number
min: 0
max: 20
width: 1/5
calendar:
label: Einträge
type: structure
entry: >
{{date}} - <strong>{{headline}}</strong>
fields:
headline:
label: Titel
type: text
required: true
description:
label: Beschreibung
type: textarea
required: true
buttons:
- none
place:
label: Ort
type: text
required: true
date:
label: Datum
type: date
format: dd.mm.YY
required: true
starttime:
width: 1/2
label: Anfang
type: time
interval: 30
default: 11:30
endtime:
width: 1/2
label: Ende
type: time
interval: 30