Счетчик элементов маски в столбце TYPO3

В элементе маски TYPO3 мне нужно знать позицию элемента в текущем столбце. Как и любой итератор, который вы использовали бы в шаблоне, но на уровне столбца.

Я знаю, что с синтаксисом {cObject}.renderObj.{maskElement}.settings.xyz я могу передавать значения в шаблон жидкости элемента маски. Но очевидно, что TypoScript, который идет в settings, не отображается, это правильно?

Я пробовал это:

pageteasers < styles.content.get
pageteasers.select.where = colPos=2
pageteasers {
    renderObj.mask_teaser.settings {
        set_number = LOAD_REGISTER
        set_number {
            counter2.cObject = TEXT
            counter2.cObject.data = register:counter2
            counter2.cObject.wrap = |+1
            counter2.prioriCalc = intval
        }
        get_number = TEXT
        get_number = register:counter2
    }
}

Или проще

pageteasers < styles.content.get
pageteasers.select.where = colPos=2
pageteasers {
    renderObj.mask_teaser.settings {
        elementId = {cObj:parentRecordNumber}
    }
}

Это выведет строку {cObj:parentRecordNumber}.

Мои вопросы:

  • Есть ли другой путь к элементу маски из TS, кроме settings, где, возможно, отображаются объекты?
  • Как мне все же пронумеровать элементы в моем столбце ...?

person Urs    schedule 04.06.2021    source источник


Ответы (1)


Вам следует использовать переменные вместо настроек, поскольку они отображаются как объекты cObject и поэтому предлагают вам полностью развернутую панель инструментов stdWrap.

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

pageteasers < styles.content.get
pageteasers.select.where = colPos=2
pageteasers {
    renderObj.mask_teaser {
        variables {
            // count up elements
            // https://stackoverflow.com/questions/67844215/counter-for-mask-elements-in-a-typo3-column // <- Self-reference!
            elementCounter = TEXT
            elementCounter.value = {cObj:parentRecordNumber}
            elementCounter.insertData = 1
        }
    }
}
person Jo Hasenau    schedule 05.06.2021
comment
Спасибо и приятно знать, что «настройки» не отображаются! - Но я не уверен, что элемент маски примет переменные, поскольку я попробовал это сначала, и он их не увидел. Я сделал тот же код, что и выше, но с «переменными» вместо «настроек». Или для этого нужен другой синтаксис? - person Urs; 05.06.2021
comment
Плохо, variables работает как положено - person Urs; 06.06.2021
comment
Ага, дело в том, что ТАК заставляет вас ждать 7 часов, чтобы принять свой ответ. Если вы хотите, вы можете добавить рабочий код к своему ответу, и тогда я могу принять его с полным результатом! - person Urs; 07.06.2021
comment
Я почти уверен, что это работает и с предметами без маски, верно? Но как? У меня есть новостной плагин, который мне нужно кормить с теми же переменными в одном столбце. Но я не могу понять, как правильно его адресовать, чтобы он получал переменные ... это тоже через renderObj.{element}? Вы можете мне помочь, что добавить туда @ jo-hasenau? - person Urs; 15.07.2021
comment
Как насчет plugin.tx_news? - person Jo Hasenau; 15.07.2021
comment
Вы имеете в виду pageteasers.renderObj.plugin.tx_news.variables.myVar = 1? Это не работает - person Urs; 15.07.2021
comment
Конечно! Это здесь: stackoverflow.com/questions/68403392 - person Urs; 18.07.2021