[Frage] Frontend-Sortierung von Child-Objekten einer MM-Relation

  • lukesn lukesn
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    06. 05. 2014, 09:00

    Guten Morgen,

    ich realisiere gerade mein erstes Kundenprojekt mit der neuen TYPO3-Version.
    Ich habe eine eigene Extension erstellt, diese beinhaltet Kategorien und Personen, die den Kategorien zugeteilt werden können. Dies habe ich mittels einer MM-Relation gelöst so dass man im Datensatz der Kategorie die Personen bequem auswählen kann.

    Im Frontend soll das ganze dann so aussehen:
    # TITEL KATEGORIE 01
    - Name Person aus Kategorie 01
    - Name Person aus Kategorie 01
    - Name Person aus Kategorie 01
    # TITEL KATEGORIE 02
    - Name Person aus Kategorie 02
    - Name Person aus Kategorie 02

    ... und so weiter.

    Kategorien und Personen können im Backend manuell sortiert werden.
    Diese Sortierung soll natürlich auch für das Frontend übernommen werden.

    Mein erster Schritt war es, folgenden Code in das Repository der Kategorien einzusetzen:

    1. protected $defaultOrderings = array(
    2. 'sorting' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
    3. );

    Damit funktioniert die Sortierung der Kategorien auch einwandfrei.
    Wie schaffe ich es nun, dass auch die Personen sortiert werden?

    Hat diesen Fall schon mal jemand gehabt und könnte mir Einblick in seinen Code gewähren?

    Vielen Dank und Gruß,
    Lukas


  • 1
  • lukesn lukesn
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    06. 05. 2014, 09:19

    Ich bin gerade auf folgende Seite gestoßen:
    [url]http://www.noelboss.com/2012/11/apply-sorting-for-extbase-objectstorage/[/url]

    Dort wird im Model des Parent-Objects auf das Repository des Child-Objects zugegriffen und die Sortierung dort durchgeführt. Ich bin mir nur nicht sicher, wie der Titel vom Repository für den Befehl t3lib_div::makeInstance lauten muss.

    Ich habe geschrieben:

    1. /**
    2.  * Returns the persons
    3.  *
    4.  * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\SscTeam\Domain\Model\Person> $persons
    5.  */
    6. public function getPersons() {
    7. #return $this->persons;
    8. $personRepository = t3lib_div::makeInstance('PersonRepository');
    9. return $personRepository->findByCategory($this->getUid());
    10. }

    Mit

    1. /**
    2.  * Returns the persons
    3.  *
    4.  * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\SscTeam\Domain\Model\Person> $persons
    5.  */
    6. public function getPersons() {
    7. #return $this->persons;
    8. $personRepository = t3lib_div::makeInstance('Tx_SscTeam_Domain_Repository_PersonRepository');
    9. return $personRepository->findByCategory($this->getUid());
    10. }

    funktioniert es leider auch nicht.

    Mein Repository sieht so aus:

    1. <?php
    2. namespace TYPO3\SscTeam\Domain\Repository;
    3.  
    4. /**
    5.  * The repository for Persons
    6.  */
    7. class PersonRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
    8. public function findByCategory() {
    9. return 'ThisIsATest';
    10. }
    11. }

    Sieht jemand meinen Fehler?

  • serverTimeout serverTim...
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    21. 09. 2014, 15:48

    Habe das gleiche Problem: Ich iterire im Fluid über mehrere Objekte bei welchen die Sortierung funktioniert, bei den Propertie Objekte (Unterobjekten) ist das nicht der Fall.

    Hast du das Ganze schon lösen können?

  • 1