Zum Inhalt springen

Zu komplexe Menüstruktur? Typo steigt aus. HMENU-Bug?

Erstellt am 15. Dezember 2008 · 3 Antworten · letzte Antwort am 16. Dezember 2008

Tags: Frage

hydrococcus ·

Hallo zusammen,

bei einem meiner letzten Projekte trat folgendes Problem auf:
Wollte man einen Menüpunkt in der 3. Ebene öffnen, wurde die Seite von Typo3 nicht mehr geparst. Lediglich der <head> mit allen eingebunden CSS- und JS-Dateien war da, kein <body>, nix?! Seltsamerweise konnte man aber einen Menüpunkt aus der 4. Ebene problemlos aufrufen?!

Wenn man einige Unterseiten ausblendete, hat wieder alles funktioniert. Also dachte ich, das Problem hinge mit den Datensätzen zusammen. Der Versuch die betroffenen Seiten und Datensätze neu anzulegen brachte keine Besserung.

Also hab ich angefangen das Problem im TS des Menüs zu suchen

temp.NavigationAllgemein = HMENU
temp.NavigationAllgemein{
	special = directory
	special.value = 1
	
	1 = TMENU
	1.wrap = <ul class="ebene1">|</ul>
	1.NO = 1
	1.NO.wrapItemAndSub = <li>|</li>
	1.NO.stdWrap = upper
	
	
	2 < .1
	2.wrap = <ul class="ebene2">|</ul>
	
	3 < .1
	3.wrap = <ul class="ebene3">|</ul>
	
	4 < .1
	4.wrap = <ul class="ebene4">|</ul>
	
	
}

Wenn ich die 3. und 4. Ebene im Script auskommentiert habe, konnten die betroffenen Seiten wieder angezeigt werden, alles schien normal, bis auf das das Menü natürlich nicht mehr vollständig angezeigt wurde. Ich konnte das Problem nicht eingrenzen, da es sporadisch und über das ganze Menü hinweg auftrat.

Die Lösung war, das ich das Menü in 3 Teile gesplittet hab:

temp.navi_eins = HMENU
temp.navi_eins{
	special = list
	special.value = 9,7,6,39

	
	1 = TMENU
	1.wrap = <ul class="ebene1">|</ul>
	1.NO = 1
	1.NO.wrapItemAndSub = <li>|</li>
	1.NO.stdWrap = upper
	
	1.CUR = 1
        1.CUR.wrapItemAndSub = <li>|</li>
        1.CUR.ATagParams = class="navAktiv"
	
	
	2 < .1
	2.wrap = <ul class="ebene2">|</ul>
	
	3 < .1
	3.wrap = <ul class="ebene3">|</ul>
	
	4 < .1
	4.wrap = <ul class="ebene4">|</ul>
}

temp.navi_zwei = HMENU
temp.navi_zwei{
	special = list
	special.value = 5

	
	1 = TMENU
	1.wrap = <ul class="ebene1">|</ul>
	1.NO = 1
	1.NO.wrapItemAndSub = <li>|</li>
	1.NO.stdWrap = upper
	
	1.CUR = 1
        1.CUR.wrapItemAndSub = <li>|</li>
        1.CUR.ATagParams = class="navAktiv"
	
	
	2 < .1
	2.wrap = <ul class="ebene2">|</ul>
	
	3 < .1
	3.wrap = <ul class="ebene3">|</ul>
	
	4 < .1
	4.wrap = <ul class="ebene4">|</ul>
}


temp.navi_drei = HMENU
temp.navi_drei{
	special = list
	special.value = 2,3,16,15,14,13,112

	
	1 = TMENU
	1.wrap = <ul class="ebene1">|</ul><br /><ul class="NavigationAllgemein"><li><a href="index.php?id=139">Downloadcenter</a></li></ul>
	1.NO = 1
	1.NO.wrapItemAndSub = <li>|</li>
	1.NO.stdWrap = upper
	
	1.CUR = 1
        1.CUR.wrapItemAndSub = <li>|</li>
        1.CUR.ATagParams = class="navAktiv"
	
	
	
	2 < .1
	2.wrap = <ul class="ebene2">|</ul>
	
	3 < .1
	3.wrap = <ul class="ebene3">|</ul>
	
	4 < .1
	4.wrap = <ul class="ebene4">|</ul>
}

Das Löste zwar das Problem, aber die Ursache konnte ich nicht finden. Deshalb hier noch einige HintergrundInfos. Vielleicht hat ja einer das selbe Problem und kann mir sagen woran es liegt.

INFOS:

  • Typo3 4.2.3
    PHP Version 5.2.6
    MySQL 4

Zudem musste ich das Projekt während der Entwicklung auf einen anderen Server umziehen. Dabei kam es zu Problemen mit der Datenbank und dem Zeichensatz (von UTF8 auf ISO umgestellt).
Ausserdem sind die Menüpunkte sehr lang (bis zu 50 Zeichen) und die Seite hat etwa 100 Unterseiten.

meckpo ·

Hallo,

ich glaube das liegt eher an deinem HMENU-Typ: "special". Das ist eigentlich nicht für "normale" Menüs gedacht. Die Doku sagt dazu auch:
"Also be aware that this selects pages for the first level in the menu. Submenus by menuPbjects 2+ will be created as usual."

Lass mal das .special weg ...

Gruss Maddin

d.​walter ·

Das hat imo mit dem special reichlich wenig zu tun.

Das TS von deinem ursprünglichen Menü sieht eigentlich ganz gut aus.

Interessant wäre dein übriges TS weil das Menü ja wenig mit dem Inhalt zu tun hat. Ist es bei allen Seiten der 3. Ebene aufgetaucht oder nur bei bestimmten? Haben die vielleicht eine Extension als Inhalt?

Daniel

hydrococcus ·

Das Problem trat sporadisch auf. Die meisten Menüpunkte der 3. Ebene waren erreichbar. Auf den Seiten die nicht gerendert wurden, waren keine anderen Plugins als auf den erreichbaren Seiten. Hier mal mein TS aus der root-Seite: (einige Dateinamen habe ich aus rechtlichen Gründen (ge-x-t))

### Spamschutz für E-mail Adressen
config.spamProtectEmailAddresses = ascii
config.spamProtectEmailAddresses_atSubst = <span style="display:none">kein spam</span>@
#config.spamProtectEmailAddresses_lastDotSubst = <span style="display:none">spam dot</span>.

### Standard-Page-Objekt definieren
page = PAGE
page.typeNum = 0

### Styleshhet einbinden

page.headerData.5 = HTML
page.headerData.5.value = <link rel="stylesheet" href="/fileadmin/templates/lib/screen.css" type="text/css">
page.headerData.6 = HTML
page.headerData.6.value = <link rel="stylesheet" href="/fileadmin/templates/lib/{$styleAct}" type="text/css" media="screen" />
page.headerData.7 = HTML
page.headerData.7.value = <link rel="stylesheet" href="/fileadmin/templates/lib/{$kontrastAct}" type="text/css" media="screen" />
page.headerData.8 = HTML
page.headerData.8.value = <link rel="stylesheet" href="/fileadmin/templates/lib/tabellen-statisch.css" type="text/css">
page.headerData.9 = HTML
page.headerData.9.value = <link rel="stylesheet" href="/fileadmin/templates/lib/print.css" type="text/css" media="print">


### FAVICON einbinden

page.headerData.15 = HTML
page.headerData.15.value = <link rel="SHORTCUT ICON" href="/favicon.ico">


### jquery-lightbox einbinden

page.headerData.190 = HTML
page.headerData.190.value = <link rel="stylesheet" href="fileadmin/templates/lib/lightbox/css/jquery.lightbox-0.5.css" type="text/css" media="screen" />

page.headerData.220 = HTML
page.headerData.220.value = <script src="fileadmin/templates/lib/lightbox/js/jquery.lightbox-0.5.pack.js" type="text/javascript"></script>

page.headerData.250 = HTML
page.headerData.250.value = <script src="fileadmin/templates/lib/lightbox/js/bp_lightbox.js" type="text/javascript"></script>


### Conditional Comments für IE 6

page.headerData.500 = HTML
page.headerData.500.value = <!--[if lt IE 7]><link rel="stylesheet" href="fileadmin/templates/lib/patch_IE6.css" type="text/css"><![endif]-->


### Javascript einbinden

page.headerData.100 = COA
page.headerData.100{
  5 = HTML
  5.value =  <script src="fileadmin/templates/lib/js/bp_basic_cm.js" type="text/javascript"></script>

  10 = HTML
  10.value =  <script src="fileadmin/templates/lib/js/jquery-1.2.6.pack.js" type="text/javascript"></script>
 
  15 = HTML
  15.value = <script src="fileadmin/templates/lib/js/jquery.cookie.js" type="text/javascript"></script>
 
  20 = HTML
  20.value = <script src="fileadmin/templates/lib/js/bp_acordion_left1.js" type="text/javascript"></script>
 
  25 = HTML
  25.value = <script src="fileadmin/templates/lib/js/basic.js" language="javascript" type="text/javascript"></script>
   
  30 = HTML
  30.value = <script src="fileadmin/templates/lib/js/bibliothek.js" language="javascript" type="text/javascript"></script>
   
}


### PHP Scripte einbinden

temp.pageprint = PHP_SCRIPT
temp.pageprint.file = fileadmin/templates/php/xxx.php

temp.pdf_download = PHP_SCRIPT
temp.pdf_download.file = fileadmin/templates/php/xxx.php

temp.bibliothek = PHP_SCRIPT
temp.bibliothek.file = fileadmin/templates/php/xxx.php

temp.bibliothekLink = PHP_SCRIPT
temp.bibliothekLink.file = fileadmin/templates/php/xxx.php

temp.zurbibliothek = PHP_SCRIPT
temp.zurbibliothek.file = fileadmin/templates/php/xxx.php

temp.seitengespeichert = PHP_SCRIPT
temp.seitengespeichert.file = fileadmin/templates/php/xxx.php

temp.flashnavi = PHP_SCRIPT
temp.flashnavi.file = fileadmin/templates/php/xxx.php

temp.idlist = PHP_SCRIPT
temp.idlist.file = fileadmin/templates/php/xxx.php


### Templates einbinden
page.10 = TEMPLATE
page.10{
  template = FILE
  template.file = {$myTemplateFile}
  workOnSubpart = DOCUMENT
  
  ### Inhalte einbinden
  ### Navigation / Contentbereich
  #subparts.NavigationAllgemein < temp.NavigationAllgemein
  
  subparts.navi_eins < temp.navi_eins
  subparts.navi_zwei < temp.navi_zwei
  subparts.navi_drei < temp.navi_drei
  
  subparts.content < styles.content.get
  
  ### Icon-Bar
  subparts.pageprint < temp.pageprint
  subparts.bibliothek < temp.bibliothek
  subparts.bibliothekLink < temp.bibliothekLink
  subparts.pdf_download < temp.pdf_download
  subparts.pidlist < temp.idlist
  
  ### globale navigation
  subparts.globalnavi < temp.globalenavigation
  
  ### headerImage / Seitentitel / toTop-Link
  subparts.headerimage < temp.headerimage
  subparts.seitentitel < temp.seitentitel
  subparts.totop < temp.totop
  
  ### Module
  #subparts.modulleft < temp.modulleft
  
  subparts.modulright1 < temp.modulright1
  subparts.modulright2 < temp.modulright2
  
  ### Macina Searchbox
  subparts.suchbox < temp.suche
  
  ### Flashnavigation
  subparts.flashnavi < temp.flashnavi

  
  ### bibliothek-modul
  subparts.seitengespeichert < temp.seitengespeichert
  subparts.zurbibliothek < temp.zurbibliothek
  

  
}

config{
  linkVars = L,S,K
  language = de
  locale_all = de_DE
  htmlTag_langKey = de
  index_enable = 1
  #sys_language_mode = content_fallback
}



config{
   sys_language_uid = 0
   removeDefaultJS = external
   #inlineStyle2TempFile = 1
   xmlprologue = none
   removeDefaultJS = 1
   disablePrefixComment = 1
   doctype = xhtml_trans  
   xhtml_cleaning = all
   htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"
   #renderCharset = utf-8
   no_cache = 0
   #admPanel = 0
   simulateStaticDocuments = 0
}

plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE >



### Überschrift H5 als Grafik rendern
lib.stdheader.10.5 < temp.header5

### <p class="bodytext"> entfernen
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes >

### Glossar (datamints Template)
plugin.tx_datamintsglossaryindex_pi1.templatefile = fileadmin/templates/template_glossaryindex.html


#Seitentitel ausschalten
page.config.noPageTitle = 1

# -- Seitetitelneu setzen
page.headerData.20 = COA
page.headerData.20.10 = TEXT
page.headerData.20.10.data = field:title
page.headerData.20.wrap = <title>Titeltext - |</title>