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
[...]
$row['posts'] = ($row['posts']?'<br />Posts: '.$row['posts']:'').'<br />';
$tpl->set_ar_out($row,1);
$i++;
}
folgendes einfügen:
// Quickjump start
$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;
}
// Quickjump ende
Zeile 111 (ursprünglich 86)
$tpl->set_ar_out( array ( 'SITELINK' => $MPL, 'ANTWORTEN' => $antworten ) , 2 );
durch
$tpl->set_ar_out( array ( 'SITELINK' => $MPL, 'ANTWORTEN' => $antworten, 'dropdown' => $liste ) , 2 );
ersetzen.
include/templates/forum/showpost.htm
Unter Zeile 39
</table>
folgendes einfügen:
<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:
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