Zum Inhalt springen

Dynamic Content Elements (DCE)

Erstellt am 29. Juli 2012 · 91 Antworten · letzte Antwort am 14. Mai 2019 · Seite 1 von 5

Tags: Frage

Steppo ·

Ich versuche mich gerade an der im Titel genannten Extension.

Leider fehlt das Manual. Ich habe mich jetzt versucht ein wenig da durchzuwurschteln, muss aber feststellen, dass ein Manual doch schon Hilfreich wäre.

Vielleicht hat ja jemand den ein oder anderen Tipp, oder einen Link zu einem Tutorial oder Erklärung.

Schönen Abend noch und Grüße.

Executter ·

Hey, ich bin der Entwickler der DCE-Extension.
Es tut mir sehr leid, dass es noch keine richtige Dokumentation dazu gibt. So langsam nimmt die Extension doch Maße an, die eine Doku unumgänglich machen.

Ich bitte um Verständnis und noch ein bisschen Geduld. Bei Fragen kannst Du dich auch gerne per Mail an mich wenden.

Viele Grüße
Armin Vieweg

Steppo ·

Hey,

das ist ja mal Klasse, der Entwickler persönlich.

Mir wäre schon damit geholfen, wenn ich eine Ahnung davon bekommen könnte wie ich die Ext. in Betrieb nehmen kann bzw. wie so die Ersten Schritte sind.

Hast Du vielleicht schon eine Doku die noch nicht für die Öffentlichkeit bestimmt ist?

Da ich selbst (leider) kein Programmierer bin, kann ich Programmiertechnisch nicht wirklich weiterhelfen, aber wenn Du Hilfe bei der Doku benötigen würdest, da könnte ich bei Bedarf helfen.

Danke für Deine Antwort und viele Grüße,
Steppo

Executter ·

Hey,
also im Grunde ist es relativ einfach.

Du erzeugst auf der Root-Ebene (im Verzeichnisbaum gaaaanz oben) oder im neuen DCE-Modul ein neuen DCE-Eintrag. Dem gibst Du einen Titel und mindestens ein Feld.

Das Feld braucht dann einen Variablenname und einen Titel, sowie eine Konfiguration. Die Konfiguration basiert auf das in TYPO3 verwendete TCA. Also so wie alle Felder im Backend von TYPO3 definiert werden, werden auch hier neue Felder auf die gleiche Weise erzeugt. Was ein bisschen anders ist, dass hier XML verwendet wird (Stichwort: Flexforms).

Damit man nicht wie der "Ochs vorm Berg" steht, habe ich oberhalb der Eingabe der Konfiguration des Feldes eine Dropdown-Box hinzugefügt in der ein paar Beispielkonfigurationen für Felder enthalten sind.

Wenn Du nun also ein oder mehrere Felder definiert hast, kannst Du unter dem Reiter Template die Ausgabe dieser Felder definieren. Auch hier gibt es ein Dropdown, welches die Variablen beinhaltet (nachdem man gespeichert hat) und diverse Viewhelper, die seitens Fluid und aber auch von der Extension selbst mitgeliefert werden.

Falls Du nun gar kein Plan hast, was "Viewhelper" sind - nun, dabei handelt es sich um ein Bestandteil der bei der "neuen" Template-Engine "Fluid" enthalten ist. Im Prinzip handelt es sich dabei um kleine Helfer, die die Ausgabe entsprechend anpassen können. Fluid ist eigentlich relativ einfach zu verstehen, wenn z.B. so Template Engines wie Smarty kennt.

Wenn Du nun das DCE soweit fertig erstellt hast und speicherst, kannst Du auf einer beliebigen Inhaltsseite ein neues Content-Element hinzufügen und in der Dropdown-Liste in der der Typ festgelegt wird wirst Du auch das neue DCE sehen. Sobald Du es auswählst, findest Du die von Dir definierten Felder vor - und wenn Du diese befüllst und im Frontend anzeigst wird die entsprechende Ausgabe dargestellt.

Es ist nun so, dass die aktuelle Version die im TER liegt schon ziemlich alt ist und das seit dem sehr sehr viel in der Extension passiert ist. Diese ganzen Änderungen werden mit Version 0.5 kommen - erfordern aber, dass ich die Dokumentation soweit fertig geschrieben habe. Das steht auf meiner privaten ToDo Liste ganz oben.

Die aktuellste (Entwickler-)Version der DCE Extension findest Du im SVN:
https://svn.typo3.org/TYPO3v4/Extensions/dce/trunk/

Allerdings wenn Du kein Entwickler bist, wird Dir das vermutlich nicht viel nützen ;-)

Ich denke ich werde noch ein bisschen brauchen für die Dokumentation - aber so Anfang/Mitte Oktober sollte es dann soweit sein 🙂

Viele Grüße
Armin Vieweg

Steppo ·

Hallo Armin,

erst einmal vielen Dank für das schnelle Antworten.

Und nochmal Herzlichen Dank für den guten Einstieg. Ich habe es eben mal ausprobiert und schon ist Deine tolle Erweiterung viel schlüssiger für mich.

Obwohl ich auch kein Entwickler bin, habe ich mir aus dem Repository die aktuellste Version geholt und direkt mal installiert.

Da hat sich schon eingies verändert 😉

Ich werde mich nun die nächsten Tage intensiver mit der Erweiterung beschäftigen und hoffe das ich damit vielleicht auch arbeiten kann.

Besten Dank noch mal für den ersten Einstieg.

Nabend und Grüße,
Steppo

downset ·

Habe mir heute mal die Extension angeschaut und bin schwer begeistert!
Nur eine Frage habe ich dazu:

Wie kann man ein Bild im Fluid Template auslesen und eine Clickenlarge Funktion" dazu geben?

Liebe Grüße

jens

seimi ·

Hi,

ich hab diese Extension (neueste Revision) auch schon im Einsatz und muss sagen: GENIAL! Genau so etwas hab ich immer gesucht...

Das einzige Problem da ich habe ist, dass Inhalte vom RTE nicht gerendert werden. D.h. ich bekomme plain-text ausgegeben und deshalb erscheinen Sachen wie "<link 6 - internal-link>" oder auch "<b>".

Nach einiger Recherche hab ich gefunden, dass dieses Problem mittels "$this->pi_RTEcssText($text);" gelöst werden kann - nur weiß ich nicht, wo ich das einbauen soll.

Vielleicht kann mir ja jemand helfen...

Vielen Dank und liebe Grüße,
seimi

seimi ·

Hallo Rainer,

ich konnte dieses Problem leider nicht auf die Schnelle lösen und hab deshalb dieses Projekt mit Templavoila umgesetzt...

Liebe Grüße,
seimi

larsAWX ·

Hi Armin,

auch ich muss sagen, wirklich geniale Extension! Darauf habe ich schon so lange gewartet! Ich tue mich mit TV unheimlich schwer und habe mir so etwas sehr lange schon fürs klassische Pagemodul gewünscht! Super!

Ich hätte aber ebenfalls eine Frage. Ich benutze die aktuelle Version 0.7.2 Beta auf einem TYPO3 4.5.22. Das Häkchen unter Miscellaneous "Disables the "div.csc-default" wrapping" bleibt bei mir wirkungslos. Ich habe den ext_typoscript_setup.txt der Extension einmal meinem TS Setup hinzugefügt. Das hat aber auch nichts bewirkt.

Ich müsste das <div id="c2273" class="csc-default"></div> um die Ausgabe der DCEs aber unbedingt loswerden. Hättest Du da einen Tipp?

Viele Grüße und vielen Dank Dir!
Lars

Executter ·
downset schrieb

Wie kann man ein Bild im Fluid Template auslesen und eine Clickenlarge Funktion" dazu geben?

Hi Jens,

wenn Du ein Feld im DCE definierst, in dem Du Bilder auswählen kannst, dann kannst Du ja im Fluid Template auf den Dateiname zugreifen. Der Ort an den das Bild kopiert wird, wird ja ebenfalls im TCA definiert - in der Regel ist das sowas wie uploads/pics.

Im Fluid Template schreibst Du nun Folgendes:

<a href="{f:uri.image(src:'uploads/pics/{field.deinBild}')}" class="wasAuchImmerDeineJSLibraryHierGerneHaette">
  <f:image src="uploads/pics/{field.deinBild}" alt="Thumbnail" maxWidth="100" maxHeight="100" />
</a>

Mit dem f:image ViewHelper generierst Du ein Thumbnail von dem Bild, welches ausgegeben werden soll. TYPO3 wird dieses Bild dann mittels der eingestellten Library verkleinern und in typo3temp/pics/ ablegen.

In dem href vom Link, welches beim Klicken ja die große Version anzeigen soll, verwendest Du den den f:uri.image ViewHelper. Im Wesentlichen ist das genau das Selbe wie schon der f:image ViewHelper, nur das hier kein Image-Tag erzeugt wird - es wird nur die URL zum Bild zurückgegeben. Der Vorteil hier diesen ViewHelper zu benutzen: Du kannst auch hier Höhen und Breiten angeben und so z.B. die Größe der Vollbild-Version limitieren (z.B. auf 800x600).

Ich möchte allerdings anmerken, dass sich diese Frage mehr auf Fluid bezieht als auf die Handhabung der DCE-Extension selbst ;-)

Viele Grüße
Armin

andreknieriem ·

Hi, ich bin gerade dabei mich mit der Extension zu beschäftigen. Gibt es eine Möglichkeit eine Art Backendlayouts zu bauen? Also das man dort ein 50/50 Layout anlegt und in diese dann weitere DCE's einbauen kann? Also dass ich auch im Backend an der Stelle 2 Bereiche nebeneinander habe und dort wie bei Templavoila andere Felder anlegen kann.
Falls nein, kennst du eine Möglichkeit so etwas umzusetzen? Ich sitze an einer Seite die auf jeder Unterseite verschiedene Contentelemente hat. (Mal eine Slideshow, mal 3 News-Boxen, dann 2 oder 3 spaltig.. etc)

Viele Grüße

Executter ·

In jedem DCE gibt es unter dem Tab "Miscellaneous" die Option "DCE palette fields".
Hier kannst Du definieren welche Felder aus dem TCA (tt_content) in der DCE-Instanz angezeigt werden sollen.

Bild: screens.v.ieweg.de/2013-04-12_1438.png

Per Default stehen folgende Felder drin:
sys_language_uid, l18n_parent, colPos, spaceBefore, spaceAfter, section_frame, sectionIndex

andreknieriem ·

Ah das ist ja super! Gibt es eine Möglichkeit die Standardpaletten mittels TS oder anders global zu setzen? Danke für deine Antworten und die super Extension!

Executter ·
andreknieriem schrieb

Ah das ist ja super! Gibt es eine Möglichkeit die Standardpaletten mittels TS oder anders global zu setzen?

Über TS glaube ich nicht. Aber Du kannst $TCA natürlich jederzeit entsprechend manipulieren, nachdem Du es mit

t3lib_div::loadTCA('tt_content');

geladen hast.

CMT ·

Hallo Armin,

habe letztens die DCE-Extension geladen und installiert. Funktioniert einwandfrei! In den nächsten Tagen wirste 'ne kleine Spende erhalten.

Wünschenswert wäre natürlich noch eine Dokumentation... aber das weißt Du ja selbst. 🙂

Eine kleine Frage hätte ich aber noch: Ich habe ein Contentelement, genauer gesagt einen Teaser, der aus mehreren Link-Elementen (a-Tags) besteht. Im Backend soll nun aber nur EIN Typolink angegeben werden (und nicht für jedes a-Tag einzeln) und dann auf die a-Tags verteilt werden. Wie kann ich das am besten bewerkstelligen?

Viele Grüße,
CMT

Executter ·

Also wenn ich Dich richtig verstanden habe, dann hast Du mehrere Links die alle auf das selbe Ziel zeigen. Diese unterschiedlichen Links sollen aber z.B. unterschiedliche Texte beinhalten.

Dann machst Du ein Sektion-Field in dem Du z.B. ein Feld für die Beschreibung machst und machst außerhalb davon ein normales Feld für den Typolink.

In der For-Schleife kannst Du dann folgendes schreiben:

<f:for each="{field.sectionField}" as="sectionField">
  <a href="{dce:typolinkUrl({parameter:'{field.link}'})}">{sectionField.text}</a>
</f:for>

Ich bin gerade nicht sicher ob ich die Inline-Sytax vom typolinkUrl-Viewhelper richtig geschrieben habe... aber falls doch, sollte das so funktionieren.

CMT ·

Hi, danke für die schnelle Antwort. Hab mich noch ein wenig mit der Fluid-Templating Engine auseinandergesetzt und gemerkt, dass ich mein Ziel ganz einfach durch das hier erreichen kann:

<f:link.page pageUid="{field.link}">{field.text}</f:link.page>