Einzelnen Beitrag anzeigen
  #2  
Alt 02.07.07, 15:08
cicero cicero ist offline
Forum Newbie
 
Registriert seit: 08.11.06
Beiträge: 45
Daumen hoch

Soweit scheint dieses Problem gelöst sein :D

Der erste Lösungsversuch war das Speichern der jeweiligen Unterkategorien mit den Links in einem verstecken Layer. Dann wurden diese einfach mit einem JavaScript als Option Elemente in eine Auswahlliste (select) eingefügt. Auswahl funktionierte auch soweit.

Doch siehe da. Ex oriente lux ...
Tief versteckt im Archiv eines russischen TYPO3 Forums ward diese CATMENU zu finden.
Siehe Russian TYPO3 community.

Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
lib.cat_choose = COA
lib.cat_choose.wrap = <form action="index.php?id=39" method="post" name="Form1"><table width="330px" border="0" cellpadding="0" cellspacing="0">| <tr valign="top"><td><input name="submit1" type="submit" value="Suchen" class="button_style"></td></tr></table></form>
lib.cat_choose {
10 = TEXT
10.value =
50 = CONTENT
50 {
wrap = <tr><td><select name="menu1" class="list_style"><option value="">Auswahl1</option>|</select></td></tr>
table = tt_news_cat
select {
# the category folder(s)
pidInList = 38
andWhere = parent_category = 3
}
renderObj = COA

renderObj {
10 = TEXT
10.field = uid
10.wrap = <option value="|"
20 = TEXT
20 {
field = title
wrap = selected="selected" >|</option>
if {
value.field = uid
equals.data = GPvar:menu1
}
}

21 = TEXT
21 {
field = title
wrap = >|</option>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
} # end renderObj
} # end 50

52 = CONTENT
52 {
wrap = <tr><td><select name="menu2" class="list_style"><option value="">Auswahl2</option>|</select></td></tr>
table = tt_news_cat
select {
# the category folder(s)
pidInList = 38
andWhere = parent_category = 4
}
renderObj = COA

renderObj {
10 = TEXT
10.field = uid
10.wrap = <option value="|"
20 = TEXT
20 {
field = title
wrap = selected="selected" >|</option>
if {
value.field = uid
equals.data = GPvar:menu2
}
}
21 = TEXT
21 {
field = title
wrap = >|</option>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
} # end renderObj
} # end 52

} # end lib.cat_choose

Also ein CATMENU als Dropdownliste.

Soweit ich es richtig verstehe, wird hier ein komplettes Menü cat_choose zusammengebaut. Die Daten werden über direkter Abfrage aus der Tabelle tt_news_cat (für die gegebenen Hauptkategorien parent_category) zusammengesucht.
Die Options werden dann ins renderObj geschrieben (in ein COA).

Die Auswahl wird über Parameter (GPvar:menu1, GPvar:menu2) aus dem Formular ermittelt. Im Setup TS für plugin.tt_news werden dann die Parameter im dataWrap übergeben. Vereinfacht kann dieses Menü dann ja auch für eine einzige Kategorienauswahl verwendet werden. Oder auch mehr als zwei...

Interessant was man alles mit TypoScript machen kann ;)


Marcus
Mit Zitat antworten