Seite 1 von 1

HTML-Templates & CMS-Typen

Verfasst: Sa 17. Feb 2007, 13:12
von FunThomas
Hallo,

ich arbeite momentan an einem mehrsprachigen Projekt. Meine oberste Priorität ist es den Code vom Layout gänzlich zu trennen. Dazu wollte ich über die CMS-Typen die Daten eingeben und diese an die HMTL-Templates weitergeben. Nachteil: Laut Handbuch muss man die CMS-Typen zwingend in Modulen verwalten. Ich hoffe ihr könnt mir folgen!?

Wenn ich aber nun die CMS-Typen für die Contenverwaltung in ein Modul eingeb und diese an ein HTML-Template weiterleite, dann wird doch der Content doppelt ausgegeben. Oder sehe ich da etwas falsch?

Über hilfreiche Tipps oder einen Link zu einem hilfreichen Topic wäre ich dankbar.

p.s. Bevor Antworter mir die Suche empfehlen - ich habe Sie bereits ohne Erfolg befragt ;)

Verfasst: Sa 17. Feb 2007, 15:07
von MichFress
ja, ich glaube, du siehst da etwas falsch, obwohl ich mir nicht ganz sicher bin, was du meinst...

Dass CMS-Typen ausschließlich über Module geregelt werden, ist insofern kein Problem, als dass Module genau dafür da sind. Sozusagen ist "Layout" und "HTML-Template" für das Layout zuständig, "Modul" und quasi "Template" für den Code.

der Inhalt von beispielsweise CMS_HTML[1] wird nur so oft ausgegeben, wie du es ausgegeben werden lässt.

Beispiel-Modul:

Code: Alles auswählen

$tpl->set('d', 'TEXT',  "CMS_HTML[1]");
der Inhalt des CMS-Typs wird hier nicht ausgegeben, sondern nur in das HTML-Template eingebunden.

Habe ich deine Fragestellung halbwegs getroffen? Wenn nein, präzisier dein Problem oder warte auf andere Antworten... ;-)

Verfasst: Sa 17. Feb 2007, 15:55
von FunThomas
Die Übergabe der CMS-Typen an ein Template ist klar. Das Problem liegt in der Dateneingabe.

Betrachte ich eine Headline, so steht der CMS-Typ im Modul genau an der Stelle an der die Headline auch ausgegeben wird. Sie steht im Ausgabeteil des Moduls. Will ich die Headline aber an ein Template weiterleiten, dann funktioniert doch diese Variante so nicht... oder etwa doch?

Um die Frage auf den Punk zu bringen: Wohin muss bzw. wie muss im Modul der CMS-Typ integriert werden, damit man seine Werte eingeben kann, wenns sein mss auch in verschiedenen Sprachen?

Verfasst: Sa 17. Feb 2007, 19:09
von HerrB
Bin mir nicht ganz sicher, aber vielleicht helfen noch Begriffsdefinitionen:

Es gibt:
- Layouts (Basisstruktur, die Platzhalter [Container] enthält)
- Module (die Code enthalten)
- Modul-HTML-Templates, mit denen Struktur von Code getrennt werden kann
- Templates (die definieren, welches Modul statt welchen Platzhalters [Containers] ausgegeben werden soll)

Layouts, Modul-HTML-Templates und Templates sind sprachunabhängig.

Module sind dann sprachunabhängig, wenn für begleitenden Text mi18n("Text") und die Übersetzungsfunktion verwendet wird.

CMS_-Typen sind per se sprachabhängig. Solange man sich im Artikel und Edit-Modus befindet, kann ich im Editor Text eingeben, der für die gerade eingestellte Sprache (rechts oben) gilt.

Wechselt man die Sprache, synchronisiert man den Artikel aus der ersten Sprache, wird im Prinzip eine Kopie des Artikels in dieser Sprache erzeugt. Dieser Text wird übersetzt.

D.h. was auch immer in einer CMS_-Variable steht, ist sprachabhängig. Ob Du das mit echo oder via Modul-HTML-Template ausgibst, ist nicht erheblich.

Gruß
HerrB

Verfasst: Sa 17. Feb 2007, 22:09
von FunThomas
Vielen Dank für die Hilfe!

Der Hinweis die Variable $edit zu prüfen war ein Volltreffer!