DEPRECATION WARNING

This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.

VCE - Versatile Calendar Extension

Created:2005-02-18T14:14:33
Changed:2005-02-22T17:52:09
Author:Volker Bibinger
Co-Author:Rainer Sudhölter
Co-Author email:
 t3@boswell.de
Email:info@sitekick.de

VCE - Versatile Calendar Extension

Extension Key: sk_calendar

Copyright 2000-2005 by Volker Bibinger

Author: Volker Bibinger, <info@sitekick.de>

Dokumentation: Rainer Sudhölter, <t3@boswell.de>

This document is published under the Open Content License

available from http://www.opencontent.org/opl.shtml

The content of this document is related to TYPO3

- a GNU/GPL CMS/Framework available from www.typo3.com

Inhaltsverzeichnis

VCE - Versatile Calendar Extension 1

Einleitung 1

Wozu dient die Erweiterung VCE? 1

Screenshots 3

Benutzerhandbuch 6

Installation 6

Schnellstart 6

Konfiguration 11

Das Frontend Plugin 11

Das VCE HTML-Template 12

Das VCE PDF-Template 15

Administration 16

Caching 16

VCE erweitern 16

Bekannte Probleme 17

Offene Punkte 17

Changelog 17

Einleitung

Wozu dient die Erweiterung VCE?

Mit der Versatile Calendar Extension VCE erweitern Sie TYPO3 um ein hochflexibles, erweiterbares Kalendersystem. Verwenden Sie VCE, wenn Sie auf Ihrer Website Veranstaltungen, Termine und ähnliches darstellen wollen. VCE unterstützt Sie dabei mit einem einfach zu erlernenden Templatesystem, hilft Ihnen bei der Erstellung von Terminserien und erlaubt es Ihnen sogar, Ihren Website-Besuchern personalierte Jahresplaner als Adobe PDF anbieten zu können.

Frontend Funktionen:

  • Frontend Plugin zur Darstellung von Detail-, Wochen-, Monats-, Archiv- und Listenansichten
  • Integrierte Suchfunktion über alle Datensätze
  • Filterfunktionen für alle Ansichten (nach Zielgruppe, Kategorie, Veranstalter, Veranstaltungsort)
  • Anzeige von Feiertagen
  • Erzeugung personalisierter(Anzeigefilter und eigenes PDF Template) Jahresplaner als PDF

Backend Funktionen:

  • Eingabe von Terminen und Ereignissen mit folgenden Kategorisierungsmöglichkeiten
  • Kategorie
  • Veranstalter
  • Veranstaltungsort
  • Zielgruppe
  • Wiederkehrende Ereignisse (Terminserien)
  • täglich
  • wöchentlich
  • monatlich
  • jährlich
  • bestimmter Tag eines Monats (experimentell)
  • Ausnahmen zu Terminserien
  • VCE Event Editor im kontextsensitiven Menü des Seitenbaums

Screenshots

FE

Monatsansicht:

  • img-1

  • Monatsansicht (gefiltert):

    img-2

  • img-3 Wochenansicht:

Detailansicht:

  • img-4
  • img-5 PDF Jahresplaner:
BE

VCE Event Editor:

img-6

a

img-6

b

img-7

img-8 Übersichtsfunktionen:

Benutzerhandbuch

Installation

Laden Sie sich die Extension sk_calendar aus dem TER und installieren Sie Sie diese wie gewohnt mit dem Extension Manager (EM) als globale oder lokale Erweiterung. Während der Installation gilt es zu entscheiden, von welchem Speicherort VCE standardmäßig notwendige Daten (Termine, Kategorien, Veranstalter usw.) beziehen soll.

img-9

Wenn Sie auf Ihrer Website lediglich einen systemweiten Kalender einsetzen möchten, sollten Sie sich einen eigenen Sysfolder anlegen und hier dessen ID eintragen. Innerhalb des gewählten Sysfolders können Sie dann alle für VCE notwendigen Daten (Termine) und Einstellungen (Kategorien, Zielgruppen etc.) anlegen.

Sollte es nötig sein, mehrere unabhängige Kalender auf einer Website anzuzeigen, so sollten Sie hier den Wert 0 (Standardeinstellung) eintragen. Dadurch veranlassen Sie VCE, Daten von derjenigen Seite zu beziehen, auf welcher das jeweilige VCE Frontend Plugin installiert wurde. Auf diesen Seiten müssen Sie dann neben dem eigentlichen Frontend Plugin natürlich auch alle notwendigen Daten und Einstellungen als Inhaltselement anlegen.

Wichtig: Die hier gemachten Einstellungen beeinflussen nur das VCE Standardverhalten! Innerhalb der Plugin Konfiguration können Sie auch jederzeit einen anderen Speicherort festlegen.

Schnellstart

In diesem Abschnitt erfahren Sie alles, was Sie wissen müssen, um VCE mit seinen Standardeinstellungen benutzen zu können. Eine detailierte Beschreibung aller Möglichkeiten, die Ihnen VCE bietet, finden Sie in den Kapitel Konfiguration.

Wichtig: Für diese Schnellstart-Anleitung gehen wir davon aus, dass Sie lediglich einen Kalender einsetzen wollen.

Installationsvorbereitung

Bevor Sie die VCE installieren, sollten Sie sich innerhalb Ihres Seitenbaums zunächst einen eigenen Sysfolder für Ihre VCE Daten anlegen und sich dessen ID merken. Installieren Sie dann mithilfe des Extension Managers VCE und geben Sie den Wert für centralStoragePid ein (in unserem Beispiel die Nummer 84 “Termine VCE”).

Konfiguration

Wechseln Sie in die Listenansicht und wählen Sie Ihren VCE Sysfolder. Legen Sie einen neuen Datensatz an.

img-10

Hier sehen Sie zum ersten Mal alle Kategoriesierungmöglichkeiten, welche Ihnen VCE zur Verfügung stellt: Kategorie, Veranstalter, Veranstaltungsort und Zielgruppe. Daneben natürlich noch die Einträge für Termine und Ausnahmen von Wiederholungsterminen.

Grundeinstellungen

Bevor wir Termine in den Kalender eintragen, legen wir eine Reihe von Datensätzen in den verschiedenen Kategorien an. Diese Kategorien dienen später dazu, Termine nach Ihren Wünschen zu filtern.

Kategorien

Klicken Sie also zunächst auf VCE Kategorie und füllen Sie die Maske aus.

img-11

Mit Icon legen Sie ein Symbol fest, welches Sie in der Monatsansicht zum Hervorheben von Terminen einer bestimmten Kategorie verwenden können. Gleiches gilt für Farbe , mit welcher Sie z.B. Termine farbig hinterlegen können. Speichern Sie Ihre Eingabe und legen Sie noch 2 weitere Kategorien an.

Veranstalter

Legen Sie nun einen Veranstalter an. Wählen Sie VCE Veranstalter und füllen Sie die Maske aus.

img-12

Speichern Sie Ihre Eingabe und legen Sie noch 2 weitere Veranstalter an.

Veranstaltungsorte

Als nächstes legen Sie 3 verschiedene Veranstaltungsorte an. Wählen Sie dazu den Punkt VCE Veranstaltungsort.

img-13 Zielgruppen

img-14 Abschliessend legen wir noch 3 verschiedene Zielgruppen an. Wählen Sie VCE Zielgruppe, füllen Sie die Maske aus und speichern Sie Ihre Eingaben.

Damit sind alle Vorarbeiten abgeschlossen und wir erhalten folgende Struktur:

img-15 Termine anlegen

Erstellen Sie nun Ihren ersten Kalendereintrag. Wählen Sie VCE Termin. Auch hier sind die Eingabefelder weitgehend selbsterklärend.

img-16

img-17 Wählen Sie für diesen Termin nun bitte Terminwiederholung: täglich und Wiederholung bis: d+7 (7 Tage).Sie können dem Termin Kosten zuordnen, etwa für einen Kongress.

Wichtig: Die Felder Termin markieren und Frontend User werden erst ab der Version 0.3.0 unterstützt.

Wie Sie sehen, können Sie den Termin nun den zuvor angelegten Kategorien zuweisen. Erstellen Sie noch weitere Termine mit unterschiedlichen Wiederholungen und Zuordnungen.

Ausnahmen zu Terminwiederholungen

Eine Ausnahme zu einer Terminserie erstellen Sie, indem Sie auf das Editiersymbol (Bleistift) des entsprechenden Termins klicken.

img-18

VCE erkennt automatisch, ob ein Termin zu einer Terminserie gehört und weist Sie darauf hin:

img-19

Da wir eine Ausnahme zu einer Terminserie erstellen wollen, wählen Sie “Nur diesen einen Termin editieren (Ausnahme der Wiederholungsserie)”. Daraufhin erscheint die bereits bekannte Bearbeitungsmaske. Hier können Sie jetzt alle Veränderungen zu diesem Termin vornehmen, etwa, indem Sie die Kosten an diesem Tag ändern oder einen anderen Beschreibungstext verwenden. Der Einfachheit halber verstecken wir den Termin einfach und speichern die Eingabe.

img-20

In der Listenansicht haben sich jetzt 2 Dinge verändert:

  • img-21 zum einen wird eine Ausnahme zu einer Terminserien mit einem anderen Symbol dargestellt
  • zum anderen erscheint ein Eintrag in der Liste der Ausnahmetermine

img-22

Und natürlich wird der Termin nicht mehr auf der Website angezeigt:

img-23

Achtung : Eine Ausnahme löscht man, indem man den Termin in der Terminliste löscht. Die Ausnahmeliste dient lediglich der Übersicht und kann im Backend nicht editiert werden!

VCE Frontend Plugin installieren und konfigurieren

Legen Sie nun eine Seite an, auf der Sie Ihren Kalender anzeigen möchten. Installieren Sie das Plugin “VCE Kalender” als Inhaltselement vom Typ Plugin und speichern Sie die Seite.Wenn Sie anschliessend das Plugin zur Bearbeitung aufrufen, erscheint folgende Konfigurationsmaske:

img-24 img-25 Belassen Sie einfach alle Voreinstellungen und wählen Sie unter “Ausgangspunkt” noch Ihren VCE Sysfolder “Termine VCE”. Speichern Sie Ihre Eingaben, wechseln Sie ins Frontend und lassen Sie sich die Kalenderseite anzeigen. Abhängig vom jeweiligen generellen Design Ihrer Website sollten Sie nun den VCE Kalender in der Monatsansicht sehen.

Spielen Sie ein wenig mit den verschiedenen Ansichten und Filtermöglichkeiten und erzeugen Sie sich Ihren ersten personalisierten, d.h. nach Ihren Vorstellungen gefilterten Jahresplaner als PDF.

Herzlichen Glückwunsch, Sie haben VCE erfolgreich installiert und in Betrieb genommen =:o)

Die nachfolgenden Kapitel sind den Einstellmöglichkeiten gewidmet, mit denen Sie das Erscheinungsbild und die Funktionalitäten von VCE an Ihre Bedürfnisse anpassen können.

Konfiguration

Das Frontend Plugin

Das Erscheinungsbild und den Funktionsumfang von VCE auf Ihrer Website legen Sie mit den Einstellungen innerhalb des Frontend Plugins fest. Dazu bietet Ihnen VCE drei verschiedene Reiter, die hier erklärt werden.

Reiter “Allgemein”

img-26

  • Voreinstellung Ansicht : legt fest, welche Kalenderansicht standardmäßig beim ersten Aufruf des Kalenders angezeigt werden soll. Wählen Sie eine der möglichen Ansichten aus dem Dropdown-Menü.
  • Keine Links zu anderen Ansichten : normalerweise zeigt VCE auf allen Seiten Navigationslinks zu allen anderen Kalenderansichten an. Mit dieser Option wird dieses Verhalten deaktiviert.
  • Seite zur Anzeige der Details : legt fest, auf welcher Seite des Seitenbaumes die Detailansicht zu einem Kalendereintrag angezeigt werden soll. Diese Seite muss dann selbstverständlich ebenfalls das Plugin VCE Kalender enthalten. Wenn Sie diesen Wert leer lassen, wird die aktuelle Seite verwendet.
  • Eigenes HTML-Template : geben Sie hier Ihr eigenes HTML-Template an (siehe VCE HTML-Template ).
  • Eigenes PDF-Template : geben Sie hier Ihr eigenes PDF-Template zur Erstellung des Jahresplaners an (siehe VCE PDF-Template .
  • Template Erweiterungsklasse : VCE lässt sich um eigene Funktionen erweitern. Wählen Sie hier die PHP-Datei, die Ihre Erweiterungen enthält (Details hierzu finden Sie im Kapitel “ VCE erweitern” ).
  • Ausgangspunkt : geben Sie hier den Speicherort für Ihre VCE Daten (Termine und Kategorien) an. Lassen Sie dieses Feld leer, um VCE Daten von der aktuellen Seite zu beziehen.
Reiter “Ansichten”

Mit diesen Optionen legen Sie fest, wie viele Termine Sie in den verschiedenen Ansichten darstellen wollen. Gerade bei umfangreichen Terminkalendern kann es sinnvoll sein, die Anzahl der Termine zu beschränken, da die Listen sonst sehr lang und unübersichtlich werden. Die Standardwerte sind jeweils in eckigen Klammer [] dargestellt.

img-27

  • Anzahl der Tage in der Boxansicht [7]
  • Anzahl der Einträge in “Nächste Termine” [10]
  • Anzahl der Einträge in der Listenansicht [20]
  • In der Listenansicht Dropdown für die nächsten 2 Jahre nicht zeigen : blendet das Dropdown Menü aus, welches die nächsten 24 Monate anzeigt.
Reiter “Warnungen”

Normalerweise warnt VCE den Benutzer, wenn auf einer Seite nicht genügend Informationen vorhanden sind, um eine sinnvolle Filterfunktionen einblenden zu können. Das geschieht zum Beispiel immer dann, wenn nicht genug Kategorien definiert wurden. Mit dieser Option wird der Benutzer darauf aufmerksam gemacht, dass er unter Umständen nicht alle Termine angezeigt bekommt. Hier können Sie diese Warnmeldung ausschalten.

img-28 Das VCE HTML-Template

Aufbau

Das Standardtemplate html_template.html befindet sich im Ordner EXT:sk_calendarpi1. Dieses Template wird immer dann verwendet, wenn der Benutzer kein eigenes Template angibt.

Innerhalb des Templates finden Sie neben weiteren Angaben zu den verwendeten Markern die Definition für die verschiedenen Ansichten. Wir erklären den generellen Aufbau einer Ansicht am Beispiel Monatsansicht

Beispiel Monatsansicht

Das ist der Template-Quelltext für die Monatsansicht MONTH_VIEW.

In den meisten Ansichten werden mehrere Informations-Blöcke nacheinander abgearbeitet. Die Reihenfolge der Abarbeitung wird dabei nicht in diesem Template, sondern in der dazugehörigen PHP-Klasse pi1class.tx_skcalendar_monthview.php definiert.

1: <!--###MONTH_VIEW_ITEM### begin
2:     item for monthview
3:     -->
4: <div style="background: ###C_color###; clear: all; border-top: 1px dotted #a3a3a3; padding: 0px 0px 0px 0px;"><img src="/uploads/tx_skcalendar/###C_icon###">&nbsp;###DETAILLINK###</div>
5: <!--###MONTH_VIEW_ITEM### end -->

Mit ###MONTH_VIEW_ITEM### werden einzelne Termine eines Tages dargestellt. In diesem Fall verwenden wir eine Style-Definition, um den Zellen-Hintergrund in der Farbe der entsprechenden Kategorie darzustellen (background: ###C_color###;). ###DETAILLINK### erzeugt den Link zu der Detailansicht des Termins.

 7: <!--###MONTH_VIEW_DAYWRAP### begin
 8:     wrap day
 9:     -->
10:     <td height=50 width=14% class="###DAYSTYLE###">###DAYNAME###<br>###WRAPIT###</td>
11: <!--###MONTH_VIEW_DAYWRAP### end -->

Mit ###MONTH_VIEW_DAYWRAP### werden alle Termine eines Tages in einer Tabellenzelle zusammengefasst und mit ###DAYNAME### der aktuelle Tag (numerischen Wert) angezeigt. Technisch gesehen werden dabei alle Inhalte aus ###MONTH_VIEW_ITEM### aufsummiert und anstelle des Markers ###WRAPIT### eingefügt.

###DAYSTYLE### ist ein besonderer Marker und nimmt automatisch einen dieser 3 Werte an: month_holiday, month_today und month_past_weekday. Abhängig vom aktuellen Datum können Sie damit die einzelnen Monatstage farblich unterschiedlich hinterlegen (Sonn- und Feiertage, aktueller Tag und vergangene Tage des Monats). In Ihrem Stylesheet muessen sie dafür noch entsprechende Klassendefinitionen anlegen:

.month_weekday {
    color : #000000;
    background-color : #ffffff;
}

.month_today {
    background-color : #ff0000;
    border-color : #000000;
}

.month_holiday {
    color : #FF0000;
    background-color : #ffeeaa;
}
13: <!--###MONTH_VIEW_ROWWRAP### begin
14:     wrap row
15:     -->
16: <tr valign=top>
17: ###WRAPIT###
18: </tr>
19: <!--###MONTH_VIEW_ROWWRAP### end -->

Mit ###MONTH_VIEW_ROWWRAP### werden alle Tage einer Woche in einer eigenen Tabellenzeile eingefasst.

21: <!--###MONTH_VIEW_CALENDARWRAP### begin
22:     wrap calendar
23:     -->
24: <tr>
25:     <td>
26:         <table cellspacing=0 cellpadding=3>
27:             <tr valign=top>
28:                 <td><b>###LABEL_month_view### ###MONTHNAME###</b></td>
29:             </tr>
30:         </table>
31:     </td>
32: </tr>
33: <tr>
34:     <td>
35:         <table cellspacing=0 cellpadding=2 border=1 width=100%>
36:             <tr>
37:                 <td align=right><b>Mo</b></td>
38:                 <td align=right><b>Di</b></td>
39:                 <td align=right><b>Mi</b></td>
40:                 <td align=right><b>Do</b></td>
41:                 <td align=right><b>Fr</b></td>
42:                 <td align=right><b>Sa</b></td>
43:                 <td align=right class="month_holiday"><b>So</b></td>
44:             </tr>
45:             ###WRAPIT###
46:         </table>
47:     </td>
48: </tr>
49: <!--###MONTH_VIEW_CALENDARWRAP### end -->

###MONTH_VIEW_CALENDARWRAP### schliesst alle Tabellenreihen (Wochen) in einer Tabelle ein. Über dem Kalender wird noch der Name der Ansicht sowie der Monatsname ausgegeben.

51: <!--###MONTH_VIEW_NAVIGATION### begin
52:     navigation
53:     -->
54: <tr>
55:     <td>
56:         <table cellspacing=0 cellpadding=3 width=100%>
57:             <tr valign=bottom>
58:                 <td>
59:                     <table cellpadding=0 cellspacing=0 border=0 width=100%>
60:                         <tr>
61:                             <td align=left>###BACKLINK###</td>
62:                             <td align=right>###NEXTLINK###</td>
63:                         </tr>
64:                     </table>
65:                 </td>
66:             </tr>
67:         </table>
68:     </td>
69: </tr>
70: <!--###MONTH_VIEW_NAVIGATION### end -->

Mit ###MONTH_VIEW_NAVIGATION### werden die Links zum vorhergehenden und nachfolgenden Monat dargestellt.

72: <!--###MONTH_VIEW_WHOLEWRAP### begin
73:     wrap whole month
74:     -->
75: <table cellspacing=0 cellpadding=0 border=0 width=100%>
76:     ###WRAPIT###
77: </table>
78: <!--###MONTH_VIEW_WHOLEWRAP### end -->

###MONTH_VIEW_WHOLEWRAP### schliesslich fasst alle Blöcke in einer gemeinsamen Tabelle ein.

Mit diesen Erklärungen sollten Sie nun in der Lage sein, die Template- Definitionen der anderen Ansichten selbst zu verstehen und anzupassen.

Bitte beachten Sie stets

  • der Marker ###WRAPIT### enthält das Ergebnis der zuvor ausgewerteten Blöcke einer Ansicht
  • die Abfolge der Abarbeitung dieser Blöcke kann durch Sie nicht beeinflusst werden
Sprachlabels

Im vorigen Abschnitt haben Sie bereits einige der Sprachlabels kennengelernt. Diese Labels wurden bereits in die verschiedenen TYPO3 Systemsprachen übersetzt, können von Ihnen aber auch nachträglich angepasst werden.

Ein Sprachlabel wird folgendermassen angesprochen: ###LABEL_<name>###. Die verschiedenen Werte für <name> finden Sie in der Datei EXT:sk_calendarpi1locallang. Hier einige Beispiele:

###LABEL_organizer###

Name

###LABEL_organizer###

Beschreibung

Veranstalter

###LABEL_start_time###

Name

###LABEL_start_time###

Beschreibung

Anfang

###LABEL_targetgroup###

Name

###LABEL_targetgroup###

Beschreibung

Zielgruppe

Template Marker

Neben den Sprachlabels gibt es es noch die Template Marker, welche die Inhalte der eigentlichen Datensätze für das Templatedesign verfügbar machen. Template Marker werden in Templates folgendermaßen angesprochen: ###X_yyy###. Xsteht dabei für eine der fünf möglichen Gruppen (Termin, Veranstalter, Veranstaltungsort, Kategorie und Zielgruppe) und yyyfür einen Wert aus der entsprechenden Datenbanktabelle.

Marker für Termine (Events E_)
###E_title###

Name

###E_title###

Beschreibung

###E_description###

Name

###E_description###

Beschreibung

###E_date###

Name

###E_date###

Beschreibung

###E_start_time###

Name

###E_start_time###

Beschreibung

###E_end_time###

Name

###E_end_time###

Beschreibung

###E_wholeday###

Name

###E_wholeday###

Beschreibung

###E_cost###

Name

###E_cost###

Beschreibung

###E_highlite###

Name

###E_highlite###

Beschreibung

###E_pages###

Name

###E_pages###

Beschreibung

###E_category###

Name

###E_category###

Beschreibung

###E_organizer###

Name

###E_organizer###

Beschreibung

###E_targetgroup###

Name

###E_targetgroup###

Beschreibung

###E_location###

Name

###E_location###

Beschreibung

###E_recurr_until###

Name

###E_recurr_until###

Beschreibung

Marker für Kategorie (Category C_)
###O_title###

Name

###O_title###

Beschreibung

###O_icon###

Name

###O_icon###

Beschreibung

###O_color###

Name

###O_color###

Beschreibung

Marker für Veranstalter (Organizer O_)
###O_name###

Name

###O_name###

Beschreibung

###O_phone###

Name

###O_phone###

Beschreibung

###O_email###

Name

###O_email###

Beschreibung

Marker für Zielgruppe (Targetgroup T_)
###T_title###

Name

###T_title###

Beschreibung

###T_icon###

Name

###T_icon###

Beschreibung

Marker für Veranstaltungsort (Location L_)
###L_title###

Name

###L_title###

Beschreibung

###L_street###

Name

###L_street###

Beschreibung

###L_zip###

Name

###L_zip###

Beschreibung

###L_city###

Name

###L_city###

Beschreibung

Das VCE PDF-Template

Das standardmäßige PDF-Template zur Erstellung des Jahresplaners finden Sie unter unter pi1pdf_template.pdf. Das Template besteht aus einer einzigen DIN A4 Seite im Querformat. Öffnen Sie das PDF am besten zunächst mit dem Adobe Acrobat Reader und machen Sie sich mit dem generellen Aufbau vertraut.

img-29

Im oberen Seitenbereich des Templates stehen Ihnen rund 10% der Seitenhöhe zum Einblenden eines eigenen Logos o.ä. zur Verfügung. Ebenso können Sie eine eigene Fußzeile einblenden. Beide Elemente (Logo und Fußzeile) sind statisch , können also nicht zur Laufzeit dynamisch erzeugt werden.

Sobald Sie den Link zur Erzeugung der Jahresansicht aufrufen, wird das PDF-Template mit den Terminen, die den aktuell gewählten Filtereinstellungen entsprechen, gefüllt.

img-30

Zum Verändern des Templates benötigen Sie entweder den Adobe Acrobat Writer oder ein vergleichbares Programm, welches PDF's erzeugen oder verändern kann. GhostScript ist z.B. eine auf allen von TYPO3 unterstützten Plattformen frei erhältliche Software.

Löschen Sie die vorhandenn Elemente und platzieren Sie anschliessend Ihre eigenen Grafiken und Texte einfach in den dafür vorgesehenen Bereichen. Speichern Sie dann das Template unter einem anderen Dateinamen ab. In der Plugin Konfiguration können Sie dann den Pfad zu Ihrem PDF-Template angeben.

Sollten Sie keine Möglichkeit haben, das Demo-Template selbst zu verändern, steht Ihnen als Alternative auch ein leeres PDF Template (pi1pdf_template_blank.pdf) zur Verfügung.

Administration

Caching

Derzeit unterstützt VCE noch kein Caching. Damit findet keine der bekannten Sucherweiterungen (speziell EXT:indexed_searched) Kalendereinträge. Verwenden Sie die in VCE als Filter integrierte Suchfunktion.

VCE erweitern

Schon bei der Planung von VCE war sich Volker darüber im Klaren, dass kein Kalender sämtliche Wünsche aller Benutzer abdecken kann. Deshalb hat er darauf geachtet, dem Benutzer eine Möglichlichkeit zu geben, den “eigenen” Kalender auf einfache Art und Weise definiert um weitere Funktionalitäten erweitern zu können. Er ist dabei von der Annahme ausgegangen, dass die meisten Benutzer eigene Template- Funktionen benötigen.

Definiert bedeutet in diesem Zusammenhang also, dass eine Schnittstelle existiert, über die neue Template-Funktionen in VCE integriert werden können. Diese benutzereigenen Erweiterungen bleiben auch dann erhalten, wenn VCE auf eine neue Version geupdated wird.

Ausgangspunkt für die benutzereigene Erweiterungen ist die Klasse class.tx_skcalendar_defaultTF.php.

Die Klasse class.tx_skcalendar_defaultTF.php

In dieser Klasse werden grundlegende Template-Funktionen ( *defaultT* emplate *F* unctions) definiert. Diese werden dem Benutzer dabei in Form von Template Markern zur Verfügung gestellt.

Hier einige Beispiele aus class.tx_skcalendar_defaultTF.php

[...]
class tx_skcalendar_defaultTF extends tx_skcalendar_te {
var $snippet;

function templatefunc_e_date () {
        $this->snippet = date('d.m.Y',$this->data['e_date']);
    }

Das ist die Funktion, mit der der Template Marker ###E_date### (Datum für Termin) bereitgestellt wird.

function templatefunc_e_start_time () {
    if ($this->data['e_start_time']) {
        $hours = floor($this->data['e_start_time']/3600);
        $minutes = ($this->data['e_start_time']%3600)/60; // modulus
        if ($minutes < 10) $minutes = '0' . $minutes;
        $this->snippet =  $hours . ':' . $minutes . ' ';
        }
    }

Der Template Marker ###E_start_time### (Anfang des Termins).

function templatefunc_dayname() {
    $this->snippet = $this->TempData['name'];
}

Der Template Marker ###DAYNAME### (numerischer Wert des Tages).

Sicher haben Sie das Prinzip schon Begriffen: jede Funktion, die über einen Template Marker angesprochen werden soll, muss mit mittels functiontemplatefunc_my_marker()deklariert werden. Der Funktion kann dabei kein Argument übergeben werden (Template Marker!).templatefunc_ist ein fester Bestandteil des Funktionsnamens, der Template Marker selber heisst dann ###my_marker###. Ihre Funktion muss den Rückgabewert dann in der Variablen$this->snippetbereitstellen.

Sie sollten keine Veränderungen an der Datei class.tx_skcalendar_defaultTF.php vornehmen. Ihre eigenen Funktionen gehören in die Datei class.tx_skcalendar_overrideTF.php.

Die Klasse class.tx_skcalendar_overrideTF.php

Gleich nach der defaultTF Klasse wird die Erweiterungs-Klasse overrideTF eingebunden. Hier können Sie zum Beispiel bestehende Funktionen überschreiben:

<?php
/* This is an example file for the template override function.
In this case the dayname of the monthfew is altered.
This example doesn't make much sence but you get the idea */

class tx_skcalendar_overrideTF extends tx_skcalendar_defaultTF  {

    function templatefunc_dayname() {
        $this->TempData['name'] = 'Hello world';// manipulates dayname
        parent::templatefunc_dayname(); // calls the parentfunction for returning the value
    }
}
?>

Der Marker ###DAYNAME### zeigt jetzt nicht mehr den numerischen Tageswert sonder stattdessen “Hello world” an. Achtung: Wenn Sie eine bereits bestehende Funktion defaultFunction überschreiben wollen, müssen Sie diese mit parent::templatefunc_defaultFunction();in Ihrer geänderten Funktion aufrufen.

Hier ein etwas sinnvolleres Beispiel:

function templatefunc_year() {
    $this->snippet = strftime('%Y',$this->TempData['date']);
}

Damit steht Ihnen ein neuer Marker ###YEAR### zur Verfügung.

Bekannte Probleme

  • Wochenbeginn ist Montag (zur Zeit hardcoded)
  • derzeit kein Caching möglich

Offene Punkte

  • Konfigurierbarer Wochenbeginn Montag/Sonntag
  • wählbares Papierformat für PDF (zur Zeit nur DIN A4)
  • Caching

Changelog

img-31 VCE - Versatile Calendar Extension - 17