Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu Top5 Statistik-last thread
Lightmaster-AH
26.06.2004, 11:58
Hallo zusammen,
hoffe bin hier richtig mit meinem Beitrag, habe auch schon gesucht, aber entweder das passende Suchwort nicht gefunden, oder es existiert wirklich noch kein Thread mit dieser Anfrage.
Ich habe die Top5 Statistik im Forum eingefügt (schon länger), funktioniert auch alles prima. Nun habe ich ein paar Foren hinzugefügt, die Privat sind und dementsprechende Rechte verteilt. Auch hier ist alles Okay, User die nicht die entsprechenden Rechte haben sehen diese Foren erst garnicht.
Nun zu meinem Problem. In der Top5 Statistik werden die Themen diese Beiträge (neues Thema/letzter Beitrag/Poster) allen angezeigt. Wie kann ich dies verhindern. Am besten sollten die Beiträge der Privatforen überhaupt nicht in der Statistik auftauchen. Hier mal der Code, von dem ich annehme, das er geändert werden muß:
forumhome_stats_thread:
<tr>
<td class="smallfont"> [<i><if condition="$getstats_thread[newpost]">neu<else />alt</if></i>] <a href="showthread.php?$session[sessionurl]goto=newpost&t=$getstats_thread[threadid]" title="<phrase 1="$getstats_thread[title]">$vbphrase[go_first_unread_in_thread_x]</phrase>">$getstats_thread[titletrimmed]</a></strong></td>
<if condition="$getstats_thread[isdeleted]">
<td class="smallfont"colspan=3" align="left"><phrase 1="member.php?$session[sessionurl]u=$getstats_thread[del_userid]" 2="$getstats_thread[del_username]">$vbphrase[thread_deleted_by_x]</phrase></td>
<else />
<td class="smallfont"> <a href="member.php?$session[sessionurl]u=$getstats_thread[userid]">$getstats_thread[lastposter]</a></strong></td>
<td class="smallfont" align="right"> $getstats_thread[views]</strong></td>
<td class="smallfont" align="right"> $getstats_thread[replycount]</strong></td>
</if>
</tr>
Weiss jemand was ich ändern muss? Habe ich hier überhaupt den richtigen Code gefunden?
Danke schonmal: Lightmaster-AH
Kopiere mal den Teil aus der PHP-Datei raus, wo $getstats_thread herkommt.
Lightmaster-AH
29.06.2004, 16:22
Hallo Mystics,
ich habe endlich die php gefunden in der getstats-thread erähnt wird. Hier eine Ausschnitt:
// filter out deletion notices if can't be seen
$forumperms = fetch_permissions($forumid);
if (!($permissions['forumpermissions'] & CANSEEDELNOTICE))
{
$delquery = ", NOT ISNULL(deletionlog.primaryid) AS isdeleted, deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason";
$delthreadlimit = "AND deletionlog.primaryid IS NULL";
$deljoin = "LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog ON(thread.threadid = deletionlog.primaryid AND type = 'thread')";
}
else
{
$delquery = ", NOT ISNULL(deletionlog.primaryid) AS isdeleted, deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason";
$delthreadlimit = "";
$deljoin = "LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog ON(thread.threadid = deletionlog.primaryid AND type = 'thread')";
}
$getstats_threads = $DB_site->query("
SELECT thread.threadid, thread.title, thread.lastpost, thread.forumid, thread.replycount, thread.lastposter, thread.dateline, IF(views<=replycount, replycount+1, views) AS views, thread.visible, user.username, user.userid
$delquery
FROM " . TABLE_PREFIX . "thread AS thread
LEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.username = thread.lastposter)
$deljoin
WHERE thread.forumid NOT IN ($excludedforums)
$delthreadlimit
ORDER BY thread.lastpost DESC LIMIT 0, $displayrecords");
while ($getstats_thread = $DB_site->fetch_array($getstats_threads))
{
$getstats_thread[title] = unhtmlspecialchars($getstats_thread[title]);
if (strlen($getstats_thread[title]) > $threadchars)
{
$getstats_thread[titletrimmed] = substr($getstats_thread[title], 0, strrpos(substr($getstats_thread[title], 0, $threadchars), ' ')) . '...';
}
else
{
$getstats_thread[titletrimmed] = $getstats_thread[title];
}
if ($getstats_thread[lastpost] > $bbuserinfo[lastvisit])
{
$getstats_thread[newpost] = true;
}
if ($getstats_thread[isdeleted])
{
$getstats_thread[isdeleted] = true;
}
eval('$stats_threads .= "' . fetch_template('forumhome_stats_thread') . '";');
}
Ist nicht wenig, aber es wird dort ja dauernd wiederholt, so dass ich nicht wusste, welchen kleineren Ausschnitt ich hätte nehmen können. Ich hoffe, du kannst damit etwas anfangen.
Vielen Dank schon einmal: Lightmaster-AH
siehe bitte hier:
http://www.vbulletin-germany.com/forum/showthread.php?p=71403#post71403
sollte dein Problem lösen
Lightmaster-AH
29.06.2004, 17:53
Sorry Maddrax,
aber muß ich das verstehen? Die Lösung des Problems soll also hier in meinem Posting schon enthalten sein, gut, nur wäre es klasse, wenn ich auch erfahren könnte wie und wo?
Noch einmal Sorry, doch irgendwie steh ich voll auf dem Schlauch.
liebe Grüße: Lightmaster-AH
Sorry, frag mich nicht wieso ich da nen falschen Post angegeben habe. :eek:
URL ist jetzt geändert.
ich habe endlich die php gefunden in der getstats-thread erähnt wird. Hier eine Ausschnitt:
Ersetze:$getstats_threads = $DB_site->query("
SELECT thread.threadid, thread.title, thread.lastpost, thread.forumid, thread.replycount, thread.lastposter, thread.dateline, IF(views<=replycount, replycount+1, views) AS views, thread.visible, user.username, user.userid
$delquery
FROM " . TABLE_PREFIX . "thread AS thread
LEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.username = thread.lastposter)
$deljoin
WHERE thread.forumid NOT IN ($excludedforums)
$delthreadlimit
ORDER BY thread.lastpost DESC LIMIT 0, $displayrecords"); mit:$forumids = array_keys($forumcache);
// get forum ids for all forums user is allowed to view
foreach ($forumids AS $key => $forumid)
{
$fperms = &$bbuserinfo['forumpermissions']["$forumid"];
$forum = &$forumcache["$forumid"];
if (!($fperms & CANVIEW) OR !($fperms & CANSEARCH) OR !verify_forum_password($forumid, $forum['password'], false))
{
unset($forumids["$key"]);
}
}
$forumids[] = 0;
$getstats_threads = $DB_site->query("
SELECT thread.threadid, thread.title, thread.lastpost, thread.forumid, thread.replycount, thread.lastposter, thread.dateline, IF(views<=replycount, replycount+1, views) AS views, thread.visible, user.username, user.userid
$delquery
FROM " . TABLE_PREFIX . "thread AS thread
LEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.username = thread.lastposter)
$deljoin
WHERE thread.forumid IN(" . implode(', ', $forumids) . ")
AND thread.open <> 10
AND thread.visible = '1'
$delthreadlimit
ORDER BY thread.lastpost
DESC LIMIT 0, $displayrecords
");Dann werden nur die Themen aus Foren angezeigt, auf die der jeweilige Benutzer Zugriffsrechte hat.
@Maddrax
In dem anderen Thema geht es doch um einen ganz anderen Hack ;)
Gandalf2003
25.07.2004, 19:36
wo bitte soll das denn geändert werden ?
wo bitte soll das denn geändert werden ?
index.php...
Gandalf2003
25.07.2004, 23:04
folgendes prob ich noch.
auf einer home.php (portalseite) hab ich so ne art von top5 mit drin. die "nicht angemeldeten" user sehen nix. wenn ich mich dann wieder anmelde hab ich nomale ansicht.
$forumids = array_keys($forumcache);
// get forum ids for all forums user is allowed to view
foreach ($forumids AS $key => $forumid)
{
$fperms = &$bbuserinfo['forumpermissions']["$forumid"];
$forum = &$forumcache["$forumid"];
if (!($fperms & CANVIEW) OR !($fperms & CANSEARCH) OR !verify_forum_password($forumid, $forum['password'], false))
{
unset($forumids["$key"]);
}
}
$forumids[] = 0;
$forumids[] = 0;
das fettmakierte, was sagt das genau aus?
das fettmakierte, was sagt das genau aus?
Das Leute, die keinerlei Foren sehen dürfen, keinen Datenbankfehler bekommen...
Gandalf2003
25.07.2004, 23:16
also hat das nix mit den leserechten zu tun:( woran kann es denn sonst liegen, dass ausgeloggte, oder nicht registrierte user die neusten beiträge nicht sehen können?
vllt. kann man da pauschal was sagen, ohne jetzt den code rausrücken zu müssen:D
also hat das nix mit den leserechten zu tun:( woran kann es denn sonst liegen, dass ausgeloggte, oder nicht registrierte user die neusten beiträge nicht sehen können?
vllt. kann man da pauschal was sagen, ohne jetzt den code rausrücken zu müssen:D
Weil sie für kein einziges Forum Leserechte haben??? Keine Ahnung, ohne den Code und/oder die Seite zu sehen.
Gandalf2003
25.07.2004, 23:21
leserechte hab ich ja kontrolliert:) code kommt vom freund^^
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.