Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 02-21-2008, 06:53 PM
p0lar_bear p0lar_bear is offline
 
Join Date: Feb 2008
Location: Connecticut
Posts: 33
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default I need a couple questions answered regarding the forumcache and gpc

Hello everyone. I've made a topic here before, but I feel I wasn't descriptive enough of what I was trying to do, and as a result, nobody replied. When I went to bump it with a fix, the forums merged my doublepost. So, I'm going to try this again.

I'm working on a modification that will filter out forums on the index based on a supplied variable. I'm trying to get it to work with .htaccess internal redirects and vBA, just so you know. I'm not exactly a total newb to PHP, but I'm no whiz at it either. vBulletin, on the other hand, is completely new ground to me, and the way things are coded make me confused.

What I've done so far is add a column to my forums table called "pageid," and then edited class_dm_forum.php to include this new column. After doing this, I am able to specify an identifier for a forum in the ACP's forum manager. I can save it, load it, edit it, and it changes in the database.

First, what I need to know is if I need to change anything else to get this column to appear in $vbulletin->forumcache. Is the forumcache a PHP replica of the forums table, or does it only get certain columns from that table?

Second, I'm new to using the GPC, which from what I gather is to be used instead of $_GET, $_POST, and $_REQUEST. Is this code correct for getting and then using a "pageid" variable specified in the URL:
Code:
$vbulletin->input->clean_gpc($_GET, 'pageid', TYPE_NOTRIM);
if ($vbulletin->GPC['pageid'] == $some_variable)
{
 //Do something.
}
Third, I'd like to know exactly where $vbulletin->forumcache is first populated. I've looked everywhere for it, and all I've found is a depreciated function that starts with a die();.


Any help at all is appreciated; I'm running on a deadline that's been extended and I've been stumped for a few weeks on this.
Reply With Quote
  #2  
Old 02-22-2008, 07:27 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

PHP Code:
$vbulletin->input->clean_gpc($_GET'pageid'TYPE_NOTRIM); 
should be:
PHP Code:
$vbulletin->input->clean_gpc('g''pageid'TYPE_NOTRIM); 
I think forumcahce is populated somewhere in init.php.
Reply With Quote
  #3  
Old 02-22-2008, 12:28 PM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Add an extra column to the forum table, then go edit the forum in vBulletin AdminCP...just change a setting then edit it again and change it back. That should refresh the cache I assume. Then run a var_dump() on the $vbullletin->forumcache, see if you column is listed...I'm pretty sure though that vBulletin will select all of it, if not there may be a hook you can use to alter what is fetched.

Finally, you should avoid editing the vBulletin PHP files, there must be a hook in the forum datamanager...like forumdata_... I'd be surprised if there wasn't.

Also I recommend you check out the articles section there is loads of stuff you can read & learn.

Using the vBulletin Input Cleaner
Reply With Quote
  #4  
Old 02-22-2008, 02:43 PM
p0lar_bear p0lar_bear is offline
 
Join Date: Feb 2008
Location: Connecticut
Posts: 33
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks guys, and I got it to work.

I inserted the code into the contruct_forum_bit() function in functions_forumdisplay.php, and I thought that the hook there appeared too late for it to work for me. I'll give it a shot though. All my code does is run a continue if the forum being constructed has a pageid that doesn't match the supplied variable, given it's present.

My next goal is to change the initial query made to populate the forumcache with only forum needed; but I still can't find where that first query is made. :?
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 08:15 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03686 seconds
  • Memory Usage 2,189KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_code
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete