IRRE und Sortierung
| Autor | Nachricht |
|---|---|
|
Verfasst am: 23. 09. 2011 [12:30]
|
|
|
Typo3Cuckoo
Themenersteller
Dabei seit: 18.05.2011
Beiträge: 184
|
Hi, Ich nutze in meiner Extbase Extension die IRRE Funktionalität. Tut soweit alles sehr gut! Jedoch hab ich ein Problem mit der Sortierung: Wie kann man die Child-Elemente automatisch nach einem bestimmten Feld sortieren? Konkreter Fall: die Child-Element haben ein Feld date_start nach dem die Einträge absteigend sortiert werden sollen. Im TCA der Child-Elemente hab ich hierfür folgendes eingetragen: PHP <?php $TCA['tx_myext_domain_model_child'] = array( 'ctrl' => array( [...] 'default_sortby' => 'ORDER BY date_start ASC', [...] ) ); ?> Z.B. trage ich drei Child-Elemente in folgender Reihenfolge über die IRRE-Funktion ein: 1. Child: date_start => 23.09.2011 2. Child: date_start => 01.01.2011 3. Child: date_start => 09.10.2011 Schau ich mir die Child-Elemente im Backend in der Listenansicht an, sind sie korrekt sortiert (d.h: 2.Child, 1.Child, 3.Child). Im Bearbeitungsformular des Parent-Elements stimmt die Sortierung jedoch nicht. Hier bleiben sie genau in der Reihenfolge stehen wie ich sie eingetragen habe. Die IRRE Einbindung im Parent-Element sieht wie folgt aus (TCA): PHP <?php $TCA['tx_myext_domain_model_parent']['columns']['children']['config'] = array( 'type' => 'inline', 'foreign_table' => 'tx_myext_domain_model_child', 'MM' => 'tx_myext_parent_child_mm', 'maxitems' => 9999, 'foreign_selector' => 'uid_foreign', 'appearance' => array( 'useSortable' => 1, 'useCombination' => 1, 'newRecordLinkPosition' => 'top' ) ); ?> Mir ist klar, dass ich mit useSortable = 1 die Sortierung auf "manuell" geschalten habe. Aber selbst wenn ich das auf "0" setze stimmt die Sortierung immer noch nicht. Im Frontend werden die Child-Elemente nach der IRRE-Sortierung ausgegeben (also genau so, wie sie im Bearbeitungsformular des Parent-Elements sortiert sind). Gibt es eine Möglichkeit, die manuelle Sortierung komplett zu deaktivieren die Child-Elemente über ein vorgegebenes Feld zu sortieren? Danke schon mal für eure Hilfe [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 23.09.2011 um 12:30.] |
|
Verfasst am: 23. 09. 2011 [15:32]
|
|
|
Julian.Hofmann
Dabei seit: 18.05.2007
Beiträge: 2073
|
Hallo. Für inline gibt es die Konfigurationsmöglichkeit eines foreign_default_sortby: TYPO3 Core API schrieb: If a fieldname for foreign_sortby is defined, then this is ignored. Otherwise this is used as the “ORDER BY” statement to sort the records in the table when listed. Viele Grüße Julian |
|
Verfasst am: 23. 09. 2011 [16:07]
|
|
|
Typo3Cuckoo
Themenersteller
Dabei seit: 18.05.2011
Beiträge: 184
|
Hi, danke für den Hinweis Hab folgendes versucht: PHP <?php $TCA['tx_myext_domain_model_parent']['columns']['children']['config'] = array( 'type' => 'inline', 'foreign_table' => 'tx_myext_domain_model_child', 'MM' => 'tx_myext_parent_child_mm', 'maxitems' => 9999, 'foreign_selector' => 'uid_foreign', 'foreign_default_sortby' => 'ORDER BY date_start ASC', // <--- HIER EINGEFÜGT 'appearance' => array( 'useSortable' => 1, 'useCombination' => 1, 'newRecordLinkPosition' => 'top' ) ); ?> Hat leider nichts gebracht In der MM-Tabelle sind die Felder sorting und sorting_foreign vorhanden. Müssen die vielleicht entfernt werden? [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 23.09.2011 um 16:07.] |
|
Verfasst am: 05. 12. 2011 [17:49]
|
|
|
bikila
Dabei seit: 05.12.2011
Beiträge: 1
|
Vielen Dank, genau das hab ich gesucht. Jetzt werden bei mir die Childs in der Extbase Extension in der richtigen Reihenfolge ausgegeben. @ Typo3Cuckoo - du hast einen kleinen fehler in deinem code... PHP <?php ... 'foreign_default_sortby' => 'ORDER BY date_start ASC', // hier muss ein feld angegeben werden, kein sql statement ... /* bei mir siehts jetzt so aus */ 'foreign_sortby' => 'sorting', 'foreign_default_sortby' => 'sorting', ?> LG ben |
|
Verfasst am: 06. 06. 2012 [09:13]
|
|
|
ToBe
Dabei seit: 22.06.2011
Beiträge: 30
|
bei mir geht es leider noch immer nicht... hier mal ein Auszug meiner TCA: PHP 'addresses' => array(
'exclude' => 0,
'label' => 'LLL:EXT:extkey/Resources/Private/Language/locallang_db.xml:tx_extkey_domain_model_coursesupplier.addresses',
'config' => array(
'type' => 'select',
'foreign_table' => 'tx_extkey_domain_model_address',
'MM' => 'tx_extkey_coursesupplier_address_mm',
'foreign_sortby' => 'a_name',
'foreign_default_sortby' => 'a_name',
'size' => 10,
'autoSizeMax' => 30,
'maxitems' => 9999,
'wizards' => array(
'_PADDING' => 1,
'_VERTICAL' => 1,
'edit' => array(
'type' => 'popup',
'title' => 'Edit',
'script' => 'wizard_edit.php',
'icon' => 'edit2.gif',
'popup_onlyOpenIfSelected' => 1,
'JSopenParams' => 'height=350,width=580,status=0,menubar=0,scrollbars=1',
),
'add' => Array(
'type' => 'script',
'title' => 'Create new',
'icon' => 'add.gif',
'params' => array(
'table' => 'tx_extkey_domain_model_address',
'pid' => '###CURRENT_PID###',
'setValue' => 'prepend'
),
'script' => 'wizard_add.php',
),
),
),
),ich hoffe ihr könnt mir weiterhelfen. LG Tobi |
|
Verfasst am: 16. 07. 2012 [13:58]
|
|
|
daniz78
Dabei seit: 20.09.2006
Beiträge: 224
|
Nimm mal die folgende Zeile raus, sonst wird das Feld im Formular nicht mehr angezeigt: PHP 'foreign_sortby' => 'a_name', Damit sollte die Sortierung klappen! Ciao Daniz daniz online marketing
http://www.daniz.de |
|
Verfasst am: 19. 07. 2012 [16:22]
|
|
|
ToBe
Dabei seit: 22.06.2011
Beiträge: 30
|
Danke für die Antwort! ...hatte es mittlerweile anders gelöst, aber werde mir das mal merken falls ich wieder mal auf das Problem stoße. LG Tobi |



