TYPO3: Използване на Page-Constants в HMENU / TMENU

на шаблон на страница задавам константа, като напр

yl.page.backgroundColor = #ff0000

Сега, има ли начин за достъп до BackgroundColor-Value на елемент от менюто, който се изобразява от TMENU? Мислех донякъде така:

lib.mainNavigation.1.NO.wrapItemAndSub = <li style="background-color: {$record.yl.page.backgroundColor}">|</li>

Използването само на {$yl.page.backgroundColor} ще изобрази, разбира се, цвета, зададен на текущата страница, а не този, който съм задал в съответния елемент от менюто...

Препратката към getText за съжаление дори не съдържа думата "Константа".


person Lukx    schedule 26.10.2011    source източник


Отговори (1)


Разбирам какво се опитвате да направите, но това не е начинът, по който работи TypoScript. Наистина данните от текущата страница се използват, когато {$yl.page.backgroundColor}.

За да постигнете това, което се опитвате, ще трябва да измислите малко мръсотия. Предлагам ви да запазите цвета на фона си в едно от неизползваните полета на страниците (например субтитри, ако не използвате това). В противен случай можете, разбира се, също да добавите поле към таблицата на страниците и да го използвате вместо това.

Следващата стъпка е да заредите вашия цвят на фона (зададен в моя случай в полето "подзаглавие") във вашата обвивка с нещо като следното.

lib.mainNavigation.1.NO.wrapItemAndSub.dataWrap = <li style="background-color: {field:subtitle}">|</li>
person Sebs    schedule 26.10.2011
comment
Това наистина е възможно, бях опитал подобен начин (чрез дефиниране на персонализираното ми поле в TCA). Но преминавам към константи поради поведението му при естествено наследяване. Бих искал цветът на фона да бъде наследен... И всъщност не искам да имам както полето, така и константата излишно... - person Lukx; 26.10.2011
comment
Единственият начин да направите това с константи е, ако създадете отделен PHP скрипт, който изобразява целия шаблон на определената страница. Ако искате да използвате възможност за слайд, тогава има нещо подобно в TypoScript. Все пак ще трябва да използвате поле за база данни. данни = levelfield:-1,субтитри,слайд - person Sebs; 27.10.2011