Antwort
 
LinkBack Themen-Optionen Thema bewerten Ansicht
  #1  
Alt 25.06.07, 17:53
Forum Newbie
 
Registriert seit: 08.11.06
Beiträge: 45

tt_news CATMENU anpassen


Ich habe hier Problem mit tt_news. Ich arbeite an einer Drop Down Listen Ausgabe des CATMENU. Problem: Die Elemente der Liste enthalten die Links selbst.

HTML-Code:
<option value="menuitem"><a href="index.php?id=5&amp;tx_ttnews[cat]=12&amp;cHash=d7b171ec96" title="">KatName</a></option>
In der PHP Klasse class.tx_ttnews_catmenu.php werden alle Ids (Kategorie, Seite)
in die Variable $catSelLinkParams gespeichert.
catSelectorTargetPid ist dann wohl die Id der ausgewählten Kategorie?
Kann ich im TypoScript auch auf diese Variablen zurückgreifen?
Oder wenigstens die ZielURL ins value Attribut schreiben?

Theoretisch müßte es das Einfügen im catmenuItem_NO_stdWrap.dataWrap passieren?
In geschwungene Klammern kann man da ja Werte übergeben.

TS Source sieht z.Z. so aus:

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:
displayCatMenu {
mode = nestedWraps
catmenuItem_ACT_stdWrap.wrap = |
catmenuItem_NO_stdWrap.wrap = |
catmenuItem_ACT_imgWrap.wrap = |
catmenuItem_NO_imgWrap.wrap = |

    # wraps for each level
catmenuLevel1_stdWrap.wrap = |
catmenuLevel2_stdWrap.wrap = |
catmenuLevel3_stdWrap.wrap = |
catmenuLevel4_stdWrap.wrap = |

catmenu_stdWrap.dataWrap (
      <form id="recipecat" name="recipecat">
         <select id="catentry" name="catentry" size="1">|</select>
      </form>
)


catmenuItem_NO_stdWrap.dataWrap = <option value="">|</option>  

          # catmenuItem_NO_stdWrap.dataWrap.insertData = 1

}


Vielleicht hat jemand schon ein ähnliches CATMENU gebaut?
Vielen Dank für eventuelle Hinweise!

Marcus
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 02.07.07, 15:08
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
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 03.09.07, 16:21
Forum Zuschauer
 
Registriert seit: 03.09.07
Alter: 36
Beiträge: 4

Nicht verstanden


Hallo Marcus,

ich muss dieses Feature (Kategorieauswahl über Combobox) auch implementieren.

Ich habe den (russischen) Lösungsweg nicht komplett verstanden. Kannst du mir etwas auf die Sprünge helfen ? Das COA bekomme ich gerendered. Allerdings wird die Auswahl nach dem Submit nicht übernommen .

Kannst du mir die Stellen nennen, an denen die Änderungen rein müssen ?

Danke
Tim
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #4  
Alt 18.06.08, 13:13
Forum Newbie
 
Registriert seit: 15.04.08
Beiträge: 35

Bin gerade über diesen Thread gestolpert, weil ich ebenfalls ein CATMENU in einem Pulldown-Menu unterbringen will.

Zwei Probleme ergeben sich:

1.) Das Menu wird zwar gerendet, allerdings wird die Auswahl nur übernommen, wenn ich die Seite mit gelöschtem Cache erneut lade.

2.) Die Auswahl hat keinen Einfluss auf die angezeigten News (es werden grundsätzlich alle News angezeigt). Fehlt hier noch etwas wie:

Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
code >

code = CATMENU
defaultCode >
defaultCode = CATMENU


useSubCategories = 1
displaySubCategories = 1
Hier nochmal der Quellcode
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:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
lib.nav_spieltag = COA
lib.nav_spieltag.wrap = <form action="index.php?id=49" method="post" name="Form1"><table width="330px" border="0" cellpadding="0" cellspacing="0"><tbody><tr>  | <td><input name="submit1" type="submit" value="Auswählen" class="button_style"></td></tr></tbody></table></form>



lib.nav_spieltag {
10 = TEXT
10.value =

50 = CONTENT
50 {
        #wrap = <tr><td><select name="menu1" class="list_style"><option value="">Saison</option>|</select></td></tr>
wrap = <td><select name="menu1" class="list_style"><option value="">Saison</option>|</select></td>

        ## Datenbankabfrage
table = tt_news_cat
select {
            # the category folder(s)
pidInList = 2
andWhere = parent_category = 9
}

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="">Spieltag</option>|</select></td></tr>
wrap = <td><select name="menu2" class="list_style"><option value="">Spieltag</option>|</select></td>
table = tt_news_cat
select {
            # the category folder(s)
pidInList = 2
andWhere = parent_category = 44
}

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.nav_spieltag
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #5  
Alt 18.06.08, 13:33
Forum Zuschauer
 
Registriert seit: 03.09.07
Alter: 36
Beiträge: 4

Ich habe dazu einen Workaround-hack geschrieben <img>

http://www.typo3forum.net/forum/news...ategories.html (Dropdown für tt_news Categories)

viele Grüße
Tim
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #6  
Alt 18.06.08, 16:19
Forum Newbie
 
Registriert seit: 15.04.08
Beiträge: 35

Wow, nicht schlecht! Und vielen Dank für den Hinweis!

Bei mir funktioniert das leider aber nicht ganz. Meine typo3-Installation befindet sich nicht im root-Verzeichnis. Der neue Link berücksichtigt dies aber leider nicht.

Ich bekomme z.B:
http://localhost/index.php?id=49&tx_ttnews[cat]=31&cHash=aa7280edf3

anstatt:
http://localhost/typo3/index.php?id=49&tx_ttnews[cat]=31&cHash=aa7280edf3

Gibt es hierfür eine Lösung oder habe ich etwas übersehen?

Vielen Dank schonmal!

Edit: Habs jetzt quick and dirty so gelöst:

function Go (select) {
var wert = "/typo3"+select.options[select.options.selectedIndex].value;
if (wert == "leer") {
select.form.reset();
return;
}
else
{
location.href = wert;
}
}

Geändert von lotte (18.06.08 um 18:58 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #7  
Alt 18.06.08, 23:51
Forum Newbie
 
Registriert seit: 15.04.08
Beiträge: 35

Ich schon wieder... Bin jetzt leider an die Grenzen Deines Workaraiunds gestoßen, @TimS. Trotzdem aber nochmal vielen Dank!

Das Problem: ich will die News-Selektion in Abhängigkeit von 2 CATMENUs durchführen. Das beste Beispiel was mir zur EM-Zeit einfällt wäre News - Home - kicker online;-). Hier kann man eine Jahr und eine Runde auswählen.

Ist das prinzipiell überhaupt mit tt_news möglich? Habe mal spaßeshalber zwei CATMENUS oldstyle eingebunden und die beeinflussen sich ja auch nicht gegenseitig.

Ich werde nochmal den "russischen Weg" versuchen, vielleicht hat ja Jemand ein Tipp für mich (s. Posting 14h13). Wenn es gar nicht gehen kann, dann wäre ich auch hier dankbar für einen Hinweis.

Danke schön!

edit: Der kicker-Link funktioniert leider nicht richtig. Klickanleitung: Home -> Bundesliga -> Spieltag/Tabelle

edit2: Ich habe das gleiche Problem auch mit dem Beispiel aus der tt_news-Tef: The Category-Selector. Auch hier werden die Werte nur übernommen, wenn ich die Seite mit gelöschtem Cache neu lade. Kennt Jemand dieses Phänomen)

Geändert von lotte (19.06.08 um 11:50 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #8  
Alt 19.06.08, 15:21
Forum Newbie
 
Registriert seit: 15.04.08
Beiträge: 35

Das Pulldown-Menu funktioniert jetzt. Mit der nervigen Einschränkung allerdings, dass man immer den Cache lernen muss - wie im Besipiel des Manuals.
Hat hier irgendwer einen Lösungsansatz?

Vielen Dank!
Eine verzweifelte Blondine...


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:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
lib.nav_spieltag = COA
lib.nav_spieltag.wrap = <form action="index.php?id=49" method="post" name="Form1"><table width="299px" border="0" cellpadding="0" cellspacing="0"><tr valign="top"> | <td><input name="submit1" type="submit" value="Auswahl" class="button_style"></td></tr></table></form>
lib.nav_spieltag{
10 = TEXT
10.value =
50 = CONTENT
50 {
wrap = <td><select name="menu1" class="list_style"><option value="">Saison</option>|</select></td>
table = tt_news_cat
select {
                # the category folder(s)
pidInList = 2
andWhere = parent_category = 84
}
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
}
}
}
}


52 = CONTENT
52 {
wrap = <td><select name="menu2" class="list_style"><option value="">Spieltag</option>|</select></td>
table = tt_news_cat
select {
            # the category folder(s)
pidInList = 2
andWhere = parent_category = 44
}
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
}
}
}
}


}

lib.nav_saison < plugin.tt_news
lib.nav_saison {
code >
code = LIST
listOrderBy = title asc
categoryMode = 2
categorySelection = TEXT
categorySelection.dataWrap = {GPvar:menu1},{GPvar:menu2}
pid_list = 34, 85
}
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #9  
Alt 24.06.08, 08:56
Forum Newbie
 
Registriert seit: 15.04.08
Beiträge: 35

Leider hänge ich jetzt schon eine Woche an dem Problem.

Habe ich formell etwas falsch gemacht oder ist diese Aufgabe einfach nicht lösbar?

Inzwischen denke ich, dass es was mit cHash zu tun hat. Aber kann ich den mit TypoScript beeinflussen? Ich wäre Euch wirklich sehr dankbar für einen Hinweiß...
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht Thema bewerten
Linear-Darstellung Linear-Darstellung
Baum-Darstellung