Extbase FE-Plugin anpassen

  • patricks patricks
    Sternenflotten-Admiral
    0 x
    206 Beiträge
    1 Hilfreiche Beiträge
    06. 12. 2010, 09:35

    Hallo zusammen,

    bin grad dabei mich in Extbase und Fluid einzuarbeiten. Klappt soweit auch recht gut. Jetzt bin ich aber bei einer Frage steckengeblieben. Und zwar mache ich ein Plugin mit dem man im BE Produkte als Datensätze anlegen kann und das jeweilige Produkt dann im Frontend ausgibt.
    Die Produkte anlegen klappt schon wunderbar. Jetzt weiß ich nur nicht wie ich ein einzelnes Produkt im Plugin auswählen kann damit es auf einer Seite ausgegeben wird?!

    Im Moment wird im Inhaltelement einfach nur das Standardzeug angezeigt, also Plugin, Layout, CODE, Ausgangspunkt.
    Hab schon überall gesucht aber nichts dazu gefunden.

    Wär super wenn mir da jemand einen Tip geben könnte.

    [b]EDIT:[/b] Im FE bekomm ich dann auch folgende Fehlermeldung:
    "An error occurred while trying to call Tx_MyProducts_Controller_ProductsController->showAction(). Error: Required property 'product' does not exist."

    Aber ich weiß ja nicht wo und wie ich ein bestimmtes Produkt angeben kann/muss.


  • 1
  • patricks patricks
    Sternenflotten-Admiral
    0 x
    206 Beiträge
    1 Hilfreiche Beiträge
    08. 12. 2010, 10:35

    Hat keiner eine Idee? Ich steck da echt fest.

  • typonewbe typonewbe
    Sternenflotten-Admiral
    0 x
    197 Beiträge
    3 Hilfreiche Beiträge
    09. 12. 2010, 18:00

    Hi,

    ich hatte den Fehler auch mal kann mich aber gerade nicht daran erinnern in welcher Situation der Auftrat.

    Kannst du mal bissl Code Posten ich habe da eventuell 2 Ansätze.

    Wie sieht deine showAction aus?
    So etwa:

    1. public function showAction(Tx_yourext_Domain_Model_Test $product) {
    2. $this->view->assign('product', $product);
    3. }

    bzw. wie sieht der Link zu deiner show aus:
    1. <f:link.action action="show" controller="Product" arguments="{product : product}">Zur Einzelansicht</f:link.action>
    <

    und wie sieht deine show.html aus?

    1. <h1>{product.name}</h1>
    2. <div>{product.seriennumer} ...</div>

    Oder so ähnlich.

    Vielleicht hilft dir das ja.

    Gruß typonewbe

  • patricks patricks
    Sternenflotten-Admiral
    0 x
    206 Beiträge
    1 Hilfreiche Beiträge
    10. 12. 2010, 07:18

    Das ist alles ziemlich genau so wie ichs gemacht hab. Nur hab ich keine Listen-Ansicht aus der man das einzelne Produkt auswählt. Das wäre kein Problem ist.

    Ich möchte auf einer Seite ein CE einfügen dort ein einzelnes Produkt auswählen, dass dann auf der Seite angezeigt wird. Die Auswahl des einzelnen Produkts müsste also im BE stattfinden und genau da liegt das Problem, dass ich nicht weiß wie ich das machen kann.
    Ich hab jetzt immerhin rausgefunden wie man die Extension als CType ausgibt und nicht als List-Type. Nützt mir aber im Moment auch nicht viel. Da ich auch nicht weiß wie ich den CType konfigurieren kann.

  • trainerth trainerth
    R2-D2
    0 x
    108 Beiträge
    0 Hilfreiche Beiträge
    27. 02. 2011, 14:51

    Hi,

    gibts denn für das Problem eine Lösung?
    Hab das gleiche und steig da einfach nicht hinter...

    Was bedeutet denn die Meldung:

    [b]An error occurred while trying to call Tx_MyExt_Controller_Controller->showAction(). Error: Required property 'dingens' does not exist.[/b]

    Ich find da nix drüber ;( dreh am Rad.

    Danke

  • mmecker mmecker
    Padawan
    0 x
    49 Beiträge
    0 Hilfreiche Beiträge
    12. 07. 2011, 00:43

    Eventuell hilft folgender Tipp:
    In der ext_localconf.php im Aufruf Tx_Extbase_Utility_Extension::configurePlugin() die Reihenfolge der Actions für das jeweilige Domainmodell ändern.
    Wenn "show" an erster Stelle steht, wird das als Default im Frontend angezeigt, findet aber ggf. kein valides Objekt zum Anzeigen. "list" ist da unproblematischer - falls Ihr den Extension Builder nutzt, am besten immer "list" als erste Aktion anlegen.

  • aimcom aimcom
    T3PO
    0 x
    29 Beiträge
    0 Hilfreiche Beiträge
    12. 07. 2011, 11:32

    Wenn ich das richtig verstanden habe, wählt nicht der Benutzer auf der Website aus, welches Produkt angezeigt werden soll (z. B. über eine Listen-Vorauswahl), sondern du möchtest es direkt im Backend in der Konfiguration des Plugins angeben, welches angezeigt wird.

    Um das zu lösen, würd ich dir empfehlen, per FlexForm eine entsprechende Auswahlliste in die Plugin-Konfiguration zu integrieren. Wenn du das FlexForm-Element z. B. "settings.productID" nennst, kannst du in deiner show-Methode über $this->settings['productID'] auf die ausgewählte ID zugreifen und dann eine entsprechende find-Methode deines Repository aufrufen.

    In der Beispiel-Extension blog_example wird bereits ein FlexForm eingebunden. Falls du damit nicht weiterkommst, kann ich bei Bedarf auch eine kurze Lösung posten.

  • armin112 armin112
    TYPO3-Anwärter
    0 x
    4 Beiträge
    0 Hilfreiche Beiträge
    09. 10. 2011, 18:40

    [quote="mmecker"]
    Eventuell hilft folgender Tipp:
    In der ext_localconf.php im Aufruf Tx_Extbase_Utility_Extension::configurePlugin() die Reihenfolge der Actions für das jeweilige Domainmodell ändern.
    Wenn "show" an erster Stelle steht, wird das als Default im Frontend angezeigt, findet aber ggf. kein valides Objekt zum Anzeigen. "list" ist da unproblematischer - falls Ihr den Extension Builder nutzt, am besten immer "list" als erste Aktion anlegen.
    [/quote]

    Das war's bei mir! Tx!

  • 1