vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Member Archives (https://vborg.vbsupport.ru/forumdisplay.php?f=202)
-   -   Help with Active Topics Hack (https://vborg.vbsupport.ru/showthread.php?t=39500)

ryanhulce 06-05-2002 08:10 PM

Help with Active Topics Hack
 
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 Code:

<?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,$timeformat;
// 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 $title10strrpos($title1," "));
    
$title2 substr($latest_array["title"],0,$ttitle1en);
    if (
strlen($title2) > $ttitle1en) {
        
$title2 =substr $title20strrpos($title2," "));
    }
    
$aticonid $result_thread_array["iconid"];
    
$startedby $latest_array["postusername"];
    
$lastposter $latest_array["lastposter"];
    
$mpostid$result_thread_array["postid"];
     
$atpostdate=vbdate($dateformat,$result_thread_array[dateline]);
     
$atposttime=vbdate($timeformat,$result_thread_array[dateline]);
     if (
$showtopicdesc){
        
$atpagetext $result_thread_array[pagetext];
        if (
strlen($atpagetext) > $atpagetext) {
           
$atpagetext substr($atpagetext,0,$num_topicchars);
           
$atpagetext =substr $atpagetext0strrpos($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");


?>


ryanhulce 06-06-2002 04:13 PM

Figured it out... I started over with new code, used the getpermissions function...


All times are GMT. The time now is 01:42 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.00985 seconds
  • Memory Usage 1,764KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (2)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete