Zum Inhalt springen

Content Objekt in eigenem HTML rendern

Erstellt am 24. Juli 2018 · 1 Antwort · letzte Antwort am 25. Juli 2018

Tags: TYPO3 8, Frage

MichaGrandel ·

Hallo Leute,

normalerweise bin ich nicht zu dumm zum googlen, aber ich versuche nun schon seit Tagen, folgendes Problem zu lösen und komme einfach nicht weiter:

Ich habe ein Content Element vom Typ "Bilder" oder "Text und Bilder" (im Backend) und möchte dies mit eigenem HTML ausgeben, z.B. folgendermaßen:

<section class="teaser" style="background-url:('fileadmin/foo.jpg')">
   <h2 class="hide-text">Bild-Titel aus dem Content-Element</h2>
   <p>Bildbeschreibung aus dem Content-Element</p>
</section>

Ich nutze Fluid styling, scheitere aber schon daran, dass ich im Fluid Template nur den fertigen HTML-Quellcode für das Bild bekomme, z.B.:

<img src="fileadmin/foo.jpg" alt="foo" title="bar">

Meine Typoscript Kenntnisse sind bisher noch nicht so weit, daher sieht mein Setup im Grunde ungefähr so aus:

lib.teaser = CONTENT
lib.teaser {
    table = tt_content
    select.where = colPos = {$teaser_column}
    languageField = sys_language_uid
}
page = PAGE
page {
    typeNum = 0
    10 = FLUIDTEMPLATE
    10 {
        format = html
        file = {$root}/Templates/{$template}/Layouts/{$main_layout}.html
        layoutRootPath = {$root}/Templates/{$template}/Layouts
        partialRootPath = {$root}/Templates/{$template}/Partials
        variables {
            teaser < lib.teaser
        }

        # load templates for sections, otherwise Typo3 won't find your sections
        file.stdWrap.cObject = CASE
        file.stdWrap.cObject {
            key.data = levelfield:-1, backend_layout_next_level, slide
            key.override.field = backend_layout

            default = TEXT
            default.value = {$root}/Templates/{$template}/Templates/Main.html
        }
    }

Ich wäre echt froh, wenn jemand die Geduld hätte, mir zu erklären, wie ich hier vorwärts komme.

Danke im voraus,
Micha

Teisinger ·

Wenn du mit Fluid arbeitest und den Standard Inhaltselementen kannst du die Fluid-Templates ganz einfach überschreiben:

a) Adde TypoScript z. B.:

lib.contentElement {
    templateRootPaths {
        10 = {$theme.urls.themeResources}Private/Extensions/fluid_styled_content/Resources/Private/Templates/
        20 = {$styles.templates.templateRootPath}
    }
    partialRootPaths {
        10 = {$theme.urls.themeResources}Private/Extensions/fluid_styled_content/Resources/Private/Partials/
        20 = {$styles.templates.partialRootPath}
    }
    layoutRootPaths {
        10 = {$theme.urls.themeResources}Private/Extensions/fluid_styled_content/Resources/Private/Layouts/
        20 = {$styles.templates.layoutRootPath}
    }
}

b) kopiere das entsprechende HTML-FLUID-Template von der OriginalResource (typo3/sysext/fluid_styled_content/Resources....) in deinen entsprechenden Ordner, wie unter a) angegeben. Dort kannst du ihn dann manipulieren wie du lustig bist.

c) Achtung die Ordner und Namensgebung innerhalb von "/Templates/ - /Partials/ - /Layouts/" muss mit dem Originalem übereinstimmen.