Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   TV не подцепляет хак для IE? (http://forum.typo3.ru/showthread.php?t=6673)

maaboo 14.08.2008 19:59

TV не подцепляет хак для IE?
 
Что-то мне сдаётся, что не работает конструкция

Код HTML:

<!--[if lte IE 6]>
<a href="#">Меню первого уровня
<table><tr><td>
<![endif]-->

после маппинга. Не вижу в исходниках загруженного через IE ни table, ни tr, ни td... Уж не контейнером ли надо маппить?

Вот код меню:

Код HTML:

        <div id="menu">
                <ul>
                        <li><a href="#" class="menu1-level1-no">Меню первого уровня</a>
                        <!--[if lte IE 6]>
                        <a href="#">Меню первого уровня
                        <table><tr><td>
                        <![endif]-->

                                <ul>
                                        <li><a href="#" class="menu1-level2-no">Меню второго уровня</a></li>
                                        <li><a href="#" class="menu1-level2-act">Меню второго уровня (активное)</a></li>
                                </ul>
                        <!--[if lte IE 6]>
                        </td></tr></table>
                        </a>
                        <![endif]-->


Valery Romanchev 14.08.2008 21:13

не надо таких вещей вставлять меппингом, все это гораздо удобнее вставлять через TS

maaboo 14.08.2008 21:15

Подскажи пожалуйста - как именно?

maaboo 14.08.2008 22:20

Так мне же не в header нужен? :-)

Чукча как раз писатель, правда начинающий. :-)

См. HTML код.

Pavel Antonov 14.08.2008 22:26

Цитата:

Сообщение от maaboo (Сообщение 20953)
Так мне же не в header нужен? :-)

Чукча как раз писатель, правда начинающий. :-)

См. HTML код.

Ай...не успел удалить раньше... видимо "я ЧУКЧА... тоже не читатель"
Приношу извинения...

Просто как-то не ассоциируются кондишены с чем то кроме вставки специальных CSS для IE.

Мне кажется, подход не правильный - нельзя делать код разный для браузеров в таком контексте.
Проблемы различия браузеров решаются в CSS.

maaboo 14.08.2008 22:41

А что делать в таком случае? В IE иначе меню не работает.

pomotom 15.08.2008 00:30

Использовать более новое меню, с каким-нибудь необтрузивным JS для старых версий браузеров. Благо есть.

-=UncleByte=- 15.08.2008 04:45

Под Typo3 4.1.х аналогичный код работает вполне. Единственное что если стоит что-то типа sourceopt, то надо отключить в нем удаление комментариев в коде страницы. А так-то меню вполне себе будет генерится, благо для шаблона используется опять же TS.
Под Typo3 4.2.x не пробовал, но думаю что будет работать аналогично.
Рабочий пример - http://opuscontract.ru/ - верхнее меню.

maaboo 15.08.2008 10:56

Вот ведь что интересно, нашёл, что парсер тайпы (даже не темплы) не способен проворачивать такие конструкции, об это писал сам великий и ужасный Дулепов:

http://support.typo3.org/projects/te...v-321008/p/27/

но не понятно к какой версии это относилось и сохраняется ли это правило для 4.2?

-=UncleByte=-, ай шайтан, как сделал, а? :-D sourceopt у меня не установлен, где ещё можно отключить удаление комментариев?

maaboo 15.08.2008 10:56

Цитата:

Сообщение от pomotom (Сообщение 20956)
Использовать более новое меню, с каким-нибудь необтрузивным JS для старых версий браузеров. Благо есть.

А может кто поделится? :-)

pomotom 15.08.2008 12:13

А что именно надо? просто выпадающее меню? под какие браузеры?

maaboo 15.08.2008 12:16

Простое текстовое выпадающее меню, очень желательно на чистом CSS, без использования JS.

IE5.5-7, FF1-3, Opera, Safari.

pomotom 15.08.2008 12:18

сюда поглядите, например http://www.stunicholls.com/menu/pro_dropdown_1.html А чистый CSS для старых ие - сами понимаете :)

maaboo 15.08.2008 12:22

Новые ИЕ тоже ничем не лучше.. :-( У меня меню в два ряда, так в ФФ выпадающий перекрывает нижележащие пункты, а в ИЕ7 - выпадающее работает, но закрывается вторым рядом... то-ли что-то с z-index, то ли с руками...

Ну дык можно же и на чистом CSS, вопрос в том - как удалось вставить conditional comments внутрь шаблона, и как это так промаппилось правильно...

-=UncleByte=- 15.08.2008 16:29

Цитата:

-=UncleByte=-, ай шайтан, как сделал, а? :-D
Ну вот так вот, собственно TS меню на http://opuscontract.ru/
Сделано именно так чтобы исключить некоторые страницы в принципе и у одной не показывать подпункты в выпадающем меню, т.к. их может быть очень много.
Сам принцип взяты с cssplay
Код:

lib.menu01sp = COA
lib.menu01sp {
10 = HMENU
10.excludeUidList = 8,5,6
10.1 = TMENU
10.1 {
maxItems = 5
expAll = 1
NO.linkWrap = <li class="tmenu">|</li>
IFSUB = 1
IFSUB {
wrapItemAndSub = <li class="tmenu">|<!--<![endif]--></li>
stdWrap.wrap =  | <!--[if IE 7]><!-->
linkWrap = | <!--<![endif]-->
}
}
10.2 = TMENU
10.2 {
wrap = <!--[if lte IE 6]><table><tr><td><![endif]--><ul>|</ul><!--[if lte IE 6]></td></tr></table></a><![endif]-->
NO {
linkWrap =  <li>|</li>
maxItems = 5
}
}
20 = TEXT
20.value = Референции
20.typolink.parameter = 8
20.wrap = <li class="tmenu">|</li>
}


maaboo 15.08.2008 17:01

У меня вот такой код:

Код:


lib.menu_1 = HMENU

lib.menu_1.1 = TMENU
lib.menu_1.1 {
  expAll = 1
  wrap = <UL> | </UL>
  NO.wrapItemAndSub = <LI class="menu1-level1-no"> | </LI>
  ACT = 1
  ACT.wrapItemAndSub = <LI class="menu1-level1-act"> | </LI>
}

lib.menu_1.2 = TMENU
lib.menu_1.2 {
  expAll = 1
  wrap = <UL> | </UL>
  NO.wrapItemAndSub = <LI class="menu1-level2-no"> | </LI>
  ACT = 1
  ACT.wrapItemAndSub = <LI class="menu1-level2-act"> | </LI>
}

То есть написать надо так:

Код:

lib.menu_1 = COA
lib.menu_1 {
10 = HMENU
10.1 = TMENU
{
  expAll = 1
...

А дальше? Какие именно строки отвечают за нормальную работу?

lib.menu_1 = COA - обязательно?

Вместо NO.wrapItemAndSub = <LI class="menu1-level1-no"> | </LI> нужно подставить
NO.linkWrap = <li class="menu1-level1-no">|</li>
?

И
IFSUB = 1
IFSUB {
wrapItemAndSub = <li class="???">|<!--<![endif]--></li>
stdWrap.wrap = | <!--[if IE 7]><!-->
linkWrap = | <!--<![endif]-->
}
тоже решает (коль скоро там кондишенал комменты)? А что мне ставить, ведь у меня два класса для меню определено. Или можно обойтись одним?

-=UncleByte=- 15.08.2008 17:40

COA использовать необязательно, в моем случае он используется только ради того чтобы не отображать несколько страниц и не генерировать подпункты выпадающего меню для одной из страниц просто потому что там количество подстраниц постоянно растет.
Вопрос был как сделаны conditional comments в меню — в приведенном коде это показано. wrapItemAndSub используется для корректной генерации меню даже в случае отсутствия подпунктов.

maaboo 15.08.2008 17:51

Цитата:

Сообщение от -=UncleByte=- (Сообщение 20990)
COA использовать необязательно, в моем случае он используется только ради того чтобы не отображать несколько страниц и не генерировать подпункты выпадающего меню для одной из страниц просто потому что там количество подстраниц постоянно растет.
Вопрос был как сделаны conditional comments в меню — в приведенном коде это показано. wrapItemAndSub используется для корректной генерации меню даже в случае отсутствия подпунктов.

Ну показано-то конечно показано. :-) За что, кстати, огромное спасибо. Но проясни до конца, пожалуйста, вот эти моменты (ибо я ещё плохо говорю на TS :-):

У тебя:
Код:

NO.linkWrap = <li class="tmenu">|</li>
IFSUB = 1
IFSUB {
wrapItemAndSub = <li class="tmenu">|<!--<![endif]--></li>
stdWrap.wrap =  | <!--[if IE 7]><!-->
linkWrap = | <!--<![endif]-->
}

У меня:
Код:

lib.menu_1.1 {
  expAll = 1
  wrap = <UL> | </UL>
  NO.wrapItemAndSub = <LI class="menu1-level1-no"> | </LI>
  ACT = 1
  ACT.wrapItemAndSub = <LI class="menu1-level1-act"> | </LI>
}

Три важных момента:
1. Вместо wrap - linkWrap перед определением wrapItemAndSub - почему?
2. wrapItemAndSub заключён в IFSUB - это что и зачем?
3. Как мне быть с определением двух классов? Просто повторить для каждого? Почему у тебя не определены оба класса? Что за тайное знание? :-)

-=UncleByte=- 15.08.2008 18:25

1. Потому что надо "обернуть" непосредственно ссылку, а не все к ней относящееся.
2. http://typo3.org/documentation/docum...1.0/view/10/2/
3. Как угодно в рамках определенных TS Ref. Можно и так. Потому что в том шаблоне активная ссылка никак не выделяется, а для состояния hover есть соответствующий код в css. К эзотерике все это не имеет никакого отношения. ;)

reva2 15.08.2008 18:27

1) Внимательно читаем TS ref там прекрасно описано для чего нужен linkWrap а для чего wrap
2) Опять же читаем TS ref разделы про Common Menu Item States и TMENUITEM

Не в обиду будет сказано, но это уже начинает походить на фарс, типа "сделайте за меня". Вас уже прекрасно направили на нужные знания. Потрудитесь пожалуйста читать документацию ссылки на которую Вам дают, и тогда возможно не будет таких вопросов.

maaboo 15.08.2008 19:17

Цитата:

Сообщение от reva2 (Сообщение 20999)
Не в обиду будет сказано, но это уже начинает походить на фарс, типа "сделайте за меня". Вас уже прекрасно направили на нужные знания. Потрудитесь пожалуйста читать документацию ссылки на которую Вам дают, и тогда возможно не будет таких вопросов.

Прощу прощения за назойливость. Столько всего и сразу... Просто в ФФ работало безо всяких linkWrap я и не стал вникать...
Спасибо.


Часовой пояс GMT +4, время: 02:01.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot