Feb 132011
 

Die Cal-Erweiterung für TYPO3 stellt eine Vielzahl von Möglichkeiten zur Termin und Aufgabenverwaltung bereit. Jeder Termin hat in dieser Erweiterung einen klar definierten Beginn und ein klar definiertes Ende. Im Alltag kommt es aber immer wieder vor, dass ein Termin ein offenes Ende hat. Ein Verein der auf der Webseite die Weihnachtsfeier ankündigt, möchte vielleicht noch gar keine Uhrzeit nennen an der alle nach Hause müssen.

Damit es möglich ist einen Termin auch ohne Endzeit einzupflegen, sind zwei kleine Anpassungen an der Erweiterung nötig.

Das Enddatum ist im TCA-Array, das die Eingabemasken im Backend steuert, als Pflichtfeld ausgewiesen. Um Termine auch ohne ein solches eingeben zu können, müssen wir das „required“ Flag entfernen:

'end_date' => Array (
'exclude' => 1,
'label' => 'LLL:EXT:cal/locallang_db.php:tx_cal_event.end_date',
'config' => Array (
'type' => 'input',
'size' => '12',
'max' => '20',
'eval' => 'date',
)
),

Nun müssen wir noch dafür sorgen, dass bei der Ausgabe der Termine aus der Webseite ein leeres Enddatum nicht ausgegeben wird.

Die Cal-Erweiterung ist als MVC-Architektur umgesetzt. Wir müssen also dafür sorgen, dass die Informationen die der „View“ vom „Model“ erhält, abhängig von gesetzten Enddatum angepasst werden.

In der Datei „class.tx_cal_phpicalendar_model.php“  fügen wir in der Funktion fillTemplate direkt vor dem Return folgende Zeilen ein:

#---------------------------------------------------------------------------
#Hide endtime if it is not set and TS value of disableEnd is set to"1"
#---------------------------------------------------------------------------
$tmp_start=mktime($this->start->hour,$this->start->minute,0,
$this->start->month,$this->start->day,$this->start->year);
$tmp_end=mktime($this->end->hour,$this->end->minute,0,
$this->end->month,$this->end->day,$this->end->year);
if(($this->conf['view.']['event.']['event.']['disableEnd']==1)
&&(($tmp_end-$tmp_start)==$this->conf['view.']['event.']['event.']
['defaultEventLength'])){

$sims["###ENDTIME_LABEL###"]='';
$sims["###ENDTIME###"]='';
}
#---------------------------------------------------------------------------

Alles was wir jetzt noch machen müssen ist im TS-Code unsere Änderung mit der Zeile

plugin.tx_cal_controller.view.event.event.disableEnd = 1

zu aktivieren.

  Eine Antwort zu “Enddatum und Endzeit in Cal Kalender Erweiterung nur optional anzeigen”

  1. Hallo, bin über Google hier gelandet – danke für die Infos! Mir hat zu dem Thema dieser Forumseintrag sehr weitergeholfen. Wenn man den dortigen Code ins TypoScript-Setup schreibt, wird automatisch die Endzeit weggelassen, wenn sie bei der Termineingabe leer gelassen wurde. Zumindest in aktuellen CAL Versionen ist es ja möglich, keine Endzeit einzugeben.

 Antworten

Du kannst diese HTML Tags und Attribute benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(Pflichtfeld)

(Pflichtfeld)

© 2017 LAMP solutions GmbH