vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Top 5 posters (https://vborg.vbsupport.ru/showthread.php?t=200783)

Ghost Shadow 01-05-2009 04:42 PM

Top 5 posters
 
Is it possible to list the top 5 posters? Such as using a "$"?

TIA

-Joseph

Bellardia 01-05-2009 05:04 PM

You can't call them by any defined function, but you could make a short plugin that uses a single query to find the top 5, and then style them as you want.

Ghost Shadow 01-05-2009 05:37 PM

Quote:

Originally Posted by Bellardia (Post 1702458)
You can't call them by any defined function, but you could make a short plugin that uses a single query to find the top 5, and then style them as you want.

How difficult is this to do Bellardia?

Bellardia 01-05-2009 06:57 PM

Quote:

Originally Posted by Ghost Shadow (Post 1702493)
How difficult is this to do Bellardia?

Depends how much of the information you want to be displayed and how you want it to be styled, simply listing the top 5 posters in commas in plain text would be very simple; a few lines of code.

Styling them wouldn't be much harder either if using basic styles. However pulling other information with them would take joins (say, color of username, usertitle etc) but nonetheless quite simple in essence.

Depending on what your needs are I could write up a quick script for you.

Ghost Shadow 01-05-2009 07:34 PM

Quote:

Originally Posted by Bellardia (Post 1702557)
Depends how much of the information you want to be displayed and how you want it to be styled, simply listing the top 5 posters in commas in plain text would be very simple; a few lines of code.

Styling them wouldn't be much harder either if using basic styles. However pulling other information with them would take joins (say, color of username, usertitle etc) but nonetheless quite simple in essence.

Depending on what your needs are I could write up a quick script for you.

Bellardia, thank you so much!!!

I created a sidebar and I want it to go within "Top 5 Posters" block, 3rd from the top.
I just want the nick of the poster on the far left, and number of posts on the far right. With the highest poster on top, to the lowest on bottom.

If possible, making the numbers yellow and keeping the names default.

I'll open the forum so you can see the side block I'm referring to.

Thank you so much for your kindness!
-Joseph
http://www.warfaith.com/

Bellardia 01-05-2009 08:15 PM

I have class now, so just give me 3-4 hours ;p

Ghost Shadow 01-05-2009 08:23 PM

Quote:

Originally Posted by Bellardia (Post 1702611)
I have class now, so just give me 3-4 hours ;p

KoOL

I'll close the forum back up...Thank you!!!!!

Bellardia 01-06-2009 01:20 AM

Open a plaintext editor, paste in the code below, and save it as something. Upload it as a product.
Where you want the names to appear, place '$Top5' in the template, and they will be inserted in yellow color. You can specify your own color of yellow by finding and replacing '#ff0' with any hex color of your choice. I just used the default yellow because I don't know what you're after ;)

Please don't repost, submit, or distribute without asking!
Feel free to use as you need.
1 Query, 0 File edits, 0 Uploads
Code:

<?xml version="1.0" encoding="ISO-8859-1"?>

<product productid="top5posters" active="1">
        <title>Top 5 Posters</title>
        <description>Gets a string of the top five posters, and parses where $Top5 is included in a template</description>
        <version>0.1</version>
        <url />
        <versioncheckurl />
        <dependencies>
        </dependencies>
        <codes>
        </codes>
        <templates>
        </templates>
        <plugins>
                <plugin active="1" executionorder="5">
                        <title>Top5Posters</title>
                        <hookname>forumhome_start</hookname>
                        <phpcode><![CDATA[global $vbulletin;
$GrabString = $vbulletin->db->query_read("select `username`, `posts` from `".TABLE_PREFIX."user` ORDER BY `posts` DESC limit 0, 4;");
while ($GrabTop = $vbulletin->db->fetch_array($GrabString))
{
        $Top5Store[] = '<tr><td width="100%">'.$GrabTop['username'].'</td><td style="white-space:nowrap">'.$GrabTop['posts'].'</td></tr>';       
}
$Top5Store = '<table width="100%" border="0" style="color:#FF0">'.implode('', $Top5Store).'</table>';
htmlspecialchars_uni($Top5Store);
build_datastore('TopPosters', $Top5Store);
unset($GrabTop, $Top5Store, $GrabString);]]></phpcode>
                </plugin>
                <plugin active="1" executionorder="10">
                        <title>Parse Names</title>
                        <hookname>global_start</hookname>
                        <phpcode><![CDATA[$Top5 = $vbulletin->TopPosters;]]></phpcode>
                </plugin>
                <plugin active="1" executionorder="5">
                        <title>DataStore</title>
                        <hookname>init_startup</hookname>
                        <phpcode><![CDATA[$datastore_fetch[] = "'TopPosters'";
$Top5 = $vbulletin->TopPosters;]]></phpcode>
                </plugin>
        </plugins>
        <phrases>
        </phrases>
        <options>
        </options>
        <helptopics>
        </helptopics>
        <cronentries>
        </cronentries>
        <faqentries>
        </faqentries>
</product>


Ghost Shadow 01-06-2009 02:46 AM

First, thank you for the time you spent on writing this code.

It partially works. Does not show the number of posts. Just shows users in sequence separated by a comma.

Dismounted 01-06-2009 02:52 AM

1) You do not need to evaluate that code...
2) And therefore, do not need addslashes().
3) You should run htmlspecialchars_uni() on the username.
4) This is the sort of data that the datastore should cache. No one cares if the data is 10 minutes off or so...


All times are GMT. The time now is 01:01 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.01115 seconds
  • Memory Usage 1,751KB
  • 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
  • (4)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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