Как отсортировать ЗАПИСИ по полю - PullRequest
0 голосов
/ 11 октября 2019

У меня есть страница, на которой я выводил тизеры из определенных записей (не страниц). Я понял это с опечаткой, которую вы найдете ниже. Этот скрипт получает параметры через текучий скрипт:

<f:for each="{data.tx_mask_cnt_nwsdat_teaser_rec}" as="data_item">
 <f:cObject typoscriptObjectPath="lib.dateteaser-man-x" data="{uid: data_item.uid, recid: data_item.records}"/>
</f:for>

Переменная «recid» содержит идентификаторы из записей, из которых должны генерироваться тизеры. Это работает, как и ожидалось - записи будут отсортированы в порядке идентификаторов в «recid», но теперь я хочу отсортировать записи по полю «tx_mask_cnt_textpic_uni_date» - как мне этого добиться?

lib.dateteaser-man-x {

    wrap = |

    10 = RECORDS
    10 {

        source.data = field:recid  // --> comma separated list of record-ids

        dontCheckPid = 1
        tables = tt_content

        conf.tt_content = COA
        conf.tt_content {

            wrap = <div class="teaserbox-item-wrapper">|</div>

            # Datum / Symbol
            10 = CASE
            10 {
                key.field = tx_mask_cnt_textpic_uni_teaserlabel

                1 = COA
                1 {

                    wrap = <div class="tb-labelfield">|</div>

                    10 = TEXT
                    10 {
                        wrap = <span class="tb-date day">|</span>
                        field = tx_mask_cnt_textpic_uni_date  // --> field to sort by (format YYY-MM-DD)
                        strtotime = 1
                        strftime = %e
                    }

                    20 = TEXT
                    20 {
                        wrap = <span class="tb-date monthyear">|</span>
                        field = tx_mask_cnt_textpic_uni_date
                        strtotime = 1
                        strftime = %b. %y
                    }

                }

                2 = TEXT
                2 {
                    wrap = <div class="tb-labelfield">|</div>
                    value = <span class="tb-info"><i data-feather="info"></i></span>
                }

                default = TEXT
                default {
                    wrap = <div class="tb-labelfield">|</div>
                    value = <span class="tb-info"><i data-feather="info"></i></span>
                }

            }

            # Text
            30 = TEXT
            30 {
                wrap = <div class="tb-content">|</div>
                field = tx_mask_cnt_textpic_uni_teasertxt
            }

        }

    }

} 

Заранее благодарю за любую помощь !!

Typo3 V.9.5.8

1 Ответ

0 голосов
/ 14 октября 2019

Вы должны пойти на CONTENT вместо RECORDS в этом случае

https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/ContentObjects/Content/Index.html

CONTENT использует select, и это снова даст вам uidInList и orderBy

https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/Functions/Select.html#select

...