Guten Tag --- Eins vorneweg - der Thread direkt vor mir zum gleichen Thema brachte mich nicht weiter. Da er aber bereits als gelöst markiert wurde, muss ich einen neuen eröffnen --- Ich versuche, eine Variable füllen auf die ich im Smarty-Template zugreifen kann. Aber mein content wird am Ende des Scripts ausgegeben. Egal ob ich die Variable aufrufe oder nicht. Ich habe mir die Beispiele angesehen, finde aber keines wo explizit eine Variable erstellt und im Template ausgegeben wird. Ich poste mal meinen Code. GXUserComponents/overloads/ApplicationBottomExtenderComponent/test_ApplicationBottomExtender.inc.php: PHP: class test_ApplicationBottomExtender extends test_ApplicationBottomExtender_parent{ function proceed() { $html = '<h3>TEST ApplicationBottomExtender</h3> '; $this->v_output_buffer['TESTVAR'] = $html; parent::proceed(); } } Im Template versuche ich dann darauf zuzugreifen: in der bottom.html mit {$TESTVAR} Eigentlich würde ich es gern in der footer.html ausgeben - aber so oder so wird das ignoriert und einfach am Ende vor dem schließenden </body> ausgegeben. Was mache ich falsch? Eigentlich müsste ich die FooterContentView überladen aber das funktioniert bei mir genauso wenig -,- --- Eine weitere Frage zum Verständnis: Ist der Ordner overloads in GXModules identisch mit dem in GXUserComponents? (..bis auf den Unterschied das beim GXModules noch weitere Dateien laut Struktur mit integriert werden?) Ich wäre sehr dankbar für Hinweise! Liebe Grüße, Jens
Hi, du musst dafür die system/classes/layout/BottomContentView.inc.php überladen, da die die bottom.html befüllt und nicht die ApplicationBottomExtender. Die ApplicationBottomExtender ist nicht für die bottom.html zuständig. In der ApplicationBottomExtender wird jeglicher Code immer nur direkt ausgegeben. Die Overloads sind mit der GXUserComponets indentisch, es wird nur in eine extra GXModules Ordner durchsucht.
Guten Morgen Till, danke für den Hinweis zur contentView. Die zweite Frage hast du mir beantwortet. Aber wie zum Horst übergebe ich dabei eine Variable ans Smarty. Das ist ja mein Hauptproblem. Am Cache liegt's nicht - die Änderungen kommen ja an aber ich kann keine Variable ansprechen. Ich teste es am FooterContentView mit der footer.html - das müsste ja passen. Ist das hier falsch? $this->v_output_buffer['foo'] = 'Hi, ich bin Tom'; oder so? $this->content_array['foo'] = 'barbara'; Und so wird es doch ausgegeben: {$foo} Oder?
Auf diesem Weg sollte die Variable $foo direkt im Smarty verfügbar sein. Ja korrekt. Schon mal mit einem beherzten {debug} im Template geschaut, ob deine Variable dort ankommt?
Hallo Torben Danke, ja hab ich - ich hatte gestern einen sehr 'beherzten' Tag - sie kommt nicht an - Mein Fehler liegt sicher beim Überladen -- oh man -- ich hab es gerade gefunden ich habe immer statt __construct() PHP: function proceed() { .. bla .. parent::proceed();} genommen .. ---- Wird proceed() nur bei extendern genommen?
Hi, du musst dafür die prepare_data Methode überladen, die __construct solltest du nach Möglichkeit vermeiden. Die proceed Methode gibt es nur bei Extendern und bei Controllern bei ContentView gibt es die prepare_data Methode, die die Smarty Variablen zuweisen.
OFFTOPIC Ich finde nichts um den Thread als GELÖST zu markieren.Wenn man im ersten Beitrag auf Bearbeiten klickt und dort auf Weitere Einstellungen, dann kommt im Chrome das: -- Chrome hat auf dieser Seite ungewöhnlichen Code erfasst und diese Seite daher blockiert, um Ihre personenbezogenen Daten wie Passwörter, Telefonnummern oder Kreditkarteninformationen zu schützen. Versuchen Sie, die Startseite aufzurufen. ERR_BLOCKED_BY_XSS_AUDITOR --