Am 05.10.14 20:50, schrieb Dr Dieter Porth:
7.) Nachsatz: Vielleicht ist aber auch nur dein Lösungsansatz
hinterfragenswert.
Eine komplexe, unübersichtliche Logik im Template ist oft ein Indiz
dafür, dass du mehr als nur den 'View' im View-Objekt "Template"
implementieren willst.
Eine Programmlogik sollte vordringlich im Controller, in einer
User-Funktion, in einer Extension oder im TypoScript verdrahtet sein.
Also bleibt als letzte Heuristik noch:
=> Überlegen, welchen eleganteren und/oder allgemeineren Lösungsweg es
gibt? (Die Frage nach dem Ob stellt sich fast nie.)
Hallo Dieter,
Danke für die vielen Tipps zu Alternativen, um den Code übersichtlich zu
bekommen. Das werde ich mir anschauen und beherzigen.
Es geht im konkreten Fall einfach darum, das Template von tx_news zu
erweitern: ich möchte ein zusätzliches templateLayout definieren und
dieses muss in der Template-Datei als if-condition abgefragt werden.
Die original Template-Datei von tx_news ist aber schon (für mich) recht
verschachtelt, so dass mich schon diese einfache Aufgabe zu diesem
Hilferuf nach einem besseren Editor (der mir z.B. optisch bei einem
schließenden/öffnenden Tag optisch anzeigt, wo das entsprechende
Gegenstück im Code zu finden ist) veranlasst hat.
Viele Grüße
Markus
{namespace n=Tx_News_ViewHelpers}
<f:layout name="General" />
<!--
=====================
Templates/News/List.html
-->
<f:section name="content">
<f:if condition="{news}">
<f:then>
<div class="news-list-view">
<f:if condition="{settings.templateLayout} == 2">
<f:then>
<f:for each="{news}" as="newsItem">
<f:render partial="List/ItemEinsaetze"
arguments="{newsItem:
newsItem, settings:settings}"/>
</f:for>
</f:then>
<f:else>
<f:if condition="{settings.hidePagination}">
<f:then>
<f:if condition="{settings.templateLayout} == 1">
<f:then>
<f:for each="{news}" as="newsItem">
<f:render partial="List/ItemLatest"
arguments="{newsItem:
newsItem, settings:settings}"/>
</f:for>
</f:then>
<f:else>
<f:for each="{news}" as="newsItem">
<f:render partial="List/Item"
arguments="{newsItem: newsItem, settings:settings}"/>
</f:for>
</f:else>
</f:if>
<f:if condition="{settings.templateLayout} == 2">
<f:then>
<f:for each="{news}" as="newsItem">
<f:render partial="List/ItemEinsaetze"
arguments="{newsItem:
newsItem, settings:settings}"/>
</f:for>
</f:then>
</f:if>
</f:then>
<f:else>
<n:widget.paginate objects="{news}" as="paginatedNews"
configuration="{settings.list.paginate}"
initial="{offset:settings.offset,limit:settings.limit}">
<f:if condition="{settings.templateLayout}
== 1">
<f:then>
<f:for each="{paginatedNews}"
as="newsItem">
<f:render partial="List/ItemLatest"
arguments="{newsItem:
newsItem, settings:settings}"/>
</f:for>
</f:then>
<f:else>
<f:for each="{paginatedNews}"
as="newsItem">
<f:render partial="List/Item"
arguments="{newsItem:
newsItem, settings:settings}"/>
</f:for>
</f:else>
</f:if>
<f:if condition="{settings.templateLayout}
== 2">
<f:then>
<f:for each="{news}" as="newsItem">
<f:render partial="List/ItemEinsaetze"
arguments="{newsItem:
newsItem, settings:settings}"/>
</f:for>
</f:then>
</f:if>
</n:widget.paginate>
</f:else>
</f:if>
</f:else>
</f:if>
</div>
</f:then>
<f:else>
<div class="no-news-found">
<f:translate key="list_nonewsfound" />
</div>
</f:else>
</f:if>
</f:section>
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german