Hallo, ich bin gaaaanz neu bei Typo3 und mir fehlen trotz Studierens von Typo3-Buch und -Foren noch einige Zusammenhänge:
Mein Problem im Moment:
- Ich habe eine Seitenstruktur (3 Ebenen)angelegt und möchte diese per TMENU_LAYERS ausgeben lassen.
Wie bekomme ich es hin, dass Typo3script die 2 Unterebenen erkennt und diese anzeigt?
page = PAGE
page.10 < temp.layerMenu
page.includeLibs.tmenu_layers = media/scripts/tmenu_layers.php
page {
includeCSS {
file1 = fileadmin/templates/css/style.css
file2 =fileadmin/templates/css/skip.css
file1.media = screen
file2.media = screen
}
#HTML Vorlage einbinden
10 = TEMPLATE
10.template = FILE
10.template.file = fileadmin/templates/index.html
10.workOnSubpart = DOCUMENT
10.marks {
INHALT = CONTENT
INHALT {
table = tt_content
}
}
MENU_OBEN = HMENU
MENU_OBEN {
special = directory
special.value = 128
1 = TMENU_LAYERS
1 {
#Alle Unterebenen mit anzeigen
expAll = 1
#Untermenue relativ unter den gewählten Menuepunkt anzeigen
relativeToTriggerItem = 1
#Abstand des Untermenues zum Hauptmenue
topOffset = 25
#Verschiebung der Unterebene auf der X-Achse
leftOffset = -6
wrap = <table cellpadding="0" cellspacing="0"><tr> | </tr></table>
NO.allWrap = <td style="border: 1px solid black; padding:5px"> | </td>
}
2 = TMENU_LAYERS
2 {
expAll = 1
relativeToTriggerItem = 1
leftOffset = 5
NO.allWrap = <div style="border: 1px solid blue; padding:5px;width:60px;"> | </div>
}
3 = TMENU
3 {
}
}
Vielen Dank schonmal für Eure Hilfe und die Bemühungen.
Falls ich einen ähnlichen Thread überlesen habe, tut es mir leid.
Hat keiner ne Antwort drauf? Oder bekommt Typoscript mit dem "1 =..." und "2 = ..." die Ebenen zugewiesen? Die erste Ebene wird ja richtig dargestellt, aber die 2te kommt erst gar nicht.
Da fehlen dir wohl nen paar Klammern. Und der Marker MENU_OBEN gehört nicht nach page, sondern nach page.10.marks.
Ich hab den Code mal vernünftig eingerückt, damit du erkennst was wozu gehört.
ich habe die 1. Ebene auf die 2. Ebene kopiert und nur das aufgeführt was sich ändert. Da du scheinbar in der zweiten Ebene keine Tabelle mehr verwendest musst du das wrap aus der 1. Ebene wieder löschen mit wrap > (steht im Code der 2. Ebene). 2 = TMENU_LAYERS braucht dann auch nicht mehr aufgeführt werden.
Die 3. Ebene ist etwas verwirrend. Die wird nämlich wieder ein TMENU und gar keinen Code und es wird auch nirgends wo was kopiert...
Den INHALT Marker kannst du einfach auf < styles.content.get kopieren. Das reicht vollkommen aus. css_styled_content dann bitte im root-Template einbinden und nicht content_default oder sowas...
So könnte es was werden:
page = PAGE
page.10 < temp.layerMenu
page.includeLibs.tmenu_layers = media/scripts/tmenu_layers.php
page {
includeCSS {
file1 = fileadmin/templates/css/style.css
file2 =fileadmin/templates/css/skip.css
file1.media = screen
file2.media = screen
}
#HTML Vorlage einbinden
10 = TEMPLATE
10 {
template = FILE
template.file = fileadmin/templates/index.html
workOnSubpart = DOCUMENT
marks {
INHALT < styles.content.get
MENU_OBEN = HMENU
MENU_OBEN {
special = directory
special.value = 128
1 = TMENU_LAYERS
1 {
#Alle Unterebenen mit anzeigen
expAll = 1
#Untermenue relativ unter den gewählten Menuepunkt anzeigen
relativeToTriggerItem = 1
#Abstand des Untermenues zum Hauptmenue
topOffset = 25
#Verschiebung der Unterebene auf der X-Achse
leftOffset = -6
wrap = <table cellpadding="0" cellspacing="0"><tr> | </tr></table>
NO {
allWrap = <td style="border: 1px solid black; padding:5px"> | </td>
}
}
2 < .1
2 {
leftOffset = 5
wrap >
NO {
allWrap = <div style="border: 1px solid blue; padding:5px;width:60px;"> | </div>
}
}
3 = TMENU
3 {
....?????
}
}
}
}
}
Erst einmal vielen Dank für Deine Hilfe, das Layer funktioniert schon juhu 😃.
quote="SLAng"]
Die 3. Ebene ist etwas verwirrend. Die wird nämlich wieder ein TMENU und gar keinen Code und es wird auch nirgends wo was kopiert...
[/quote]
Da hab ich nur noch nix eingetragen, da kommt dann die 3. Ebene soll nur TMENU sein, da es die letzte Ebene ist.
Ich habe allerdings nun 2 Probleme, die neu entstanden sind:
1. Meine Seitennavigation (ist die 2.Ebene [gedacht für eine schnellere Wahl des Untermenüs]) wird nicht mehr eingebunden, stattdessen steht wieder der Marker da.
MENU_LINKS = HMENU
MENU_LINKS {
entryLevel = 1
1 = TMENU
1 {
noBlur = 1
wrap = <ul id="navilinks"> | </ul>
NO = 1
NO.linkWrap = <li> | </li>
NO.ATagTitle.field = subtitle // title
CUR = 1
CUR.linkWrap <li class="hier"> | </li>
CUR.doNotLinkIt = 1
}
}
2. Ich habe aus der (meiner Meinung nach "ekelhaften")Tabelle eine ul-Liste gemacht. Irgendwie erzeugt TS in den Listen Divs mit gernerierten IDs, die 100% Weite und 100% Höhe haben. Bekomme ich das irgendwie weg?
Im Moment siehts so aus:
marks {
INHALT < styles.content.get
MENU_OBEN = HMENU
MENU_OBEN {
special = directory
special.value = 128
1 = TMENU_LAYERS
1 {
#Alle Unterebenen mit anzeigen
expAll = 1
#Untermenue relativ unter den gewählten Menuepunkt anzeigen
relativeToTriggerItem = 1
#Abstand des Untermenues zum Hauptmenue
topOffset = 25
#Verschiebung der Unterebene auf der X-Achse
leftOffset = -6
wrap = <ul id="navi"> | </ul>
NO {
allWrap = <li> | </li>
}
}
2 < .1
2 {
leftOffset = 5
wrap >
NO {
allWrap = <div style="border: 1px solid blue; padding:5px;width:60px;"> | </div>
}
3 = TMENU
3 {
....?????
}
}
}
1. Ul-Listen mit wrapItemAndSub machen, nicht mit allWrap.
2. Wenn du einen Marker angezeigt bekommst, dann wird der nicht angesprochen (Das kann diverse Ursachen haben... Falsch geschrieben, nicht korrekt zugewiesen usw..)
3. 100% Weite? Naja, da ul ein Block-Level Element ist, geht das über die gesamte Breite. Das kannst du per CSS und einer Weitenangabe regeln...
Mehr geraten, bei wenig Gesamtcode.
Also ich bin im Moment völlig überfragt, hab überall nachgesucht und krieg bald Augenkrebs #angry#
Irgendwie spamt da ein Eintrag meine ul mit divs (anchorID und elementID) zu, wovon ich nur den anchor per css formatieren kann.
Hier mal der komplette TS-Tree:
page = PAGE
page.includeLibs.tmenu_layers = media/scripts/tmenu_layers.php
page {
includeCSS {
file1 = fileadmin/templates/css/style.css
file2 =fileadmin/templates/css/skip.css
file1.media = screen
file2.media = screen
}
#HTML Vorlage einbinden
10 = TEMPLATE
10 {
template = FILE
template.file = fileadmin/templates/index.html
workOnSubpart = DOCUMENT
marks{
INHALT < styles.content.get
MENU_OBEN = HMENU
MENU_OBEN {
special = directory
special.value = 128
1 = TMENU_LAYERS
1 {
#Alle Unterebenen mit anzeigen
expAll = 1
#Untermenue relativ unter den gewählten Menuepunkt anzeigen
relativeToTriggerItem = 1
#Abstand des Untermenues zum Hauptmenue
topOffset = 25
#Verschiebung der Unterebene auf der X-Achse
leftOffset = -6
wrap = <ul id="navi"> | </ul>
NO {
wrapItemAndSub = <li> | </li>
}
}
2 < .1
2 {
leftOffset = 5
wrap >
NO {
allWrap = <div style="border: 1px solid blue; padding:5px;width:60px;"> | </div>
}
}
MENU_LINKS = HMENU
MENU_LINKS {
entryLevel = 1
1 = TMENU
1 {
noBlur = 1
wrap = <ul id="navilinks"> | </ul>
NO = 1
NO.linkWrap = <li> | </li>
NO.ATagTitle.field = subtitle // title
CUR = 1
CUR.linkWrap <li class="hier"> | </li>
CUR.doNotLinkIt = 1
}
}
#marks Klammer Ende
}
#Seiteninhalt einbinden
tt_content = COA
tt_content {
#Ueberschrift
10 = TEXT
10 {
field = header
wrap = <h1> | </h1>
}
#Bodytext aus dem Textfeld
20 = TEXT
20 {
field = bodytext
wrap = <p> | </p>
}
}
}
}
Ich nehme mal an, dass ich das MENU_LINKS irgend wie aus den marks geschmissen hab, seh aber im Moment gar net durch. Bin sehr dankbar für die Hilfe.
Hier noch mal der ul-Bereich ausgelesen mit Firebug:
<ul id="navi">
<div id="anchorIDc749e4f425" style="position: absolute; visibility: hidden;" />
<div id="itemIDc749e4f425" style="width: 100%; height: 100%;">
<a onmouseout="GL_stopMove('656753');" onmouseover="GL_doTop('656753', 'Menu6567530');" onfocus="blurLink(this);" href="139.0.html">Über uns</a>
</div>
<div id="anchorID917b4e3f62" style="position: absolute; visibility: hidden;" />
<div id="itemID917b4e3f62" style="width: 100%; height: 100%;">
<a onmouseout="GL_resetAll("656753");" onmouseover="GL_hideAll("656753");" onfocus="blurLink(this);" href="138.0.html">Veranstaltungen</a>
</div>
<div id="anchorID4493c55d96" style="position: absolute; visibility: hidden;" />
<div id="itemID4493c55d96" style="width: 100%; height: 100%;">
<a onmouseout="GL_stopMove('656753');" onmouseover="GL_doTop('656753', 'Menu6567532');" onfocus="blurLink(this);" href="131.0.html">Gemeinde aktiv</a>
</div>
<div id="anchorIDff590e2d06" style="position: absolute; visibility: hidden;" />
<div id="itemIDff590e2d06" style="width: 100%; height: 100%;">
<a onmouseout="GL_resetAll("656753");" onmouseover="GL_hideAll("656753");" onfocus="blurLink(this);" href="129.0.html">Galerie</a>
</div>
<div id="anchorIDc46015d9b1" style="position: absolute; visibility: hidden;" />
<div id="itemIDc46015d9b1" style="width: 100%; height: 100%;">
<a onmouseout="GL_resetAll("656753");" onmouseover="GL_hideAll("656753");" onfocus="blurLink(this);" href="130.0.html">Jugend</a>
</div>
</ul>
dass der halt die weite und höhe vordefiniert ist voll mist.
Also ich habe noch kein TMENU_LAYERS erstellt und frage mich ob es überhaupt möglich ist mit wrapItemAndSub zu wrapen.
Ich denke das die div's wohl aus dem Php-File kommen das du einbindest.
Ich nehme mal an, dass ich das MENU_LINKS irgend wie aus den marks geschmissen hab, seh aber im Moment gar net durch. Bin sehr dankbar für die Hilfe.
Hier noch mal der ul-Bereich ausgelesen mit Firebug:
ich weiß nicht wie du jetzt auf das MENU-Links kommst... Der gepostete Code ist aus dem MENU_OBEN.
Wenn dir der Marker MENU_LINKS auf der Seite angezeigt wird, dann sprichst du den nicht korrekt an.
Das muss in deinem HTML-Template stehen: ###MENU_LINKS###
Ansonsten versteh ich auch bald nicht mehr wo genau das Problem jetzt liegt.
Versuch es doch bitte mal so genau wie möglich zu erklären.
SLAng schrieb
ich weiß nicht wie du jetzt auf das MENU-Links kommst... Der gepostete Code ist aus dem MENU_OBEN.
Wenn dir der Marker MENU_LINKS auf der Seite angezeigt wird, dann sprichst du den nicht korrekt an.
Bin so verzweifelt, würde das sogar über Telefon erklären oder Teamspeak oder ähnlichem :-)
1. Also ein Punkt hat sich jetzt erledigt...die hässlichen Div-container stammen vom "relativeToTriggerItem =1"...deswegen soll man bei horizontalen Layers Tabellen verwenden --> hab ich nun gemacht
2. Das linke Menü (zur Erklärung) ist eine Art Breadcrumb und soll beim fixen durchschmökern der Seiten das ewige Aufklappen durch den Layer ersparen, wenn man sich die Unterpunkte anschaut.
Es hat ja anfangs auch funktioniert...im html ist der passende Marker etc.
Ich denke, dass ich evtl Klammern falsch gesetzt habe und somit irgendwie das Menü im TS aus den Marks gekommen ist oder so.
Unterhalb des MENU_LINKS sollten dann wieder Extensions einsetzbar sein, wobei mir da auch im Moment der Faden fehlt...aber ich komme der Sache näher dank Dir 😃
Razzmatazz0r schrieb
2. Das linke Menü (zur Erklärung) ist eine Art Breadcrumb und soll beim fixen durchschmökern der Seiten das ewige Aufklappen durch den Layer ersparen, wenn man sich die Unterpunkte anschaut.
Es hat ja anfangs auch funktioniert...im html ist der passende Marker etc.
Ich denke, dass ich evtl Klammern falsch gesetzt habe und somit irgendwie das Menü im TS aus den Marks gekommen ist oder so.
Hat sich eben auch erledigt:
-> Vor "No {" hat ein "NO = 1" gefehlt...deswegen hat TS die 1 Klammer ignoriert
Danke nochmal für gemeinsame Arbeit am Problem und dem Kopfzerbrechen SLang :-)
*daumenhoch*
Also nur weil ein NO = 1 fehlt wird doch nicht eine Klammer ignoriert. Das NO = 1 brauchst du nur wenn du weitere Menüzustände hast, bei denen du nicht nochmal aktivieren willst.
Aber so oder so... wenns denn funktioniert umso besser...
Thema bitte dann auch gelöst setzen.