Zum Inhalt springen

Dynamic Content Elements (DCE)

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

Tags: Frage

CMT ·

Hallo noch mal Armin!

DCE läuft seit einiger Zeit ohne Probleme. Mir stellt sich jetzt aber die Frage, ob man ein erzeugtes DCE auch lokalisieren kann. Also im Backend wird zuerst eine Übersetzung des deutschen Elements angelegt und dann je nach Sprache angezeigt.

Ist das machbar?

CMT ·

Wann wird denn 0.9 voraussichtlich veröffentlicht?
Ja, das mit der locallang dachte ich mir auch. Wird wohl vorerst so ablaufen.

p.s.: So schnell wie Du antwortest, brauchen wir fast gar keine Doku. 🙂

Danke!
Mfg, Manuel

Executter ·

Ich habe momentan leider extrem viel zu tun, daher muss ich die Weiterentwicklung etwas zurückstellen. Die Spenden für die DCE-Extension reichen leider nicht für die Wurst aufs Brot ;-)

Ich werde das Feature aber mit einer höheren Prio versehen.

CMT ·

Hi ich mal wieder, hoffe du hast unsere Spende bekommen!

Zu meiner Frage: Ich habe eine Section angelegt in der ein einfaches Textfeld liegt. Im Template lege ich die Section dann an und rendere sie später. Komischerweise ist im Frontend nichts davon zu sehen. Was mache ich falsch? Sehe grad, dass im zweiten Screenshot noch ein falscher section name drinsteht, aber das wurde geändert.

Bild: s7.directupload.net/…/oevtze2h.png
Bild: s14.directupload.net/…/gmum262n.png

Executter ·
CMT schrieb

Hi ich mal wieder, hoffe du hast unsere Spende bekommen!

Hi 🙂
Ich weiß es nicht genau, die letzte Spende ist schon länger her. Im Zweifel, einfach nochmal spenden :p
Edit: Hab gerade noch mal bei PayPal geguckt und gesehen, dass Du deinen Username angegeben hattest bei der Spende. Ich kann Deine Nachfrage also nun doch bejahen 🙂

Zu Deiner Frage:
Der ganze f:for-Block befindet sich innerhalb von <f:section name="teaserboxvar">, doch als Layout ist "Default" ausgewählt. Ich würde jetzt einfach mal vermuten, dass es im Default Layout keine Sektion "teaserboxvar" gibt. Die For-Schleife sieht ansonsten gut aus - ich würde nur das Section-Field in teaserboxes umbenennen, damit es bereits vom Wording klar ist, dass sich darin mehrere Boxen befinden können.

Viele Grüße
Armin

CMT ·

Danke für die schnelle Antwort, aber irgendwie komme ich nicht weiter 🙁

Ich möchte quasi ein Inhaltselement in dem zuerst z.B. eine Headline angegeben wird, danach kommt eine Sektion in der 1,2,3 oder wieviele Zeilen auch immer angegeben werden können und am Ende gibt man dann noch etwas Text ein.

Ich habe ja jetzt ein DCE mit einer Sektion. Im Template gebe ich jetzt für die Headline und den Text unten erstmal nur Blindtext ein. Zwischen die Headline und den unteren Text rendere ich meine Sektion, wenn ich das richtig verstanden habe. Wo gebe ich jetzt aber an wie ein einzelner Sektion-Eintrag formatiert werden soll?

Gruß,
Manuel

AW_Jekonel ·

Hallo miteinander 😉

Ich experimentiere seit kurzem mit DCE und versuche gerade ein Rich-Menu damit zu realisieren. Nun ist mir folgendes aufgefallen:

Wenn ich mein DCE folgendermaßen - genutzt als lokalen Content - in mein Frontend lade:

 temp.MyObject = CONTENT
  temp.MyObject{
    table = tt_content
    select.pidInList = this
    select.orderBy = sorting
    select.where = colPos = 0
    languageField = sys_language_uid
  }

funktioniert das hervorragend und ich habe nur den Standard CSC Wrapper. Wenn ich allerdings ein DCE als globalen Content aus einem Folder laden möchte:

 temp.MyObject = CONTENT
  temp.MyObject{
    table = tt_content
    select.pidInList = 35
    select.orderBy = sorting
    select.where = colPos = 0
    languageField = sys_language_uid
  }

Wird das ganze Paket fröhlich in die Standard Paragraphs mit der Klasse bodytext gesetzt, und zerstört durch die enorm vielen leeren

<p class="bodytext">

das Layout.

Ich bin gar nicht einmal sicher ob das wirklich ein DCE Problem ist, oder ob ich hier eine grundsätzliche Unverständnisfrage stelle 😉

Ich würde mich freuen wenn mir jemand einen Schubser in die richtige Richtung, oder einen Hinweis auf alternative Aufrufmöglichkeiten eines "globalen" DCE geben könnte! Lieben Dank!

Gruss
Eike

EDIT:
LÖSUNG:
Der Teufel steckte im Detail. Der Aufruf des Blocks per f:format.html hat den Fehler verursacht, da auf diese Weise natürlich der RTE Renderer zum Einsatz gebracht wurde und lustig herumwrappte was das Zeug hält. Durch den Blockaufruf per f:format.raw war das Problem schnell behoben.

PS: Danke an Armin, der übrigens sehr spontan und freundlich seine Hilfe angeboten hat, für diese tolle Ext!

nevsred ·

Ich habe eine Frage zu DCE und RTE.

In einigen meiner DCE verwende ich den RTE. Wenn ich jetzt die Standart Konfigurationen für den RTE mache (TSConfig) und Buttons und so deaktivieren will, klappt das in normale CEs aber nicht in den DCEs.

Wie muss ich die konfiguration da einsetzen?

TYPO3 4.7.12 DCE 0.8.4

hbflocke ·

Hallo,
Erst einmal ein Lob an die DCE Extension. Vereinfacht schon einiges.
Da für mich das ganze Thema Typo3 etc. neu ist, hoffe ich meine Frage erscheint hier nicht dumm.
Nun zu meiner Frage. Es gibt die Möglichkeit fileuploads als Feld auszuwählen. Allerdings sind diese nur auf Bilder beschränkt. Wie sieht es da mit Videos aus ? Ich würde gerne ein Feld haben womit ich auch Videos hochladen kann. Kann man die Konfiguration vom Fileupload Feld vielleicht so umschreiben das auch Videos funktionieren ?

Über eine Antwort würde ich mich freuen und Danke im vorraus.

Gruß Florian

oegel ·
seimi schrieb

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

Ich stand gerade vor dem gleichen Problem. Wenn man im Template den ViewHelper

<f:format.html>{bodytext}</f:format.html>

benutzt, werden die Links aus dem RTE richtig geparsed.

AW_Jekonel ·

Hallo einmal wieder 😉

Ich habe eine Frage zum Auslesen der <displaycond>:

Wenn ich eine DisplayCondition nach einem Auswahldropdown auslese funktioniert alles hervorragend. Nun habe ich allerdings die Anforderung innerhalb einer Section eine DisplayCondition zu verwenden. Hier finde ich allerdings nicht die richtige Referenz.

Zur Verdeutlichung:

Auswahldropdown (Key:CheckBlockType):

<config>
	<type>select</type>
	<items type='array'>
		<numIndex index='0' type='array'>
			<numIndex index='0'>Preset</numIndex>
			<numIndex index='1'>0</numIndex>
		</numIndex>
		<numIndex index='1' type='array'>
			<numIndex index='0'>Code</numIndex>
			<numIndex index='1'>1</numIndex>
		</numIndex>
		<numIndex index='2' type='array'>
			<numIndex index='0'>Bild</numIndex>
			<numIndex index='1'>2</numIndex>
		</numIndex>
	</items>
	<size>1</size>
	<minitems>1</minitems>
	<maxitems>1</maxitems>
</config>
<onChange>reload</onChange>

Abhängiges Textfeld (Key:CheckBlockCode):

<config>
	<type>text</type>
	<rows>30</rows>
	<cols>50</cols>
	<eval>trim,required</eval>
</config>
<displayCond>FIELD:settings.CheckBlockType:=:1</displayCond>

]

Dies funktioniert super. Sobald ich diese Logik allerdings versuche innerhalb einer Section (Key: EntryContainer) anzuwenden komme ich nicht weiter.
Das

FIELD:settings.CheckBlockType:=:1

nicht funktioniert ist klar, da fehlt ja die Referenz auf die Section. Allerdings funktioniert

FIELD:settings.EntryContainer.CheckBlockType:=:1

ebenfalls nicht.

Wie rufe ich die entsprechende Einstellung an dieser Stelle ab?

Lieben Dank!

Niederrheiner ·

Zitiert von: 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

Ich stand gerade vor dem gleichen Problem. Wenn man im Template den ViewHelper

<f:format.html>{bodytext}</f:format.html>

benutzt, werden die Links aus dem RTE richtig geparsed.

Hab ich geändert, aber jetzt wirft er vor dem content drei Leerzeilen rein, wie bekomm ich die wieder weg?

chrisi51 ·

Hey, ich hänge hier gerade an einer ganz banalen Sache (so hoffe ich).

Wie man DCE verwendet, habe ich mittlerweile eigentlich rausbekommen, denke ich. Mein Problem ist jedoch das fehlende Titel-Feld für das resultierende Element.

Soll heißen, wenn ich ein Element definiere im Backend, steht im Element dann gern mal sowas wie "Array", da es eine Liste mit mehreren Elementen ist.

Gerade fällt mir ein, dass ich natürlich ein einfaches Titel feld hinzufügen kann, welches dann im Template nicht genutzt wird. Aber das typische "Überschrift"-Feld im "Allgemein"-Tab fehlt bei der Extension scheinbar.

Wie macht ihr das?

Cabanaramma ·

@chrisi51: Ich mach immer ein extra Titelfeld. Wenn's eine schönere Lösung gibt, würd ich sie auch gern wissen.

Ich habe ein anderes Problem. Ist es möglich im DCE Template auf Fluid Variablen aus dem Root Template zuzugreifen? Wenn ja, kann mir auch jemand sagen wie? Danke im voraus.

NewSpender ·

Blutiger Anfänger, aber begeisterter DCE-Fan hier (Spende kommt direkt nach dem Launch meines ersten Typo3-Projekts!). Meine Frage ist vielleicht verwandt mit der von Cabanaramma:

Ich würde in meinem DCE-Template gern Variablen aus anderen DCE-Elementen weiterverwenden. Ist das möglich? Konkret z.B. so:

{namespace dce=Tx_Dce_ViewHelpers}
<f:layout name="Default" />
<f:section name="main">

<div class="menu">
  <h2>{field.menutitle}<h2> <!-- Element aus dem DCE des Templates -->
  <ul>
    <li>
      <f:link.page pageUid="1">
        <f:format.raw>{field.otherelementtitle}</f:format.raw>
        <!-- Elment aus anderem DCE -->
      </f:link.page>
    </li>
    <li>...</li>
    <li>...</li>
  </ul>
</f:section>
Cabanaramma ·

So habe mein Problem selbst gelöst. Statt auf eine festgelegte Variable zuzugreifen, habe ich auf das TS zugegriffen. Mit {tsSetup.lib.xyz.value} konnte ich auf den Wert in mein DCE reinschreiben. Vielleicht kann NewSpender damit auch weiterkommen.

arenner ·

Hallo,

bin gerade auf die Extension gestossen und hab auch einiges schon umsetzen können. Das einzige das ich bis jetzt noch nicht herausfinden konnte ist wie ein feld definieren kann das mir die Auswahl eines anderen, bereits existierenden content elements (z.b. ein frontend plugin) erlaubt und wie dieses dann im template zu konfigurieren ist.

schritt 1, denke ich zumindest sollte mit folgender konfiguration zu bewerkstelligen sein und die auswahl funktioniert soweit auch:

<config>
	<type>select</type>
	<foreign_table>tt_content</foreign_table>
	<foreign_table_where>AND tt_content.pid=590</foreign_table_where>
	<size>1</size>
	<minitems>1</minitems>
	<maxitems>1</maxitems>
</config>

Jetzt kann ich zwar das entsprechende Contentelement beim hinzufügen meines dces auswählen, allerdings weiss ich nun nicht so recht wie ich dieses ausgeben soll, also wie das dce-Template dazu aussehen soll...bisher habe ich folgendes:

{namespace dce=Tx_Dce_ViewHelpers}
<f:layout name="Default" />

<f:section name="main">
	<div class="widget">
		<h2>{field.title}<i class="icon-angle-down"></i></h2>
		<div class="widget-content" data-open="{field.open}">
			{field.content}
			<f:if condition="{field.morelink}">
			<f:then>
				{field.morelink}
			</f:then>
		</f:if>
		</div>
	</div>
</f:section>

bin für jedwede hilfe sehr dankbar!

Cabanaramma ·

Womöglich fehlt da ein f:format.html oder f:format.raw um den Inhalt zu rendern. Mit <f:debug>field.deineVariable</f:debug> bekommst du dann ein Array angezeigt, in dem du schauen kannst, welches Feld du evtl. ausgegeben haben möchtest. Dann hängst du an field.deineVariable noch das jeweilige Feld mit einem . an. Also bspw. {field.morelink.header}.

feuersaenger ·

Erstmal ein fettes Lob an Armin und seine Extension! Es macht einfach so viele Sachen so viel leichter 🙂
Gerade stehe ich jedoch vor einem Problem:
Ich habe ein Objekt mit Bild, Texten und einer Kategorie-Auswahl mit DCE erstellt, welches ich auch ohne Probleme reibungslos benutzen kann. Nun bin ich dabei, die Zugehörige Kategorieseite zu erstellen, bei der alle Bilder (mit Namensbeschriftung) in einer Slideshow angezeigt werden sollen. Jetzt weiß ich leider nur nicht, wie ich vom neuen Contentobjekt (mit reiner Kategorieauswahl) auf das bestehende Objekt zugreifen kann.
Ich habe leider keine so große Ahnung von Datenbank-Abfragen oder wie man diese in Typo3 einbaut...
Kann mir hierbei jemand helfen? Ich brauche "nur" eine Anleitung, wie man bereits bestehende Objekte in das neue Objekt ausliest und auf {field.bild} und {field.name} zugreifen kann...

Viele Grüße, Feuersaenger