vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.6 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=194)
-   -   Mini Mods - Users posts (https://vborg.vbsupport.ru/showthread.php?t=133636)

becafuel 12-09-2006 10:00 PM

Users posts
 
This small mod will tell you some small stats about where a member is posting : in which forums and what it represents against his total number of messages (see screenshot below. sorry it's a french screenshot ).
It respects your forums ordering and groups them by category, with a total by category.

Php code to place in the "modcp" dir, filename "usermess.php" :
PHP Code:

<?php
// ######################## usermess.php ###########################
//
// Quick stats for member's number of messages.
//
// Auteur : Bec ? Fuel
// Date   : December, 10 2006
// Version : 1.2

// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
@
set_time_limit(0);
 
// #################### PRE-CACHE TEMPLATES AND DATA ######################
$phrasegroups = array('style','cpuser','user','forum','search');
$specialtemplates = array('products');

// ########################## REQUIRE BACK-END ############################
require_once('./global.php');
require_once(
DIR '/includes/functions.php');

$phrase_percentage "Par rapport au total";

print_cp_header($vbphrase['user_manager']);
print_form_header('usermess','usermess',false,true);
print_table_header($vbphrase['search_users']);
print_input_row($vbphrase['username'],'membre',$membre,true);
print_submit_row($vbphrase['find']);  

if (
$_REQUEST['do'] == 'usermess')
  {
    
$membre $vbulletin->input->clean_gpc('p''membre'TYPE_STR);
    
$result $db->query_read("SELECT userid, username FROM "TABLE_PREFIX ."user WHERE username='".$membre."'");
    if (!
$db->num_rows($result) > 0)
      {
        
define('CP_REDIRECT''usermess.php');
        
print_stop_message('no_users_matched_your_query');
      }
    else
      {
        
print_table_footer();
        
print_form_header('usermess','usermess',false,true);
        
$r $db->fetch_array($result);
        
$userid $r['userid'];
        
print_table_break();
        
print_table_header($vbphrase['posts_made_by'].' '.$r['username'].' (id:'.$userid.')',4);
        
$total = array();
        
$tabparent = array();
        
$totalstr = array();
        
$result $db->query_read ("SELECT parentlist,title_clean,forumid FROM "TABLE_PREFIX ."forum WHERE parentid=-1 ORDER BY forumid");
        while (
$r $db->fetch_array($result))
          {
            
$tabparent[] = '%,'.$r['parentlist'];
            
$totalstr[] = $r['title_clean'];
          }
        
$totalgen 0;
        
$result $db->query_read ("SELECT COUNT(postid) AS nbmess FROM "TABLE_PREFIX ."post WHERE visible=1 AND userid=".$userid." GROUP BY userid");
        
$r $db->fetch_array($result);
        
$totalcalc $r['nbmess'] ? $r['nbmess'] : 1;
        
        
$forums = array();
        foreach (
$vbulletin->forumcache AS $forumid => $forum)
          {
            
$forums["$forum[forumid]"] = construct_depth_mark($forum['depth']-1'- - ') . ' ' $forum['title'];
          }
        
$tab2 = array();
        foreach (
$vbulletin->forumcache AS $key => $forum)
          {
            if (
$forum['parentid'] == -1) { $tab2[] = $forum['title']; }
          }
        
$i 0;
        foreach (
$vbulletin->forumcache AS $key => $forum)
          {
            if (
$forum['parentid'] == -1)
              {
                if (
$i 0) { print_cells_row(array('',$vbphrase['category']." : <q>".$tab2[$i-1]."</q>".$last,vb_number_format($total[$i-1],0,false,',',' ')."</span>",vb_number_format($total[$i-1]/$totalcalc*100,2,false,',',' ')." %"),true);  }
                
print_table_break();
                
$totalgen += $total[$i-1];
                
$i++;
                
$total[$i] = 0;
                
print_cells_row(array($vbphrase['forum'],'',$vbphrase['messages'],$phrase_percentage),1);
              }
            else
              {
                
$result $db->query_read ("SELECT "TABLE_PREFIX ."forum.parentid,"TABLE_PREFIX ."forum.title, COUNT("TABLE_PREFIX ."post.postid) AS nbmess
                                    FROM "
TABLE_PREFIX ."post
                                    LEFT JOIN "
TABLE_PREFIX ."thread ON ("TABLE_PREFIX ."post.threadid="TABLE_PREFIX ."thread.threadid)
                                    LEFT JOIN "
TABLE_PREFIX ."forum ON ("TABLE_PREFIX ."forum.forumid="TABLE_PREFIX ."thread.forumid)
                                    WHERE "
TABLE_PREFIX ."post.visible=1 and userid=".$userid." AND "TABLE_PREFIX ."forum.forumid=".$forum['forumid']."
                                    GROUP BY "
TABLE_PREFIX ."thread.forumid");
                
$r $db->fetch_array($result);
                if (
$r['parentid'] == -1) {  $last $forum['title']; }
                
$total[$i-1] += $r['nbmess'];         

                
$cell = array();
                
$cell[] = construct_depth_mark($forum['depth']-1'- - ') . $forum[title];
                
$cell[] = '';
                
$cell[] = vb_number_format($r['nbmess'],0,false,',',' ');
                
$cell[] = vb_number_format($r['nbmess']/$totalcalc*100,2,false,',',' ')." %";

                
print_cells_row($cell,false,false,0,'top',false,true);
              }
          }
        
print_cells_row(array('',$vbphrase['category']." : <q>".$tab2[$i-1]."</q>",vb_number_format($total[$i-1],0,false,',',' '),vb_number_format($total[$i-1]/$totalcalc*100,2,false,',',' ')." %"),true);
        
print_table_break();
        
$totalgen += $total[$i-1];
        
print_table_header($vbphrase['total_posts'].' : '.vb_number_format($totalgen,0,false,',',' '),4);     
        
        
print_cp_footer();
      }
  }
?>

Module to create using "mod_index_navigation" hook (choose a name you like for this module) :
PHP Code:

construct_nav_spacer();
construct_nav_option('Number of messages''usermess.php?');
construct_nav_group('Menu title'); 

I hope you will enjoy this. It's not a great mod, but I think it can be useful or at least handy, though.

Last changes :
v1.2
  • Forum list correctly ordered to reflect layout order
  • Now showing forum with no messages
  • Added new variable for a non-translated text


v1.1
  • Replace some hardcoded string with vbphrases
  • Correct division by 0 for forums with no posts
  • Added cosmetics to display categories headers & footers

ragtek 12-10-2006 08:40 AM

thx
looks fine
the only thing i would change is on the picture because i dont know how to say it



this i changed but the sum isnt right

PHP Code:

            $total[$i] = 0;
             while (
$r $db->fetch_array($result))
              {
                
print_cells_row (array($r['title'],$parent,vb_number_format($r['nbmess'],0,false,',',' '),vb_number_format($r['nbmess']/$totalcalc*100,2,false,',',' ')." %"),false,false,0,'top',false,true);
                
$total[$i] += $r['nbmess'];
              }
 
print_cells_row(array("","Total in <q>".$totalstr[$i]."</q>",vb_number_format($total[$i],0,false,',',' '),vb_number_format($total[$i]/$totalcalc*100,2,false,',',' ')." %"),true);          
            
$totalgen += $total[$i];
          } 

into:

PHP Code:

            $total[$i] = 0;
             
print_cells_row(array("","Total in <q>".$totalstr[$i]."</q>",vb_number_format($total[$i],0,false,',',' '),vb_number_format($total[$i]/$totalcalc*100,2,false,',',' ')." %"),true);
            while (
$r $db->fetch_array($result))
              {
                
print_cells_row (array($r['title'],$parent,vb_number_format($r['nbmess'],0,false,',',' '),vb_number_format($r['nbmess']/$totalcalc*100,2,false,',',' ')." %"),false,false,0,'top',false,true);
                
$total[$i] += $r['nbmess'];
              }
           
            
$totalgen += $total[$i];
          } 


ragtek 12-10-2006 08:57 AM

then we change the hook into admin_index_navigation and sim sala bim its here*g*

sorry my changes wount work so don't do the change*g*

ragtek 12-10-2006 09:25 AM

Quote:

Originally Posted by Mike-D (Post 1135582)
German Moin Daniel ;)
ich kapier das nicht!!! Hooks? Warum? Wieso kann ich den Hack denn nicht direkt in die "cpnav_vbulletin.xml" einbinden? Kl?r mich doch bitte mal auf, da ich von den Hooks Ged?ns ?berhaupt keine Ahnung habe https://vborg.vbsupport.ru/external/2010/01/19.gif

also
direkt wird dort nichts eingebunden ;)
die cpnav_vbulletin greifen wir NICHT AN ;)
sondern du erstellst eine cpnav_mike.xml im includes/xml verzeichniss und schreiben folgendes rein

Code:

<navgroups master="false">

        <navgroup phrase="users" permissions="canadminusers" displayorder="110">


                <navoption displayorder="100">
                        <text>text der du hier habn willst</text>
                        <link>der link dazu</link>
                </navoption>

        </navgroup>

</navgroups>

so dsa wars :)

becafuel 12-10-2006 09:48 AM

Two main reasons for putting it in modcp :
  • I think it should be available to moderators
  • It's easier to put in there ;) I mean in terms of manipulations. But either way has its own pro & con.
Btw, I'm currently modifying the code to reflect some changes :
  • Adding a header and a footer for each category, with some space between them
  • Replacing hard-coded string with vbphrases as much as possible (that was funny to see the mix of languages in your screenshot ;) )
I think this will be online very soon. And thank you for you reports.

Quote:

Originally Posted by Mike-D (Post 1135580)
I'm a lil bit confused about the "contruct_nav" things. Can you help me? -Mike

You add all your options then at the end the title. Not harder than that ;)
PHP Code:

construct_nav_spacer();
construct_nav_option('option 1''prog1.php?');
construct_nav_option('option 2''prog2.php?');
construct_nav_option('option 3''prog3.php?');
construct_nav_option('option 4''prog4.php?');
construct_nav_group('Title'); 


hurik 12-10-2006 10:28 AM

hi becafuel,

nice add on but i have two suggestions:
- he doesn't sort the forum the right way.
- i would show forum without post too. you could easier compare and find anything when every forum is always on his place.

hurik

becafuel 12-10-2006 10:54 AM

I have modified the code in the first post to accomodate with suggestions from feedback.

What do you think of it, now ?


Quote:

Originally Posted by hurik (Post 1135608)
- he doesn't sort the forum the right way.

Do you have any example or screenshot ?

Quote:

Originally Posted by hurik (Post 1135608)
- i would show forum without post too. you could easier compare and find anything when every forum is always on his place.

Ok for forum with 0 messages. What about an option for this : "Display forum without messages ? yes/no"

hurik 12-10-2006 02:48 PM

Quote:

Originally Posted by becafuel (Post 1135615)
Ok for forum with 0 messages. What about an option for this : "Display forum without messages ? yes/no"

tahat would be very nice.

Quote:

Originally Posted by becafuel (Post 1135615)
Do you have any example or screenshot ?

see my attachment.

and look at: http://www.portablegaming.de/forumdisplay.php?f=3

and the categorys are not soreted right tot.
gameboy advance should be the 3th category but it is the first.
http://www.portablegaming.de

ragtek 12-10-2006 04:11 PM

because the order
then someone must build the displayorder into the query ;)
i think that will not be enought...

becafuel 12-10-2006 04:40 PM

In fact, I am actually ordering by forumid, which is not the real display order (except on my forum, hence the confusion ;) )
I am working on it but it will take a little longer to code because it's not only a matter of query...

Barakat 12-10-2006 06:27 PM

Great , some one put a few wonderful php code the other bring it back with more nice ideas and the 3rd from some place on this planet collect and correct it to be a wonder full hack .
Thanks a lot guys ¤¥installed¥¤

SaN-DeeP 12-10-2006 06:48 PM

very good addon thanks for posting, trying out right now :)

hurik 12-10-2006 07:12 PM

Quote:

Originally Posted by becafuel (Post 1135765)
In fact, I am actually ordering by forumid, which is not the real display order (except on my forum, hence the confusion ;) )
I am working on it but it will take a little longer to code because it's not only a matter of query...

he, you can look in the admincp/forum.php in the line 359, where the "if ($_REQUEST['do'] == 'modify')" stuff is. with this you can see how the vb do the ordering. (sorry my english ...)

becafuel 12-10-2006 07:20 PM

That's what I was planning to do ;) I'm not willing to re-invent the wheel each time...

ragtek 12-11-2006 05:49 AM

hehe :)
but nice method for the menu
that i don't know until i see it here

yingzhou 12-14-2006 08:02 PM

But. Can you place the code into one xml product? I dont know how to modified PHP.

yingzhou 12-16-2006 11:00 AM

I dont know how to install it?

where to place this code?

Module to create using "mod_index_navigation" hook (choose a name you like for this module) :

PHP Code:
construct_nav_spacer();
construct_nav_option('Number of messages', 'usermess.php?');
construct_nav_group('Menu title');

I hope you will enjoy this. It's not a great mod, but I think it can be useful or at least handy, though.

becafuel 12-16-2006 11:21 AM

In the admin cp, plugin system, add new plugin. You then choose a title for this plugin (the name that you like, it's on your own) and choose mod_index_navigation as hook. Then you place the code in the "Plugin PHP Code" section.
Do not forget to activate the plugin by checking the radio button under this text area ;)

Really, it's simple to do. Easier than .xml file, at least for such a small add-on. XML files are good for bigger projects or admin-only tools, I think.

I'm still currently working on the two last points, but the end of the year is hard for me and my work :( I do not have much time for this.

ragtek 12-17-2006 10:03 AM

one question

why the menucode is:
construct_nav_spacer();
construct_nav_option('Number of messages', 'usermess.php?');
construct_nav_group('Menu title');

1. the links
2. the "menu"
or doesnt it matter?

yingzhou 12-17-2006 02:33 PM

Quote:

Originally Posted by Mike-D (Post 1139935)
becafuel: You know what? Right now I got an idea...

Do you know the hack Top Posters In Month X from Cybernetec? I got the idea to integrate your code with this one. What do you think? Is that possible? I'm goin to start tomorrow to try it. Would you please so kind to help me? Whenever you have time of course. No need to rush ;) -Mike

I like it! :D Sound very interest. Will wait to try your mod. :D Thank becafuel, I did it. But can I place the menu into ACP? No need to show it in the ModCP.

becafuel 12-18-2006 06:12 AM

Quote:

Originally Posted by Mike-D (Post 1139935)
becafuel: You know what? Right now I got an idea...

Do you know the hack Top Posters In Month X from Cybernetec? I got the idea to integrate your code with this one. What do you think? Is that possible? I'm goin to start tomorrow to try it. Would you please so kind to help me? Whenever you have time of course. No need to rush ;) -Mike

It's not a bad idea, but I think you should contact Cybernetec before...

Btw, I will help you as much as I can, of course.


Quote:

Originally Posted by yingzhou (Post 1140361)
I like it! :D Sound very interest. Will wait to try your mod. :D Thank becafuel, I did it. But can I place the menu into ACP? No need to show it in the ModCP.

It's a matter of choice ;) I think its place is in ModCP, that's why I've put it there. I will post the XML file ASAP for the ACP.

becafuel 12-18-2006 10:52 AM

New version v1.2

Most noticeable change : forums are now correctly ordered. That is : same order than your layout.

It also shows forum with 0 (zero) messages.

A new variable that you should modify in the above source code : $phrase_percentage. This is the translation for french "Par rapport au total", which could be "Compared to total number of messages" in english.
As I didn't want to create a vbphrase only for this one, I've kept it in a variable.

Next version change will add the option to include or not forum with no messages.

I hope you find this mod useful ;)

yingzhou 12-18-2006 11:18 PM

How can I Upgrade this Mod?

becafuel 12-19-2006 05:39 AM

Quote:

Originally Posted by yingzhou (Post 1141281)
How can I Upgrade this Mod?

Simply paste the php code into the usermess.php file in the modcp dir.

ragtek 12-19-2006 09:09 AM

Quote:

Originally Posted by ragtek (Post 1140250)
why the menucode is:
construct_nav_spacer();
construct_nav_option('Number of messages', 'usermess.php?');
construct_nav_group('Menu title');

1. the links
2. the "menu"
or doesnt it matter?

does someone know that?

and is it faster then the xml file in the includes/xml ?

becafuel 12-19-2006 09:31 AM

I don't know why it is done this way.

For the second question, it's not a matter of speed, IMHO. XML method requires vbphrases to be created for your options & menu title in admincp, not with modcp menus.
Although you can work without vbphrases in admincp, options and titles will be displayed like *[your_text]*, meaning you missed some vbphrases. See attached screenshot.
This is one of the two reasons why I've put this mod in the modcp section. I didn't want to play with xml and phrases for only one option in a menu. In a way, we can say it's faster to code for me, but code is not faster either way ;)

ragtek 12-19-2006 10:06 AM

no it doesnt need phrases
<text>your link</text> works too ;)

becafuel 12-19-2006 10:30 AM

Damn ! You're right ! Why the hell did I focus on <phrase>some text</phrase> ?!
Thx a lot ;)

becafuel 12-19-2006 11:56 AM

Then we will talk about this via PMs ;)

Spikeman 12-20-2006 04:02 PM

I like this, although I put mine in ACP

/me installs

Nookius 03-09-2007 02:15 AM

How to modify this code for users? (i wan't them also see their statistic)...

Can somebody give me full code or "hack" file?

becafuel 03-09-2007 05:49 AM

You can put the code in the root directory of your forum and then put a link somewhere (i.e. in navbar) to this file.

kafi 03-09-2007 06:06 AM

Very handy add-on really.

Is there any chance to do it also for reputation points? To see where the user got his rep. points?
Event better would be to group forums by topic for this purpose...

Thank you!!!

Nookius 03-09-2007 06:10 AM

ok. thank you. i'll try it.

pollon 03-26-2007 09:59 AM

I've correctly installed it but when i click on the menu in the MOD CP I get this:

Code:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in ------------/public_html/forum/modcp/usermess.php on line 2

Parse error: syntax error, unexpected T_STRING in -------------/public_html/forum/modcp/usermess.php on line 2

Any help please?

cajunboy2208 03-28-2007 03:54 AM

I installed. But where does this show up at? I can't find it anywhere. I don't use the default style however.

ragtek 03-28-2007 05:20 AM

it is in the acp!

cajunboy2208 03-28-2007 11:58 AM

Oh. I thought this would be on the user profile or something so everyone could see it instead of just the admins. Anyway to do this?

becafuel 03-28-2007 01:08 PM

Quote:

Originally Posted by pollon (Post 1212598)
I've correctly installed it but when i click on the menu in the MOD CP I get this:

Code:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in ------------/public_html/forum/modcp/usermess.php on line 2

Parse error: syntax error, unexpected T_STRING in -------------/public_html/forum/modcp/usermess.php on line 2

Any help please?

Well... Line 2 does not contain any code :confused: Did you upload using ASCII mode ?

becafuel 03-28-2007 01:10 PM

Quote:

Originally Posted by ragtek (Post 1214247)
it is in the acp!

Not ACP but MODCP ;)

If you want it in the ACP, then you should create an XML file for this.


Quote:

Originally Posted by cajunboy2208 (Post 1214409)
Oh. I thought this would be on the user profile or something so everyone could see it instead of just the admins. Anyway to do this?

I don't think it's a good place for such a tool because of the number of queries it makes :(


All times are GMT. The time now is 04:53 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.02698 seconds
  • Memory Usage 1,950KB
  • 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
  • (3)bbcode_code_printable
  • (5)bbcode_php_printable
  • (15)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete