Zum Inhalt springen

Dropdown Menü mit selected="selected"

Erstellt am 21. Januar 2010 · 4 Antworten · letzte Antwort am 21. Januar 2010

Tags: Frage

einpraegsam.​net ·

Hi,

folgendes Dropdown mit Seiten PID funktioniert ganz gut:

20 = HMENU
20 {
	special = directory
	special.value = {$plugin.finder.main.startPID}
	
	1 = TMENU
	1 {
		expAll = 1
		NO.doNotLinkIt = 1
		NO.subst_elementUid = 1
		NO.linkWrap = <option value="{elementUid}" class="finder_pageselection_level1">|</option>
	}
	
	2 < .1
	2.NO.linkWrap = <option value="{elementUid}" class="finder_pageselection_level2">|</option>
	
	3 < .1
	3.NO.linkWrap = <option value="{elementUid}" class="finder_pageselection_level3">|</option>
	
	4 < .1
	4.NO.linkWrap = <option value="{elementUid}" class="finder_pageselection_level4">|</option>
	
	5 < .1
	5.NO.linkWrap = <option value="{elementUid}" class="finder_pageselection_level5">|</option>
}

Beispiel HTML:

<select ...>
<option value="1">Page 1</option>
<option value="2">Page 2</option>
</select>

Jetzt die Herausforderung:
Ich rufe die Seit auf mit einem Parameter - z.B. &param=22

Schön wäre wenn elementUid == 22 dann soll ein selected="selected" gleich vergeben werden.

Ideen?

Grüße, Alex

karlchen ·

im TYPO3 Kochbuch gibt es ein "11.17 Ein Jumpmenü als textbasiertes Menü konstruieren", über google books findet man diesen Eintrag dazu.

http://books.google.de/books?id=ybqAz3Yo428C&pg=PA455&lpg=PA455&dq=11.17+Ein+Jumpmen%C3%BC+als+textbasiertes+Men%C3%BC+konstruieren&source=bl&ots=V8AJyXTpHJ&sig=4Pb0rpe-13CaPjlnYiUjFj_nya0&hl=de&ei=r3VYS9GVBY_-_AaPmPH9Aw&sa=X&oi=book_result&ct=result&resnum=1&ved=0CAkQ6AEwAA#v=onepage&q=11.17%20Ein%20Jumpmen%C3%BC%20als%20textbasiertes%20Men%C3%BC%20konstruieren&f=false

der wesentliche Part wäre wohl dieser

1 = TMENU
      1 {
         wrap = <select name="id" onChange="submit();">|</select>
         NO = 1
         NO {
            doNotLinkIt = 1
            stdWrap.cObject = COA
            stdWrap.cObject {
               10 = TEXT
               10.data = leveltitle:0
               10.dataWrap = <option value="{leveluid:0}">---|---</option>
               10.if.value = 2
               10.if.isLessThan.data = register:count_HMENU_MENUOBJ
               20 = TEXT
               20.value = <option value="
               30 = TEXT
               30.dataWrap = {field:uid}">
               40 = TEXT
               40.field = nav_title // title
               50 = TEXT
               50.value = </option>
            }
         }
         ACT < .NO
         ACT {
            stdWrap.cObject {
               10.dataWrap = <option value="{leveluid:0}" selected="selected">---|---</option>
               30.dataWrap = {field:uid}" selected="selected">
            }
         }
      }
   }
einpraegsam.​net ·

Dank dir - der Hinweis mit stdWrap.cObject war goldrichtig - habe es so gelöst:

20 = HMENU
20 {
	special = directory
	special.value = {$plugin.finder.main.startPID}
	
	1 = TMENU
	1 {
		expAll = 1
		NO {
			doNotLinkIt = 1
			subst_elementUid = 1
			stdWrap.cObject = COA
			stdWrap.cObject {
				10 = TEXT
				10.field = title
				10.if {
					value.field = uid
					equals.data = GPvar:tx_finder_pi1|page
				}
				10.wrap = <option value="{elementUid}" class="finder_pageselection_level1" selected="selected">|</option>
				
				20 = TEXT
				20.field = title
				20.if {
					value.field = uid
					equals.data = GPvar:tx_finder_pi1|page
					negate = 1
				}
				20.wrap = <option value="{elementUid}" class="finder_pageselection_level1">|</option>
			}
		}
	}
	2 < .1
	2.NO.stdWrap.cObject.10.wrap = <option value="{elementUid}" class="finder_pageselection_level2" selected="selected">|</option>
	2.NO.stdWrap.cObject.20.wrap = <option value="{elementUid}" class="finder_pageselection_level2">|</option>
	
	3 < .1
	3.NO.stdWrap.cObject.10.wrap = <option value="{elementUid}" class="finder_pageselection_level3" selected="selected">|</option>
	3.NO.stdWrap.cObject.20.wrap = <option value="{elementUid}" class="finder_pageselection_level3">|</option>
	
	4 < .1
	4.NO.stdWrap.cObject.10.wrap = <option value="{elementUid}" class="finder_pageselection_level4" selected="selected">|</option>
	4.NO.stdWrap.cObject.20.wrap = <option value="{elementUid}" class="finder_pageselection_level4">|</option>
	
	5 < .1
	5.NO.stdWrap.cObject.10.wrap = <option value="{elementUid}" class="finder_pageselection_level5" selected="selected">|</option>
	5.NO.stdWrap.cObject.20.wrap = <option value="{elementUid}" class="finder_pageselection_level5">|</option>
}

Funktioniert einwandfrei. Schöner wäre noch, wenn man das Level über eine Variable einfügen könnte!?

karlchen ·

abfragen kann man es ja

page.1 = TEXT
page.1.data = level:0

page.2 = TEXT
page.2.dataWrap = {level:0}

sollte sich doch dann auch einbauen lassen.