vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Exclude Users Posts in Some Forums from Stats? (https://vborg.vbsupport.ru/showthread.php?t=223577)

HeyMe 09-19-2009 01:44 PM

Exclude Users Posts in Some Forums from Stats?
 
Hello,

1st even if I mentioning a mod here, I don't think this issue belongs to mod support because there's nothing wrong with the mod.

I wanted the Top Posters stats in "Cyb's Advanced Stats" to show total posts excluding those made in the "Forums excluded from stats".

So with my very limited knowledge in PHP/mySQL, I opened the XML file & tried some things.

1st I found lines like these:
PHP Code:

$cybexclfids ','.$vbulletin->options['cybtopstats_excl_forums']; 

PHP Code:

$cybexclforums_topforums "AND thread.forumid NOT IN($cybexclfids)"


I tried to add a variable like $cybexclforums_topforums called $cybexclforums_toppost & added it here:
PHP Code:

                if ($cybstats_posters_tcenabled)
                {
                    
$get_stats_posters $vbulletin->db->query_read("
                        SELECT COUNT(post.postid) AS posts, post.userid, post.dateline, user.usergroupid, user.displaygroupid, user.username
                        FROM " 
TABLE_PREFIX "post AS post
                        LEFT JOIN " 
TABLE_PREFIX "user AS user ON (post.userid = user.userid)
                        LEFT JOIN " 
TABLE_PREFIX "thread AS thread ON (thread.threadid = post.threadid)
                        LEFT JOIN " 
TABLE_PREFIX "forum AS forum ON (forum.forumid = thread.forumid)
                        WHERE user.userid > 0 AND posts > 0 AND post.visible= 1 AND (forum.options & 4096) 
$cybexclforums_toppost $cybexclgroups $cybtopstats_timecut_toppost
                        GROUP BY post.userid
                        ORDER BY posts DESC
                        LIMIT 0, 
$resultsnr
                    "
);
                } 


I tried also to edit my $cybexclforums_toppost value, replacing thread.forumid with post.forumid then forumid , but it doesn't seem to work.


Any enlightenment? :)

Lynne 09-19-2009 01:55 PM

You said you tried to add a variable "like $cybexclforums_topforums called $cybexclforums_toppost" but then you never posted what that variable looked like. And when you said it doesn't seem to work, what is the result? What makes you think it isn't working?

And, if you are doing this on your test site (which you should be), then turn on debug mode and take a look at the query and see if it's correct.

HeyMe 09-19-2009 02:26 PM

Hi Lynne :)

Like $cybexclforums_topforums means it has the same value, then I tried replacing thread.forumid with post.forumid then forumid, I tried these 3 versions:
PHP Code:

$cybexclforums_toppost "AND thread.forumid NOT IN($cybexclfids)"

PHP Code:

$cybexclforums_toppost "AND post.forumid NOT IN($cybexclfids)"

PHP Code:

$cybexclforums_toppost "AND forumid NOT IN($cybexclfids)"


How I know it doesn't work? Because in the Top Posters stats I see that users still have all their posts counted.

The trick worked though with the "Top Thread Starters" stats.

Lynne 09-19-2009 03:23 PM

There is no such thing as post.forumid and forumid is ambiguous cuz there is a thread.forumid and a forum.forumid. It seems to me that thread.forumid is the correct variable. What are you trying to grab that is different than what he is doing?

HeyMe 09-19-2009 03:52 PM

Thanks for your time :)

The query I posted above seems to grab posts counts from users to rank them in the "Top Posters" stats, I wanted to exclude posts in some forums from the count so I added that $cybexclforums_toppost to the query in this line:
Code:

WHERE user.userid > 0 AND posts > 0 AND post.visible= 1 AND (forum.options & 4096) $cybexclforums_toppost $cybexclgroups $cybtopstats_timecut_toppost

I added similar variable to the query that works with the "Top Thread Starters" stats, now I see that threads made by users in the excluded forums are deducted from the count. But posts are still all counted :o

BtW I did try debug mode, I couldn't see the query for some reason, but I know it works as "Top Posters" are displayed, it just doesn't work as I want it to..

Lynne 09-19-2009 04:19 PM

Queries are not my strong point, but I think what you may need to do is change the JOIN and exclude threads in that forum there. I really don't know exactly, sorry. (It's what I would try anyway.)

HeyMe 09-19-2009 07:28 PM

Thanks again :)

I think I did it, I just hope my hack doesn't have some nasty side effects :D

There's a place where it was saying $cybstats_posters_tcenabled = false; I changed false to true & it seems to work :)


All times are GMT. The time now is 09:12 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.01164 seconds
  • Memory Usage 1,741KB
  • 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
  • (1)bbcode_code_printable
  • (6)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (7)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