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

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 10-10-2005, 07:25 PM
tgreer tgreer is offline
 
Join Date: Oct 2005
Posts: 183
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Modify functions_threadmanage.php

functions_threadmanage.php builds the $jumpforumbits variable, for use, obviously, in the "Forum Jump" select/option list.

I want a similar variable that includes only the "Category" forums, those with parentid = -1 in the database.

I could obviously "hack" the PHP file to contain my own function, and then hack the other files to call this function when/where I needed.

I'm wondering, though, if I wanted to use the PlugIn system, where I would place this code? I want the new thread template to be able to use this variable.

Another way of asking: which HOOK do I use to add a function to the functions_threadmanage.php file, and which hook do I use to call that function, returning a variable that is accessible in the New Thread template?

EDIT:

Ok... no answers. Maybe the question isn't clear. Another try:

I add the following plugin code to the "newthread_post_start" hook.

Code:
global $mycatbits; 

$myCats = $vbulletin->$db->query_read("SELECT forumid, title from vb_forum where parentid = -1"); 

$mycatbits = ''; 

while ($row = $vbulletin->$db->fetch_array($myCats)) 
{ 
$optionvalue = $row[forumid]; 
$optiontitle = $row[title]; 
eval('$mycatbits .= "' . fetch_template('option') . '";'); 
}
I'm expecting then, to have a list of options suitable for a select tag, inside of $mycatbits. Is there anything wrong with the above code? How would I go about testing this?

Then, in the "newthread" template, I expect to be able to put:

Code:
<select>$mycatbits</select>
And get a select list of all forum categories. Instead, I get a blank select list.

EDIT:

Ok... here's what finally "worked", though I still have a question.

1st, it's important to find the correct hook. I was using "newthread_post_start", which isn't the right hook.

In hook location "newthread_start":

Code:
global $mycatbits; 
$mycatbits = ''; 
if ($vbulletin->forumcache[$forumid]['parentid'] == 42); 
{ 
  $show['catlist'] = true; 
  $myCats = $db->query_read("SELECT forumid, title from vb_forum where parentid = -1 and forumid != 42"); 

  while ($row = $db->fetch_array($myCats)) 
  { 
    $optionvalue = $row[forumid]; 
    $optiontitle = $row[title]; 
    eval('$mycatbits .= "' . fetch_template('option') . '";'); 
  } 
}
What this does is build an option table for all forums that are categories, except for forum number 42. It does this IF we're in a child forum of forum 42. It also sets a $show[] array variable, catlist, to true.

I added a phrase called "cat_feature" via the Phrase Manager.

Then, in the "newthread" template, I added the following code, after the "subject field" comment:

Code:
<if condition="$show['catlist']">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="smallfont" colspan="3">$vbphrase[cat_feature]:</td>
</tr>
<tr>
<td>
<select name="cat_feature">
$mycatbits
</select><br /><br />
</td>
</tr>
</table>
</if>
Why? I have a forum setup for opinion & analysis. Think of it as a "blog" forum. The Category for this is forum #42. Each Staff Writer has a child forum. If they make a new post in their forum, they should assign it to one of the other main forum categories. This way, when that category is displayed, their posting will be featured somewhere on that page along with the listing of child forums.

My question:

Code:
  $myCats = $db->query_read("SELECT forumid, title from vb_forum where parentid = -1 and forumid != 42");
Could that be rewritten to pull from the datastore?
Reply With Quote
 


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 09:36 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.02995 seconds
  • Memory Usage 2,242KB
  • Queries Executed 13 (?)
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
  • (5)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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