ryanhulce
06-05-2002, 08:10 PM
I'm trying to hack the Active Topics code so that it will show only topics/threads from forums that the current user has access ('canview') too... I got part of this code from another post and I've modified it from there... It just continues to show all the forums and not just the ones the user has access too..
<?php
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
if (!isset($mainfile)) { include("mainfile.php"); }
$index=1;
global $Pmenu,$breadcrumb;
$Pmenu="";
$breadcrumb="Most Active Topics";
$templatesused ='P_activetopicbits,P_activetopics';
include("header.php");
$num_active=25;
// Display activetopics
global $DB_site,$bgcolor3,$bgcolor4,$dateformat,$timeform at;
// My hacking starts here
$whereatsql2 = "forumid!='-1'";
if ($excatforums == "" or $excatforums <= "0") {
$whereatsql = "WHERE visible";
} else {
$whereatsql = "WHERE thread.open!='10'";
$excatfid = explode(",",$excatforums); $ia = 0; $vbp_at = count($excatfid);
while ($ia < $vbp_at) {
$whereatsql .= "AND forumid!='$excatfid[$ia]'";
$whereatsql2 .= "AND forumid!='$excatfid[$ia]'";
++$ia;
}
}
$doperms=$DB_site->query("SELECT canview,forumid FROM forumpermission WHERE usergroupid='$bbuserinfo[usergroupid]' AND $whereatsql2");
while ($doperm = $DB_site->fetch_array($doperms)) {
$perms['$doperm[forumid]'] = $doperm;
}
$DB_site->free_result($doperms);
unset($doperm);
$whereatsql = "WHERE thread.open!='10'";
$forum=$DB_site->query("SELECT forumid FROM forum");
while ($forums=$DB_site->fetch_array($forum)) {
if($perms['$forums[forumid]']['canview']) {
$whereatsql .= " AND forumid='$forums[forumid]'";
}
}
$DB_site->free_result($forum);
unset($forums);
// My Hacking Ends here
$result = $DB_site->query("select * from thread $whereatsql order by lastpost desc limit $num_active");
while ($latest_array = $DB_site->fetch_array($result)) {
// Get Forum Infomation
$result_forum = $DB_site->query("select * from forum where forumid='$latest_array[forumid]'");
$forum_info_array = $DB_site->fetch_array($result_forum);
$result_thread_text = $DB_site->query("select * from post where threadid='$latest_array[threadid]' order by dateline desc limit 1");
$result_thread_array = $DB_site->fetch_array($result_thread_text);
$title1 = substr($forum_info_array["title"],0,$ftitle1en);
$title1 =substr ( $title1, 0, strrpos($title1," "));
$title2 = substr($latest_array["title"],0,$ttitle1en);
if (strlen($title2) > $ttitle1en) {
$title2 =substr ( $title2, 0, strrpos($title2," "));
}
$aticonid = $result_thread_array["iconid"];
$startedby = $latest_array["postusername"];
$lastposter = $latest_array["lastposter"];
$mpostid= $result_thread_array["postid"];
$atpostdate=vbdate($dateformat,$result_thread_arra y[dateline]);
$atposttime=vbdate($timeformat,$result_thread_arra y[dateline]);
if ($showtopicdesc){
$atpagetext = $result_thread_array[pagetext];
if (strlen($atpagetext) > $atpagetext) {
$atpagetext = substr($atpagetext,0,$num_topicchars);
$atpagetext =substr ( $atpagetext, 0, strrpos($atpagetext," "));
$atpagetext .= "...";
}
$atpagetext=bbcodeparse($atpagetext,$forumid,1);
}else{
$atpagetext="";
}
$gothreadid = $latest_array["threadid"];
if (($counter++ % 2) != 0) {
$vbp_atbc=$vbp_atbc1;
} else {
$vbp_atbc=$vbp_atbc2;
}
eval("\$P_activetopic_centerboxbit .= \"".gettemplate('P_activetopic_centerboxbit')."\";");
}
eval("dooutput(\"".gettemplate('P_activetopic_centerbox')."\");");
unset($num_active);
include("footer.php");
?>
<?php
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
if (!isset($mainfile)) { include("mainfile.php"); }
$index=1;
global $Pmenu,$breadcrumb;
$Pmenu="";
$breadcrumb="Most Active Topics";
$templatesused ='P_activetopicbits,P_activetopics';
include("header.php");
$num_active=25;
// Display activetopics
global $DB_site,$bgcolor3,$bgcolor4,$dateformat,$timeform at;
// My hacking starts here
$whereatsql2 = "forumid!='-1'";
if ($excatforums == "" or $excatforums <= "0") {
$whereatsql = "WHERE visible";
} else {
$whereatsql = "WHERE thread.open!='10'";
$excatfid = explode(",",$excatforums); $ia = 0; $vbp_at = count($excatfid);
while ($ia < $vbp_at) {
$whereatsql .= "AND forumid!='$excatfid[$ia]'";
$whereatsql2 .= "AND forumid!='$excatfid[$ia]'";
++$ia;
}
}
$doperms=$DB_site->query("SELECT canview,forumid FROM forumpermission WHERE usergroupid='$bbuserinfo[usergroupid]' AND $whereatsql2");
while ($doperm = $DB_site->fetch_array($doperms)) {
$perms['$doperm[forumid]'] = $doperm;
}
$DB_site->free_result($doperms);
unset($doperm);
$whereatsql = "WHERE thread.open!='10'";
$forum=$DB_site->query("SELECT forumid FROM forum");
while ($forums=$DB_site->fetch_array($forum)) {
if($perms['$forums[forumid]']['canview']) {
$whereatsql .= " AND forumid='$forums[forumid]'";
}
}
$DB_site->free_result($forum);
unset($forums);
// My Hacking Ends here
$result = $DB_site->query("select * from thread $whereatsql order by lastpost desc limit $num_active");
while ($latest_array = $DB_site->fetch_array($result)) {
// Get Forum Infomation
$result_forum = $DB_site->query("select * from forum where forumid='$latest_array[forumid]'");
$forum_info_array = $DB_site->fetch_array($result_forum);
$result_thread_text = $DB_site->query("select * from post where threadid='$latest_array[threadid]' order by dateline desc limit 1");
$result_thread_array = $DB_site->fetch_array($result_thread_text);
$title1 = substr($forum_info_array["title"],0,$ftitle1en);
$title1 =substr ( $title1, 0, strrpos($title1," "));
$title2 = substr($latest_array["title"],0,$ttitle1en);
if (strlen($title2) > $ttitle1en) {
$title2 =substr ( $title2, 0, strrpos($title2," "));
}
$aticonid = $result_thread_array["iconid"];
$startedby = $latest_array["postusername"];
$lastposter = $latest_array["lastposter"];
$mpostid= $result_thread_array["postid"];
$atpostdate=vbdate($dateformat,$result_thread_arra y[dateline]);
$atposttime=vbdate($timeformat,$result_thread_arra y[dateline]);
if ($showtopicdesc){
$atpagetext = $result_thread_array[pagetext];
if (strlen($atpagetext) > $atpagetext) {
$atpagetext = substr($atpagetext,0,$num_topicchars);
$atpagetext =substr ( $atpagetext, 0, strrpos($atpagetext," "));
$atpagetext .= "...";
}
$atpagetext=bbcodeparse($atpagetext,$forumid,1);
}else{
$atpagetext="";
}
$gothreadid = $latest_array["threadid"];
if (($counter++ % 2) != 0) {
$vbp_atbc=$vbp_atbc1;
} else {
$vbp_atbc=$vbp_atbc2;
}
eval("\$P_activetopic_centerboxbit .= \"".gettemplate('P_activetopic_centerboxbit')."\";");
}
eval("dooutput(\"".gettemplate('P_activetopic_centerbox')."\");");
unset($num_active);
include("footer.php");
?>