Zum Inhalt springen

rlmp_tmplselector Ersatz

Erstellt am 13. August 2014 · 6 Antworten · letzte Antwort am 19. November 2016

Tags: Frage

harp ·

Hallo, ich habe bis jetzt gerne den rlmp_tmplselector verwendet, um im Backend das FE-Layout auszuwählen. Leider funktioniert die EXT in 6.2 nicht mehr. Templavoila mochte ich noch nie und die Möglichkeit über die Seiteneigenschaften "Frontend-Layout" gefällt mir nicht so gut. Bei rlmp_tmplselector konnte man immer getrennt Haupt- und Inhaltsvorlage auswählen. Das fand ich immer sehr praktisch.

Weiß jemand eine gute Erweiterung um das Frontend-Layout im Backend auszuwählen.

LG
HarP

BastianBalthasarBux ·

ich kann mich alex nur anschliessen, rlmp_tmplselector ist eigentlich schon seit version 4.5 nicht mehr notwendig.

Außerdem kann man mit etwas magic das ganze noch extrem beschleunigen:

lib.objLevelFieldBeLayout = TEXT
lib.objLevelFieldBeLayout.data = levelfield:-2,backend_layout_next_level,slide

page.10 = FLUIDTEMPLATE
page.10 {
  template = FILE
  template.file = EXT:mysitepackage/Resources/Private/Templates/fluid.master.tmpl
}

dabei kannst du dann im template 'fluid.master.tmpl' im hauptabschnitt das hier hinterlegen z.b.:

<f:if condition="{data.backend_layout} > 0">
			<f:then>
			  <f:switch expression="{data.backend_layout}">
				  <f:case value="1"><f:render section="contentStart" /></f:case>
				  <f:case value="2"><f:render section="content2Cols" /></f:case>
				  <f:case value="4"><f:render section="content2Cols50_50" /></f:case>
				  <f:case value="6"><f:render section="content2ColsRightSmall" /></f:case>
				  <f:case value="7"><f:render section="content1Col" /></f:case>
				  <f:case default="TRUE"><f:render section="content2Cols" /></f:case>
				</f:switch>
			</f:then>
			<f:else>
				<f:switch expression="{f:cObject(typoscriptObjectPath: 'lib.objLevelFieldBeLayout')}">
				  <f:case value="1"><f:render section="contentStart" /></f:case>
				  <f:case value="2"><f:render section="content2Cols" /></f:case>
				  <f:case value="4"><f:render section="content2Cols50_50" /></f:case>
				  <f:case value="6"><f:render section="content2ColsRightSmall" /></f:case>
				  <f:case value="7"><f:render section="content1Col" /></f:case>
				  <f:case default="TRUE"><f:render section="content2Cols" /></f:case>
				</f:switch>
			</f:else>
		</f:if>

und den rest ebend bequem in ebendieser datei folgende tags wrappen, z.b.:

<f:section name="content2Cols">
my 2col content
</f:section>

ich denke, die gewählten section namen sind selbsterklärend.

Vorteil: sehr wenig typoscript. das beschleunigt erstellen der seiten extrem (unter TYPO3 7.6).
Und obwohl ich ein grosser Fan von TypoScript bin, sollte man doch nach möglichkeit dort wo es geht auf FLUID setzen, eben der Performance wegen.

BastianBalthasarBux ·

Shorter Version, working since 7.5

lib {
  ## Add pagelayout as a TypoScript Object. Pagelayout is a shorthand for all the backend_layout and its next-level sliding stuff since 7.5 but is not available in Fluid-data ...
  objPageLayout = TEXT
  objPageLayout.data = pagelayout
}
<f:switch expression="{f:cObject(typoscriptObjectPath: 'lib.objPageLayout')}">
  <f:case value="1"><f:render section="contentStart" /></f:case>
  <f:case value="2"><f:render section="content2Cols" /></f:case>
  <f:case value="4"><f:render section="content2Cols50_50" /></f:case>
  <f:case value="6"><f:render section="content2ColsRightSmall" /></f:case>
  <f:case value="7"><f:render section="content1Col" /></f:case>
  <f:case default="TRUE"><f:render section="content2Cols" /></f:case>
</f:switch>