Zum Inhalt springen

HMENU wird nicht auf Seite angezeigt?

Erstellt am 8. November 2011 · 13 Antworten · letzte Antwort am 10. November 2011

Tags: Frage

Nathdrack ·

Hallo Leute,

Ich bin eigentlich nicht sehr neu in Typo3 und script... ich stelle mich nur seit ein paar tagen so an... Ich habe jetzt mehrere Tage in google und hier im Forum verbracht und habe nach meinem Problem gesucht, aber nichts spezielles zu meinem Thema gefunden. Wenn hier ein gelöster Thread existiert dann tuts mir leid.

Und zwar, ich wollte eine neue Seite machen und ein Aufklappmenü mit Javascript machen, weils einfach toll aussieht. Habe dazu ein Tutorial von Mortox gefunden Quelle: Mortox. Dieses habe ich nachgebaut. und in mein Typoscript eingebunden. Jedoch wird mir in meinem angelegten Div auf meiner Homepage kein Menü angezeigt.

Ich hoffe ihr könnt mir meinen Fehler zeigen und mir erklären wie ich ihn behebe.

Zusätzlich noch ein paar Daten:

Seitenbaum

- Startseite
- Seite 1
- - Seite 1.1
- - Seite 1.2
- Seite 2
- Seite 3
usw.

Ausschnit von meinem Typoscript aus dem Haupttemplate:

      64 = TEXT
      64.value = <div id="menu-top">
      
      65 < temp.menu
      #Schliessen von <menu> position 64
      66 = TEXT
      66.value = </div>

Menü TS:

### Menü ###
temp.menu = HMENU
temp.menu {
    ### Erste Ebene ###
    1 = TMENU
    1 {
      wrap = <ul class="menu">|</ul>
      expAll = 1
      NO.wrapItemAndSub = <li onmouseover="show(this)" onmouseout="hide(this)">|</li>

      ACT < .NO
      ACT = 1
      ACT.ATagParams = class="active"
    }
   
    ### Zweite ###
    2 < .1
}

lib.container < temp.menu

Javascript in den Headbereich einbinden:

page.headerData.4 = TEXT
page.headerData.4.value (
 
<script type="text/javascript">
    //<![CDATA[
   function show(element){
           element.className += "hover";
           }
   function hide(element){
           element.className = element.className = "";
     }
    //]]>
</script>
 
)

page  {

  headerData  {
    5 = TEXT
    5.value =  <meta name= [..]

und zu guter letzt mein noch unformatiertes CSS

#menu-top  {
  position: absolute;
  background-color: #333333;
  width: 980px;
  height: 40px;
  margin: 0 auto;	
	
ul.menu, ul.menu ul {
list-style-type: none;
margin-top: 0;
}
 
ul.menu a {
display: block;
padding: 3px 10px 3px 10px;
font-weight: normal;
color: #ffffff;
text-decoration: none;
}

ul.menu a:hover {
color: #9e0e0e;
}
 
ul.menu li {
float: left;
background-color: #b18642;
height: 20px;
list-style-type: none;
}
 
/* Für Unterpunkte keine Float-Eigenschaft */
ul.menu ul li {
float:left;
background-color: #b18642;
}
 
/* Links auf Unterpunkten sollen die Hintergrundfarbe ändern */
ul.menu ul li.hover, ul.menu ul li:hover {
background-color: #b18642;
}
 
/* Zweite Ebene */
ul.menu ul {
margin:0;
padding: 0;
position: absolute;
background-color: #b18642;
border-left: 1px solid #FFF9E4;
border-right: 1px solid #FFF9E4;
display: none;
width: 130px;
}
 
   /* Zweite Ebene anzeigen */
ul.menu li.hover ul, ul.menu li:hover ul  {
display: block;
}

das wars, wie gesagt... ich hoffe ihr könnt mir weiterhelfen.. 🙁

Vielen Dank im vorraus!

Julian.​Hofmann ·

Hallo.

Vom TypoScript her sollte es - soweit gepostet - passen. o.O

Die restliche Seite funktioniert wie gewünscht? Meine Idee/Vermutung wäre, dass vielleicht irgendwo ein TS-Syntaxfehler ist, und deshalb das ansich richtige TS trotzdem scheitert. Schau mal Dein Template via Template Analyzer an, ob der meckert.

Viele Grüße
Julian

Nathdrack ·

Mit dem Template Analyzer habe ich schon alles nachgeschaut, dort sollte alles passen, gibt mir keine Fehler aus oder meckert irgendwo.

Die Seite funktioniert vom Design her und der anordnung der Divs sowie das eingebundene CSS ... Aber mein Div menü bleibt halt leer auf der Page. :/

An was könnte es denn noch liegen?

Nathdrack ·

Ich habe jetzt nochmal komplett Typo3 aufgesetzt.. der Zustand hat sich aber leider nicht verändert... ich bin immernoch ratlos.. gibts hier niemanden der den Fehler vielleicht sieht? :/

Julian.​Hofmann ·

Zumindest die geposteten Abschnitte passen. Habe eben mal das TS zusammengeführt und als Minimalst-Test bei mir lokal in einem TYPO3 4.5 eingebunden - klappt.

### Menü ###
temp.menu = HMENU
temp.menu {
    ### Erste Ebene ###
    1 = TMENU
    1 {
      wrap = <ul class="menu">|</ul>
      expAll = 1
      NO.wrapItemAndSub = <li onmouseover="show(this)" onmouseout="hide(this)">|</li>
 
      ACT < .NO
      ACT = 1
      ACT.ATagParams = class="active"
    }
 
    ### Zweite ###
    2 < .1
}
 
lib.container < temp.menu

page = PAGE
page.headerData.4 = TEXT
page.headerData.4.value (
<script type="text/javascript">
    //<![CDATA[
   function show(element){
           element.className += "hover";
           }
   function hide(element){
           element.className = element.className = "";
     }
    //]]>
</script>
)
page {
  64 = TEXT
  64.value = <div id="menu-top">
 
  65 < temp.menu
  #Schliessen von <menu> position 64
  66 = TEXT
  66.value = </div>
}

Entweder es ist doch etwas im - für uns - unsichtbaren teil des TS, oder es ist irgendwas an den Seiten/Deiner TYPO3-Installation noch unpassend.

Nathdrack ·

Danke für die Antwort,

Ich poste hier mal eben mein komplettes Haupttemplate.

page = PAGE

config {
    sys_language_uid = 0
    language = de
    locale_all = de_DE
    htmlTag_langKey = de_DE
}  
  

page  {

  headerData  {
    5 = TEXT
    5.value =  <meta name="Description" content=""/>
    
    20 = TEXT  
    20.value =  <meta name="Keywords" content=""/>
          
    30 = TEXT
    30.value =  <meta name="Author" content=""/>
          
    40 = TEXT      
    40.value =  <meta name="Publisher" content=""/>
          
    50 = TEXT      
    50.value =  <meta name="Copyright" content=""/>
          
    60 = TEXT      
    60.value =  <meta name="Content-language" content="de"/>
    
  }
  
  includeCSS  {
    file1 = fileadmin/css/hundedenken.css
  }
  
  5 = TEXT
  5.value = <div id="outerwrap">
  
    10 = TEXT
    10.value = <div id="outerheader">
    
      20 = TEXT
      20.value = <div id="header">
      
        25 = IMAGE
        25.file = fileadmin/systemmedia/hd_banner.jpg
      
      #Schliessen von <header> pos. 20
      30 = TEXT
      30.value = </div>
      
    #Schliessen von <outerheader> pos. 10
    40 = TEXT
    40.value = </div>
      
    50 = TEXT
    50.value = <div id="wrap">
  
      60 = TEXT
      60.value = <div id="innerwrap">
  
      64 = TEXT
      64.value = <div id="menu-top">
      
      65 < temp.menu

      #Schliessen von <menu> position 64
      66 = TEXT
      66.value = </div>
        
        130 = TEXT
        130.value = <div id="content">
        
          135 < styles.content.get
        
        #Schliesen von Content pos. 80
        140 = TEXT
        140.value = </div>
  
        144 = TEXT
        144.value = <div id="breadcrumb">
          
           # 110 < temp.breadcrumbs
        
        #Schliessen von <breadcrumbs> pos. 100
        145 = TEXT
        145.value = </div>
        
      #Schliessen von <innerwrap> pos. 60
      150 = TEXT
      150.value = </div>
        
    #Schliessen von <wrap> pos. 50
    160 = TEXT
    160.value = </div>
        
    180 = TEXT
    180.value = <div id="footerwrap">
    
    #Schliessen von <footerwrap> pos. 180
    220 = TEXT
    220.value = </div>
  
  #Schliessen von <outerwrap> pos. 5
  230 = TEXT
  230.value = </div>

}
page.headerData.4 = TEXT
page.headerData.4.value (
 
<script type="text/javascript">
    //<![CDATA[
     function show(element){
           element.className += "hover";
      }
   function hide(element){
           element.className = element.className = "";
     }
    //]]>
</script>
)

Was gibt es denn für Einstellungen der Seiten das diese NICHT im Menü geführt werden? irgendwas spezifisches was ich mit Klicks in eine Checkbox hätte tun können. Benutze Typo3 4.6.0

Julian.​Hofmann ·
Nathdrack schrieb

Was gibt es denn für Einstellungen der Seiten das diese NICHT im Menü geführt werden?

Hm, fällt mir eigentlich v.a. das sehr offensichtliche unter "Visibility" -> "In Menu": "Hide" ein. Das sollte dann aber die Seiten im Seitenbaum auch erkennbar anders darstellen (Icon nur gestrichelt umrandet).

Dein Haupttemplate hab icha uch mal gestetst - auch OK (außer Menü, das wohl extern liegt).
Da Dein Menu aus einem anderen TS-Template kommt: wird dieses auch sicher vor dem Maintemplate eingebunden? Ist da evtl. was ungünstiges im Maintemplate unter "Static Template Files from TYPO3 Extensions:" eingestellt?

Bin langsam ratlos... 🙁

Nathdrack ·

Also die Templates sind in meinem Seitenbaum eingebunden.
Menüpunkt Templates -> Rechtsklick auf meinen Rootshortcut -> Template erstellen.

Das Menü und die Breadcrumbs sind auch dort eingefügt, unter "new record" erstelle ich ein neues Template für die Seite.
Kann es daran liegen, das ich vielleicht dadurch das schon 1 Template existiert auf dem Shortcut ich 2 extension Templates habe? oder macht das keinen UNterschied. Irritierte mich weil wenn ich ein new record erstelle das Template "+ext" als namen hat. Aber bei meinen anderen Seiten die ich erstellt habe funktioniert alles und da habe ich die gleichen einstellungen.

Mein Haupttemplate hat die Einstellung unter Options:
Clear:
Constants X
Setup X

Rootlevel: X

Includes : CSS Styled Content (css_styled_content)

Include Basis Template : menu

Wenn ich das Include Basis Template mache und das Menü Template einfüge. Zeigt der mir den Seitenbaum auf meiner Page an wie ne Art Sitemap... aber auch schon ausgeklappt. und nicht horizontal sondern vertikal aufgelistet. Bild: s7.directupload.net/…/udj5l7rj.png

Julian.​Hofmann ·
Nathdrack schrieb

Wenn ich das Include Basis Template mache und das Menü Template einfüge. Zeigt der mir den Seitenbaum auf meiner Page an wie ne Art Sitemap... aber auch schon ausgeklappt.

Das wäre dann zumindest HTML-mäßig schon mal das, was Du wolltest 😉 Dass alles ausgeklappt sein soll, hast Du im Menu mit expAll=1 festgelegt.

Das CSS fürs Menü ist eingebunden? Kommt es auch sicher im Frontend mit an?

Kurz zu den "ext+"-Templates:
Vom normalen Template-Datensatz kann nur einer auf einer Seite liegen bzw. greift nur einer. Dieser Datensatz wird automatisch für die Seite geladen, ohne dass Du noch etwas dafür tun musst.
Um TS etwas besser strukturieren zu können, kann das Template in Teile zerlegt werden. Diese erhalten dann den "+"-Zusatz im Icon und per Default erst einmal das Prefix "ext+". Sie werden von TYPO3 nicht automatisch eingebunden, sondern Du musst selbst festlegen, dass und in welcher Reihenfolge sie eingebunden werden sollen.

Nathdrack ·
Julian.Hofmann schrieb

Kurz zu den "ext+"-Templates:
Vom normalen Template-Datensatz kann nur einer auf einer Seite liegen bzw. greift nur einer. Dieser Datensatz wird automatisch für die Seite geladen, ohne dass Du noch etwas dafür tun musst.
Um TS etwas besser strukturieren zu können, kann das Template in Teile zerlegt werden. Diese erhalten dann den "+"-Zusatz im Icon und per Default erst einmal das Prefix "ext+". Sie werden von TYPO3 nicht automatisch eingebunden, sondern Du musst selbst festlegen, dass und in welcher Reihenfolge sie eingebunden werden sollen.

d.h. Ich kann so viele Templates auf einer Seite hinterlegen wie ich das möchte, hauptsache ich rufe sie im Haupttemplate richtig auf z.B. ( XX < temp.XXX ) ?

Okay das mit expAll=1 war mir heute morgen auf dem weg zur arbeit in den Sinn gekommen. Ich editier den Beitrag sobald meine Frau mir die Remote daten für meinen Heimrechner geschickt hat, da die Homepage noch auf dem Localhost liegt. Ich denke mal so 30 - 60 Minuten.

Also vorweg mein HTML in Firebug sieht in etwa wie folgt aus:

<div id="innerwrap">
    <div id="menu-top">##MENÜ##</div>
    <div id="content">##CONTENT##</div>
    <div id="breadcrumb">##BREADCRUMB##"</div>
</div>
<div id="footer">##FOOTER##<div>

Das dass CSS für das Menü richtig eingebunden wird, muss ich im menü typscript noch den IncludeFile Befehl benutzen? habe nur 1 CSS datei für die Komplette Homepage, und die wird schon im Haupttemplate eingebunden.

Julian.​Hofmann ·
Nathdrack schrieb

d.h. Ich kann so viele Templates auf einer Seite hinterlegen wie ich das möchte, hauptsache ich rufe sie im Haupttemplate richtig auf z.B. ( XX < temp.XXX ) ?

...und im Haupttemplate noch die anderen Template-Datensätze einbinden ("Include Basis Template" ). Ansonsten: ja.

Nathdrack schrieb

habe nur 1 CSS datei für die Komplette Homepage, und die wird schon im Haupttemplate eingebunden.

Das sollte ausreichend sein. CSS wird immer für die ganze Seite eingebunden. Wollte nur sicher sein, dass es nicht vielleicht ein seperates CSS-File ist, das vergessen wurde einzubinden.

Kannst Du mal den von TYPO3 generierten HTML-Ausschnitt des Menüs posten? Denn eigentlich sollte das alles passen. Dein CSS ist eingebunden, das TS erzeugt anscheinend das richtige Menü - warum die Anzeige dann nicht passt, keine Ahnung. Da muss irgendwo noch der Wurm drin sein. o.O

Nathdrack ·

So da ich nun auf meinem Heimrechner eingeloggt bin kann ich weiter mit nötigen Informationen Werfen

einmal das HTML von der Seite.

<div id="innerwrap">
<div id="menu-top">
   <ul class="menu">
    <li class="" onmouseout="hide(this)" onmouseover="show(this)">
    <li class="" onmouseout="hide(this)" onmouseover="show(this)">
    <li onmouseout="hide(this)" onmouseover="show(this)" class="">
   </ul>
</div>
<div id="content"></div>
<div id="breadcrumb"></div>
</div>

Immerhin schonmal so weit das Das Menü erzeugt wird. Aber irgendwas sitmmt da noch nicht. Laut Mortox guide, soll das menü Horizontal sein. CSS ist exakt übernommen. Hier ist es vertikal und bei Mouseover über Seite 1, ploppt das auch nicht auf.

expAll=1

habe ich auskommentiert.

Nathdrack ·

Ich bin so ein Doofkopf ! #angry# 5 Tage wild gesucht und erst eben gemerkt...

#menu-top  {
  position: absolute;
  background-color: #333333;
  width: 980px;
  height: 40px;
  margin: 0 auto;	
 
ul.menu, ul.menu ul {
list-style-type: none;
margin-top: 0;
}

ul.menu, ul.menu ul <-- hab ich jetzt aufgesplittet in 2 klassen. Unter anderem wurde mir 'ul.menu' als kommentar im CSS angezeigt. Und bei der ID '#menu-top' fehlt das bracet... >.<

Hiermit erkläre ich mich offizell zum "Fail der Woche"#giggle#

Das Thema ist gelöst!

Danke Julian auch an dich für die tolle unterstützung! 😉

Beste Grüße

Julian.​Hofmann ·

#angry# Oh, ok. Beim CSS ging ich davon aus, dass es syntaktisch durch entsprechenden Editor passt, und logisch auch schon so ist, wie Du es haben wolltest.

🙂 Aber ist doch schön, dass es jetzt tut.