Zum Inhalt springen

doppelte link tag im menü <a...><a...>...</a></a>

Erstellt am 8. Januar 2007 · 8 Antworten · letzte Antwort am 9. Januar 2007

Tags: Frage

chaosgod ·

einen wunderschönen

ich wollte bei mir einbauen das externe urls im menü auch so da stehen. hat alles auch recht gut geklappt nur is mir nun aufgefallen das grade diese links sozusagen ein doppeltes <a> tag drum haben.

also genau so aussehen

<a href="blog.html" onfocus="blurLink(this);"><a href="blog/">Blog</a></a>

hier mein TS dazu ... bin leider noch recht am anfang mit typo3 also versteh ich nicht so ganz was da steht is nur geklaut 🙂

seite.10.marks.TOPNAVI = HMENU
seite.10.marks.TOPNAVI{
	entryLevel = 0
	1 = TMENU

	# --- externe URLs und Shortcuts direkt verweisen:
	1.NO {
		linkWrap =  | | |*|  | | |*|  |
		stdWrap.cObject = CASE
		stdWrap.cObject {
			key.field = doktype
			default = TEXT
			default {
				
				field = nav_title
				stdWrap.htmlSpecialChars = 1
			}
			# 4 = shortcut
			4 = TEXT
			4 {
				field = title
				typolink.parameter.field = shortcut
				# der Link kommt schon über die obige typolink-Deklaration, daher äußeren Link entfernen
				doNotLinkIt = 1
			}
			# 3 = external url
			3 = TEXT
			3 {
				field = title
				typolink.parameter.field = url
				typolink.extTarget.field = target
				# der Link kommt schon über die obige typolink-Deklaration, daher äußeren Link entfernen
				doNotLinkIt = 0
			}
			
		}
	}
}
chaosgod ·

hat da keiner nen plan ?!?

oder habt ihr ne andere lösung das externe links im menü so da stehen wie man sie eingibt ?

also das er aus nem

www.seite.de/blog.html (zeigt auf www.seite.de/blog/)
gleich ein
www.seite.de/blog/ macht

thx

chaos

Unbekannter Benutzer ·

Also der Ansatz dafür ist sehr gut, ich würde sagen du müsstest

doNotLinkIt = 1

zwischen Zeile 7 und 8 einfügen, also direkt innerhalb von 1.NO {

Dann musst du allerdings die default Links noch mit einem typolink versehen.

Grüße

Christian

chaosgod ·

hm joar hat schonmal was geholfen nur problem ist jetzt sind bei den normalen links keine links mehr 🙂

mortoX ·

Hallo,
Ich denke wenn du in Zeile 33 das doNotLinkIt = 0 auf 1 setzt müsste es theoretisch auch gehen.

Allerdings finde ich diese Variante verbesserungsfähig und etwas umständlich. Ich hab mir mal die Mühe gemacht und eine eigene Version geschrieben, die nach kurzem rumprobieren ganz gut funktioniert hat:

## Menü ###
seite.10.marks.TOPNAVI = HMENU
seite.10.marks.TOPNAVI {
    ### Erste Ebene ###
    1 = TMENU
    1 {
      wrap = <ul class="menu">|</ul>
      NO.wrapItemAndSub = <li>|</li>
      NO {
      	stdWrap.cObject = CASE
      	stdWrap.cObject {
      		key.field = doktype
      		3 = TEXT
      		3 {
			field = title #auskommentieren falls Anzeige der URL gewünscht
			altTarget.field = url
      		}
      		
      		default = TEXT
      		default {
      			field = title
      		}
      	}
      }
    }
}

Grüße

chaosgod ·

@mortoX

zeile 33 auf 1 geht nicht .... externe links normal rest nicht da -.-

und dein TS läuft bei mir auch nicht .... doppelte <a> tags um externe links

Unbekannter Benutzer ·

Wenn du deinen Code weiter aufbauen willst, müsstest du zwischen Zeile 15 und 16 noch einfügen:

typolink.parameter.field = uid

Dann müssten die normalen Links auch wieder gehen.

Grüße

Christian

chaosgod ·

wunderbar klappt so wie es soll ...

hier nochmal das TS für die dies vieleicht mal brauchen 😉

seite.10.marks.TOPNAVI = HMENU
seite.10.marks.TOPNAVI{
       1 = TMENU
        1.NO {
        	doNotLinkIt = 1
        	linkWrap = &nbsp;|&nbsp;&#124; |*| &nbsp;|&nbsp;&#124; |*| &nbsp;|

                stdWrap.cObject = CASE
                stdWrap.cObject {
                        key.field = doktype
                        default = TEXT
                        default {
                               
                                field = nav_title
                                typolink.parameter.field = uid
                        }
                       
                       
                        3 = TEXT
                        3 {
                                field = title
                                typolink.parameter.field = url
                                typolink.extTarget.field = target   
                        }
                       
                }
        }
}
mortoX ·

Hmm, stimmt da hab ich gestern Schmarn erzählt - ich hab die falsche Version hier reinkopiert...

So sollte es eigentlich heißen:

## Menü ###
page.100 = HMENU
page.100 {
    ### Erste Ebene ###
    1 = TMENU
    1 {
      wrap = <ul class="menu">|</ul>
      NO.wrapItemAndSub = <li>|</li>
      NO {
        doNotLinkIt = 1
      	stdWrap.cObject = CASE
      	stdWrap.cObject {
      		key.field = doktype
      		3 = TEXT
      		3 {
			field = title
                        typolink.parameter.field = url
                        typolink.extTarget.field = target
      		}
      		
      		default = TEXT
      		default {
                        field = title
                        typolink.parameter.field = uid
                        typolink.extTarget.field = target
      		}
      	}
      }
    }
}

Hier wird der Menülink erstmal entfernt, und danach ein neuer TypoLink erstellt. Je nach dem ob es sich um einen externen Link handelt wird url als parameter übergeben bzw. die uid der Seite bei normalen Links.

Mfg