Also, bin ein gutes Stück weiter. Um es vorweg zu nehmen: Es läuft!
Hier was ich gemacht habe:
Dies in den Header im Seitenlayout eingebunden:
Code:
function calendar_update (id, month) {
new Request.HTML({
url:'ajax.php',
data: 'action=fmd&id='+id+'&month='+month,
method: 'get',
evalResponse: 'true',
update: $('kalender').getElement('.boxinnen'),
}).send();
}
Den Inhalt innerhalb in der Datei ModuleCalendar.php von generate() in generateAjax kopiert.
Soweit so gut. Jetzt wird's blöd.
Da ich im Template noch ein paar Variablen benötige, habe ich die Methode compile() ergänzt um diese Zeilen (an entsprechenden Stellen):
PHP-Code:
$objTemplate->prevMonth = $prevYear . str_pad($prevMonth, 2, 0, STR_PAD_LEFT);
$objTemplate->nextMonth = $nextYear . str_pad($nextMonth, 2, 0, STR_PAD_LEFT);
$objTemplate->id = $this->id;
Die Links in cal_default.tpl geändert nach
HTML-Code:
<a href="<?php echo $this->prevHref; ?>" onclick="calendar_update(<?php echo $this->id . ',' . $this->prevMonth ;?>); return false" title="<?php echo $this->prevTitle; ?>
bzw.
HTML-Code:
<a href="<?php echo $this->nextHref; ?>" onclick="calendar_update(<?php echo $this->id . ',' . $this->nextMonth;?>); return false" title="<?php echo $this->nextTitle; ?>
Also wie gesagt, es läuft alles.
Würde das gerne Updatesicher als Modul schreiben.
Das Javascript einbinden ist kein Problem.
Man müsste vielleicht noch das CSS-ID - Feld im Kalender als Pflichtfeld machen und im Template der JS-Funktion als update_id übergeben. Nur wie bekomme ich die neuen Variablen ins Template ohne die Methode compile() anzupacken?
Olli
Lesezeichen