[Frage] Fluid Inhalte in den Content verschieben bzw. ersetzen

  • Thomas673 Thomas673
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    05. 10. 2013, 08:46

    Moin,

    ich habe ein Gästebuch mit PHP programmiert und möchte dieses in Typo3 im Inhaltsbereich meiner Website anzeigen. Dazu habe ich ein Erweiterungs-Template für die Seite Gästbuch erstellt und diesen Code eingefügt:

    1. includeLibs.gb = typo3conf/test.php
    2. page = PAGE
    3. page {
    4. 10.userFunc = user_klasse->main
    5. 10.stdWrap.wrap = |
    6. }

    Der Inhalt der PHP-Seite wird auch erfolgreich auf der Website angezeigt. Nur leider am Ende der Website, nicht im Inhaltsbereich (Content). Nun habe ich mit diesem Befehl gesagt, dass der Content die PHP-Seite ist, mit diesem Befehl:
    content < page.10
    Das löst aus, dass nur noch der Inhalt der PHP-Seite angezeigt wird, nicht das Haupttemplate mit Header,Footer,Menü etc. inklusive das PHP-Script im Content-Bereich.

    Das Haupttemplate mit dem Content-Element habe ich so angelegt:

    1. page = PAGE
    2. page {
    3. includeCSS.Style = fileadmin/templates/style.css
    4. 10{
    5. file = fileadmin/templates/template.html
    6. variables {
    7. content < styles.content.get
    8. }
    9. }
    10. }

    Das HTML-Template mit <f:format.raw>{content}</f:format.raw>

    Nun könnte man ja eigentlich mit
    PHP-Code:

    1. content.10 < page.10

    im Erweiterungstemplate den Inhalt anhängen, oder? Ich habe viele Varianten ausprobiert, aber keine führt zum Erfolg.


  • 1
  • karlchen karlchen
    Jedi-General
    0 x
    1433 Beiträge
    30 Hilfreiche Beiträge
    08. 10. 2013, 12:20

    Hi,

    du kannst es z.B. so machen:

    1. temp.meinGaesteBuch = USER_INT
    2. temp.meinGaesteBuch.userFunc = user_klasse->main
    3. temp.meinGaesteBuch.stdWrap.wrap = |
    4.  
    5.  
    6. page = PAGE
    7. page {
    8. includeCSS.Style = fileadmin/templates/style.css
    9. 10{
    10. file = fileadmin/templates/template.html
    11. variables {
    12. content < styles.content.get
    13. meinGaesteBuch < temp.meinGaesteBuch
    14. }
    15. }
    16. }

    und in deinem FLUID Template gibst du ein weiteres Element aus:

    1. <f:format.raw>{content}</f:format.raw>
    2. <f:format.raw>{meinGaesteBuch}</f:format.raw>

    Das TypoScript PAGE Object, kann man sich wie einen Großen Container vorstellen, der alle Elemente einer HTML Page beinhaltet. Um diese Object immer wieder zu erweitern/verändern, vergibt man einen Namen, in deinem Fall "page" (kleingeschrieben), du könntest aber auch schreiben "seite = PAGE", "abc = PAGE"

    in deinem Fall hast du da Object "page" 2x mal benutzt und somit den komplette Ausgabe verändert.

  • Thomas673 Thomas673
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    08. 10. 2013, 15:43

    Vielen Dank für deine Antwort!
    Das ist die Lösung, hat sofort funktioniert.
    Mein größter Fehler war, dass ich das html-Template nicht um das Element meinGaesteBuch erweitert habe, sondern versucht habe, das Content-Element zu überschreiben.

  • 1