Zum Inhalt springen

Neues Content-Element mit vorgegebener CSS-Klasse

Erstellt am 16. April 2012 · 3 Antworten · letzte Antwort am 19. April 2012

Tags: Inhaltselemente, Frage

ptr ·

Hallo,

meine Aufgabe besteht darin, eine Seite in Typo3 vorzubereiten, in die Redakteure Inhaltselemente mit vorgegebenem Design einfuegen koennen. Ziel waere es also, den Content Wizard so zu erweitern, dass vorgegebene Elemente auswaehlbar sind - bspw. ein Element mit dem Namen "XYbox", dass in HTML quasi so aussehen wuerde:

<div class="picbox">
<img href="">
<p></p>
</div>

oder

<div class="infobox">
<h4></h4>
<hr>
<p></p>
</div>

Der Redakteur muss dann nur ein paar Felder ausfuellen, Formatierung erfolgt ueber die CSS-Klasse.
Der Knackpunkt ist bisher, dass das zwar funktioniert wenn ich dieser Anleitung folge
http://buzz.typo3.org/people/steffen-kamper/article/the-new-content-element-wizard-in-version-43/, sprich die Beispiele nur kopiere, aber dort bspw. das ganze nicht in einen div-Block eingefasst wird. Ist es moeglich, das hinzubekommen (der div-Block waere bspw. zur Aenderung der Hintergrundfarbe wuenschenswert)? Mir fehlt etwas Dokumentation fuer alles, was sich innerhalb von tt_content_defValues abspielt (im verlinkten Beispiel - was ist da an Werten erlaubt?).
Andere Forumseintraege behandeln aehnliches, bspw. hier
#51931
aber nicht genau das was ich suche. Fuer Hilfestellungen oder genaue Hinweise, wo in der Typo3 Doku (www.mittwald.de/fileadmin/pdf/dokumentation.pdf) ich die Informationen finde, waere ich sehr dankbar. Oder natuerlich auch alternative, bessere Loesungsstrategien ;-)
Vielen Dank im Voraus.

karlchen ·

hallo ptr,

willkommen im Forum 🙂

es gibt mehrere Wege deine Anforderung umzusetzen, je nach Erfahrung und auch dem können und Wissen des späteren Redakteurs ist das eine einfacher oder auch "umständlicher".

Um deinen bereits begonnen Weg weiter zu gehen, könntest du als eventuell noch die "section_frame" nutzen um die bisherigen Inhaltselemente mit einem "Rahmen" zu umgrenzen.
Rahmen, deswegen --> http://www.sk-typo3.de/Neue-Rahmen-fuer-Content-Elemente.201.0.html oder auch hier http://maddesigns.de/rahmen-fuer-inhaltselemente-in-typo3-44-112.html😉

Mit tt_content_defValues kannst du alle Datenbankfelder eines ContentElements vorbelegen. Alle Felder der TYPO3 eigenen Contentelemente sind in der Datenbank tt_content enthalten. Abhängig von dem eingetragen Wert in "Type" wie "Text" oder "Text mit Bild" werden unterschiedlicher Elemente angezeigt und dahin gehend auch im Frontend ausgegeben. Diese "Type"-Feld hat den Namen CType.
Um die genauen Feldbezeichnungen auszulesen nutze am besten Firefox, Chrome oder Opera. (ich beschreibe es mal mit FF, bei den andere ist es ägnlich) Öffne dazu ein Content Element, wähle einen Type aus (z.B. Text) und klicke dann mit der rechten Maustaste auf dieses Feld, im KontextMenu gibt es dann einen Eintrag der "Element untersuchen" heißt. Wie in dem Anang sollte sich der Rest des Fensters verdunkeln und ganz unten eine Leiste auftauchen, dort dann auf HTML klicken. Nun sitzt du farblich hervorgehoben, den Quelltext bereich den du per rechtsklick untersuchen wolltest.
Was du jetzt brauchst ist der name="..." des Elements, wie im Bild zu sehen ist es dort "data['tt_content'][254]['header']", das heißt, dieses Feld gehört zur Tabelle tt_content, der Datensatz hat die UID 254 und es ist das Feld header. "header" wäre also unser Feldname für tt_content_defValues. Wenn du nun section_frame ebenfalls vorbelegst, sollte es auf diesem Wege ganz gut klappen.

Ein komplett anderer Weg wäre z.B. TemplaVoila dort kann man direkt solche kleine ContentElemente zusammenbauen, wie du es in deinem jetzigen Weg schon versucht hast.

Weitere Wege würden dann über Extensions führen, das du z.B. eine passende Extension im TER suchst und das HTML/CSS dieser Extension deinen Bedürfnissen anpasst.

Oder die Extension Grid Elements, diese ermöglicht einen ähnlich weg wie TemplaVoila mit den ContentElementen.
Diese Extension ist allerdings sehr neu, wird eventuell auch in TYPO3 4.7 integriert. Ein PDF Manuel gibt es hier
http://forge.typo3.org/projects/typo3v4-gridelements/repository/changes/trunk/doc/manual.pdf

kannst ja mla berichten wie es gelaufen ist.

viele Grüße
karlchen

db-felder.gif

ptr ·

Hallo karlchen,
vielen Dank fuer die schnelle und ausfuehrliche Antwort; das verlinkte Beispiel von maddesigns sieht sehr danach aus, als koennte es meine Probleme loesen. Ich werde dann berichten.
Vielen Dank und Gruss
ptr

ptr ·

Hallo nochmal,

bis jetzt ist mein Problem noch nicht geloest; die Loesung von maddesigns ermoeglicht zwar das Auswaehlen von Rahmen, aber entsprechend angezeigt (also bspw. mit geaenderter Hintergrundfarbe) werden die Elemente nicht.
Ich bin noch auf eine Sache gestossen, bei der ich mich auf Frage, ob sie nicht eine Loesung darstellt; das Beispiel aus der Typo3 Doku zum hinzufuegen von custom content elements:

mod.wizards.newContentElement.wizardItems.myGroup {
header = LLL:EXT:cms/layout/locallang.xml:advancedFunctions
elements.customText {
icon = gfx/c_wiz/regular_text.gif
title = Introductory text for national startpage
description = Use this element for all national startpages 
tt_content_defValues {
CType = text
bodytext ( 
<h2>Section Header</h2>
<p class="bodytext">Lorem ipsum dolor sit amet, consectetur, sadipisci velit ...</p>
)
header = Section Header
header_layout = 100
}
}
}
mod.wizards.newContentElement.wizardItems.myGroup.show = customText

und im Internet bin ich immer wieder mal auf folgendes gestossen:

tt_content.stdWrap.wrap = <div class="XYbox">|</div>

Laesst sich das irgendwie in das obige Beispiel mit einbauen? Mit try-and-error bin ich bisher nicht weit gekommen.
Vielen Dank fuer Eure Hilfe.
Gruss
ptr