Page 1 of 1

Template mit dynamischen Bildern

Posted: Fri 12. Feb 2010, 08:54
by photojo
Hallo,

ich habe folgende Struktur:
ebene1
ebene1.1
ebene1.2
ebene2
ebene3
.
.
.
ebene10

Alle Ebenen habe ich die gleiche Template zugewiesen. Der einzige Unterschied ist, dass jeweils ein anderes Bild im Header stehen soll. Das ist ja trivial: Die Template für jede Eben kopieren und dann jeweils mit dem RT Image ein anderes Bild angeben. Das Problem ist jedoch folgendes: Ändere ich an der Template eine Kleinigkeit, sagen wir das Copyright 2009 auf 2010, dann muss ich das ja in meinem Fall 10 mal machen.
Meine Idee wäre nun folgende: Im Template läuft ein kleines PHP-Script, das die Seiteneben ausliest und dann das entsprechende Bild läd; also z.B. ebene1.jpg oder ebene2.jpg usw. Falls z.B. das Bild ebene12.jpg nicht existiert, dann sollte automatisch auf das Parent-Bild, also hier ebene1.jpg, zurückgegriffen werden.

Kann mit jemand sagen, wie ich die jeweils aktuelle Ebene per php "auslesen" kann? Und, ist mein Vorhaben überhaupt machbar?

Danke, Jo

Re: Template mit dynamischen Bildern

Posted: Fri 12. Feb 2010, 09:12
by Oliver Georgi
nicht im Template:

Statt des Header Bilder, das Du derzeit nutzt, erstellst Du in template/inc_script/frontend_render ein neues PHP Script "headerimg.php":

Code: Select all

<?php

// nutze ID der obersten Ebene also alles was unterhalb root steht
$_current_img = isset($LEVEL_ID[1]) : $LEVEL_ID[1] : 0;

// im Template setzte an der Stelle, wo das Bild hinkommt einen Ersetzter {HEADER_IMG}
$content['all'] = str_replace('{HEADER_IMG}', '<img src="template/img/my_header_img-'.$_current_img.'.jpg" alt="" />', $content['all']);

?>
Das ist das Grundprinzip. Die ID der aktuellen Ebene steht Dir mit dem Standard-Ersetzer {CURRENT_CATEGORYID} zur Verfügung. Dann brauchst Du oben genanntes Script nicht.

Script habe ich nicht getestet.

Re: Template mit dynamischen Bildern

Posted: Fri 12. Feb 2010, 09:37
by photojo
Danke, jetzt habe ich mal einen Anhaltspunkt. Ich werde mich mal damit beschäftigen.