Calendar Vorlage erstellen


Die Vorlagen befinden sich im Ordner pattern/

$this->language = Der Inhalt von pattern_????.txt

Eine Vorlage besteht aus:

Aufbau der Vorlagen Datei

# Wie bei denn Plugins ist der Classname gleich auch der Dateiname
class MeinPattern extends CalDate {

    # Da werden die Zellen der Datenbank festgelegt. Als erstes ist immer das Datum.
    public $datenCols = array("{CAL_DATE}","{CAL_TITLE}","{CAL_TEXT}","{CAL_ORT}","{CAL_COLOR}");

    private $datenColAdmin = array();
    private $adminTemplate = NULL;

    # Optionale Funktion, die aus dem Admin sufgerufen wird
    function admin_init() {

        # Das sind die Formular Elemente für den Admin. Die Reihenfolge entspricht den $datenCols
        $this->datenColAdmin[] = '<input type="text" name="event[CAL_DATE]" value="{CAL_DATE}" />';
        $this->datenColAdmin[] = '<input type="text" name="event[CAL_TITLE]" value="{CAL_TITLE}" />';
        $this->datenColAdmin[] = '<textarea name="event[CAL_TEXT]">{CAL_TEXT}</textarea>';
        $this->datenColAdmin[] = '<input type="text" name="event[CAL_ORT]" value="{CAL_ORT}" />';
        $this->datenColAdmin[] = '<select name="event[CAL_COLOR]">'
            .'<option value="cal-color1" selected="selected">cal-color1</option>'
            .'<option value="cal-color2">cal-color2</option>'
            .'<option value="cal-color3">cal-color3</option>'
        .'</select>';

        # Demo Code
        $this->adminTemplate = '<table cellspacing="0" border="0" cellpadding="0"><tbody>'
            .'<tr>'
                .'<td style="width:1%;">'.$this->language->getLanguageValue("cal_date").'</td>'
                .'<td style="width:1%;">{CAL_DATE}</td>'
                .'<td style="width:1%;">'.$this->language->getLanguageValue("cal_ort").'</td>'
                .'<td>{CAL_ORT}</td>'
                .'<td style="width:1%;" class="cal-nowrap">'.$this->language->getLanguageValue("cal_color").'</td>'
                .'<td style="width:1%;">{CAL_COLOR}</td>'
            .'</tr><tr>'
                .'<td>'.$this->language->getLanguageValue("cal_title").'</td>'
                .'<td colspan="5">{CAL_TITLE}</td>'
            .'</tr><tr>'
                .'<td colspan="6">'.$this->language->getLanguageValue("cal_inhalt").'<br />'
                .'{CAL_TEXT}</td>'
            .'</tr>'
        .'</tbody></table>';
    }

    # Optionale Funktion, die aus dem Plugin aufgerufen wird
    function front_init() {
    }

    # Eine Funktion, die mithilfe des Plugin Parameters aufgerufen wird.
    # Die ??? sind Platzhalter für den Funktionsnamen.
    function template_???() {
    }

    # Pflichtfunktion, die aus dem Admin aufgerufen wird für das Event.
    # Der Parameter ist das Event aus der Datenbank.
    function template_admin_event($event) {

        # Demo Code
        $replace = array();
        foreach($this->datenCols as $i => $search) {
            if($i === 4) {
                $this->datenColAdmin[$i] = str_replace(' selected="selected"',"",$this->datenColAdmin[$i]);
                $replace[$i] = str_replace('value="'.$daten[$i].'"','value="'.$daten[$i].'" selected="selected"',$this->datenColAdmin[$i]);
            } else
                $replace[$i] = str_replace($search,$daten[$i],$this->datenColAdmin[$i]);
        }
        return str_replace($this->datenCols,$replace,$this->adminTemplate);
    }

    # Pflichtfunktion, die aus dem Admin aufgerufen wird für das neue Event
    function template_admin_newevent() {

        # Demo Code
        $event = str_replace($this->datenCols,$this->datenColAdmin,$this->adminTemplate);
        return str_replace($this->datenCols,"",$event);
    }
}