PDA

Просмотр полной версии : Вывод Меню разделов (записей, включенных в меню) в 4.7


gabdullin
22.05.2012, 22:18
Добрый вечер!
После обновления TYPO3 до версии 4.7 страницы на которых используется элемент типа "Меню/Карта сайта" и тип меню "Меню разделов (записей, включенных в меню)" выводятся в искаженном виде.
Подробности искажения описать сложно, если только фразой: "Перее...сь все в доме Облонских".
Собственно сам элемент "Карта сайта" не выводится, очередность вывода элементов страницы нарушена, элементы выводятся повторно несколько раз в арифметической прогрессии. Где-то схаваны заголовки элементов.
Наглядно это можно увидеть, например здесь: https://elarum.ru/info/standards/tu-2452-029-05766801-94/. Еще интереснее становится, когда смотришь HTML...
Поисковики конечно активизировались, но людям читать неудобно!
Кто-то уже сталкивался с подобной ситуацией?

P.S. При отключении элемента типа "Меню/Карта сайта" очередность вывода элементов страницы и ее HTML-форматирование восстанавливаются. Для сравнения: https://elarum.ru/info/standards/tu-2483-077-05766801-98/
P.P.S. Про второй сервис пак я историю слышал...

dmartynenko
23.05.2012, 14:21
За генерацию контента отвечает TS код из экста css_styled_content. Возможно чего-то там намудрили разработчики в стремлении к "HTML5".

Кстати вышел TYPO3 4.7.1 с баг фиксами.

gabdullin
23.05.2012, 17:38
Кстати вышел TYPO3 4.7.1 с баг фиксами.
Вчера еще поставил, не исправлен этот баг.

gabdullin
23.05.2012, 17:52
За генерацию контента отвечает TS код из экста css_styled_content. Возможно чего-то там намудрили разработчики в стремлении к "HTML5".
И правда подключил статический шаблон от 4.6 - выводится как должно быть, попробую в шаблоне 4.7 поковыряться.

gabdullin
23.05.2012, 18:54
Так было в 4.6

# "Section index (pagecontent w/Index checked - liststyle)"
3 < styles.content.get
3 {
wrap = <ul class="csc-menu csc-menu-3">|</ul>
select.andWhere = sectionIndex!=0
select.pidInList.override.field = pages
renderObj = TEXT
renderObj {
fieldRequired = header
trim = 1
field = header
htmlSpecialChars = 1
noBlur = 1
wrap = <li class="csc-section">|</li>
typolink.parameter.field = pid
typolink.section.field = uid
}
}

Так стало в 4.7

# "Section index (pagecontent w/Index checked - liststyle)"
3 < .default
3 {
special {
value {
override {
data = page:uid
if {
isFalse.field = pages
}
}
}
}
stdWrap {
outerWrap = <ul class="csc-menu csc-menu-3">|</ul>
}
1 = TMENU
1 {
sectionIndex = 1
sectionIndex.type = header
NO.wrapItemAndSub = <li class="csc-section">|</li>
}
}

Немного разные подходы к формированию списка меню. Сходу не получается врубиться.

-=UncleByte=-
23.05.2012, 21:27
Скорее всего дело вот в этой строке - sectionIndex.type = header, т.е. перебор идет только по элементам с заголовками, а не по всем элементам и строится не текстовый объект из ссылок на все элементы страницы, но текстовое меню элементов с заголовками.
В TSRef про этот самый sectionIndex.type написано что он может принимать значения либо all, либо header - в вашем случае, скорее всего, поможет поставить его в all.

-=UncleByte=-
23.05.2012, 21:53
Хотя, может я и ошибся и проблема кроется в условии для select 20 = CONTENT
20 {
table = tt_content
select {
pidInList = this
orderBy = sorting
andWhere {
dataWrap = sorting>{field:sorting}
}
languageField = sys_language_uid
max = 1
}

dmartynenko
24.05.2012, 15:29
Немного разные подходы к формированию списка меню. Сходу не получается врубиться.

До 4.6 делалась выборка страниц из БД через TS.CONTENT.

В 4.7 судя по всему используется связка HMENU/TMENU. Что по идее более логично - ведь формируется именно меню.

Может в 4.7 HMENU/TMENU кривое?