vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Modification Requests/Questions (Unpaid) (https://vborg.vbsupport.ru/forumdisplay.php?f=112)
-   -   Reorder User Ranks (https://vborg.vbsupport.ru/showthread.php?t=198072)

Lynne 12-08-2008 05:41 PM

In phpMyAdmin you just go to the table and after it lists all the columns, it says:
Add 1 fields(s)

The 1 is in an input box. At End of Table is the default, click on Go and fill in the information.

I would strongly suggest you do this on your test site before you do it on a live site.

PGAmerica 12-08-2008 05:58 PM

Got it and done. Thank you for your help. At least this way I can manually change the order, that is, until a hack is written.

--------------- Added 08 Dec 2008 at 13:12 ---------------

Well, I created a new column in my "ranks" table named "order_id". I then modified the "functions_ranks.php" file and changed the bottom section from

Code:

// #################### Begin Build Ranks PHP Code function ################
function &build_ranks()
{
    global $vbulletin;

    $ranks = $vbulletin->db->query_read_slave("
        SELECT ranklevel AS l, minposts AS m, rankimg AS i, type AS t, stack AS s, display AS d, ranks.usergroupid AS u
        FROM " . TABLE_PREFIX . "ranks AS ranks
        LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup USING (usergroupid)
        ORDER BY ranks.usergroupid DESC, minposts DESC
    ");

    $rankarray = array();
    while ($rank = $vbulletin->db->fetch_array($ranks))
    {
        $rankarray[] = $rank;
    }

    build_datastore('ranks', serialize($rankarray), 1);

    return $rankarray;
}

to
Code:

// #################### Begin Build Ranks PHP Code function ################
function &build_ranks()
{
    global $vbulletin;

    $ranks = $vbulletin->db->query_read_slave("
        SELECT ranklevel AS l, minposts AS m, rankimg AS i, type AS t, stack AS s, display AS d, ranks.order_id AS u
        FROM " . TABLE_PREFIX . "ranks AS ranks
        LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup USING (usergroupid)
        ORDER BY ranks.order_id DESC, minposts DESC
    ");

    $rankarray = array();
    while ($rank = $vbulletin->db->fetch_array($ranks))
    {
        $rankarray[] = $rank;
    }

    build_datastore('ranks', serialize($rankarray), 1);

    return $rankarray;
}

I just replaced "ranks.usergroupid" with "ranks.order_id".

I went to the "Update Counters" area in the ACP and updated the titles and ranks. It is still displaying the same way.

Ideas?

PGAmerica 12-10-2008 10:33 PM

Well, it turns out that when I made that minor change and added the new column to the database, it broke the ranking system. Everybody had ranks that were not their own. In other words, we suddenly had tons of people that showed rankings that are only earned from a specified amount of posts. There is no way they should have that rank. When I removed the DB column and undid the minor changes I made to the file, it all reverted to working properly.

I don't get it.

Ideas?

Lynne 12-10-2008 10:37 PM

My guess is it's a datastore issue. You probably need to add the column to the rank array in order for it to get used. Look at ranks.php around line 174 where the array is assigned. I'll bet you 'broke' things by not adding the column in there and putting it all in there.

PGAmerica 12-10-2008 10:50 PM

The rank array code looks like

$ranks = array(
'ranklevel' => 1,
'usergroupid' => -1,
'minposts' => 10,
'rankimg' => 'images/',
);

How do I add a reference to the new table column "order_id"?

n8td 12-27-2008 02:29 AM

All I did was order it by rankid. I added my ranks in a certain order so the rankid was all I needed.

Code:

    $ranks = $vbulletin->db->query_read_slave("
        SELECT ranklevel AS l, minposts AS m, rankimg AS i, type AS t, stack AS s, display AS d, ranks.usergroupid AS u
        FROM " . TABLE_PREFIX . "ranks AS ranks
        LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup USING (usergroupid)
        ORDER BY rankid DESC, minposts DESC

It doesn't show up immediately even if you update the ranks in the ACP. It took around 15-30 minutes for my ranks to reorder the way I wanted.

n8td 01-31-2009 12:52 PM

DragonBlade has found a solution.

https://vborg.vbsupport.ru/showthrea...=109292&page=2


All times are GMT. The time now is 03:20 AM.

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.02150 seconds
  • Memory Usage 1,737KB
  • 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
  • (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
  • (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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete