Typoscript изменить поле: переменная - PullRequest
0 голосов
/ 14 января 2020

У меня есть такой набор текста:

tt_content.gridelements_pi1.20.10.setup {

    3cols.outerWrap = <div>|</div>
    3cols.outerWrap.override.insertData = 1
    3cols.outerWrap.override = <div id="{field:tx_cewrap_id_input}" class="{field:tx_cewrap_class_input} {field:tx_cewrap_class_select}">|</div>
    3cols.outerWrap.override.if.isTrue.field = tx_cewrap_active
}

, который гарантирует, что обертка сделана вокруг определенного элемента. Следующее html генерируется в качестве примера:

<div id="" class="full-box full-box-features container pt-75,pb-75"></div>

Как вы можете видеть, есть разделенная запятыми строка, вставленная как "tx_cewrap_class_select". С {field:tx_cewrap_class_select} part:

pt-75,pb-75

Но я хочу, чтобы запятая была символом пробела, чтобы классы работали в html

Теперь я знаю о split option

Но как мне исправить код, просто нужно как-то убрать запятую! Вот и все:)

Заранее спасибо за любой ответ, который я могу использовать.

1 Ответ

1 голос
/ 15 января 2020

Вы можете разделить запятыми и объединить с пробелом, но в этом случае может быть проще заменить запятую на пробел:

10 = TEXT
10.replacement {
    1 {
       search = ,
       replace.char = 32
    }
}

А здесь решение с разделением. должно быть очевидно, почему бы не использовать:

10 = TEXT
10.split {
    token = ,
    cObjNum = 1 || 2
    1.current = 1
    2.current = 1
    2.noTrimWrap = | ||
}

Подсказка :
на TEXT Вы можете использовать функции stdWrap немедленно,
в другом контексте вам может понадобиться явный .stdWrap:

10.stdWrap.replacement {

10.stdWrap.split {

Либо вы подготавливаете свои значения в регистр для последующего использования, либо вы разделяете значение переопределения в COA. Вы даже можете использовать замену для всего значения переопределения, если вы уверены, что никакая другая запятая может не понадобиться.

COA-Solution :
(не забудьте noTrimWrap для 20 в противном случае классы добавляются без пробелов)

override.cObject = COA
override.cObject {
    10 = TEXT
    10.value <div id="{field:tx_cewrap_id_input}" class="{field:tx_cewrap_class_input} 
    10.insertData = 1

    20 = TEXT
    20.field = tx_cewrap_class_select
    20.replacement {
        1 {
           search = ,
           replace.char = 32
        }
        noTrimWrap= | ||
    }

    30 = TEXT
    30.value = ">|</div>
}
...