vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   'Posts needing replies' widget (https://vborg.vbsupport.ru/showthread.php?t=233978)

ddrake 01-23-2010 07:38 PM

'Posts needing replies' widget
 
I'm using a PHP direct execution widget to find "Posts Needing Replies". These are defined as visible, non-sticky posts in a specific set of forums with 0 replies. But some of the forums are not available to all users, so I want to modify the query to hide any posts that are not accessible by the current user. Can anyone help?

PHP Code:

ob_start();
  require_once(
'./includes/functions_user.php');
  require_once(
'./includes/functions_bigthree.php');
  
// Get Popular Threads
  
$need_replies_get vB::$db->query_read("
    SELECT * FROM "
.TABLE_PREFIX."thread
    WHERE visible=1 AND replycount=0 AND forumid in(9,10,12,15,16) AND sticky = 0
   ORDER BY replycount DESC
   LIMIT 5"
);
  
$output_bits '';
  while(
$need_replies vB::$db->fetch_array($need_replies_get))
  {
        
$output_bits .= '<a target="_self" href="showthread.php?t='.$need_replies[threadid].'">'.$need_replies[title].'</a><br />';
  }
  
$output $output_bits;
  
ob_end_clean(); 

--------------- Added [DATE]1264365438[/DATE] at [TIME]1264365438[/TIME] ---------------

My problem is really just that I don't know how to get the id of the current user or a userinfo object from inside the PHP widget. I'm sure it's really simple, but I can't find an API for vb4...

--------------- Added [DATE]1264368772[/DATE] at [TIME]1264368772[/TIME] ---------------

Ok, after floundering a bit, this seems to work: vB::$vbulletin->userinfo['userid']
Please, anyone feel free to correct me if I'm making this harder than it needs to be...

ddrake 01-24-2010 11:37 PM

OK, this seems to work! :)
PHP Code:

ob_start();
  require_once(
'./includes/functions_user.php');
  require_once(
'./includes/functions_bigthree.php');
  
// Get Need Reply Threads
$forums = array(4,9,10,11,12);
$allowed_forums = array();
foreach (
$forums as $f)
{
  
$forumperms fetch_permissions($f);
  if (
$forumperms vB::$vbulletin->bf_ugp_forumpermissions['canview'])
  {
    
$allowed_forums[] = $f;
  }
}
$allowed_forum_list implode(",",$allowed_forums);

  
$needreply_get vB::$db->query_read("
    SELECT * FROM "
.TABLE_PREFIX."thread
    WHERE visible=1 AND sticky=0 AND replycount=0 AND forumid in(" 
$allowed_forum_list .")  ORDER BY replycount DESC
   LIMIT 5"
);
  
$output_bits '';
  while(
$needreply vB::$db->fetch_array($needreply_get))
  {
        
$output_bits .= '<a target="_self" href="showthread.php?t='.$needreply[threadid].'">'.$needreply[title].'</a><br />';
  }
  
$output $output_bits;
  
ob_end_clean(); 

It seems a bit clumsy though... If anyone has a cleaner solution, I'd be glad to see it!

claystation 09-24-2011 11:18 PM

Thanks for this, I was wondering how I might have them show up in a different order, from the most recent to the oldest.


All times are GMT. The time now is 10:11 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.01232 seconds
  • Memory Usage 1,730KB
  • 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
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)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