Translations
Info
All page names need to be in English.
en da  de  fr  it  ja  km  nl  ru  zh

De:Menu in a selectorbox

From TYPO3Wiki
Jump to: navigation, search


<< zurück zu De:Small TYPO3 HowTos

Einführung

Was bewirkt diese Anleitung?

In diesem kleinen Mini-Tutorial möchte darstellen, wie Sich eine Menu Struktur in ein Dropdown Feld, also eine Selectbox, einfügen lässt. Aufgrund eines aktuellen Projekts bin ich auf die Aufgabe gestossen. Hier geht mein Dank an JoH, der mich in der german Newsgroup dabei unterstützt hat.

Screenshots

Sbox.jpg

Tutorial

Im HTML Template File wird ein Marker bzw. ein Subpart für die spätere Ausgabe definiert. In meinem Beispiel arbeite ich mit Subparts. Die Box ist global vorhanden. Im HTML Template-File wird per

	<div id="klappmenu">
	<!-- ###DOCUMENT_KLAPPMENU### start -->
	Position of Klappmenu
	<!-- ###DOCUMENT_KLAPPMENU### ende -->
	</div>

definiert. Das ganze kommt in einen DIV-Container um noch eine Klasse per CSS zuweisen zu können.

#klappmenu{ position: absolute; top: 146px; right: 1px;}

Damit wäre der erste Teil geschafft.

Anschliessend werden die Anweisungen im Setup Feld des Templates geschrieben:

#Subpart rendering
seite.10.subparts.DOCUMENT_KLAPPMENU = HMENU
seite.10.subparts.DOCUMENT_KLAPPMENU {

#Definition Einstiegslevel
   entryLevel = 0

   wrap (
    <form name="quickmenu">
    <select style="" name="pfad" size=1 onChange="window.location='index.php?id='+document.quickmenu.pfad.options[document.quickmenu.pfad.selectedIndex].value">
    <option value="" selected> [Bitte Zielseite auswählen] </option>|
    </select></form>
    )
   1 = TMENU
   1 {
       expAll = 1
       NO {
           stdWrap.data = field:title
           allWrap = |
           subst_elementUid = 1
           doNotLinkIt = 1
           linkWrap = <option value="{elementUid}">|</option>
       }
   }
   # Zweiter level mit anführenden --
   2 < .1
   2.NO.linkWrap = <option value="{elementUid}">--|</option>

   # Dritter level and so on
   3 < .1
   3.NO.linkWrap = <option value="{elementUid}">----|</option>
}

ALTERNATIVE (optimiert für RealURL unter Verwenung von typolink, Dank geht an just2b)

menu.selectBox= HMENU
menu.selectBox {
  # der folgende wrap gehört natürlich mit zum TS (direkt hinter diesen Kommentar), wird aber in dieser Wiki optisch irgendwie "exkludiert" :)

wrap = <form action="">

<select onchange="window.location=this.options[this.selectedIndex].value"><option value="">Seitenauswahl</option>|</select>

</form>

 1 = TMENU
 1 {
   expAll = 1
   NO {
     doNotLinkIt = 1 
     stdWrap.cObject = COA
     stdWrap.cObject {
       10 = TEXT
       10 {
         wrap = <option value="{getIndpEnv:TYPO3_SITE_URL}|">
         insertData = 1
         typolink {
           parameter.field = uid
           returnLast = url
         }
       }
       20 = TEXT
       20 {
          field = subtitle//title
          wrap =  |</option>
       }
     }
   }
   ACT <.NO
   ACT = 1
   ACT.stdWrap.cObject.10.wrap = <option selected="selected" value="{getIndpEnv:TYPO3_SITE_URL}|">
 }
 2 < .1
 2.NO.stdWrap.cObject.20.wrap = --|</option>
 3 < .1
 3.NO.stdWrap.cObject.20.wrap = ----|</option>
 4 < .1
 4.NO.stdWrap.cObject.20.wrap = ------|</option>
 5 < .1
 5.NO.stdWrap.cObject.20.wrap = --------|</option>
}

Ende :)

Bekannte Probleme

Derzeit noch keine

To-Do list

Auch nichts

Changelog

Keines