#menu #constants #typo3 #typoscript
#меню #константы #опечатка3 #typoscript
Вопрос:
в шаблоне страницы я устанавливаю константу, например
yl.page.backgroundColor = #ff0000
Теперь, есть ли способ получить доступ к значению backgroundColor элемента меню, который отображается TMENU? Я думал примерно так:
lib.mainNavigation.1.NO.wrapItemAndSub = <li style="background-color: {$record.yl.page.backgroundColor}">|</li>
Использование только {$yl.page.backgroundColor}, конечно, отобразит цвет, установленный на текущей странице, а не тот, который я установил в соответствующем пункте меню…
Ссылка на getText, к сожалению, даже не содержит слова «Константа».
Ответ №1:
Я понимаю, что вы пытаетесь сделать, но это не так, как работает TypoScript. Действительно, данные с текущей страницы используются, когда {$yl.page.backgroundColor} .
Чтобы добиться того, чего вы пытаетесь, вам нужно будет придумать немного грязи. Я бы посоветовал вам сохранить цвет фона в одном из неиспользуемых полей страниц (например, субтитры, если вы не используете это). В противном случае вы, конечно, также можете добавить поле в таблицу страниц и использовать его вместо этого.
Следующим шагом будет загрузка вашего цвета фона (установленного в моем случае в поле «субтитры») в ваш перенос примерно следующим образом.
lib.mainNavigation.1.NO.wrapItemAndSub.dataWrap = <li style="background-color: {field:subtitle}">|</li>
Комментарии:
1. Это действительно возможно, я пробовал аналогичный способ (путем определения моего пользовательского поля в TCA). Но я переключаюсь на константы из-за его собственного поведения наследования. Я хотел бы, чтобы цвет фона был унаследован… И я действительно не хочу, чтобы и поле, и константа были избыточными…
2. Единственный способ сделать это с помощью констант — создать отдельный PHP-скрипт, который отображает весь шаблон указанной страницы. Если вы хотите использовать возможность слайда, то внутри TypoScript есть что-то подобное. Однако вам нужно будет использовать поле базы данных. данные = levelfield: -1,субтитры, слайд