Как контролировать порядок записей для вывода - PullRequest
0 голосов
/ 21 октября 2019

У меня есть элемент содержимого MASK, в котором редактор может выбрать несколько записей для показа в виде тизеров (см. Скриншот ниже). Содержание должно быть выведено в порядке, выбранном редактором. Например, список UID будет выглядеть следующим образом: 19,18,20,17

В синтаксисе MySQL функция SELECT FIND_IN_SET () выполняет эту работу, я думаю - как я могу ее использовать (или аналогичную функцию) в выделенной части объекта CONTENT с опечаткой?

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

Screenshot

РЕДАКТИРОВАТЬ: Мой кодпример - не работает ни предложение orderBy, ни предложение where:

table = tt_content
select {
   pidInList = 11,12
   uidInList.data = field:recid  // the list with the wanted record IDs (19,18,20,17) transferred from the content object
   recursive = 2
   join = sys_category_record_mm ON sys_category_record_mm.uid_foreign = tt_content.uid

   orderBy.data = field:recid 
   orderBy.wrap = FIND_IN_SET(`tt_content`.`uid`,'|')

   where = tt_content.CType='mask_cnt_textpic_uni'

   #where.data = field:recid
   #where.wrap = FIND_IN_SET(`tt_content`.`uid`,'|')

   where.data = field:syscats
   where.intval = 1
   where.wrap = sys_category_record_mm.uid_local IN (|)

   max = 999
}

Ответы [ 2 ]

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

Благодаря примечанию от HerrZ я нашел решение - здесь мой настроенный скрипт:

10 = CONTENT
10 {
    table = tt_content
    select {
        pidInList = 11,12
        uidInList.data = field:recid
        recursive = 2
        selectFields.dataWrap = *,FIND_IN_SET(`uid`,'{field:recid}') AS reclist_sortby
        join = sys_category_record_mm ON sys_category_record_mm.uid_foreign = tt_content.uid
        where = tt_content.CType='mask_cnt_textpic_uni'
        where.data = field:syscats
        where.intval = 1
        where.wrap = sys_category_record_mm.uid_local IN (|)
        orderBy = reclist_sortby
    }

    renderObj = COA
    renderObj { ... }

}

Важное примечание: В синтаксисе FIND_IN_SET параметры должны быть заключены в кавычки, как показано впример - в противном случае Typo3 выдаст ошибку («Неверный счетчик параметров при вызове собственной функции FIND_IN_SET»).

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

это то, что вы хотите?

пример содержимого colPos:

lib.content.left = CONTENT
lib.content.left {
    table = tt_content
    select {
        orderBy = sorting
        where = {#colPos}=1
    }
}

ключ здесь - select.orderBy

...