-
CustomSections...
Sagt mal, hab ich nicht mehr alle Tassen im Schrank oder stimmt folgendes:
Version 2.7.2
Standard fe_page.tpl:
PHP-Code:
<?php echo $this->getCustomSections('before'); ?>
Aber egal was ich mache, ich kann meine Module nur mit
PHP-Code:
<?php echo $this->getCustomSection('section'); ?>
einbinden!!
Ist das schon mal jemandem von euch aufgefallen???:eek:
-
HI
Doofe Frage: Hast du im Seitenlayout auch zugewiesen, dass diese Bereiche nach der Kopfzeile angezeigt werden sollen?
Sebastian
-
Hi
ja im BE funktioniert ja auch alles ganz normal! Nur im FE wird das Modul nur mit "getCustomSection()" angezeigt, obwohl die original fe_page.tpl mit "getCustomSections" arbeitet :p
-
Hi Toflar,
das entspricht doch den beiden Methoden der Klasse FrontendTemplate: getCustomSection für eine Sektion, getCustomSections für mehrere. Insofern, würde ich sagen, alles ok mit deinen Tassen bzw. dem Schrank.
cheers
Antipitch
-
Ach so :D
Ja ich wollte das checken, aber ich war unterwegs und musste gleich mit dem iPhone posten :D :D
Danke hast du das für mich übernommen - jetzt ist alles klar :)
-
Hallo Ihr zwei,
ich hab eure erkenntniss mal ins Wiki gebracht...
http://de.contaowiki.org/TutorialsEi...CustomSections
Schauts euch doch mal an ob das so in Ordnung ist bitte.
So geht das Wissen nicht so unter ;-)
Viele Grüße
---
PS: wobei ich glaube das ich da doch noch was falsch verstanden habe XD
-
Hallo MacKP,
außerdem kann man die eigenen Layoutbereiche noch mit
PHP-Code:
<?php echo $this->sections['foobar']; ?>
zuweisen. Der Unterschied zu
PHP-Code:
<?php echo $this->getCustomSection('foobar'); ?>
ist, dass im 2. Beispiel alles noch von einem div-Element mit der ID foobar gewrapt wird, was im 1. Beispiel nicht der Fall ist. Beachte auch die eckigen und runden Klammern.
Gruß Andreas
-
Hallo Andreas,
danke für die Info.
Da gibt es wieder viele Verschiedene Wege für ein Ziel.
Viele Grüße
---
PS: ich hab das mal mit aufgenommen im Wiki :-)
-
Hallo zusammen,
ich hätte zu der Thematik mit den eigenen Layoutbereichen auch noch eine Frage.
Ich möchte oberhalb der Fußzeile 2 eigene Layoutbereiche, in denen jeweils ein Modul (Flash bzw. Aktienticker) eingebunden ist.
1. Layoutbereich "Flash" mit Modul "Flash Startseite"
2. Layoutbereich "Aktienticker" mit Modul "Ticker Aktie"
3. Footer
Wenn ich beim Seitenlayout 2 eigene Layoutbereiche auswähle und bei Position "oberhalb der Fußzeile" angebe, so erscheinen meine beiden Module immer unterhalb des Footers (in der Reihenfoge im Backend). Mit den Pfeilen verschieben geht nicht, nach dem Speichern sind die beiden Layoutbereiche wieder ganz unten. Wie kann das sein?
Im Frontend erfolgt die Ausgabe in dieser Reihenfolge:
1. Aktienticker
2. Flash
3. Footer
Das stimmt auch nicht mit der (falschen) Definition im Backend überein.
Schreibe ich
Code:
<?php echo $this->sections['Flash']; ?>
direkt ins Template vor den CustomSections, wird das Flash korrekt angezeigt, allerdings wird es dann doppelt angezeigt, da es ja im Backend auch noch definiert ist. Dies kann ich zwar per CSS über display:none unterdrücken, eigentlich sollte es aber doch möglich sein, ohne diese "Tricks" auszukommen.
-
Hallo closeup,
ich weiß noch nicht ganz ob ich blicke was du willst / machst.
Du möchtest in einem Eigenen Bereich 2 Module haben (diese sollen über dem Footer sein).
Die Eigenen Layoutbereiche werden ja direkt ins Template geschrieben.... also hast du die Stelle da ja schon festgelegt (über dem Footer).
Deswegen ist es an sich schnuppe was du im Backend einstellst (wo das sein soll).
Bei der Zuweisung von Modulen sind diese Bereiche immer unterhalb. Das sortiert TL einfach so. Die einzige Reihenfolge die da wichtig ist, ist die Reihenfolge der Module _innerhalb_ der einzelnen Bereiche.
D.h. du hast deinen eigenen Bereich 'Flash' und da drinn hast du das Modul Aktienticker und das Modul Flash. Die Reihenfolge dieser Beiden kannst du jetzt bestimmen. Und das hast du ja auch schon richtig gemacht.
Den Rest von deinem Post versteh ich leider nicht wirklich...
Viele Grüße
-
Hallo closeup,
ich glaub ich hab noch etwas mehr kapiert als MackP :D
Wie MackP schon sagt, werden im BE die eigenen Bereiche immer zuunterst angezeigt. Das dürfte aber nichts machen. In dem Template steht ja irgendwo:
PHP-Code:
<?php echo $this->getCustomSections('after'); ?>
und noch before und main. Dort werden die eingenen Bereiche eingefügt, je nachdem, welche Position du im BE ausgewählt hast.
Wenn du jetzt deinen eigenen Bereich manuell ins Template einfügst, hast du natürlich 2mal diesen Bereich, einmal durch dein Einfügen dort und einmal wird er ja durch obige Zeile eingefügt.
Also am besten entweder aus dem BE heraus einfügen, oder manuell. Wenn manuell, dann kannst du diese obigen Zeilen aus dem Template löschen.
Ich hab noch einen Tip, den ich aber noch nie ausprobiert habe. Erstelle mit der Erweiterung subcolumns zwei Spalten, sieh dir den generierten HTML-Code an und benutze diesen Code dann für deine beiden eigenen Bereich - also zum manuellen Einfügen. Das Element mit den Subcolumnes kannst du dann wieder löschen, nur damit du siehst, wie die DIVs verschachtelt sein müssen und welche Klassen sie haben. Die richtige CSS-Formatierung bringt die Erweiterung subcolumns ja schon mit. Somit müsste man eingentlich ohne viel Gefummel zwei schöne gleichgroße Bereiche mit gleicher Höhe nebeneinander realisieren können. Wie gesagt, bis jetzt nur Theorie in meinem Kopf.
Hoffe das hilft
Andreas
-
Hi nochmal,
ok ok ok, ich weiß, hab mich viel zu kompliziert ausgedrückt. Andreas hat im Prinzip alles korrekt zusammengefasst. ;)
Mein Problem ist eigentlich ganz simpel:
Wenn ich folgenden Code im Template hab
PHP-Code:
<?php echo $this->getCustomSections('after'); ?>
Wie kann ich die Reihenfolge der eigenen Layoutbereiche beeinflussen?
Oberhalb des Footers soll zuerst das Flash kommen und dann der Aktienticker.
Momentan ist es genau anders herum.
-
Hallo closeup,
da kommt es noch auf die Reihenfolge im Seitenlayout an. Dafür kannst du die Grünen Pfeile benutzen um die Reihenfolge zu ändern. Ist aber nur in den einzelnen Bereichen wichtig die Reihenfolge: also alles was zum Beispiel im #main Bereich ist oder was im #footer ist. Ob #footer und #main in einer anderen Reihenfolge sind ist dabei egal.
Viele Grüße
-
Hallo MacKP,
hm, ok. Es sollen aber beide eigenen Layoutbereiche "oberhalb des Footer" angezeigt werden. In dem Fall kann ich ja die grünen Pfeile nicht mehr benutzen.
Im Quellcode wird immer erst <div id="Aktienticker"> ausgegeben und dann <div id="Flash">. Was kann ich machen damit das vertauscht wird?
EDIT: Hat doch funktioniert! Irgendwie hatte ich immer versucht die beiden Bereiche mit den Pfeilen vor den Footer zu bekommen, was ja gar nicht nötig ist. Wichtig ist nur die Reichenfolge der beiden eigenen Bereiche!
Also danke nochmal an euch!
-
Da ich das noch nie so benutzt habe weiß ich das nicht so genau.. aber wenn du das schon selber im Template so eingetragen hast mit dem after, warum machst du dann nicht direkt 2 Bereiche da hin?
Oder: du machst ein Modul EigenerHTMLCode in dem du dann die beiden Module unterbringst in der richtigen Reihenfolge. Und dieses Modul kommt dann an die Stelle wo im Moment die beiden sind.
Viele Grüße
-
Jetzt warst du mit deiner Antwort doch schneller. :D
Hat sich erledigt. Siehe edit meines Posts vorher.
-
Ah, gut. Genau das meinte ich gerade eben auch ;-)
Viele Grüße