Typoscript - одновременное разделение мультимедиа и подписи к изображению

Я сделал плагин, в котором я храню много изображений в поле «медиа» и столько же подписей в поле «imagecaption».

Теперь я хочу отобразить это так:

image1.png
caption 1
image2.png
caption 2
image3.png
caption 3

Вот как я пытался это сделать, но это не работает:

plugin.tx_myplugin_pi1 = COA
plugin.tx_myplugin_pi1{
    10 = TEXT
    10.field = header
    10.wrap = <h1>|</h1>

    20 = COA
    20{
        10 = TEXT
        10{
            field = media
            split{
                token = ,
                cObjNum = 1
                1.current = 1
            }
        }

        20 = TEXT
        20{
            field = imagecaption
            split{
                token.char = 10
                cObjNum = 1
                1.current = 1
            }
        }
    }
}

Но на самом деле это не работает, так как сначала отображаются все имена файлов, а затем заголовок.

Как я мог это сделать?


person Enrique Moreno Tent    schedule 12.03.2012    source источник


Ответы (3)


Split — это функция, которая возвращает все элементы. В пределах 20.10 вы получаете содержимое изображения поля, разделенное новой строкой, т.е. и после этого вы получаете содержимое 20.20 с подписью изображения.

Что вам нужно сделать (не проверено):

    10 = TEXT
    10{
        field = media
        split{
            token = ,
            cObjNum = 1
            1.current = 1
            # for each image, add the imagecaption
            1.append = TEXT
            1.append {
               field = imagecaption
               # split saves the index in REGISTER:SPLIT_COUNT
               listNum.stdWrap.data = REGISTER:SPLIT_COUNT
               listNum.splitChar = 10
            }
        }
    }
person maholtz    schedule 14.03.2012
comment
Выглядит почти так, как я хочу! Но splitchar.char = 10 ложно. Правильная команда splitchar = 10. И строка listNum.data не работает: S - person Enrique Moreno Tent; 15.03.2012
comment
Догадаться! Его listNum.stdWrap.data = REGISTER:SPLIT_COUNT!! Спасибо!!!! - person Enrique Moreno Tent; 15.03.2012
comment
Что означает cObjNum = 1 и 1.current = 1? - person Enrique Moreno Tent; 15.03.2012
comment
cObjNum = 1 || 2 варианта разделения: первый будет рендериться с определением 1, второй - с определением 2. И там можно использовать stdWrap, что означает выбирать разные рендеры в зависимости от флага. Ф.э. вы можете использовать cObjNum.field = section_frame (или cObjNum.stdWrap.field — не проверено;), а затем определить специальный рендеринг для каждого рендеринга. - person maholtz; 16.03.2012

Я не думаю, что токен =\n правильный. Вам нужно правильно использовать .char = 10. Также вам нужно будет как-то вложить свой TS, потому что текущее решение обрабатывает поля одно за другим.

person pgampe    schedule 13.03.2012
comment
В яблочко. Это как-то я не знаю. - person Enrique Moreno Tent; 13.03.2012

Я сейчас не помню, но я написал расширение, которое добавляет рамку к изображению и подписи. Это может решить вашу проблему с подписями: http://typo3.org/extensions/repository/view/ch_imgtext_renderengine/current/.

person Gigamegs    schedule 12.03.2012
comment
Это просто упрощенная версия моей проблемы. Я не хочу использовать это так. - person Enrique Moreno Tent; 12.03.2012