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

Reply
 
Thread Tools Display Modes
  #1  
Old 04-26-2016, 02:24 PM
greigeh greigeh is offline
 
Join Date: Jan 2015
Posts: 113
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Fetch name of forum that the post is in

I have this plugin running on my forum, and we've had it for quite some time but I'm making some major theme developments and my mockup design requires me to have the name of the forum the post is in. Is it possible in this script below to simply add a line so it will fetch the forum name from the DB?

Code:
// #################### PROCESS LATEST THREADS ####################### 
// fetch the permissions for each forum 
global $vbulletin; 

$forumperms = array(); 
foreach($vbulletin->forumcache AS $forum) { 

    $forumperms[$forum["forumid"]] = fetch_permissions($forum['forumid']); 

    // ## HIDE FORUMS WITHOUT THE CANVIEW PERMISSION ## 
    if (!($forumperms[$forum["forumid"]] & $vbulletin->bf_ugp_forumpermissions['canview']) AND !$vbulletin->options['showprivateforums']) { 
        $limitfids .= ','.$forum['forumid']; 
    } 
} 
unset($forum); 

if ($vbulletin->options['threadpreview'] > 0) { 
    $previewfield = ', post.pagetext AS preview'; 
    $previewjoin = 'LEFT JOIN '.TABLE_PREFIX.'post AS post ON(post.postid = thread.firstpostid)'; 
} 

$getthreads = $db->query_read(" 
    ## GET LATEST THREADS ## 
    SELECT thread.*,thread.iconid AS threadiconid $previewfield 
    FROM ".TABLE_PREFIX."thread AS thread 
    LEFT JOIN ".TABLE_PREFIX."deletionlog AS deletionlog ON(thread.threadid = deletionlog.primaryid AND type = 'thread') 
    $previewjoin 
    WHERE open <> 10 
    AND forumid NOT IN (0$limitfids) 
    AND thread.visible = '1' 
    AND deletionlog.primaryid IS NULL 
    ORDER BY lastpost 
    DESC LIMIT 20"); 

while($thread = $db->fetch_array($getthreads)) { 

    $threads = true; 
    $thread['title'] = fetch_censored_text(fetch_trimmed_title(unhtmlspecialchars($thread['title']), 25)); 
    $thread['date'] = vbdate($vbulletin->options['dateformat'], $thread['lastpost'], 1); 
    $thread['time'] = vbdate($vbulletin->options['timeformat'], $thread['lastpost']); 
    $thread['preview'] = preg_replace('#\[quote(=(&quot;|"|\'|).*\\2)?\](.*)\[/quote\]#siU', '', $thread['preview']); 
    $thread['preview'] = htmlspecialchars_uni(fetch_trimmed_title(strip_bbcode(fetch_censored_text($thread['preview']), false, true), 30)); 
    $thread['replycount'] = vb_number_format($thread['replycount']); 
    $thread['views'] = vb_number_format($thread['views']); 

    // thread icon 
    $show['icon'] = false; 
  $icon = fetch_iconinfo($thread['iconid']); 

  if (is_array($icon)) { 
      $show['icon'] = true; 
      $thread['threadiconpath'] = $icon['iconpath']; 
      $thread['threadicontitle'] = $icon['title']; 
  } 

    // show goto new post 
    $show['firstnew'] = false; 
    $bbforumview = fetch_bbarray_cookie('forum_view', $thread['forumid']); 

    if ($bbforumview > $vbulletin->userinfo['lastvisit']) { 
        $lastread = $bbforumview; 
    } else { 
        $lastread = $vbulletin->userinfo['lastvisit']; 
    } 

    if ($thread['lastpost'] > $lastread) { 

        $threadview = fetch_bbarray_cookie('thread_lastview', $thread['threadid']); 

        if ($thread['lastpost'] > $threadview) { 
            $show['firstnew'] = true; 
            $show['icon'] = false; 
        } 
    } 

    exec_switch_bg(); 

    eval("\$threadbits .= \"".fetch_template('forumhome_latestthreadbit')."\";"); 
} 
if ($threads) { 
    $show['latestthreads'] = true; 
} 
// memory saving 
unset($thread, $threads); 
$db->free_result($getthreads);
I tried something along the lines of "$thread['forumname'] = fetch_censored_text($thread['forumname']); " as I though this was the correct variables but it didn't work.

Can anyone help?
Reply With Quote
  #2  
Old 04-26-2016, 02:42 PM
Dave Dave is offline
 
Join Date: May 2010
Posts: 2,583
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't have access to a testing environment now, but I believe you can do it 2 ways:

PHP Code:
$thread['forumname'] = $vbulletin->forumcache[$thread['forumid']]['title']; 
or
PHP Code:
$foruminfo fetch_foruminfo($thread['forumid']);
$thread['forumname'] = $foruminfo['title']; 
Both essentially do the exact same thing. I would go for the second option though in case the forumcache is empty or not set.
Reply With Quote
2 благодарности(ей) от:
greigeh, MarkFL
  #3  
Old 04-26-2016, 03:18 PM
greigeh greigeh is offline
 
Join Date: Jan 2015
Posts: 113
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you, Dave.
Reply With Quote
Благодарность от:
MarkFL
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:18 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.04025 seconds
  • Memory Usage 2,195KB
  • 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
  • (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
  • (3)post_thanks_box
  • (3)post_thanks_box_bit
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)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_postinfo_query
  • fetch_postinfo
  • 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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete