Hi
Wie bekomme ich es hin das man beim Content Element Image in einer bestimmten Content Spalte von gridelements die ganzen tt_content wraps entfernen kann?
Ich habe im BE ein gridelement angelegt das die colpos 10 nutzt.
Dort hab ich eingestellt das man nur Image CE´s einfügen kann.
Diese möchte ich für einen Flexslider verwenden.
Daher will ich alle wraps wie z.b. <div class="csc-default" id="c202"> und <div class="csc-textpic csc-textpic-center csc-textpic-above"> entfernen.
Allerdings nicht global sondern nur für diese eine Spalte.
Folgendermaßen sieht ja das "normale" TS aus.
tt_content.gridelements_pi1.20.10.setup {
1 < lib.gridelements.defaultGridSetup
1 {
wrap = <div>|</div>
columns {
10 < .default
10.wrap = <div>|</div>
}
}
}
Im Handbuch wird folgendes beschrieben.
http://docs.typo3.org/typo3cms/extensions/gridelements/1.4.1/#id8
lib.gridelements.defaultGridSetup { // stdWrap functions being applied to each element
columns {
default {
renderObj = COA
renderObj {
# You can use registers to i.e. provide different image settings for each column
# 10 = LOAD_REGISTER
20 =< tt_content
# And you can reset the register later on
# 30 = RESTORE_REGISTER
}
}
}
# if you want to provide your own templating, just insert a cObject here
# this will prevent the collected content from being rendered directly
# i.e. cObject = TEMPLATE or cObject = FLUIDTEMPLATE will be available from the core
# the content will be available via fieldnames like
# tx_gridelements_view_columns (an array containing each column)
# or tx_gridelements_view_children (an array containing each child)
# tx_gridelements_view_column_123 (123 is the number of the column)
# or tx_gridelements_view_child_123 (123 is the UID of the child)
}
Wenn ich allerdings tx_gridelements_view_column_10 nutzt ist wieder der ganze tt_content wrap Mist drin.
Ich benutzt gridelements 2.0.2.
Vielen Dank im voraus
Gruß Niels
Das kenn ich. MIr geht es genau so wie dir.
Auch mit neueren Versionen Typo3 7.6.9 und GridElements 8.0.0 keine Verbesserung.
Habe genau das selbe Problem nur ein wenig anderen TS Ansatz:
tt_content.gridelements_pi1.20.10.setup >
tt_content.gridelements_pi1.20.10.setup {
# ALIAS of gridelement
grid_2_spaltig < lib.gridelements.defaultGridSetup
grid_2_spaltig {
columns {
default.renderObj.20.tt_content.stdWrap.default.wrap = |
default.renderObj.20.tt_content.stdWrap.default.default.wrap = |
# colPos ID
101 < .default
101.wrap = <div class="content-cell-single-first">|</div>
# colPos ID
102 < .default
102.wrap = <div class="content-cell-single-second">|</div>
}
wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-double">|</div><div class="content-color-cell"></div></div>
}
# ALIAS of gridelement
grid_1_spaltig < lib.gridelements.defaultGridSetup
grid_1_spaltig {
columns {
default.renderObj.20.tt_content.stdWrap.outerWrap.cObject >
# colPos ID
201 < .default
201.wrap = |
}
wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
}
}
Und dann der Rest:
tt_content.stdWrap.outerWrap.cObject = CASE
tt_content.stdWrap.outerWrap.cObject {
key.field = CType
default = CASE
default.wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
gridelements_pi1 = TEXT
gridelements_pi1.value = |
}
Und trotzdem werden erst alle Inhaltselemente gewrapped und dann in die Gridelements geschoben und darum dann die Wraps der Gridelemente gepackt.
Das macht doch keinen Sinn und ist irgendwie unlogisch.
Ich wäre auch um einen hilfreichen Tip dankebar. :-)
Hier hab ich meinen Lösungsansatz gefunden:
#118900
Das hier ist für mich meine Lösung:
Wraps für meine Grid-Elemente definineren:
tt_content.gridelements_pi1.20.10.setup >
tt_content.gridelements_pi1.20.10.setup {
# ALIAS of gridelement
grid_2_spaltig < lib.gridelements.defaultGridSetup
grid_2_spaltig {
columns {
default.renderObj.20.tt_content.stdWrap.default.wrap = |
default.renderObj.20.tt_content.stdWrap.default.default.wrap = |
# colPos ID
101 < .default
101.wrap = <div class="content-cell-single-first">|</div>
# colPos ID
102 < .default
102.wrap = <div class="content-cell-single-second">|</div>
}
wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-double">|</div><div class="content-color-cell"></div></div>
}
# ALIAS of gridelement
grid_1_spaltig < lib.gridelements.defaultGridSetup
grid_1_spaltig {
columns {
default.renderObj.20.tt_content.stdWrap.outerWrap.cObject >
# colPos ID
201 < .default
201.wrap = |
}
wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
}
}
Und dann die Wraps definieren für alle anderen:
tt_content.stdWrap.outerWrap >
tt_content.stdWrap.outerWrap.cObject = CASE
tt_content.stdWrap.outerWrap.cObject {
key.field = CType
# Wrap für alle anderen Objekte
default.wrap.cObject = CASE
default.wrap.cObject {
key.field = pid
# Wrap für alle anderen PIDs
default = TEXT
default.value = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
# Wrap für PID 9
9 = TEXT
9.value = |
# Wrap für PID 10
10 = TEXT
10.value = |
# Wrap für PID 11
11 = TEXT
11.value = |
}
# Wrap für gridelements überschreiben
gridelements_pi1 = TEXT
gridelements_pi1.wrap = |
}
.... Leider hat das noch nicht ganz funktioniert, da tt_content ja in die Gridelements injiziert wird und damit der Standard-Wrap eines jeden CEs mit dem Gridelement nochmals gewrappt wird. Daher muss davor der Wrap vom CE wieder entfernt werden:
lib.gridelements.defaultGridSetup >
lib.gridelements.defaultGridSetup {
columns {
default {
renderObj = COA
renderObj {
20 < tt_content
20.wrap >
20.outerWrap >
20.stdWrap.outerWrap >
}
}
}
}
Danach kann man die Grid-ELemente mit einem Wrap versehen:
tt_content.gridelements_pi1.20.10.setup >
tt_content.gridelements_pi1.20.10.setup {
# ALIAS of gridelement
grid_2_spaltig < lib.gridelements.defaultGridSetup
grid_2_spaltig {
columns {
# colPos ID
101 < .default
101.wrap = <div class="content-cell-single-first">|</div>
# colPos ID
102 < .default
102.wrap = <div class="content-cell-single-second">|</div>
}
wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-double">|</div><div class="content-color-cell"></div></div>
}
# ALIAS of gridelement
grid_1_spaltig < lib.gridelements.defaultGridSetup
grid_1_spaltig {
columns {
# colPos ID
201 < .default
201.wrap = |
}
wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
}
}
tt_content.gridelements_view >
Trotzdem muss man aber eine Weiche bei den "Normalen" CEs machen, damit hier nicht wieder ein Wrap um einene Wrap passiert:
tt_content.stdWrap.outerWrap >
tt_content.stdWrap.outerWrap.cObject = CASE
tt_content.stdWrap.outerWrap.cObject {
key.field = CType
# Wrap für alle anderen Objekte
default = CASE
default {
key.field = pid
# Wrap für alle anderen PIDs
default = TEXT
default.value = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
# Wrap für PID 9
9 = TEXT
9.value = |
# Wrap für PID 10
10 = TEXT
10.value = |
# Wrap für PID 11
11 = TEXT
11.value = |
}
# Wrap für gridelements überschreiben
gridelements_pi1 = TEXT
gridelements_pi1.value = |
# Wrap für gridelements überschreiben
gridelements_view = TEXT
gridelements_view.value = |
}
Und schon klappt alles! :-)