[Frage] Frage zur Verlinkung

  • Sturmi Sturmi
    Sternenflotten-Admiral
    0 x
    213 Beiträge
    0 Hilfreiche Beiträge
    29. 01. 2016, 15:37

    Hallo zusammen,

    ich habe mir gerade mit Hilfe des Extension Builder meine erste Extension zusammengeklickt.
    Diese Extension soll einmal Kategorien anzeigen (dafür habe ich ein entsprechendes Model erstellt). Zu den Kategorien sollen Datensätze zugewiesen werden, die zum Testen einfach nur einen Titel und einen Beschreibungstext haben.

    Meine Frage wäre, wie kann ich im Frontend die Verlinkung so hinbekommen, wenn ich auf eine Kategorie klicke, dass mir die Datensätze angezeigt werden, die dieser Kategorie zugewiesen sind?

    Oder gibt es vielleicht auch ein gutes Tutorial dazu, was mir dies verständlich rüberbringt?

    Ich bedanke mich schon einmal im vorraus.

    [URL=https://www.andre-lanius.net]TYPO3 Freelancer[/URL]

  • Hilfreichster Beitrag

  • harald1972 harald197...
    Sternenflotten-Admiral
    1 x
    198 Beiträge
    13 Hilfreiche Beiträge
    05. 02. 2016, 13:51 - Hilfreichster Beitrag

    ich habe mir gerade mit Hilfe des Extension Builder meine erste Extension zusammengeklickt.
    Diese Extension soll einmal Kategorien anzeigen (dafür habe ich ein entsprechendes Model erstellt).

    Welche Klassen sind in deinem Model?
    Nur "Kategorie"?

    Zu den Kategorien sollen Datensätze zugewiesen werden, die zum Testen einfach nur einen Titel und einen Beschreibungstext haben.

    Hat die Kategorie diese Titel und Beschreibungstext?
    Oder gibt es in den Kategorien einen Container mit "Datensätzen"?

    Meine Frage wäre, wie kann ich im Frontend die Verlinkung so hinbekommen, wenn ich auf eine Kategorie klicke, dass mir die Datensätze angezeigt werden, die dieser Kategorie zugewiesen sind?

    Der gefragte Link sollte die CategoryController->showAction() aufrufen (oder im ungünstigem Fall eines deutschsprachigen Models: KategorieController->showAction() )
    ...oder eventuell eine listAction(),
    dazu hast du zuwenig Infos dagelassen.

    Oder gibt es vielleicht auch ein gutes Tutorial dazu, was mir dies verständlich rüberbringt?

    Mit Sicherheit. Ich kann dir allerdings keins empfehlen, welches auch auf die aktuelle Version eingeht. Ich hab damals das da benutzt:
    https://www.mittwald.de/service/veroeffentlichungen/typo3-dokumentation
    (runterscrollen zum Download)

    Wer suchet, der findet... probier's vielleicht mal damit:
    https://docs.typo3.org/typo3cms/ExtbaseGuide/Extbase/FirstExtbaseExtension.html

    Dir sollte das Prinzip von MVC klar sein und du solltest PHP-Verständnis und HTML-Kenntnisse mitbringen.

    Gruß


  • 1
  • harald1972 harald197...
    Sternenflotten-Admiral
    1 x
    198 Beiträge
    13 Hilfreiche Beiträge
    05. 02. 2016, 13:51

    ich habe mir gerade mit Hilfe des Extension Builder meine erste Extension zusammengeklickt.
    Diese Extension soll einmal Kategorien anzeigen (dafür habe ich ein entsprechendes Model erstellt).

    Welche Klassen sind in deinem Model?
    Nur "Kategorie"?

    Zu den Kategorien sollen Datensätze zugewiesen werden, die zum Testen einfach nur einen Titel und einen Beschreibungstext haben.

    Hat die Kategorie diese Titel und Beschreibungstext?
    Oder gibt es in den Kategorien einen Container mit "Datensätzen"?

    Meine Frage wäre, wie kann ich im Frontend die Verlinkung so hinbekommen, wenn ich auf eine Kategorie klicke, dass mir die Datensätze angezeigt werden, die dieser Kategorie zugewiesen sind?

    Der gefragte Link sollte die CategoryController->showAction() aufrufen (oder im ungünstigem Fall eines deutschsprachigen Models: KategorieController->showAction() )
    ...oder eventuell eine listAction(),
    dazu hast du zuwenig Infos dagelassen.

    Oder gibt es vielleicht auch ein gutes Tutorial dazu, was mir dies verständlich rüberbringt?

    Mit Sicherheit. Ich kann dir allerdings keins empfehlen, welches auch auf die aktuelle Version eingeht. Ich hab damals das da benutzt:
    https://www.mittwald.de/service/veroeffentlichungen/typo3-dokumentation
    (runterscrollen zum Download)

    Wer suchet, der findet... probier's vielleicht mal damit:
    https://docs.typo3.org/typo3cms/ExtbaseGuide/Extbase/FirstExtbaseExtension.html

    Dir sollte das Prinzip von MVC klar sein und du solltest PHP-Verständnis und HTML-Kenntnisse mitbringen.

    Gruß

  • harald1972 harald197...
    Sternenflotten-Admiral
    1 x
    198 Beiträge
    13 Hilfreiche Beiträge
    05. 02. 2016, 17:48

    Nachtrag zu deiner Frage...

    ich gehe jetzt mal davon aus, daß CategoryController->listAction() deine Default-Action ist.
    ...Ob das der Fall ist, siehst du in der ext_localconf.php:
    Die Methode configurePlugin(...) hat 4 Parameter, der dritte (ein Array) hat als ersten Key (vor dem Pfeil) den Controller, die erste Action hinter dem Pfeil ist diese DefaultAction.
    und diese wird bei Start der Extension geladen.
    Das bedeutet dann, was unter Resource\Private\Templates\Category\List.html steht, wird gerendert.

    Der ExtBuilder erzeugt afaik HTML-tables
    Ein <td> dieser Tabelle enthält dann etwas derartiges:

    1. <f:link.action action="show" arguments="{category:category}"> {category.name} </f:link.action>

    Der hiermit erzeugte Link trägt den Namen dieser Category, verweist auf CategoryController->showAction() und übergibt die category als Argument.
    Diese showAction() wiederum rendert dann das, was in Resource\Private\Templates\Category\Show.html steht.

    Der ExtBuilder packt da alles rein, was er kann und weiß, sprich: von dem Standardzeugs alles was du ihm angegeben hast - manche Sachen sind etwas komplizierter.
    Sollte die gewünschte Property nicht dabei sein, schreibst du sie eben in die Show.html oder in die entsprechende Properties.html.
    Handelt es sich allerdings um keine native Property, sondern um eine Relation, wird es geringfügig komplizierter.

    Wie ich deine Frage einschätze, klingt das allerdings eher danach, daß du mal ein Tutorium durchschauen solltest, weil was ich hier schreib, ist alles Grundlage.

  • Sturmi Sturmi
    Sternenflotten-Admiral
    0 x
    213 Beiträge
    0 Hilfreiche Beiträge
    07. 02. 2016, 14:16

    Hallo und danke für deine ausführliche Antwort. :-)

    Hier ist mal ein Bild vom Extension Builder, damit du ungefähr siehst, wie ich das meine. ;-)
    [img]http://www.seo-ge.de/fileadmin/extbase-Models.png[/img]

    Es handelt sich natürlich um Relationen. Im Backend kann ich bei den Datensätzen den Events eine Kategorie zuweisen. Im Frontend soll es so funktionieren, dass die Kategorien beim aufruf angezeigt werden und wenn ich auf eine klicke, sollen die entsprechend zugewiesenen Datensätze angezeigt werden. :-)

    Diese Extension ist für mich als Übungsaufgabe zu verstehen ...

    [URL=https://www.andre-lanius.net]TYPO3 Freelancer[/URL]

  • harald1972 harald197...
    Sternenflotten-Admiral
    0 x
    198 Beiträge
    13 Hilfreiche Beiträge
    07. 02. 2016, 15:41

    1.) Sind die Categories Entitäten oder ValueObjects?

    Für gewöhnlich entstehen Kategorien nicht einfach so und ändern ihren Wert auch nicht, sondern sind allgemein und auf Dauer gültige Objekte, also ValueObjects.

    kleiner Tipp am Rande: Mit "categoryToEvent" gewinnst du nichts. KISS: einfach nur "category"

    Du willst also die listAction des CategoryController aufrufen (eventuell als defaultAction s.o.)
    Diese rendert dein Resource\Private\Templates\Category\List.html
    Dort gehst du per <f:for each={"categories"} as="category"> durch und listest diese auf
    Diese Liste enthält Links (s.o.), die dann am besten zur EventController->listAction() führen

    1. <f:link.action action="list" controller="Category" arguments="{category:category}"> {category.name} </f:link.action>

    Das Gerüst dazu sollte dir der ExtBuilder erstellt haben.

    Sollte dir das etwas unverständlich erscheinen, empfehle ich dir ein Tutorium anzuschauen (und machen). Wenn's dann immer noch hapert, bin ich gern wieder da

    Gruß
    Harald

  • 1