So, ich hab auch noch mal einiges analysiert. In meinen TL-Anfängen hatte ich hier mal gefragt, warum meine Klassen aus den Modulen beim Include in einen Artikel nicht gerendert werden. Man sagte mir dann, dass sie von den(/der?) Klasse des Artikels überschrieben werden. Ich habe jetzt erst mal einen Test mit dem Modul Sitemap gemacht. Ergebnis:
mod_article.tpl, mod_sitemap.tpl
class_aticle, class_element, class_modul
HTML-Code:
<div class="mod_article class_article">
<div class="mod_sitemap class_element">
</div>
</div>
Das CE scheint also keinen extra DIV zu generieren, es wird aber die Klasse des CEs in das DIV des Moduls geschrieben.
class_aticle, class_modul, (class_element entfernt)
HTML-Code:
<div class="mod_article class_article">
<div class="mod_sitemap">
</div>
</div>
Die Klasse aus dem Modul wird nicht gerendert und nicht von der Klasse des Artikels überschrieben.
class_modul, (class_aticle und class_element entfernt)
HTML-Code:
<div class="mod_article">
<div class="mod_sitemap">
</div>
</div>
Die Klasse aus dem Modul wird nicht gerendert, obwohl ja keine Klasse da ist, welche sie überschreiben könnte.
Leider sind solche Test sehr zeitaufwendig, ich möchte jetzt erstmal nicht alles durchtesten, sonder von dem Verhalten des Moduls Sitemap mod_sitemap.tpl auf alle anderen Module schließen. Und von dem Rendering der Klassen möchte ich auf das Rendering der ID und Abstände schließen. Dann wäre es so, dass diese Werte eines Moduls beim Includen in einen Artikel überhaupt nicht gerendert werden.
Beim direkten Einbinden des Modul in ein Layout, wird die Klasse des Moduls gerendert.
HTML-Code:
<div class="inside">
<div class="mod_sitemap class_modul">
</div>
</div>
Zumindest das Modul 'Eigener HTML-Code' scheint hier eine Ausnahme zu machen. Erstens, da man ihm ja keine Klasse mitgeben kann, und zweitens, da sein Template mod_html.tpl auch keinen umschließenden DIV enthält. Beim direkten Einbinden ins Layout müsste man ihm also alles was man so braucht, DIVs, Klassen usw. direkt in sich selbst schreiben. Ist ja schließlich ein "HTML Modul".
Aber jetzt bin ich sehr erstaunt, beim Include dieses MTML-Code Moduls in einen Artikel wird jetzt auf einmal nur der Artikel-DIV gerendert.
HTML-Code:
<div class="mod_article [Klasse, wenn mitgegeben]">
irgendein Inhalt vom HTML-Modul
</div>
Ich bin mir sicher, ich hatte vorher um das HTML-Modul noch einen DIV, und zwar so:
HTML-Code:
<div class="mod_article [Klasse, wenn mitgegeben]">
<div class="ce_text [Klasse, wenn mitgegeben]">
irgendein Inhalt vom HTML-Modul
</div>
</div>
Mein Fazit des Ganzen:
Das Inhaltselement Modul (Kat. Include-Elemente) erwartet von Modulen diesen typischen DIV
HTML-Code:
<div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
</div>
um seine Werte dort hinein zu generieren. Eigentlich müsste es erkennen, dass ein Modul HTML-Code eingebunden wird und die Felder für Klasse usw. verstecken, da dieses Modul den DIV ja nicht besitzt.
Wenn die Modifikation deines Templates bewirkt, dass die Werte aus dem Include-Modul Inhaltselement dem HTML-Modul mit einem DIV umschließend mitgegeben werden, dann würde ich auch sagen, dass du das ruhig als Bug mit sofortiger Lösung in ein Ticket schreiben solltest. Denn immerhin passiert etwas nicht, was man doch eigentlich erwartet.
Andreas