Zum Inhalt springen

Auswechselbare Headergrafik realisieren

Erstellt am 14. April 2008 · 3 Antworten · letzte Antwort am 14. April 2008

Tags: Frage

dischneider ·

Hallo,

Ich habe eine Seite, die vom Layoutaufbau ähnlich wie diese hier ist:

Headergrafik über gesamte Breite, darunter 3 Spalten (Menü | Content | News).

Nun soll die Headergrafik für jede Seite wählbar sein.
Bisher ist eine Grafik fest eingebunden (im Template fix definiert), es soll jetzt aber, je nach Thema der Seite, eine Grafik definiert werden können.
Wird keine Grafik definiert soll die Standardgrafik eingebunden werden.
Die Grafiken sind alle gleich groß.

System ist Typo3 4, TemplVoila.
Ich habe leider bisher keinen guten Ansatz, wie dies realisierbar wäre.

Um Ansätze, die mir auf die Sprünge helfen, wäre ich sehr dankbar.

Dirk

daniz78 ·

Ein toller Ansatz ist die Suche zu benutzen 😉

Mit dem Suchwort "Headergrafik" findest Du z.B. den folgenden Beitrag:

#588461

Gruß, Daniz

dischneider ·

Hmm, der ist mir dann wohl untergegangen, gesucht hatte ich vorher schon mal...

Danke für die schnelle Hilfe, ich teste mal.

Dirk

Edit:

Hmm, also so bekomme ich es nicht zum laufen.
Der erwähnte Beitrag basiert ja auf einer Seite, die nicht mit TemplaVoila arbeitet.
Wenn ich jetzt einen Seitenbereich definiere, der für das Logo benutzt wird, z.B. ###HEADIMG###, so benötige ich doch auch noch einen Templatebereich (workOnSubpart)?
Wenn ich diesen ansetze, wie bei den Seiten, die ich ohne TemplaVoila konfiguriert habe, wird er jedoch komplett ignoriert.
Ich habe das jetzt wie folgt gemacht:

page.10 = TEMPLATE
page.10.template = FILE
page.10.template.file = fileadmin/template/template.html
page.10.workOnSubpart = HEADER
page.10 {
marks.HEADIMG = COA
marks.HEADIMG {
        # HTML-Objekt
        5 = HTML
        5.value = style="background:url(
       
        # Bild
        10 = IMG_RESOURCE
        10 {
                file.maxH = 200
                file.maxW = 760
                file.import=uploads/media/     
                file.import.data = levelmedia: -1,slide
                file.import.listNum = 0
                file.import.override.field = media
        }
       
        # HTML-Objekt
        15 = HTML
        15.value = ) 50% no-repeat;"
 }
}

Die TemplaVoila-Komponenten sind dann page.20, die sind auch sauber da, wie sie sein sollen.

Jemand eine Idee was ich falsch mache?

Danke.

Dirk

dischneider ·

OK.
Hab eine Lösung gefunden.

In dem TemplaVoila DS habe ich ein neues Element "MainHeader" erzeugt.
Direkt im XML eingetragen, Menü als Vorlage benutzt.

<field_header type="array">
                <tx_templavoila type="array">
                    <title>Main Header</title>
                    <description>Pick the HTML element in the template where you want to place the header graphic of the site.</description>
                    <eType>TypoScriptObject</eType>
                    <tags>table:inner,ul,div,tr,td</tags>
                    <eType_EXTRA type="array">
                        <objPath>lib.header</objPath>
                    </eType_EXTRA>
                    <TypoScriptObjPath>lib.header</TypoScriptObjPath>
                </tx_templavoila>
            </field_header>

Dies kann dann ganz normal über die Mappingfunktion einem Bereich des Templates zugeordnet werden.

Dazu muss dann, wie beim Menü, ein Mapping im TS erfolgen, hier sieht das dann bei mir so aus:

## Headergrafik
lib.header = COA
lib.header {
        5 = HTML
        5.value = <a href="http://mydomain.tld"><img alt="Seitenlogo" src="
        10 = IMG_RESOURCE
        10 {
                file.import = fileadmin/templates/files/    
                file.import.data = levelmedia: -1, slide
                file.import.listNum = 0
                file.import.override.field = media
        }
        15 = HTML
        15.value = " style="border:0;" /></a>
 }

Vielleicht hilft es ja noch mal jemandem.

Dirk