Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   Помогите с TMENU (http://forum.typo3.ru/showthread.php?t=9499)

litleblinus 26.05.2011 15:00

Помогите с TMENU
 
Здравствуйте уважаемые знатоки typo3! Я делаю первый сайт на typo3 по книге Jeremy Greenawalt - TYPO3 Templates - 2010. Всё было отлично пока я не добрался до главы про меню... Вроде всё делаю правильно, но функция rollover у меня не работает - изображение не меняется, а в шапке сайта появляется строчка /* /*]]>*/ которая (на сколько я понял) берётся из скрипта создаваемого typo3.
вот код который должен быть:
Код:

## Main Menu [Begin]
lib.mainMenu = HMENU
lib.mainMenu.entryLevel = 0
lib.mainMenu.wrap = <ul id="menu-area">|</ul>
lib.mainMenu.1 = TMENU
lib.mainMenu.1 {
begin = 1
NO {
allWrap = <li class="menu-item">|</li>
after ACT <img src="clear.gif" width="15"> | |*| <img src="clear.gif" width="15"> | |*| &nbsp;
ATagParams = class="menu-links"
ATagTitle.field = description // title
beforeImg = fileadmin/templates/bullet_rollover.png
beforeImgLink = 1
##RO = 1
##beforeROImg = fileadmin/templates/bullet_rollover.png
}
ACT < .NO
ACT = 1
ACT {
ATagParams = class="active-link"
beforeImg >
}
}
## Main Menu [End]

я, для теста, убрал всё лишнее и оставил только это:
Код:

## Main Menu [Begin]
lib.mainMenu = HMENU
lib.mainMenu.entryLevel = 0
lib.mainMenu.wrap = <ul id="menu-area">|</ul>
lib.mainMenu.1 = TMENU
lib.mainMenu.1.NO {
allWrap = <li class="menu-item">|</li>
beforeImgLink = 1
beforeImg = fileadmin/templates/bullet.png
RO = 1
beforeROImg = fileadmin/templates/bullet_rollover.png
allWrap = <li class="menu-item">|</li>
}
## Main Menu [End]

но проблема осталась. Если тут можно оставлять ссылку на сайт - напишите и я кину адрес своего сайта чтобы было нагляднее.

-=UncleByte=- 26.05.2011 18:17

Проще всего вот эту всю логику ролловеров поместить в css, особенно если они одинаковые для всех ссылок. Это и проще и правильнее с точки зрения отделения логики от оформления.
То есть в вашем случае код css будет примерно таким (то что нужно для rollover)
Код:

li.menu-item {
  padding-left: 10px; /* отступ для размещения картинки */

/* собственно картинка для обычного состояния */
  background: url('fileadmin/templates/bullet.png') no-repeat 0 5px;
}
li.menu-item:hover {
/* картинка для состояния "мышь сверху" */
  background: url('fileadmin/templates/bullet_rollover.png') no-repeat 0 5px;
}

Как-то так.

litleblinus 26.05.2011 21:07

спасибо! завтра попробую на работе:)

litleblinus 27.05.2011 12:35

Что-то не получается.. Добавил в style.css, но он только делает отступ, картинку не вставляет.:(
вот сам файл ксс:
Код:

/* @group Reset Styling */

/* --------------------------------------------------------------
 
        reset.css
        Resets default browser CSS.
 
        Based on but not the same as work by Eric Meyer:
        http://meyerweb.com/eric/tools/css/reset/
        v1.0 | 20080212
 
-------------------------------------------------------------- */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
        margin: 0;
        padding: 0;
        border: 0;
        outline: 0;
        font-size: 100%;
        vertical-align: baseline;
        background: transparent;
}

blockquote, q {
        quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
        content: '';
        content: none;
}

:focus {
        outline: 0;
}

ins {
        text-decoration: none;
}

del {
        text-decoration: line-through;
}

table {
        border-collapse: collapse;
        border-spacing: 0;
}

/* @end Reset Styling */

/* @group Base Styling */

body {
font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
font-size: 16px;
line-height: 18px;
margin: 20px;
}
p, ul, div {
color: #333;
font-size: 16px;
        line-height: 18px;
}
h1 {
        font-size: 30px;
        line-height: 36px;
        margin-bottom: 18px;
        font-weight: 200;
        font-variant: small-caps;
}
h2 {
        margin-bottom: 24px;
        line-height: 30px;
        font-size: 18px;
}
h3 {
        font-size: 20px;
        line-height: 24px;
}
h4, h5, h6 {
        font-size: 18px;
        line-height: 24px;
}
ul, ol {
        margin: 0px 0px 18px 18px;
}
ul {
        list-style-type: circle;
}
ol {
        list-style: decimal;
}
td {
        padding: 5px;
}
:link, :visited {
        font-weight: bold;
        text-decoration: none;
        color: #036;
}

/* @end Base Styling */

/* @group Menu Styling */

ul#menu-area li, ul#submenu-area li {
  list-style-type: none;
  display: inline;
        margin-right: 20px;
}

ul#menu-area {
        border-bottom: 2px solid #666;
        margin-bottom: 2px;
}

ul#submenu-area {
        margin: 0px 0px 20px 50px;
}

li.menu-item a {
        font-size: 20px;
        line-height: 20px
}

li.menu-item a, li.submenu-item a {
        color: #666;
        font-weight: normal;
        font-variant: small-caps;
}

/* @end Menu Styling */

/* @group TYPO3 Markup Styling */

dd.csc-textpic-caption {
        font-size: 70%;
}

li.menu-item a.active-link {
  color: #0033FF;
}

li.menu-item {
padding-left: 50px;
background: url('fileadmin/templates/bullet.png') no-repeat 0 5px;
}

li.menu-item:hover {
  background: url('fileadmin/templates/bullet_rollover.png') no-repeat 0 5px;
}

/* @end TYPO3 Markup Styling */

суть в том что картинка должна быть перед текстом меню, это просто кружок. тоесть например "картинка" "пункт меню"

litleblinus 27.05.2011 12:46

не понимаю, пробовал менять цвет - меняется, а изображение не вставляет

litleblinus 27.05.2011 12:48

а всё понял, изображение нужно было кидать в папку к файлу css

-=UncleByte=- 27.05.2011 13:54

Ну да, чтобы пути были правильные.

litleblinus 27.05.2011 14:42

Спасибо за помощь! Интересно в чём же была проблема

-=UncleByte=- 27.05.2011 15:27

Я забыл сказать что сейчас для вот этого эффекта в меню достаточно следующий TS-код использовать:
Код:

lib.mainMenu = HMENU
lib.mainMenu {
        entryLevel = 0
        wrap = <ul id="menu-area">|</ul>
        1 = TMENU
        1 {
                NO {
                        linkWrap = <li class="menu-item">|</li>
                        ATagParams = class="menu-links"
                        ATagTitle.field = description // title
                }
                ACT = 1
                ACT < .NO
                ACT.ATagParams = class="active-link"
        }
}

То есть меню остается исключительно текстовым, а все оформление (внешний вид) задается исключительно с помощью css. Это намного проще и удобнее.

litleblinus 27.05.2011 18:19

Цитата:

Сообщение от -=UncleByte=- (Сообщение 31275)
Я забыл сказать что сейчас для вот этого эффекта в меню достаточно следующий TS-код использовать:
Код:

lib.mainMenu = HMENU
lib.mainMenu {
        entryLevel = 0
        wrap = <ul id="menu-area">|</ul>
        1 = TMENU
        1 {
                NO {
                        linkWrap = <li class="menu-item">|</li>
                        ATagParams = class="menu-links"
                        ATagTitle.field = description // title
                }
                ACT = 1
                ACT < .NO
                ACT.ATagParams = class="active-link"
        }
}

То есть меню остается исключительно текстовым, а все оформление (внешний вид) задается исключительно с помощью css. Это намного проще и удобнее.

Спасибо! попробую


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

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