Что ж, похоже, что foreign_default_sortby
еще не был реализован для extbase: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61487
Поскольку мое первое решение не работает должным образом (подробности см. В комментариях), я теперь сортирую массив событий с помощьюPHP usort
:
usort($events, function ($a, $b) {
if ($a->getStartDate() == $b->getStartDate()) {
return 0;
}
return ($a->getStartDate() > $b->getStartDate()) ? +1 : -1;
});
Старый не рабочий ответ
Мой временный решение заключается в использовании foreign_sortby
, но только для внешнего интерфейса, поскольку foreign_default_sortby
отлично работает в бэкэнде.
Семинар TCA
$seminarTca = [
// More TCA stuff; missing some array keys in this code
'events' => [
'exclude' => 1,
'label' => 'Veranstaltungen',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_myext_domain_model_event',
'foreign_field' => 'seminar',
'foreign_default_sortby' => 'start_date',
'maxitems' => 999,
'appearance' => [
'collapseAll' => true,
'expandSingle' => true,
'newRecordLinkAddTitle' => true,
'levelLinksPosition' => 'both',
'useSortable ' => false,
],
],
],
];
if (TYPO3_MODE === 'FE') {
$seminarTca['columns']['events']['config']['foreign_sortby'] = 'start_date';
}
return $seminarTca;