Hallo,
Ich habe ein (eigentlich ganz kleines) Problem: Auf meiner Site ist die rechte Spalte teilweise leer, und in dem Falle soll der standardmässige Content eingefügt werden, der sich auf einer anderen Seite befindet.
Zwar habe ich es geschafft, in der leeren Spalte automatisch ein TEXT- oder HTML-Element einzufügen. Ebenfalls geklappt hat's, in der Spalte nur etwas hinzuzufügen, wenn schon Content drin ist. Aber das ist beides eben genau nicht das, was ich benötige. 😢
Weiss jemand von euch Rat?
Vielen Dank im Voraus.
Puh. Na, wenigstens hat's doch noch geklappt - nach sicherlich 8 Stunden des Herumprobierens.
So hat's geklappt:
// Ein neues Objekt anlegen, indem nachher der Content der rechten
// Spalte liegt - entweder der "normale" oder der von mir als Standard definierte
overlayContentRight = COA
overlayContentRight {
// Der Inhalt der rechten Spalte wird in's Objekt 11 geladen
11 < styles.content.getRight
// Falls der stdWrap des Objekts 11 leer ist (also nix in der rechten Spalte
// war), machen wir n CONTENT-Element draus
11.stdWrap.ifEmpty.cObject = CONTENT
11.stdWrap.ifEmpty.cObject {
// Nun kommt der Standard-Inhalt rein, der sich auf
// einer eigenen, im Frontend unsichtbaren Seite (UID:425) befindet
table = tt_content
select {
// Haben will: Alle Objekte, die sich auf eben der Seite befinden, also
// eine ParentID/pid von 425 haben
pidInList=425
orderBy = sorting
// Nur die Objekte aus der rechten Spalte einsetzen
where = colPos=2
// Die Objekte mit der korrekten Sprache benutzen
languageField = sys_language_uid
}
}
}
// ...und schliesslich noch den ###CONTENT_RIGHT###-Marker im Template damit füllen
page.10.subparts.CONTENT_RIGHT < overlayContentRight
So, und nun noch ohne Kommentare:
overlayContentRight = COA
overlayContentRight {
11 < styles.content.getRight
11.stdWrap.ifEmpty.cObject = CONTENT
11.stdWrap.ifEmpty.cObject {
table = tt_content
select {
pidInList=425
orderBy = sorting
where = colPos=2
languageField = sys_language_uid
}
}
}
page.10.subparts.CONTENT_RIGHT < overlayContentRight
http://www.painframe.com/
hahaha,,,
ich dachte schon bei mir funktioniert das nicht.... aber ich hätte einfach gleich dran denken müssen das ich:
where = colPos=2
anpassen muss:-)
ich kann nur sagen ... echt smarte arbeit
Gruss
Hallo...
Ich verstehe nicht ganz was ihr mit diesem Script bezwecken wollt!? Was passiert mit dem Inhalt der rechten Spalte?
Morgen Frank
Mit der rechten Spalte passiert im Normalfall (das heisst wenn Content in der rechten Spalte ist) gar nix. Falls nun aber kein Content in der rechten Spalte ist (und das zum Beispiel aus Designgründen schlecht aussieht), dann sollten automatisch Content-Elemente von einer bestimmten Seite in eben dieser rechten Spalte angezeigt werden.
Schlussendlich läuft's einfach darauf hinaus, dass die rechte Spalte auf diese Weise nie leer ist.
Das gibts nicht! 8-)
VIELEN DANK für diese Lösung.
Hatte es schon fast aufgegeben, als ich Deinen Ansatz fand.
Klasse!
(Und wieder etwas mehr TS gelernt :-) )
Hi @ all,
nach Stunden habe ich jetzt alle Beispiele hier im Forum ohne Erfolg durch 😢
Habe eine Seite "Sonstiges" (ID=66), mit einem Seiteninhaltselement "Text mit Bild" in meiner Struktur angelegt. In meinem HTML-Template habe ich den Marker "conRECHTS"
Ziel: bei allen Seiten, die keinen Inhalt in der rechten Spalte haben, sollen die Inhaltselemente der Seite "Sonstiges" (ID=66) angezeigt werden.
In meinem Template habe ich folgenden Code:
# Template main content
temp.bodyTempl = TEMPLATE
temp.bodyTempl {
template =< plugin.tx_automaketemplate_pi1
workOnSubpart = subpartBODY
subparts {
contentMID< styles.content.get
randomLEFT < templeft.50
randomRIGHT < tempright.60
conRECHTS = COA
conRECHTS {
11 < styles.content.getRight
11.stdWrap.ifEmpty.cObject = CONTENT
11.stdWrap.ifEmpty.cObject {
table = tt_content
select {
pidInList=66
orderBy = sorting
where = colPos=2
}
}
}
page.10.subparts.conRECHTS < conRECHTS
Der Marker wird leider nur bei der Seite "Sonstiges" (ID=66) gefüllt und angezeigt, bei allen anderen Seiten ist die rechte Spalte leer #paralyzed#
Was habe ich da nur falsch gemacht?
Bitte um Hilfe, meine TYPO3-Version ist 3.7
vielen Dank, RudiX[/b]
RudiX schriebWas habe ich da nur falsch gemacht?
sagen wir mal so:
keine ahnung, ob dein code stimmt...
...aber das verhältnis von öffnenden zu schließenden klammern ist jedenfalls nicht unbedingt konstruktiv zu nennen... 8-)
Dieses Skript sucht rückwärts immer eine Ebene höher ob was drin ist und wenn ja gibt es das aus. Ersetzt quasi die kb_cont_slide-Extension:
temp.bildoben = COA
temp.bildoben {
11 < styles.content.getLeft
11.stdWrap.ifEmpty.cObject < styles.content.getLeft
11.stdWrap.ifEmpty.cObject {
stdWrap.ifEmpty.cObject < styles.content.getLeft
stdWrap.ifEmpty.cObject {
select.pidInList.data = leveluid:-3
}
select.pidInList.data = leveluid:-2
}
}
Kann man erweitern je nachdem wieviel Ebenen hat (das ist jetzt für 3)
Vielen Dank an Rupert der das maßgeblich mitentwickelt hat :-)
Grüssle
Sissi
Hallo zusammen,
ich würde das gleiche gerne mit Templa Voila realisieren. Hat da jemand bereits Erfahrungen gemacht?
Wäre toll, wenn mir da jemand weiterhelfen könnte.
Viele Grüße
Markus
Hallo,
leider funktioniert der intelligente Ansatz auch bei mir nicht.
Mein Script:
overlayContentRight = COA
overlayContentRight {
11 < styles.content.getRight
11.stdWrap.ifEmpty.cObject = CONTENT
11.stdWrap.ifEmpty.cObject {
table = tt_content
select {
pidInList=12
orderBy = sorting
where = colPos=0
languageField = sys_language_uid
}
}
}
page.99.subparts.RECHTS < overlayContentRight
Ich habe den ganzen Kram in die Spalte Normal gelegt, was aber vermutlich egal ist.
Mir ist aufgefallen, dass die im Seitenbaum sichtbare Seiten-ID nicht die PID ist. Ich habe das in PHPMyAdmin kontrolliert. aber weder die UID noch die PID haben zum Erfolg geführt. Gibt es eigentlich eine Möglichkeit, die PID zu ermitteln, ohne in die DB zu schauen (ist ja nicht jedermanns Sache).
Könnte die letzte Zeile im Script vielleicht das Problem verursachen? 'Page.10' kommt bei mir nämlich schon vor, deshalb die 99.
Zu Testzwecken habe ich die letzte Zeile mal verändert:
page.99.subparts.RECHTS = Das ist ein Test
Da hat aber auch nichts eingebracht.