В TYPO3 встроенная сортировка элементов работает некорректно

После этого сообщения Конфигурация внешнего вида встроенного элемента TYPO3 частично не работает Я смог добиться того, чего хотел. Проблема в том, что когда я перетаскиваю ребенка вверх или вниз, сортировка не работает.

Изображение:

введите здесь описание изображения

Теперь, когда я перемещаю детей в другое положение (либо со стрелками, либо со знаком меню бургера), новый порядок будет сохранен в бэкэнде, но во внешнем интерфейсе порядок не изменится. Я предполагаю, что это как-то связано с базой данных, но на данный момент я не знаю, что делать.

РЕДАКТИРОВАТЬ: В моей базе данных у меня есть сортировка столбцов, и для каждого элемента разные. Как я могу использовать этот столбец для упорядочивания элементов?

Пример кода:

<f:for each="{myContent}" as="content">
      <f:format.html>{content.data.content_text}</f:format.html>
</f:for>

Любые идеи?

Заранее спасибо,


person Aristeidis Karavas    schedule 29.11.2018    source источник


Ответы (2)


когда вы выбираете встроенные элементы, вам необходимо учитывать столбец сортировки. это произойдет в первую очередь в запросе БД, который, вероятно, выполняется в вашем контроллере домена. возможно, вам нужно пересмотреть некоторые методы.

Если вы используете встроенные функции TYPO3, вам необходимо соответствующим образом настроить отношения.
Изучите manual Я нахожу значение foreign_sortby, в котором вы объявляете поле сортировки. возможно, вы просто используете поле по умолчанию sorting.

person Bernd Wilke πφ    schedule 29.11.2018
comment
У меня нет контроллера домена. У меня есть столбец сортировки в моей базе данных, определенный в tca - person Aristeidis Karavas; 29.11.2018
comment
ответ усилен. - person Bernd Wilke πφ; 29.11.2018
comment
это означает, что мне нужно будет добавить столбцы с именем foreign_sortby, чтобы можно было сохранить новые значения сортировки, верно? - person Aristeidis Karavas; 29.11.2018
comment
нет. вам нужно объявить параметр foreign_sortby в вашем TCA (я предполагаю, что это из упомянутого вопроса SO) со значением sorting (которое является именем столбца по умолчанию для сортировки в TYPO3), и, конечно, вам нужен этот столбец в таблице, на которую указывает ссылка. Взгляните на связанное руководство. - person Bernd Wilke πφ; 29.11.2018

Я наконец нашел проблему. Поскольку у меня нет модели предметной области, я использовал dataProccessing, чтобы получить свои объекты. Итак, все, что мне нужно было сделать, это добавить строку, которая была orderBy = sorting. Итак, код выглядит так:

myElement < lib.contentElement
myElement {
    templateRootPaths.10 = {$Private}Templates/ContentElements/
    partialRootPaths.10 = {$Private}Partials/ContentElements/
    templateName = myElement.html
    dataProcessing {
        330 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
        330 {
            table = myElement_table
            pidInList = this
            where.field = uid 
            where.dataWrap = tt_content = |
            orderBy = sorting
            as = myElement
            dataProcessing {
                370 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
                370 {
                    references.fieldName = image
                    as = images
                }
            }
        }
    }
}

Задача решена.

Большое спасибо @Bernd Wilke πφ за попытку помочь мне буквально со всеми моими вопросами о TYPO3.

person Aristeidis Karavas    schedule 13.12.2018