Eine interessante Sache, daher habe ich mich heute morgen spontan entschlossen da was zu schreiben.
Der Ansatz, den ihr verfolgt ist nicht ganz richtig, da ihr erstens keine Templates nutzt, zweitens nur Foren und nicht Kategorien ausgebt und drittens auch private Foren angezeigt werden.
Ich komme zu folgendem Ergebnis:
include/contents/forum/show_posts.php
Unter Zeile 84
79 80 81 82 83 84 | [...]
$row [ 'posts' ] = ( $row [ 'posts' ]? '<br />Posts: ' . $row [ 'posts' ]: '' ). '<br />' ;
$tpl ->set_ar_out( $row ,1);
$i ++;
}
|
folgendes einfügen:
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | $sql = "SELECT
a.id as forum_id, a.name as forum,
b.id as cat_id, b.name as cats
FROM prefix_forums a
LEFT JOIN prefix_forumcats b on b.id = a.cid
LEFT JOIN prefix_groupusers vg ON vg.uid = { $_SESSION [ 'authid' ]} AND vg.gid = a.view
WHERE (({ $_SESSION [ 'authright' ]} <= a.view AND a.view < 1)
OR vg.fid IS NOT NULL)
AND b.cid = 0";
$erg = db_query( $sql );
$liste = "" ;
while ( $row = db_fetch_object( $erg )) {
$fid == $row ->forum_id ? $aktiv = "selected" : $aktiv = "" ;
if ( $akt_cat != $row ->cat_id) {
$liste .= $tpl ->list_get( 'dropdown' , array ( $row ->cat_id, $row ->cats, "cat" ));
$liste .= $tpl ->list_get( 'dropdown' , array ( $row ->forum_id, "- " . $row ->forum, "forum" , $aktiv ));
} else {
$liste .= $tpl ->list_get( 'dropdown' , array ( $row ->forum_id, "- " . $row ->forum, "forum" , $aktiv ));
}
$akt_cat = $row ->cat_id;
}
|
Zeile 111 (ursprünglich 86)
111 | $tpl ->set_ar_out( array ( 'SITELINK' => $MPL , 'ANTWORTEN' => $antworten ) , 2 );
|
durch
111 | $tpl ->set_ar_out( array ( 'SITELINK' => $MPL , 'ANTWORTEN' => $antworten , 'dropdown' => $liste ) , 2 );
|
ersetzen.
include/templates/forum/showpost.htm
Unter Zeile 39
folgendes einfügen:
40 41 42 43 44 45 46 | < div >
< form method = "post" action = "index.php" name = "dropdown" >
< select name = "auswahl" onchange = "change_action(); this.form.submit();" >
{_list_dropdown@< option value = "%1" id = "%3" %4>%2</ option >}
</ select >
</ form >
</ div >
|
Unter Zeile 67 (ursprünglich 60)
folgendes einfügen:
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | function change_action() {
auswahl = document.dropdown.auswahl;
form = document.dropdown;
for (i = 0; i < auswahl.length; ++i) {
if (auswahl.options[i].selected == true) {
if(auswahl.options[i].id == "cat") {
form.action = "index.php?forum-showcat-" + auswahl.options[i].value;
return;
} else {
form.action = "index.php?forum-showtopics-" + auswahl.options[i].value;
return;
}
}
}
}
|
Ist getestet und sollte funktionieren. Ich hoffe, dass das das ist, was du suchst
Edit: Das ist jetzt exemplarisch für die showposts. Bei showtopics/showcat sollte das ähnlich aussehen.
Zuletzt modifiziert von kdl am 19.04.2011 - 14:58:05