Zum Inhalt springen

Kopie eines bestehenden Content Elements erstellen

Erstellt am 11. April 2016 · 6 Antworten · letzte Antwort am 15. April 2016

Tags: Fluid, Inhaltselemente, Frage

ello ·

Hallo,

ich möchte gerne ein eigenes Contentelement erstellen, welches auf dem Contentelement "Tabelle" basiert.
Letztendlich möchte ich lediglich die Ausgabe anpassen. Ich hab das schon getestet indem ich einfach das fluid Template für Tabelle geändert habe. Ich hätte aber lieber eine Kopie erzeugt, damit auch die original-Tabelle weiterhin vorhanden ist.

Wie geht das?

LG,
Ello

aemka ·

Du brauchst das (fluid_styled_content?) Element nicht duplizieren, du kannst doch einfach einen neuen Eintrag in das Dropdown "Layout" machen und basierend auf dieser Auswahl im Template des Elements Änderungen vornehmen.

ello ·

🙂 danke schonmal. ist bestimmt nichts einfacher als das, aber wie genau mache ich sowas? hab ich nämlich noch nie...

und ja, es handelt sich um fluid_styled_content

ello ·

Wer soll den solche Dokumentationen verstehen? Hab grad die "fluid_styled_content\Documentation\AddingYourOwnContentElements\index,rst" offen. Man sollte glaube da steht alles drin was man wissen muss. Nur leider auf Chinesisch.

Ich hab manchmal den Eindruck, dass es mit Absicht so unverständlich wie möglich beschrieben wird. Damit nur absolute Cracks durchsteigen können.

aemka ·

Du kannst über Page TsConfig

TCEFORM.tt_content.layout.addItems.123 = Test-Layout

neue Einträge in Dropdowns einfügen wie das Layout Dropdown. Im Fluid Template kannst du dann per {data.layout} auf diesen Wert zugreifen und darauf basierend stylen. AddingYourOwnContentElements musst du wie gesagt nicht lesen, da für eine einfache Änderung des Markups gar kein neues Element hinzufügen musst.

ello ·

Danke dir. Ich hab jetzt also einen Layout-Eintrag erzeugt (TCEFORM.tt_content.layout.addItems.2 = Klappbare Tabelle) und nun müsste ich in der Template-Datei doch z.B. sowas machen??

...
<f:switch expression="{data.layout}">
  <f:case value="2"><f:layout name="HCF_Klappe" /></f:case>
  <f:case default="TRUE"><f:layout name="HeaderContentFooter" /></f:case>
</f:switch> 
...

Da bekomme ich einen Fehler "Oops, an error occurred! Code: 201604130813485295e8d2"
Was habe ich falsch gemacht?

Wenn ich nur {data.layout} ausgeben lasse, merke ich aber dass der Wert korrekt übergeben wird.

Edit: ok, scheinbar mus ich den switch in die "HeaderContentFooter.html" schreiben. Dort funktioniert es. Also läst sich f:layout nicht direkt in einer Bedingung festlegen.

Jetzt wüsste ich noch gerne wie ich mehrere verschiedene Werte in einen f:case unterbringe. wie mann es z.B. aus PHP kennt:

switch ($i) {
case 0:
case 1:
    ...
    break;
case 2:
    ...
}