Erste Schritte mit Extbase - Wie füttere ich das Plugin mit Daten? [Gelöst]

  • martinibianco007 martinibi...
    Sternenflotten-Admiral
    0 x
    213 Beiträge
    0 Hilfreiche Beiträge
    12. 02. 2013, 12:08

    Hi ich bräuchte wieder mal eure Hilfe.

    [b]Vorweg, das verwende ich:[/b]
    - Typo3 6.0.1
    - Extension Builder 2.5.1

    [b]Was will ich:[/b]
    Eine simple Extension. Es gibt ein Showcase (Schaufenster) welches mehrere Showcase Items beinhalten soll.
    Das Showcase kann beliebig viele Showcase Items beinhalten.
    Showcase Item bestehen aus einem Bild, Text, Link....

    Was habe ich bis jetzt gemacht:
    [b]1. Domain Modelling [/b]
    [b]2. Extesnion im Extension Manager installieren[/b]
    - Die erfreuliche Nachricht, unter Liste -> neuen Datensatz erstellen kann ich ein Showcase anlegen und darin die Showcase Items

    [b]3. Plugin auf Seite einfügen[/b]
    [b]4. Game Over[/b] #angry# nun stehe ich an, wie kann ich dem Plugin beibringen dass er die auf der Seite eingefügtn Daten verwenden soll?

    Laut Mittwald Extbase Doku soll man einen sysfolder anlegen und im Plugin dann auf diesen verlinken. Klingt logisch aber wie kann ich im Plugin ein Feld hinzufügen wo ich dann auf die Datensätze verlinke?

    Anhänge (1)
    domain-modelling.jpg image/jpeg 0,00 B 274 heruntergeladen

  • fan66766 fan66766
    T3PO
    0 x
    23 Beiträge
    0 Hilfreiche Beiträge
    12. 02. 2013, 17:29

    Hey,

    ich blick da nicht ganz genau durch.

    Bekommst Du die im Backend angelegten Datensätze im Frontend nicht ausgegeben?

    Gut wäre noch gewesen zu sehen, was dein Frontend-Plugin für "Advanced Options" hat. Denn dort steht ja welcher Controller mit welcher Methode aufgerufen werden soll.

    Zeige uns das bitte mal.

  • martinibianco007 martinibi...
    Sternenflotten-Admiral
    0 x
    213 Beiträge
    0 Hilfreiche Beiträge
    12. 02. 2013, 17:40

    richtig meine Frontend Ausgabe bleibt, leer!
    bzw. die typo3 seite mit dem plugin ist eine white page :o

    Aber das vertehe ich ja auch weil woher soll den das Plugin wissen welche Datensätze es verwenden soll?
    Oder checkt das Plugin automtisch, dass es das Showcase, welches sich auf der Seite in der das Plugin sich befindet
    ausgibt?

    hier der screenshot meiner Advanced Options

    Anhänge (1)
    advanced.jpg image/jpeg 0,00 B 271 heruntergeladen
  • fan66766 fan66766
    T3PO
    0 x
    23 Beiträge
    0 Hilfreiche Beiträge
    12. 02. 2013, 17:54

    Ich bin so froh, dass es nicht nur mir so geht mit diesem System.. #giggle#

    "... woher soll den das Plugin wissen welche Datensätze es verwenden soll? ..."

    Nene, dazu kommen wir jetzt.

    Ne kurze Erklärung:
    Das Frontend-Plugin lädt nun den gewünschten Controller, in diesem Fall die list()-Function ( listAction() ), wenn in der URL nichts weiter steht, welche Action geladen werden soll. Es wird dann die Funktion zuerst geladen, die Du im Extension Builder angegeben hast.
    Der Controller stellt fest, dass er nun Datensätze ausgeben muss und kann aber nicht wissen, wo Du die in Deinem Backend angelegt hast, weil es ja frei strukturierbar ist.

    Die Lösung:
    Gehe nochmal im Backend in das Frondend-Plugin, dass Du bereits verknüpft hast (wie im Bild zu sehen). Beim Reiter "Verhalten" mappst Du dann auf den Ordner, in der sich die zu ladenen Datensätze befinden sollen.

    Probiere es mal bitte aus. Das müsste es gewesen sein.

    Gruss

  • martinibianco007 martinibi...
    Sternenflotten-Admiral
    0 x
    213 Beiträge
    0 Hilfreiche Beiträge
    12. 02. 2013, 18:07

    soweit habe ich auch schon gedacht, hilft aber leider nichts

    Anhänge (1)
    verhalten.png image/png 0,00 B 255 heruntergeladen
  • fan66766 fan66766
    T3PO
    0 x
    23 Beiträge
    0 Hilfreiche Beiträge
    12. 02. 2013, 18:13

    Dann folgendes:
    1. Cache leeren und erneut schauen.
    2. Screenshot im Vollbild machen von dem erstellten Datensatz, der angezeigt werden soll (bitte kein Ausschnitt wie im ersten Bild). Ich vermute Du hast den Datensatz nicht Bei Web->Liste sondern bei Web->Seite angelegt.

  • martinibianco007 martinibi...
    Sternenflotten-Admiral
    0 x
    213 Beiträge
    0 Hilfreiche Beiträge
    12. 02. 2013, 19:23

    leider wars das auch nicht

    Anhänge (1)
    Bildschirmfoto-2013-02-12-um-19.14.jpg image/jpeg 0,00 B 219 heruntergeladen
  • martinibianco007 martinibi...
    Sternenflotten-Admiral
    0 x
    213 Beiträge
    0 Hilfreiche Beiträge
    12. 02. 2013, 21:41

    eine verständnisfrage hinterher:

    wenn ich mit dem extension builder das modelling beendet habe
    und ein plugin einfüge ohne den datensatz angelegt zu haben
    müsste im frontend zumindest die layout.html ausgegeben werden oder nicht?

    muss das statische template hinzugefügt werden?

    hat jemand den extension builder unter typo3 6.0 im einsatz?

    hoffentlich birngt der morgige tag etwas licht ins dunkle.

  • fan66766 fan66766
    T3PO
    0 x
    23 Beiträge
    0 Hilfreiche Beiträge
    13. 02. 2013, 10:07

    Folgendes ist mir aufgefallen:
    - Du möchtest Dir Datensätze von ShowcaseItem anzeigen lassen.
    - Du hast dem Frontend-Plugin (FP) gesagt, er soll die list() laden.
    - Du hast das FP auf einer Seite eingerichtet.
    - Du hast im Backend dem FP gesagt, aus welchem Ordner er die Daten hernehmen muss.
    - Du hast jedoch nicht nachgeschaut, ob Du auch eine ShoecaseItemRepository.php erstellt bekommen hast, oder?

    Das ist wahrscheinlich das Problem. Im Extension Builder ist die Tabelle nicht auf "aggregate root" gesetzt. Demnach wird kein Repository erstellt und die Schnittstelle zur Datenbank fehlt.

    Bitte um Überprüfung.

  • beo6 beo6
    Padawan
    0 x
    45 Beiträge
    1 Hilfreiche Beiträge
    13. 02. 2013, 11:38

    Hallo.

    Falls ich das richtig verstanden habe:

    Du musst natürlich das Static Template einbinden.

    Wenn du dir das nämlich einmal von dem erstellten Plugin anschaust. (per default zu finden unter typo3conf/ext/deinplugin/Configuration/TypoScript/*)

    wirst du feststellen das dort sowohl das Template-Verzeichnis als auch die storagePid gesetzt werden.

    Fügst du also das Static Template ein, kannst du ganz einfach über den Constant-Editor die Storage PageID angeben wo die Daten hinterlegt sind und sie sollten dir dann auch angezeigt werden.