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 01-28-2021, 02:42 AM
Dr.CustUmz's Avatar
Dr.CustUmz Dr.CustUmz is offline
 
Join Date: Aug 2013
Location: USA
Posts: 647
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default if user has posted in a specific forum

is there a condition that exists already for detecting if a user has posted in a specific forum? I want to provide a link in the navbar if they have not posted in a certain forum. I was looking into how to be able to detect it:
post > threadid & userid
thread > threadid & forumid

which I could make something with, just dont feel a need to add queries to something that may exist already, so was wondering if anyone knew a way to detect if the user has posted in a specific forum.

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

I have just went ahead and made a function with the following query to solve this:
Code:
SELECT count(postuserid) as count
FROM thread
WHERE postuserid = " . $vbulletin->userinfo['userid'] . "
AND forumid = 5
AND lastposter != " . $vbulletin->userinfo['username'] . "
Reply With Quote
  #2  
Old 02-17-2021, 03:51 AM
lange's Avatar
lange lange is offline
 
Join Date: Apr 2003
Location: Montreal (Canada)
Posts: 282
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Maybe a AND with

<if condition="$threadinfo['postuserid'] == $bbuserinfo['userid']"></if>

and this conditional
Reply With Quote
  #3  
Old 02-17-2021, 12:01 PM
Dr.CustUmz's Avatar
Dr.CustUmz Dr.CustUmz is offline
 
Join Date: Aug 2013
Location: USA
Posts: 647
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The condition you came up with is more for threadbit (forumdisplay) when the end goal needs to be able to detect if a user has posted in a specific forum, no matter where they are. (so navbar / header / ect.)

If user has posted in forum ID 34
show them something

also

If user has posted in forum ID 34 and they are not the last poster
show them something

I may come up with another way to do this, what I'm essentially trying to do is get notifications for my Hire Me section. Its a private forum (only me and the client can see their thread) If I have responded to their thread they get a notification on the navbar, yet if I havent responded to a thread I get a notification.

Maybe something along restricting getnew to that forum id may be the trick...
Reply With Quote
  #4  
Old 02-21-2021, 02:37 PM
PinkMilk PinkMilk is offline
 
Join Date: May 2010
Location: Earth
Posts: 193
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Theory code only, not tested...

-- 1 --
Assuming single forum per client (rather than 1 forum multiple client threads) its not a navbar notification but is a possible alternative.

Change new posts link color

Give code a class rather than inline styling, throw in a little animation to cause it to flash.

Code:
.getmyattention {
  color:red;
  animation: blink 1s linear infinite;
}

@keyframes blink {  
  50% { opacity: 0; }
}

-- 2 --
Came up with this before above not really what your after but going to leave it here anyway rather then just delete.

Adds a getnew link to navbar to specific forum based on user id (does not check for, flash or give notification which is what your after):

Build a plugin using an Associative Array (userid => forumid)

PHP Code:
// fetch user id
$user_id $vbulletin->userinfo['userid']; 

// user id => forum id
$forum_id = array(1=>"35"2=>"37"3=>"43");

// check exists and create link variable for navbar 
if (array_key_exists($user_id,$forum_id)) {

   
$client_link '<a href ="search.php?do=getnew&amp;forumid='.$forum_id[$user_id].'">Client Area</a>';
// add link to navbar
$vbulletin->templatecache['navbar'] = str_replace($template_hook['navbar_buttons_left'], $template_hook['navbar_buttons_left'].$client_link$vbulletin->templatecache['navbar']);

  } else {

   
$client_link =  '';


then with each new client you just add to the array , 4=>"52" (userid => forumid)
Reply With Quote
Благодарность от:
Dr.CustUmz
  #5  
Old 02-21-2021, 07:12 PM
Dr.CustUmz's Avatar
Dr.CustUmz Dr.CustUmz is offline
 
Join Date: Aug 2013
Location: USA
Posts: 647
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That would not be a bad approach at all, it atleast gets me closer to what I'm after =) I'll put it to test after the project I'm working on and see if I can make use of it.

Thanks Pink
Reply With Quote
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 03:30 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.07382 seconds
  • Memory Usage 2,213KB
  • 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
  • (2)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (1)post_thanks_box_bit
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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