Zum Inhalt springen

einzelne Menüpunkte nicht verlinken

Erstellt am 11. November 2006 · 15 Antworten · letzte Antwort am 20. Dezember 2007

Tags: Frage

MCQ ·

Ich habe folgendes vor, Ich möchte auf unterseiten 12 verschiedene Seiten haben welche beim öffnen ein Bild anzeigen. Jeder Button zu diesen Seiten sieht anders aus (über levelmedia bereits gelöst) allerdings sollen Seiten, die keine eigene Button-Grafik vorweisen können im Menü zwar durch einen Standart-Button angezeigt aber nicht verlinkt werden. Ich hoffe Ir habt verstanden was ich meine.

Zum besseren verständnis hier nochmal mit Bildern:

Bild: central-pages.de/kerstin_gmenu.jpg

Dies ist ein Untermenü. Einige Seiten haben eigene Grafiken, andere Seiten werden im Menü durch einen grauen Standart-Button angezeigt. Da die Seiten welche keine eigene Button-Grafik vorweisen, auch über keinen Inhhalt verfügen sollen diese nicht verlinkt werden. Um das Layout nicht zu zerstöhren sollen diese aber angezeigt werden. Kann man den Link bei diesen Buttons irgendwie abschalten?

Hier der TS-Code für dieses Untermenü:

subparts.SUBMENU2 = HMENU
subparts.SUBMENU2{
	1=GMENU
	1.NO.XY=0,0
	2=GMENU
	2.NO{
		XY = 39,39
		backColor = #F8F8F8
		allWrap=<div class="imgbtn"> | </div>
		10=IMAGE
		10.file{
			import.field = media
			import = uploads/media/
			import.listNum = 0
		}
	}

}

Da ich mich als blutiger TS-Anfänger hoffe ich hier Hilfe bei meinem Problem zu finden.

Gruß MCQ

theNeo ·

Hi such mal nach dem Befehl

special = list

mit dem kannst du die jeweiligen PIDs auslesen, welche Standard sein sollen und diese musst dann auf nicht linken setzten oder was auch immer damit geschehen soll.

MCQ ·

Mh .. danke für die schnelle Antwort, aber wie kann ich den Buttons die verlinkung von Typo3 entzieen, wenn ich sie herausgefiltert hab?

/Edit:

Hab deinen Tipp beherzigt und mal in die Typo3-Script Referenz geschaut

Diese schreibt zu special = list folgendes:

Dies erzeugt ein Menü mit den beiden aufgezählten Seiten (uid=35 und uid=36):
20 = HMENU
20.special = list
20.special.value = 35, 56

Das ist ja nun aber nicht das was ich will. Ich will ja nicht nur bestimmte seiten im Menü anzeigen lassen, sondern alle. Ich möchte nur bestimmte Seiten nicht verlinken. Die Reihenfolge der Buttons darf sich durch das Script aber nicht ändern.
Außerdem stehen die Seiten nicht fest. Dies soll das Script selbst erkennen.

Oder versteh ich das nur falsch?

Unbekannter Benutzer ·

ich würde das eher mit einem CONTENT-Element versuchen glaube ich und dann das ganze von Hand zusammenbasteln. Das ist nicht ganz einfach zu lösen aber ich habe eine Vorstellung davon, wie man das hinkriegen könnte.

Viele Grüße

Christian

MCQ ·

Ist das echt so kompliziert? Ich dachte man könnte einfach irgendwie sagen

Wenn Levelmedia fehlt dann setze href="#"

MCQ ·

Entweder ich bin dazu zu blöd oder der doNotLinkIt-Befehl juckt Typo3 bei mir gar nicht. 😢 der Button zur aktuellen Seite wird dennoch verlinkt. Hier der Code:

		2.ACT{
			doNotLinktIt=1
			XY = 39,39
			backColor = #F8F8F8
			allWrap=<div class="imgbtn"> | </div>
			10=IMAGE
			# Hintergrundgrafik aus den LevelMedia-Daten laden #
			10.file{
				import.field = media
				import = uploads/media/
				import.listNum = 1
     			}

In diesem Script ist 2 das oben genannte GMENU

webdeveloper ·

Hallo,

Vllt. haettest du auch noch etwas mit "ifEmpty" rumspielen koennen, statt auf ein eigenes PHP zurueckzugreifen. Jetzt ist es zu spaet ;-)

Gruss
Alex

MCQ ·

Ach, für diee Kundin macht es keinen untersschied ob es typoscipt oder php ist, hauptsache ist letztendlich das es funktioniert und durch die kundin editierbar ist, und das ist der fall. Werd sicher in zukunft öfter mal auf eigene PHP-Scripte zurückgreifen wenn ich einfach nicht weiter komme, schließlich ist die Zeit die ich an einem Problem sitze Zeit die ich nicht zusätzlich bezahlt krieg und mit php gehts recht flott.

christe ·

Hallo,
gibt es noch einen funktionierenden Link zu dem PHP_SCRIPT Lösungsansatz? Ich habe nämlich gerade genau dasselbe Problem. Interessanter wäre die Möglichkeit das ganze per TS zu realisieren... ?

Markus306 ·

Ich habe da auch mal ein Problem zu.

Ich habe bis auf einen Menüpunkt im Obersten Menü keine inhalte auf den Seiten. nun kann ich ja mit.

tmp.menu {
 	
	1 = TMENU
	
	1 {
		
		expAll = 1
		wrap = <ul id="nav">|</ul>
		noBlur = 1
		NO = 1
		NO.wrapItemAndSub = <li>|</li>
		IFSUB = 1
		IFSUB.wrapItemAndSub = <li class="menuparent">|</li>
		IFSUB.doNotLinkIt = 1
		
	}
	2 < .1	
	2.wrap = <ul>|</ul>
	
		

	3 < .2
	4 < .2
}

das so machen das die obermenüpunkte nicht gelinkt werden. nur das mit dem excludeUidList bekomme ich nicht hin denn die id 2 soll trotzdem gelinkt werden.

ArminB ·

moin Markus,

ich würde über stdWrap.override gehen, eine is.isInList Abfrage und dort dann per typolink den Link erzeugen

NO {
      doNotLinkIt = 1
      wrapItemAndSub = <li> | </li>
      stdWrap.override.cObject =TEXT
      stdWrap.override.cObject {
        if.isInList = 381
        if.value.field = uid
        typolink.parameter.field = uid
        
      }

Die Abfrage könnte man ja nun auch so ändern, das überprüft wird ob ein Bild vorhanden ist, um auf die Eingangsfrage zurückzukommen.

Armin

Markus306 ·

Danke erstmal, aber wenn ich das so mache, dann ist meine ganze untere Menüebene nicht mehr da. Also kann ich das nicht so machen. Kann es sein das excludeUidList befehle bei Ifsub nicht gehen.

weil hattes es mal so probiert und es hat gar nichts bewirkt.

tmp.menu = HMENU
tmp.menu {
 	
	1 = TMENU
	
	1 {
		
		expAll = 1
		wrap = <ul id="nav">|</ul>
		noBlur = 1
		NO = 1
		NO.wrapItemAndSub = <li> | </li>
		
		
		
		

		IFSUB = 1
		
		IFSUB {
			wrapItemAndSub = <li class="menuparent">|</li>
			doNotLinkIt = 1
                        excludeUidList =2
      		}
      		
		
		
		
	}
	2 < .1	
	2.wrap = <ul>|</ul>
	2.IFSUB = 1
	2.IFSUB.doNotLinkIt = 0
		

	3 < .2
	4 < .2
}

was mir auch noch in den sinn gekommen ist, ob man nicht mit einem ifempty befehl nichts chauen könnte ob die seite keinen inhalt hat und wenn das der fall ist dann ist der link im menü nicht aktiv (also kein link)

aber bin in sachen typoscript nicht gut.