TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

Problem ab TYPO3 4.6: Verhalten HMENU; Verweis auf Unterseite (Startseite)


Autor Nachricht
Verfasst am: 02. 05. 2012 [20:06]
kolki
Themenersteller
Dabei seit: 04.08.2006
Beiträge: 917
Hallo,
ich suche und probiere schon den ganzen Tag, aber es will nicht gelingen. Ich habe TYPO3 4.5x auf 4.6x bzw. 4.7 geupdatet. Der Verweis auf meine Startseite funktioniert aber nicht mehr wie zuvor:

Anscheinend wurde mit TYPO3 4.6 ein neues Verhalten eingeführt, wie TYPO3 Verweise durchführt.
Im Zusammenspiel mit simulatestatic führt das allerdings zu dem Problem, dass viele Seiten nachdem man die Seite aufruft so aussehen:

meineseite.de/Startseite.2.0.html statt meineseite.de

So sieht der Aufbau aus:

+ meineseite.de (Root mit Verweis auf Startseite)
+ -- Startseite
+ -- Kontakt
+ -- Impressum

Ich könnte zwar den Baum so aufbauen:

+ meineseite.de (Root)
+ -- Startseite (Verweis auf Root)
+ -- Kontakt
+ -- Impressum

das hat aber den Nachteil, dass "Startseite" nie im Hauptmenü als Status Activ bzw. Cur bekommen kann.

Die Frage ist also:
Wie kann ich es lösen, dass "Startseite" im Menü den Status ACT bzw. CUR erhält und gleichzeitig die URL "meineseite.de/" erhalten bleibt und nicht
"meineseite.de/Startseite.2.0.html" aufgerufen wird? Bis TYPO3 4.6 ging das ohne Probleme.

Die Seite besitzt ein horizontales und vertikales Menü.

Ich habe auch versucht, aus dem Verweis der Rootseite eine Seite (Typ: Standart) zu machen und dabei für das vertikale Menü je nach Level mehrere Menüs mit unterschiedlichem entryLevel zu benutzen. Alles ohne Erfolg.

Wer hat dieses Problem auch schon lösen müssen bzw. weiß hier Rat?
Profil
Verfasst am: 02. 05. 2012 [21:43]
LuP
Dabei seit: 12.04.2007
Beiträge: 493
Hallo,

darüber wird kontrovers diskutiert:

- TYPO3 4.6 (Change I4199cb8c) Verweis Redirect Problem mit HMENU
- Redirect to Shortcut target feature in 4.6 break news feed link
- TYPO3 4.6 (Change I4199cb8c) Redirect Problem

Ich würde das Hauptmenü in 2 Teilmenüs splitten, Root als Startseite wählen (Verweis weg) und auf entryLevel sowie special setzen.
HTML
+ meineseite.de [1] (Root als Startseite)
+ -- Kontakt [2]
+ -- Impressum [3]
+ -- News [4]
     + -- Cat 1 [5]
     + -- Cat 2 [6]

TYPOSCRIPT
lib.mainmenu_1 = HMENU
lib.mainmenu_1 {
	special = list
	entryLevel = 0
	special.value = 1
	1 = TMENU
	1 {
		//...
	}
	2 < .1
}
 
lib.mainmenu_2 < lib.mainmenu_1
lib.mainmenu_2 {
	entryLevel = 1
	special.value = 2,3,4,5,6
}


VG.
LuP

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 02.05.2012 um 21:44.]
Profil
Verfasst am: 03. 05. 2012 [11:34]
kolki
Themenersteller
Dabei seit: 04.08.2006
Beiträge: 917
Hab recht vielen Dank LuP für Deine Hilfe. Allein ich krieg es nicht gebacken.
Zunächst will ich hier mal zeigen, wie es eigentlich aussehen soll (bis auf die lästige URL aufgrund des Redirects auf Startseite2).
Strukturell ist es momentan noch so:

+ meineseite.de (Root mit Verweis auf Startseite)
+ -- Startseite
+ ----- Verweis auf Unterseite1
+ ----- Verweis auf Unterseite2
+ ----- usw.
+ -- Unterseite1
+ -- Unterseite2
+ -- usw.

Ich habe es jetzt so getestet, wie Du vorgeschlagen hast. Leider ohne Erfolg. Ganz sicher habe ich irgend etwas nicht verstanden. Am Ende hatte ich auf allen Seiten im linken Menü ausschließlich nur einen Link zur Startseite.

Hier mein angepasstes (sicherlich fehlerhaftes) Menü:
TYPOSCRIPT
lib.mainmenu_1 = HMENU
lib.mainmenu_1 {
	special = list
	entryLevel = 0
	special.value = 1
 
    # erstes level
  1 = TMENU
  1.wrap =  <ul> | </ul>
  1{
              # no state: normale Formatierung
    NO{
     wrapItemAndSub = <li class="menu-left">|</li>
    }
       # act state: gültig von der rootseite bis zur aktuellen Seite
    ACT=1
    ACT{
      wrapItemAndSub = <li class="menu-left">|</li>
    }
       # cur state: gültig für die aktuelle Seite
    CUR=1
    CUR{
      wrapItemAndSub = <li class="menu-left-active">|</li>
    }
       # ifsub state: gültig für seiten die unterseiten haben
    IFSUB=1
    IFSUB{
      wrapItemAndSub = <li class="menu-left">|</li>
    }
 
      SPC = 1
      SPC{
      wrapItemAndSub = <li class="spc">|</li>
    }
  }
   # zweites level  
  2 = TMENU
  2.wrap = |
  2{
    NO{
      wrapItemAndSub = <li class="menu-left-1">|</li>
    }
    ACT=1
    ACT{
      wrapItemAndSub = <li class="menu-left-1-active">|</li>
    }
    CUR=1
    CUR{
      wrapItemAndSub = <li class="menu-left-1-active">|</li>
    }
    IFSUB=1
    IFSUB{
      wrapItemAndSub = <li class="menu-left-1">|</li>
    }
  }
   # drittes level  
  3 = TMENU
  3.wrap =  | 
  3{
    NO{
      wrapItemAndSub = <li class="menu-left-2">|</li>
    }
    ACT=1
    ACT{
      wrapItemAndSub = <li class="menu-left-2">|</li>
    }
    CUR=1
    CUR{
      wrapItemAndSub = <li class="menu-left-2-active">|</li>
    }
    IFSUB=1
    IFSUB{
      wrapItemAndSub = <li class="menu-left-2">|</li>
  }
}
}
lib.mainmenu_2 < lib.mainmenu_1
lib.mainmenu_2 {
	entryLevel = 1
	special.value = 2,3,4,5,6
	}
 
 
 
/*
 subparts.SUBMENU = COA
 subparts.SUBMENU {
     wrap = <div class="secNav">|</div>
     10 = TEXT
     10 {
         data = leveltitle:-1
         noTrimWrap = ||: |
     }
     20 = HMENU
     20 {
         special = directory
         special.data = leveluid:-1
         1 = TMENU
         1 {
             NO.allWrap = |&nbsp;|&nbsp;
         }
     }
 }
 
 #############################
# Seitentitel Level1 setzen #
#############################
pageTitle = TEXT
pageTitle.value = {leveltitle:1}
pageTitle.insertData = 1
pageTitle.wrap = <span id="current-site">|</span>
 */
Profil
Verfasst am: 03. 05. 2012 [13:42]
LuP
Dabei seit: 12.04.2007
Beiträge: 493
Hallo,

in meinem Fall habe ich auf sämtliche Verweise verzichtet. Wenn die Rootseite (Startseite) gerade aktiv ist, werden deren Unterseiten nicht angezeigt. Stattdessen werden diese in einem separaten Menü darunter angehängt. Im Endeffekt möchte ich also folgende Menüstruktur erreichen:
HTML
- Startseite [1] (Root)
+ Unterseite1 [2]
+ -- Unterseite11 [4]
+ -- Unterseite12 [5]
+ Unterseite2 [3]
+ -- Unterseite21 [6]
+ usw.
 
<div id="mainmenu">
    <ul class="level1">
        <li>Startseite</li>
    </ul>
    <ul class="level1">
        <li>
        Unterseite1
            <ul class="level2">
                <li>Unterseite11</li>
                <li>Unterseite12</li>
            </ul>
        <li>
        <li>
        Unterseite2
            <ul>
                <li>Unterseite21</li>
            </ul>
        </li>
    </ul>
</div>

TYPOSCRIPT
lib.mainmenu_2 = HMENU
lib.mainmenu_2 {
    special = list
    entryLevel = 1
    special.value = 2,3
 
    # erstes level
    1 = TMENU
    1.wrap =  <ul class="level1"> | </ul>
    1{
            # no state: normale Formatierung
        NO{
            wrapItemAndSub = <li class="menu-left">|</li>
        }
            # act state: gültig von der rootseite bis zur aktuellen Seite
        ACT=1
        ACT{
            wrapItemAndSub = <li class="menu-left">|</li>
        }
            # cur state: gültig für die aktuelle Seite
        CUR=1
        CUR{
            wrapItemAndSub = <li class="menu-left-active">|</li>
        }
            # ifsub state: gültig für seiten die unterseiten haben
        IFSUB=1
        IFSUB{
            wrapItemAndSub = <li class="menu-left">|</li>
        }
 
        SPC = 1
        SPC{
            wrapItemAndSub = <li class="spc">|</li>
        }
    }
 
        # zweites level  
    2 = TMENU
    2.wrap = <ul class="level2"> | </ul>
    2{
        NO{
            wrapItemAndSub = <li class="menu-left-1">|</li>
        }
        ACT=1
        ACT{
            wrapItemAndSub = <li class="menu-left-1-active">|</li>
        }
        CUR=1
        CUR{
            wrapItemAndSub = <li class="menu-left-1-active">|</li>
        }
        IFSUB=1
        IFSUB{
            wrapItemAndSub = <li class="menu-left-1">|</li>
        }
    }
        # drittes level  
    3 = TMENU
    3.wrap =  <ul class="level3"> | </ul> 
    3{
        NO{
            wrapItemAndSub = <li class="menu-left-2">|</li>
        }
        ACT=1
        ACT{
            wrapItemAndSub = <li class="menu-left-2">|</li>
        }
        CUR=1
        CUR{
            wrapItemAndSub = <li class="menu-left-2-active">|</li>
        }
        IFSUB=1
        IFSUB{
            wrapItemAndSub = <li class="menu-left-2">|</li>
        }
    }
}
 
lib.mainmenu_1 < lib.mainmenu_2
lib.mainmenu_1 {
    entryLevel = 0
    special.value = 1
 
    2 >
    3 >
}


VG,
LuP
Profil
Verfasst am: 04. 05. 2012 [10:06]
kolki
Themenersteller
Dabei seit: 04.08.2006
Beiträge: 917
Hab recht vielen Dank.icon_wink.gif
Der Erfolg hat sich beim gestrigen Testen leider noch nicht eingestellt (weiß auch nicht, was da noch verkehrt gewesen sein soll), hattest mir doch eine gute Vorlage gegeben. Sicherlich setze ich mich am WE noch einmal damit auseinander.

Da kommt mir in den Sinn:
Sollte man das ganze nicht auch mittels mode_rewrite lösen können. Meine Versuche dahingehend waren bis jetzt erfolglos. icon_rolleyes.gif

Oder kennt jemand die entsprechende Stelle im Core, die seit 4.6 geändert wurde?
Profil
Verfasst am: 04. 05. 2012 [17:30]
kolki
Themenersteller
Dabei seit: 04.08.2006
Beiträge: 917
Da hat mir anscheinend irgend ein Cache oder TYPO3 selbst (template on next level, Vererbung usw.) eine ganze Zeit lang einen Streich gepielt und meine Einstellungen ignoriert und/oder unzulässig weiter vererbt. Ich hab keine Ahnung was da war.
Jedenfalls läuft jetzt alles - very nice!
icon_razz.gificon_razz.gificon_razz.gif

Am Ende ist es eine Kombination aus deiner Vorlage und meinem Menü geworden. Ick freu mir - und besten Dank, LuP!
Profil