[Frage] gridelements funktioniert in der Ausgabe nicht, Typoscriptfehler? TYPO3-Version: 9.5.5

  • 0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    28. 04. 2019, 16:38

    Hallo zusammen,

    ich fange gerade mit Typo3 an und stolpere nach einem erfolgreichen Start jetzt immer öfter in Probleme rein. Das erste, welches ich auch nach Stunden rumprobieren und googlen lösen kann, ist hoffentlich für euch eine Kleinigkeit.

    Ich habe als Grundlage erstmal mit dem Buch „Praxiswissen Typo3 CMS9LTS“ von O’Reilly angefangen. Damit bin ich jetzt z.B. soweit eine Seitenstruktur zu haben, die mir automatisch mein Hauptmenü befüllt. Auch Inhalte werden in der Seite ausgegeben.

    Dann bin ich diesem Tutorial hier für Gridelements gefolgt: https://jweiland.net/video-anleitungen/typo3/interessante-typo3-extensions/gridelements.html#undefined

    Installieren und im Listen-Modul von Typo3 das Backend Layout erstellen hat wunderbar funktioniert und Im Seite-Modul kann ich mein neu erstelltes Spalten-Element auch wunderbar einfügen und Inhalte darin unterbringen.

    Der Punkt, wo es nicht mehr funktioniert ist die Anpassung der Frontend-Ausgabe im Typoscript. Die Inhalte werden im Frontend einfach so ausgegeben, als wenn da gar kein Gridelement drum wäre.

    Ich versuche, gemäß dem Videotutorial, im Frontend so übers Typoscript Spalten auszugeben:

    [code]# Grid Elements: Raster definieren
    tt_content.gridelements_pi1.20.10.setup {
    # ID des Gridelements
    1 < lib.gridelements.defaultGridSetup
    1 {
    columns {
    10 < .default
    10.wrap = <div class="col1">|</div>
    20 < .default
    20.wrap = <div class="col2">|</div>
    }
    wrap = <div class="row">|</div>
    }
    }[/code]
    Dabei steht das ganze am Ende meines Typoscripts und nicht innerhalb des PAGE-Objekts oder so.

    Ich habe:
    - im Listen-Modul die ID meines Gridelements überprüft. Die ist wirklich 1
    - Die darin angelegten Spalten haben die Spaltennummer 10 und 20
    - In meinem Root-Template unter „Enthält“ sind (in dieser Reihenfolge) Fluid Content Elements & Gridelements hinzugefügt.
    - Selbstverständlich habe ich den Cache geleert.

    Ich weiß nach Stunden nun immer noch nicht weiter. Es ist bestimmt irgendwas blödes und offensichtliches. Kann mir bitte jemand einen Schubs in die richtige Richtung geben?

    Vielen Dank!

  • Hilfreichster Beitrag

  • Teisinger Teisinger
    Jedi-Meister
    1 x
    311 Beiträge
    20 Hilfreiche Beiträge
    30. 04. 2019, 14:13 - Hilfreichster Beitrag

    Die Template-Html Dateien rufen "Layouts" und "Partials" auf, wenn du das Quick&Dirty lösen möchtest musst du die 2 Ordner auch noch kopieren...

    Der letzte Fehler kannst du umgehen in dem du statt <f:case default='...'> schreibst: <f:defaultCase>...

    Edit:
    Ich muss gestehen das ich das Skeleton schon länger nicht mehr ausgiebig getestet hab, hol ich nach...

    https://github.com/groundstack-org


  • Teisinger Teisinger
    Jedi-Meister
    0 x
    311 Beiträge
    20 Hilfreiche Beiträge
    28. 04. 2019, 21:00

    Also kurz zusammengefasst:
    TYPO3 v9
    Gridelements
    FLUID-Templates
    Korrekt?

    Gut zu wissen wäre noch wie deine skills sind, bist du grundsätzlich Anfänger oder hast du bereits Ahnung von Programmierung?

    Also mal ein zwei Tipps:
    a) lagere soviel Code wie möglich in Dateien aus
    b) lege diese Files am besten nicht in "fileadmin" sondern in ne eigene Extension/Distribution
    c) auch für Gridelements kannst/solltest du FLUID nutzen (HTML-Code hat meiner Ansicht nach nichts mehr in TS zu suchen)

    CodeBeispiele findest du z. B. hier:
    https://github.com/groundstack-org/typo3themeskeleton

    Gridelements:
    ab Zeile 168: https://github.com/groundstack-org/typo3themeskeleton/blob/master/Configuration/TypoScript/Template/00120_Extensions.typoscript

    Und die BE-Gridelements-Layouts:
    https://github.com/groundstack-org/typo3themeskeleton/blob/master/Configuration/PageTS/PageTsFiles/0200_GridelementsLayout.typoscript

    Theme Kickstart kannst du die oben erwähnte Ext nutzen oder mehr ein Basic-Skeleton nutzen wie das hier:
    https://sitepackagebuilder.com/

    https://github.com/groundstack-org

  • 0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    29. 04. 2019, 11:27

    Hallo,

    vielen Dank erstmal!

    Ich bin kein Programmierer, habe aber etliche Jahre Erfahrung mit HTML/CSS und würde meinen Kenntnisstand da als sehr gut bezeichnen. Javascript kann ich okay. PHP kann ich soweit lesen, um Templates anzupassen o.ä.

    Mit Typo3 fange ich komplett neu an.

    Wenn ich mir das so anschaue, muss ich noch einiges lernen, um den Code komplett auszulagern. Gestern habe ich per Anleitung schon mit sitepackagebuilder mein bisheriges Ergebnis in eine Extension ausgelagert. Aber wie ich mit Partials richtig umgehe und was da alles inkludiert wird überfordert mich im Moment noch etwas.

    Ich jongliere heute mal mit ein paar Test-Installs rum und versuche zu verstehen…

    Ich melde mich bestimmt wieder ;-)

    Danke nochmal!

  • 0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    29. 04. 2019, 18:28

    Hallo nochmal,

    langsam bin ich wirklich am Verzweifeln. Es will einfach nicht funktionieren. Ich hab heute schon ein Dutzend frische Typoinstallationen aufgesetzt und versucht da frisch gridelements zu installieren, ich habe es mit dem typo3themeskeleton probiert. Da scheint gridelements ja enthalten zu sein. Trotzdem funktioniert das nicht mit der Ausgabe im Frontend. Im Backend lässt es sich weiterhin konfigurieren und als Inhaltselement hinzufügen, aber im Frontend kommt nur der nackte Content in den Spalten an.

    Wenn ich die Doku von gridelements richtig verstehe, sollten zumindest divs um den Content ausgegeben werden. Aber selbst die fehlen. Die Frontendausgabe ist weiterhin einfach das <div> welches immer ausgegeben wird:
    <div id="c1" class="frame frame-default frame-type-text frame-layout-0"><p>fwrgrgrwgwrrwgwgrwgwgeegewgew</p></div>

    Aber keine zusätzliche Ausgabe irgendeiner Art von Gridelements.

    Muss man zwingend irgendwas zusätzlich einschalten oder konfigurieren, damit das Grid auch im Frontend ankommt?

  • Teisinger Teisinger
    Jedi-Meister
    0 x
    311 Beiträge
    20 Hilfreiche Beiträge
    29. 04. 2019, 19:43

    Also wenn du das Snippet von oben benutzt, musst du in den entsprechenden FLUID Pfaden die du ja hoffentlich für dich angepasst hast, halt dein HTML für Gridelements anpassen wie z. B. hier:
    https://github.com/groundstack-org/typo3themeskeleton/tree/master/Resources/Private/Extensions/gridelements/Html/Templates

    https://github.com/groundstack-org

  • 0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    29. 04. 2019, 19:54

    Hab ich gemacht. Die Pfade sind korrekt angepasst und die Ordnerinhalte mit den Templates sind auch da. Auch groß-kleinschreibung habe ich zig mal überprüft.

    Was mir noch auffiel war, dass im Skelett die Zeile
    <INCLUDE_TYPOSCRIPT: source="FILE:EXT:gridelements/Configuration/TypoScript/setup.ts">
    evtl. nicht stimmt. Da ist die eigentiche Dateiendung .typoscript nicht .ts
    Habe beides erfolglos ausprobiert.

    Ich habe das Gefühl, dass Problem entsteht irgendwo früher. Kann es sein, dass in Typo3 9.5.5 oder gridelements 9.2.0 ein Bug ist und das grundsätzlich nicht in der Kombi funktioniert?

  • Teisinger Teisinger
    Jedi-Meister
    0 x
    311 Beiträge
    20 Hilfreiche Beiträge
    30. 04. 2019, 08:05

    hmmm nein funktioniert hier soweit.
    Das mit der Endung ist noch ein veralteter Code im Skeleton (danke für den Hinweis) :)

    Hmm also im Backend passt alles... also für gewöhnlich stimmen entweder die Pfade nicht, oder die ID stimmt nicht mit dem Gridelement-BackendLayout überein.

    Du kannst dir ja in FLUID (html) ja mal alles was an die Datei geliefert wird ausgeben lassen, mit <f:debug>{_all}</f:debug>
    Dann siehst du evtl. etwas was uns noch entgeht ;)

    https://github.com/groundstack-org

  • 0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    30. 04. 2019, 10:00

    Ich habe es noch mal mit einer ganz frischen Installation von Typo3 + dem Skeletontemplate probiert.

    Im Backend habe ich als Datensatz für die Spalten mal zwei angelegt. Im Frontend bekomme ich jetzt die Fehlermeldung (erst nach dem hinzufügen der Spalten):
    Oops, an error occurred!
    Tried resolving a template file for controller action "Standard->2" in format ".html", but none of the paths contained the expected template file (Standard/2.html). The following paths were checked: /Users/thomas/Dropbox/typo3skeleton/web/typo3/sysext/fluid_styled_content/Resources/Private/Templates/, /Users/thomas/Dropbox/typo3skeleton/web/typo3conf/ext/gridelements/Resources/Private/Templates/, , /Users/thomas/Dropbox/typo3skeleton/web/typo3conf/ext/typo3themeskeleton/Resources/Private/Extensions/fluid_styled_content/Resources/Private/Templates/

    <f:debug>{_all}</f:debug> habe ich ausprobiert. Wird gerade nicht ausgegeben (s.o.)

  • 0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    30. 04. 2019, 10:03

    Der scheint also nicht im letzten Ordner (index 30) nachzuschauen, sehr wohl aber in dem mit dem index 20 darüber:

    partialRootPaths {
    10 = EXT:fluid_styled_content/Resources/Private/Partials/
    20 = {$theme.urls.themeResources}Private/Extensions/fluid_styled_content/Resources/Private/Partials/
    30 = {$theme.urls.themeResources}Private/Extensions/gridelements/Html/Partials/
    }
    layoutRootPaths {
    10 = EXT:fluid_styled_content/Resources/Private/Layouts/
    20 = {$theme.urls.themeResources}Private/Extensions/fluid_styled_content/Resources/Private/Layouts/
    30 = {$theme.urls.themeResources}Private/Extensions/gridelements/Html/Layouts/
    }
    templateRootPaths {
    10 = EXT:fluid_styled_content/Resources/Private/Templates/
    20 = {$theme.urls.themeResources}Private/Extensions/fluid_styled_content/Resources/Private/Templates/
    30 = {$theme.urls.themeResources}Private/Extensions/gridelements/Html/Templates/
    }

    …und nach dem falschen Template-Namen scheint es auch zu suchen. Die im Ordner heißen ja alle Grid-50-50.html usw.
    …okay, der Template-Name entspricht also dem alias im Datensatz. Jetzt ist die Fehlermeldung zumindest schon mal:

    Tried resolving a template file for controller action "Standard->grid-50-50" in format ".html", but none of the paths contained the expected template file (Standard/Grid-50-50.html). The following paths were checked: /Users/thomas/Dropbox/typo3skeleton/web/typo3/sysext/fluid_styled_content/Resources/Private/Templates/, /Users/thomas/Dropbox/typo3skeleton/web/typo3conf/ext/gridelements/Resources/Private/Templates/, , /Users/thomas/Dropbox/typo3skeleton/web/typo3conf/ext/typo3themeskeleton/Resources/Private/Extensions/fluid_styled_content/Resources/Private/Templates/

    Löse ich die Pfad-Probleme erstmal Quick&Dirty, in dem ich die Template-Dateien in das Verzeichnis von fluid-styled-content lege, ändert sich die Fehlermeldung:

    Oops, an error occurred!
    Fluid parse error in template layout_grid-Default_html_39b27b987fc157c77df045eb12acbbc257776ef1, line 7 at character 6. Error: Required argument "value" was not supplied. (error code 1237823699). Template source chunk: <f:case default="true">

  • Teisinger Teisinger
    Jedi-Meister
    1 x
    311 Beiträge
    20 Hilfreiche Beiträge
    30. 04. 2019, 14:13

    Die Template-Html Dateien rufen "Layouts" und "Partials" auf, wenn du das Quick&Dirty lösen möchtest musst du die 2 Ordner auch noch kopieren...

    Der letzte Fehler kannst du umgehen in dem du statt <f:case default='...'> schreibst: <f:defaultCase>...

    Edit:
    Ich muss gestehen das ich das Skeleton schon länger nicht mehr ausgiebig getestet hab, hol ich nach...

    https://github.com/groundstack-org