Register Members List Search Today's Posts Mark Forums Read

Reply
 
Thread Tools
  #1  
Old 03 Jul 2014, 00:28
grom815 grom815 is offline
 
Join Date: Mar 2011
Is there a way of having two post counts per user?

Im looking for either a product, or a way of doing this myself.
What I want is to have a user have two post-counts. One being an inflated one, and one being a "real one".

For example,
If User1 has 20 posts on my forum, but I edit his post count to be 50, in his postbit and profile, it will say 50.
I want to have his profile and postbit say 50, just like it is.
However, in his profile only, underneath 'Total Posts', I want there to be 'Posts in these forums', where the value is 20.
When he makes a new post, I want the postbit and 'Total Posts' to go to 51 like normal, and the 'Posts in these forums' to go up also to 21. I want the posts per day to be calculated using the 21 posts.

Or maybe make a duplicate of the 'Total Posts' and add an offset to it and change the postbit to have that value?

Any way I can do this and not screw everything up?

--------------- Added 03 Jul 2014 at 19:37 ---------------

Anyone?


Maybe I can create a custom non-user-editable field, and put their offset post count in there. For the example, I will name this field 'Offset'.
So if a user has 20 posts on my forum, his 'Total Posts' will say 20. As admin, I would edit his 'Offset' field to say 50.
Then, I would edit the postbit to show 'Total Posts' + 'Offset' for post count. In this example, it would show Postcount: 70.

Is math like this even possible?


I'm open to any ideas....
Is there a tutorial on adding custom fields in MySQL and interfacing them with vBulletin?
Maybe I can add a 'TotalPostsPlusOffset' column in the same table that has the postcount. Then, when I make a change to a user's 'Offset' field, it would run an update query on that user and add the 'Postcount' and 'Offset' columns.

Last edited by grom815; 03 Jul 2014 at 00:38.
Reply With Quote
  #2  
Old 04 Jul 2014, 00:25
kh99 kh99 is offline
 
Join Date: Aug 2009
Real name: Kevin
Originally Posted by grom815 View Post
Maybe I can create a custom non-user-editable field, and put their offset post count in there. For the example, I will name this field 'Offset'.
So if a user has 20 posts on my forum, his 'Total Posts' will say 20. As admin, I would edit his 'Offset' field to say 50.
Then, I would edit the postbit to show 'Total Posts' + 'Offset' for post count. In this example, it would show Postcount: 70.

Is math like this even possible?
I think this would be easiest, if just changing the postbit display is enough. There's a minor complication in that the posts number is formatted as a string and the original integer is not saved, so there's no easy way to recalculate it after that. But what you might do is create a plugin using hook postbit_display_start and create your own "adjusted posts" value in $post, then edit your postbit (or postbit_legacy) to use the new value.

For example, if your non-user-editable field is field7, then maybe the plugin code is:

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

Then in the postbit template, change {vb:raw post.posts} to {vb:raw post.adjusted_posts}.

But IIRC, the profile field has to at least be publicly readable or else you'll find $post['field7'] will be empty.

Last edited by kh99; 04 Jul 2014 at 00:31.
Reply With Quote
  #3  
Old 04 Jul 2014, 01:23
grom815 grom815 is offline
 
Join Date: Mar 2011
Originally Posted by kh99 View Post
I think this would be easiest, if just changing the postbit display is enough. There's a minor complication in that the posts number is formatted as a string and the original integer is not saved, so there's no easy way to recalculate it after that. But what you might do is create a plugin using hook postbit_display_start and create your own "adjusted posts" value in $post, then edit your postbit (or postbit_legacy) to use the new value.

For example, if your non-user-editable field is field7, then maybe the plugin code is:

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

Then in the postbit template, change {vb:raw post.posts} to {vb:raw post.adjusted_posts}.

But IIRC, the profile field has to at least be publicly readable or else you'll find $post['field7'] will be empty.

Holy hell, that was so easy...
You are my hero!

--------------- Added 04 Jul 2014 at 02:28 ---------------

That worked just fine, but now I'm trying to add that same post count to the sidebar on the member profile sidebar.

In 'memberinfo_block_ministats', there is the code:
<dl class="stats">
<dt>{vb:rawphrase total_posts}</dt>
<dd> {vb:raw prepared.posts}</dd>
</dl>

I am trying to get the adjusted_posts value previously calculated to show here as well.
I tried using the same code using the 'member_build_blocks_start' hook, and changing 'prepared.posts' to 'post.adjusted_posts', but it didn't work.

What was I supposed to do differently?

Thanks!
Reply With Quote
  #4  
Old 04 Jul 2014, 20:01
vbresults vbresults is offline
 
Join Date: Apr 2009
No need to edit any templates (this will be a pain in the ass later) --

Hook: postbit_display_complete

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

Hook: member_complete

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.


Last edited by vbresults; 04 Jul 2014 at 21:19. Reason: Updated per kh99's post
Reply With Quote
  #5  
Old 04 Jul 2014, 20:36
kh99 kh99 is offline
 
Join Date: Aug 2009
Real name: Kevin
Originally Posted by vbresults View Post
No need to edit any templates (this will be a pain in the ass later) --

Hook: postbit_display_start

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

...
Yeah, I thought about it after I posted and realized that it wasn't really that hard to undo the number formatting - good call. Your code assumes the thousands separator is a comma, which is probably true for grom815, but to generalize it you could use $vbulletin->userinfo['lang_thousandsep'].

But it needs to use hook postbit_display_complete, and there's also a typo ($posts['post'] needs to be $post['posts']).
Reply With Quote
  #6  
Old 04 Jul 2014, 22:22
grom815 grom815 is offline
 
Join Date: Mar 2011
Thanks, but the first snippet worked, so I am going to leave it.

I added a plugin:
$prepared['posts'] = vb_number_format(intval(str_replace(",", "", $prepared['posts'])) + $userinfo['field7']);

with a hook 'member_complete'.

It did not do anything for the profile page. The post count is still the original post count.
Reply With Quote
  #7  
Old 12 Jul 2014, 00:45
grom815 grom815 is offline
 
Join Date: Mar 2011
bump
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

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


New To Site? Need Help?

All times are GMT. The time now is 02:15.

Layout Options | Width: Wide Color: