
| Autor | Wiadomość |
|---|---|
|
Napisane: 15.01.2010 [14:44]
|
|
|
dpacholczyk
Twórca tematu
zarejestrowany: 17.09.2008
Posty: 1006
|
Witam mam sporty problem z wygenerowaniem menu, a raczej odpowiednim przepisywaniem klas. Chodzi o to, że pewien genialny grafik wpadł na pomysł utrudnienia mi życia. Menu ma 6 pozycji, które wygenerowane są na za podstanie list <ul> mniej więcej tak CSS <ul> <li class="first active">1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> </ul> teraz potrzebuje żeby active przechodził po aktywną pozycję. menu generuje mniej więcej tak TYPOSCRIPT NO.allWrap = <li class="first active">|</li> |*||*| Teraz jak na to patrzę to widzę, że tak naprawdę wymuszam tą klasę zawsze dla pierwszej pozycji. Nie mniej jednak nie wiem w jaki sposób zmieniać klasę w tagu <li> gdyby to był link to wiem, że wystarczyłoby dać ATagParams, ale tu się gubię. Certified Level 2 TYPO3 Night Crew Member.
|
|
Napisane: 15.01.2010 [18:08]
|
|
|
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1338
|
TYPOSCRIPT NO.allWrap = <li class="first">|</li>|*|<li>|</li>|*| ACT.allWrap = <li class="first active">|</li>|*|<li class="active">|</li>|*| Sesja wygasła, zaloguj się, żeby się wylogować.
T3CI Certified Level 2 TYPO3 Night Crew Member. KO System enthusiast |
|
Napisane: 15.01.2010 [22:32]
|
|
|
dpacholczyk
Twórca tematu
zarejestrowany: 17.09.2008
Posty: 1006
|
dzięki to pomogło. trzeba tylko dopisać TYPOSCRIPT ACT = 1 Po dalszych modyfikacjach otrzymałem coś takiego TYPOSCRIPT temp.main_menu = COA
temp.main_menu {
# ---------------------------------------
# Typoscript implementation of the DHTML
# menu found at http://www.brainjar.com
# ---------------------------------------
wrap = <ul class="navi-main navi-long">|</ul>
10 = HMENU
10 {
entryLevel = 0
special = list
special.value = 1,2,11,15,31,19
}
10.1 = TMENU
10.1 {
NO.allWrap = <li class="first">|</li>|*|<li>|</li>|*|
#[global]
IFSUB = 1
IFSUB.doNotLinkIt = 0
IFSUB.subst_elementUid = 1
IFSUB.allWrap = <li class="first">|</li>|*|<li>|</li>|*|
IFSUB.ATagParams = class="menuButton" onmouseover="buttonMouseover(event, 'menu{elementUid}');"
ACTIFSUB = 1
ACTIFSUB.doNotLinkIt = 0
ACTIFSUB.subst_elementUid = 1
ACTIFSUB.allWrap = <li class="first active">|</li>|*|<li class="active">|</li>|*|
ACTIFSUB.ATagParams = class="menuButton" onmouseover="buttonMouseover(event, 'menu{elementUid}');"
}Problem tkwi że ani domyślnie ani po kliknięciu pierwsza pozycja nie robi się aktywna [Ten temat był edytowany 3 razy. Ostatnio 15.01.2010 o 22:47.] Certified Level 2 TYPO3 Night Crew Member.
|
|
Napisane: 15.01.2010 [23:21]
|
|
|
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1338
|
dpacholczyk napisał/a dzięki to pomogło. trzeba tylko dopisać TYPOSCRIPT ACT = 1 Cóż podałem Ci przykład optionSplit, reszta menu jest po Twojej stronie ;] Sesja wygasła, zaloguj się, żeby się wylogować.
T3CI Certified Level 2 TYPO3 Night Crew Member. KO System enthusiast |
|
Napisane: 16.01.2010 [20:19]
|
|
|
dpacholczyk
Twórca tematu
zarejestrowany: 17.09.2008
Posty: 1006
|
no masz rację tylko szkoda, że nie mogę tego ogarnąć. a takie pytanie do optionsplit`a załóżmy, że jest 6 pozycji. czy za pomocą optionsplita mogę ustawić dla każdej pozycji oddzielną klasę? coś w rodzaju: TYPOSCRIPT opcja1 |*| opcja2 |*| opcja3 |*| opcja4 |*| opcja5 |*| opcja6 oczywiście to nie działą bo sprawdzałem, ale daje pogląd Certified Level 2 TYPO3 Night Crew Member.
|
|
Napisane: 16.01.2010 [20:58]
|
|
|
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1338
|
dpacholczyk napisał/a czy za pomocą optionsplita mogę ustawić dla każdej pozycji oddzielną klasę? zobacz przykład dot. option split: http://typo3.org/documentation/document-library/references/doc_core_tsref/4.3.0/view/1/3/ ogólnie podstawowy split odbywa się wg 3 sekcji: POCZĄTEK |*| ŚRODEK |*| KONIEC i NIE ma więcej opcji, więc jeśli użyjesz np. ATagParam = class="P" |*| class="Ś" |*| class="K" to jeśli będzie 5 linków to wygeneruje kolejno klasy P, Ś, Ś, Ś, Ś, K (czyli 1 początkowa, 4 środkowe i jedna końcowa) dla ATagParam = class="P" |*| class="Ś" |*| jedna początkowa i reszta środkowe: P, Ś, Ś, Ś, Ś, Ś a dla ATagParam = class="P" |*| |*| class="K" 5 początkowych i jedna końcowa... Dodatkowo masz możliwość użycia optionSplit w optionSplit, które rozdziela się || (a nie |*| !) i ta właśnie opcja działa tak jak chcesz, czyli nie odnajduje P, Ś i K, tylko podstawia KOLEJNO (nieograniczona ilość) do kazdej następnej pozycji, jeśli pozycji jest więcej niż deklaracji używana jest ostatnia deklaracja z danego segmentu: P1 || P2 || P3 || Pn... |*| Ś1 || Ś2 |*| K1 || K2 || K3 Sesja wygasła, zaloguj się, żeby się wylogować.
T3CI Certified Level 2 TYPO3 Night Crew Member. KO System enthusiast |
|
Napisane: 16.01.2010 [21:00]
|
|
|
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1338
|
PS. uczyłem się na podstawie tego: http://castironcoding.com/resources/typo3-admins-corner/typo3-admin-corner-article/article/understanding-optionsplit/index.html Sesja wygasła, zaloguj się, żeby się wylogować.
T3CI Certified Level 2 TYPO3 Night Crew Member. KO System enthusiast |
|
Napisane: 17.01.2010 [11:01]
|
|
|
dpacholczyk
Twórca tematu
zarejestrowany: 17.09.2008
Posty: 1006
|
Gdyby ta klasa aactive była na linku nie byłoby z tym problemu optionsplit tu wiele nie daje bo za jego pomocą nie da się ustawić dla pierwszej i ostatniej pozycji active. chyba, że można dać allWrap w instrukcję warunkowe w zależności od id strony da się coś takiego zrobić ? pytam bo do wieczora nie będę miał jak sprawdzić Certified Level 2 TYPO3 Night Crew Member.
|
|
Napisane: 17.01.2010 [13:37]
|
|
|
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1338
|
dpacholczyk napisał/a Gdyby ta klasa aactive była na linku nie byłoby z tym problemu optionsplit tu wiele nie daje bo za jego pomocą nie da się ustawić dla pierwszej i ostatniej pozycji active. chyba, że można dać allWrap w instrukcję warunkowe w zależności od id strony da się coś takiego zrobić ? pytam bo do wieczora nie będę miał jak sprawdzić Nie rozumiem, czemu active dla pierwszej i ostatniej pozycji, przecież z definicji active jest active dla jednej pozycji na każdym poziomie menu. Po drugie nie rozumiem, coś się tak uczepił tego ATagParams... ten przykład, który Ci podałem na wstępie ma za zadanie manipulację klasami dla LI a nie dla A ! TYPOSCRIPT NO.allWrap = <li class="first">|</li>|*|<li>|</li>|*| ACT.allWrap = <li class="first active">|</li>|*|<li class="active">|</li>|*| Odczep się od ATagParams i przeanalizuj / dostosuj ten przykład na spokojnie Sesja wygasła, zaloguj się, żeby się wylogować.
T3CI Certified Level 2 TYPO3 Night Crew Member. KO System enthusiast |
|
Napisane: 17.01.2010 [19:49]
|
|
|
dpacholczyk
Twórca tematu
zarejestrowany: 17.09.2008
Posty: 1006
|
Ja cię rozumiem, ale... 1. jak zaimplementowałem to najszybciej i najprościej czyli tak: TYPOSCRIPT #wrap = <div class="menuBar" style="width:80%;">|</div>
#NO.ATagParams = class="first" |*||*|
NO.allWrap = <li class="first">|</li>|*|<li>|</li>|*|
#ACT.allWrap = <li class="first active">|</li>|*|<li class="active">|</li>|*|
#ACT = 1
IFSUB = 1
IFSUB.doNotLinkIt = 0
IFSUB.subst_elementUid = 1
IFSUB.allWrap = <li class="first">|</li>|*|<li>|</li>|*|
IFSUB.ATagParams = class="menuButton" onmouseover="buttonMouseover(event, 'menu{elementUid}');"
ACTIFSUB = 1
ACTIFSUB.doNotLinkIt = 0
ACTIFSUB.subst_elementUid = 1
ACTIFSUB.allWrap = <li class="first active">|</li>|*|<li class="active">|</li>|*|
ACTIFSUB.ATagParams = class="menuButton" onmouseover="buttonMouseover(event, 'menu{elementUid}');"to wszystko działa dobrze prócz tego, że pierwsza pozycja NIGDY nie jest active. 2. po dodaniu TYPOSCRIPT ACT = 1 ACT.allWrap = <li class="first active">|</li>|*|<li class="active">|</li>|*| pierwsza pozycja ZAWSZE jest aktywna Nie za bardzo wiem jak to skomponować //edit teraz pomyślałem, że waznym może być dodać przeze mnie, że pierwsza pozycja nie ma podstron żadnych więc ACTIFSUB nie dotyczy [Ten temat był edytowany 1 razy. Ostatnio 17.01.2010 o 19:53.] Certified Level 2 TYPO3 Night Crew Member.
|