vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   I need a couple questions answered regarding the forumcache and gpc (https://vborg.vbsupport.ru/showthread.php?t=171122)

p0lar_bear 02-21-2008 06:53 PM

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.

Marco van Herwaarden 02-22-2008 07:27 AM

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.

Opserty 02-22-2008 12:28 PM

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

p0lar_bear 02-22-2008 02:43 PM

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. :?


All times are GMT. The time now is 05:14 PM.

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.01065 seconds
  • Memory Usage 1,725KB
  • 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_code_printable
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (4)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