[QUOTE=obsidian;9543]Leider nein.
Die Anzeige ist immer vierspaltig, ich brauche sie wegen des blöden Eye-Candies meiner &%§"%§-Designerin aber 3-spaltig.
Es gibt in den Templates keine Zählschleifen, sondern es wird über alle Items, die zum Beispiel $oView->getAccessoires() zurückgibt, iteriert. Alle Funktionen, die für so eine Ausgabe vorgesehen sind, geben genau 4 Items zurück.
Gibt es eine zentrale Konstante oder Ini-Variable, die das regelt?[/QUOTE]
So sind Designer halt…
Und nein, das kann man nicht zentral einstellen, wie denn auch…
Aber, 2 Möglichkeiten:
Mach die Dinger per CSS doch einfach breiter, so dass nur 3 Stück in eine Zeile passen.
Dann brechen die von alleine um.
Oder:
am Anfang von “_header.tpl” folgenden code einfügen:
[{PHP}]
define('ENTRIES_PER_LINE',3);
[{/PHP}]
Damit wir die Anzahl der Boxen pro Zeile festgelegt.
In [B]allen [/B]betroffenen Templates [B]nach [/B]"[{include file=“inc/product.tpl”…" folgende Abfrage einfügen:
[{if ($smarty.foreach.[B]foreach_name[/B].iteration % $smarty.const.ENTRIES_PER_LINE) == 0 && !$smarty.foreach.[B]foreach_name[/B].last}]
<br class=“forced_break” />
[{/if}]
Damit wird geprüft, ob die interne Reihenfolge des aktuell von Smarty bearbeiteten Datensatzes ohne Rest durch 3 teilbar ist, und wenn ja, wird, wenn es [B]nicht [/B]die Ausgabe des [B]letzten [/B]Datensatzes ist, ein break ("<br class=“forced_break” />") ausgegeben, um eine neue Zeile zu erzwingen.
(Über die CSS-Klasse “forced_break” kann man dann noch die Höhe des Abstandes definieren…)
[B]foreach_name[/B] ist der im “[B]name=[/B]”-Parameter Name der Smarty “foreach”-Schleife(n) angegebene Name.
Wenn, wie z.B. in “last_seen_products”, der “[B]name=[/B]”-Parameter in der Schleife fehlt, muss man ihn entsprechend einbauen…
Betroffen sind die Template-Dateien:
account_noticelist.tpl
account_wishlist.tpl
basket.tpl
compare.tpl
details.tpl
details_persparam.tpl
list.tpl
search.tpl
start.tpl
thankyou.tpl
wishlist.tpl
dyn\last_seen_products.tpl
inc\recommlist.tpl