PS: Nur am Rande, die Syntax mit deiner Tabelle ist nicht valid, table darf nicht zwischen p stehen
Danke. Ich wollte nur das p nicht unberücksichtigt lassen. Murx...
Ich hätte die Ausgabe über ein Layout gelöst in der Art:
Gefordert war die Mehrsprachigkeit der Beschriftung. Dies ist (elegant) über die Modul-Übersetzung via mi18n möglich.
Wenn man es ganz hart macht, könnte man ein Layout mit (hier) 6 Containern verwenden und jeweils über ein Modul Beschriftung und Text festlegen. Das ist aber sehr aufwendig, eine Verschwendung von Ressourcen und wenn man später mal was ändern will... Auch wäre die Beschriftung für jeden Artikel erneut einzutragen. Außerdem sollte man ein Layout nach Möglichkeit später nicht anfassen müssen (deswegen ist es z.B. auch eine gute Idee, Container in 10er-Schritten mit IDs zu belegen, damit später noch Felder dazwischen setzen kann).
Die Ideal-Form des Moduls dürfte aber sicherlich eine Trennung von Code und (Modul-)Template sein - d.h. wie z.B. beim Hauptnavigationsmodul gibt es ein Template mit Platzhaltern:
Code: Alles auswählen
<table>
<!-- BEGIN:BLOCK -->
<tr><td>{ITEM}</td><td>{VALUE}</td></tr>
<!-- END:BLOCK -->
</table>
welches ich dann im Modul zeilenweise fülle:
Code: Alles auswählen
cInclude('classes', 'class.template.php');
$tpl = new Template;
$tpl->set('d', 'ITEM', mi18n("Price: €"));
$tpl->set('d', 'VALUE', "CMS_HTML[2]");
$tpl->next();
$tpl->set('d', 'ITEM', mi18n("Reference:"));
$tpl->set('d', 'VALUE', "CMS_HTML[3]");
$tpl->next();
$tpl->set('d', 'ITEM', mi18n("Location:"));
$tpl->set('d', 'VALUE', "CMS_HTML[4]");
$tpl->next();
$tpl->generate('templates/<Name des Templates>.html');
<Name des Templates>.html muss mit der Bezeichnug aus Style->HTML Editor übereinstimmen. Man beachte die 'd'-Option beim set (ermöglicht Blockwiederholungen).
Abstände und anderes würde ich dann über CSS definieren (ggf. halt im (Modul-)Template noch eine Klasse für table, tr bzw. td ergänzen).
Gruß
HerrB