Untermenü

TYPO3 Chat hosted by kj187kj.

Join now


Chat about what's on your mind. More about public chats.

Sunsite SourceForge.net

Statistik
Tutorials Gesamt:
56
Tutorials Hidden:
1
Kommentare:
563

Bücher zum Thema

Links / Friends
» typo3.org
» T3N Magazin
» CSS Tutorials
» TYPO3 SEO
» TYPO3 Blog



 

Neuen Menütyp definieren


Tutorial abonnieren:
Author:
Daniel Pötzinger
Author E-Mail:
Keine E-Mail vorhanden

Eingetragen:
14.08.2006 - 16:31

Quelle:
Klicks:
926




In diesem kleinem Tutorial wird gezeigt, wie man einen neuen Menütyp definiert.

In diesem Beispiel soll ein Dropdown - Menü (Selectbox) aus den Unterseiten verschiedener Seiten erzeugt werden. Dabei sollen die Bereiche eine Optgroup sein, und die Unterseiten Einträge darin, bei Auswahl eines Eintrages soll automatsch auf die entsprechende Seite gesprungen werden.
Schritt 1:

Mit Hilfe von TSConfig einen neuen Eintrag im Inhaltselement "Menü/Sitemap" erzeugen:
   0: 
   1: TCEFORM.tt_content.menu_type.addItems.15 = spezielles Sendungsdropdown
Hier koennen Sie sich den Quellcode kopieren.


Schritt 2:

Mit Hilfe von TypoScript dieses neue Menü im TS-Objekt tt_content.menu.20 definieren. Da die Anforderungen an das Menü nicht ganz trival sind ist die Konstruktion des Dropdownmenüs mit Hilfe eines TMENU ein wenig Tricky:
   0: 
   1: tt_content.menu.20.15 = HMENU
   2: //tt_content.menu.20.entryLevel=-1
   3: tt_content.menu.20.15 {
   4:   special=list
   5:   special.value.field=pages
   6:   wrap (
   7:   <script type="text/javascript">
   8:   <!--
   9:   function Go(x) {
  10:    if(x != "") {   
  11:      window.location.href = x;
  12:      document.forms[0].reset();
  13:      document.forms[0].elements[0].blur();
  14:    }
  15:   }
  16:   //-->
  17:   </script> 
  18:   <form><select name="programm"
  19:   onChange="Go(this.form.programm.options[this.form.programm.options.selectedIndex].value)">
  20:   |</select></form>
  21:   )  
  22:    
  23:   1=TMENU
  24:   1.NO.allWrap=|">
  25:   1.NO.wrapItemAndSub=<optgroup label="|</optgroup>
  26:   1.NO.doNotLinkIt=1
  27:   1.expAll=1
  28:    
  29:   2=TMENU
  30:   2.NO.doNotLinkIt=1
  31:   2.NO.before=
  32:    
  33:   2.NO.before {
  34:     typolink.parameter.data=field:uid
  35:     typolink.returnLast=url
  36:   }
  37:   2.NO.before.wrap=<option value="|">
  38:   2.NO.allWrap=|</option>
  39: }
Hier koennen Sie sich den Quellcode kopieren.






Ergebnis: Kein Ergebnis vorhanden



Zum Eingabeformular

 
gitarrero 01.02.2008 17:38 Uhr 

Das ist ja wieder mal typisch...
Da hält man sich x Stunden zurück die Community zu fragen wie etwas geht,
und sobald man sich dazu durchgewrungen hat, löst man das Problem in wenigen Minuten. *kopfschüttel*

Für alle, die die Lösung benötigen:

tt_content.menu.20.15 = HMENU
tt_content.menu.20.15 {
special=list
special.value.field=pages
wrap (
<script type="text/javascript">
<!--
function Go(x) {
if(x != "") {
window.location.href = x;

document.forms[0].elements[0].blur();
}
}
//-->
</script>
<form>
<select name="kontaktart" onchange="Go(this.value)">|</select>
</form>
)

1=TMENU
1.NO.allWrap=|">
1.NO.before {
typolink.parameter.data=field:uid
typolink.returnLast=url
}

1.NO.before.wrap=<option value="|">
1.NO.allWrap=|</option>
1.NO.doNotLinkIt=1
1.expAll=1

2=TMENU
2.NO.doNotLinkIt=1
2.NO.before=

2.NO.before {
typolink.parameter.data=field:uid
typolink.returnLast=url
}
2.NO.before.wrap=<option value="|">
2.NO.allWrap=|</option>

2.CUR = 1
2.CUR {
stdWrap.dataWrap = <option value="{field:uid}" selected="selected">
allWrap = | </option>
doNotLinkIt = 1
}
}
 
 
 
gitarrero 01.02.2008 17:26 Uhr 

Hallo Community,
diese Lösung ist die beste, die ich für meinen Zweck finden konnte.
Ich habe nun schon einige Stunden damit zugebracht, diese Funktion um "selected" zu erweitern,
wenn man sich auf einer der Unterseiten befindet.
Aber leider bin ich in TypoSkript noch nicht ganz so fit...

Könnt Ihr mir einen Tipp geben, wie ich bei dieser Funktion mit CUR = 1 arbeiten kann?

Ich danke euch bereits im Voraus,
Gitarrero
 
 
 
Seite: 1