Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
  #1  
Old 01-23-2010, 07:38 PM
ddrake ddrake is offline
 
Join Date: Jan 2010
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default '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...
Reply With Quote
  #2  
Old 01-24-2010, 11:37 PM
ddrake ddrake is offline
 
Join Date: Jan 2010
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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!
Reply With Quote
  #3  
Old 09-24-2011, 11:18 PM
claystation claystation is offline
 
Join Date: Jan 2007
Posts: 35
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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

Thread Tools
Display Modes

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 02:49 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.03550 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
  • (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_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (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_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