Resultados 1 al 4 de 4

Tema: Ordenar Rango de Usuarios

  1. #1
    Administrador Avatar de 4ngeluxpunk
    Fecha de ingreso
    Dec 2013
    Mensajes
    487
    Buenas tardes a todos, debido a un problema que tenía nuestro amigo elroble con el orden de visualización de los rangos, se nos entro una interrogante ¿Por que los rangos no se visualizan con el orden que debería tener? por lo cual nos respondemos "En vBulletin los Rangos se Visualizan según el ID del Grupo de Usuario, al ser un Grupo con ID mayor se pondrá encima del Grupo con ID menor"; según estás interrogantes decidimos dar la siguiente solución de visualización.

    Lo primero que tendremos que hacer es ir al FTP e buscar y editar el archivo "ranks.php" el cual se encuentra dentro de la carpeta "admincp".

    Una vez adentro buscamos lo siguiente:

    $vbulletin->input->clean_array_gpc('p', array(
    'ranklevel' => TYPE_UINT,
    'minposts' => TYPE_UINT,
    'rankimg' => TYPE_STR,
    'usergroupid' => TYPE_INT,
    'doinsert' => TYPE_STR,
    'rankhtml' => TYPE_NOTRIM,
    'stack' => TYPE_UINT,
    'display' => TYPE_UINT,
    ));



    Y agregamos el siguiente campo:

    Código:
        $vbulletin->input->clean_array_gpc('p', array( 
            'ranklevel'   => TYPE_UINT, 
            'minposts'    => TYPE_UINT, 
            'rankimg'     => TYPE_STR, 
            'usergroupid' => TYPE_INT, 
            'doinsert'    => TYPE_STR, 
            'rankhtml'    => TYPE_NOTRIM, 
            'stack'       => TYPE_UINT, 
            'display'     => TYPE_UINT,
            'rankorder'   => TYPE_UINT, 
        ));
    Luego en el mismo archivo buscamos lo siguiente:

    Código:
    /*insert query*/ 
        $db->query_write(" 
            INSERT INTO " . TABLE_PREFIX . "ranks 
                (ranklevel, minposts, rankimg, usergroupid, type, stack, display) 
            VALUES 
                ( 
                " . $vbulletin->GPC['ranklevel'] . ", 
                " . $vbulletin->GPC['minposts'] . ", 
                '" . $db->escape_string($vbulletin->GPC['rankimg']) . "', 
                " . $vbulletin->GPC['usergroupid'] . ", 
                $type, 
                " . $vbulletin->GPC['stack'] . ", 
                " . $vbulletin->GPC['display'] . " 
                ) 
        ");  
    Y lo reemplazamos con esto:

    Código:
    /*insert query*/ 
        $db->query_write(" 
            INSERT INTO " . TABLE_PREFIX . "ranks 
                (ranklevel, minposts, rankimg, usergroupid, type, stack, display, rankorder)
            VALUES 
                ( 
                " . $vbulletin->GPC['ranklevel'] . ", 
                " . $vbulletin->GPC['minposts'] . ", 
                '" . $db->escape_string($vbulletin->GPC['rankimg']) . "', 
                " . $vbulletin->GPC['usergroupid'] . ", 
                $type, 
                " . $vbulletin->GPC['stack'] . ", 
                " . $vbulletin->GPC['display'] . ", 
                " . $vbulletin->GPC['rankorder'] . " 
                ) 
        ");
    Luego en el mismo archivo buscamos lo siguiente:

    Código:
        construct_hidden_code('rankid', $vbulletin->GPC['rankid']); 
        print_table_header(construct_phrase($vbphrase['x_y_id_z'], $vbphrase['user_rank'], '', $vbulletin->GPC['rankid'])); 
        print_input_row($vbphrase['times_to_repeat_rank'], 'ranklevel', $ranks['ranklevel']);
        print_chooser_row($vbphrase['usergroup'], 'usergroupid', 'usergroup', $ranks['usergroupid'], $vbphrase['all_usergroups']);
        print_input_row($vbphrase['minimum_posts'], 'minposts', $ranks['minposts']); 
        print_yes_no_row($vbphrase['stack_rank'], 'stack', $ranks['stack']); 
        print_select_row($vbphrase['display_type'], 'display', $displaytype, $ranks['display']);
        print_table_header($vbphrase['rank_type']); 
        print_input_row($vbphrase['user_rank_file_path'], 'rankimg', $rankimg); 
        print_input_row($vbphrase['or_you_may_enter_text'], 'rankhtml', $ranktext); 
    
        print_submit_row(); 
    Y lo reemplazamos con esto:

    Código:
        construct_hidden_code('rankid', $vbulletin->GPC['rankid']); 
        print_table_header(construct_phrase($vbphrase['x_y_id_z'], $vbphrase['user_rank'], '', $vbulletin->GPC['rankid'])); 
        print_input_row($vbphrase['times_to_repeat_rank'], 'ranklevel', $ranks['ranklevel']);
        print_chooser_row($vbphrase['usergroup'], 'usergroupid', 'usergroup', $ranks['usergroupid'], $vbphrase['all_usergroups']);
        print_input_row($vbphrase['minimum_posts'], 'minposts', $ranks['minposts']); 
        print_yes_no_row($vbphrase['stack_rank'], 'stack', $ranks['stack']); 
        print_select_row($vbphrase['display_type'], 'display', $displaytype, $ranks['display']);
        print_table_header($vbphrase['rank_type']); 
        print_input_row($vbphrase['user_rank_file_path'], 'rankimg', $rankimg); 
        print_input_row($vbphrase['or_you_may_enter_text'], 'rankhtml', $ranktext);
        print_input_row('Orden del Rango', 'rankorder', $ranks['rankorder']); 
    
        print_submit_row(); 
    Luego en el mismo archivo en el campo de "doupdate" buscamos lo siguiente:

    Código:
        $vbulletin->input->clean_array_gpc('p', array( 
            'ranklevel'   => TYPE_UINT, 
            'minposts'    => TYPE_UINT, 
            'rankimg'     => TYPE_STR, 
            'usergroupid' => TYPE_INT, 
            'doinsert'    => TYPE_STR, 
            'rankhtml'    => TYPE_NOTRIM, 
            'stack'       => TYPE_UINT, 
            'display'     => TYPE_UINT, 
        ));
    Y lo reemplazamos por lo siguiente:

    Código:
        $vbulletin->input->clean_array_gpc('p', array( 
            'ranklevel'   => TYPE_UINT, 
            'minposts'    => TYPE_UINT, 
            'rankimg'     => TYPE_STR, 
            'usergroupid' => TYPE_INT, 
            'doinsert'    => TYPE_STR, 
            'rankhtml'    => TYPE_NOTRIM, 
            'stack'       => TYPE_UINT, 
            'display'     => TYPE_UINT,
            'rankorder'   => TYPE_UINT, 
        ));
    Luego en el mismo archivo buscamos lo siguiente:

    Código:
        $db->query_write(" 
            UPDATE " . TABLE_PREFIX . "ranks 
            SET ranklevel = " . $vbulletin->GPC['ranklevel'] . ", 
                minposts = " . $vbulletin->GPC['minposts'] . ", 
                rankimg = '" . $db->escape_string($vbulletin->GPC['rankimg']) . "', 
                usergroupid = " . $vbulletin->GPC['usergroupid'] . ", 
                type = $type, 
                stack = " . $vbulletin->GPC['stack'] . ", 
                display = " . $vbulletin->GPC['display'] . " 
            WHERE rankid = " . $vbulletin->GPC['rankid'] . " 
        ");
    Y lo reemplazamos por lo siguiente:

    Código:
        $db->query_write(" 
            UPDATE " . TABLE_PREFIX . "ranks 
            SET ranklevel = " . $vbulletin->GPC['ranklevel'] . ", 
                minposts = " . $vbulletin->GPC['minposts'] . ", 
                rankimg = '" . $db->escape_string($vbulletin->GPC['rankimg']) . "', 
                usergroupid = " . $vbulletin->GPC['usergroupid'] . ", 
                type = $type, 
                stack = " . $vbulletin->GPC['stack'] . ", 
                display = " . $vbulletin->GPC['display'] . ", 
                display = " . $vbulletin->GPC['rankorder'] . " 
            WHERE rankid = " . $vbulletin->GPC['rankid'] . " 
        ");
    Luego en el mismo archivo buscamos lo siguiente:

    Código:
    // ###################### Start modify #######################
    if ($_REQUEST['do'] == 'modify')
    {
        $ranks = $db->query_write("
            SELECT rankid, ranklevel, minposts, rankimg, ranks. usergroupid,title, type, display, stack
            FROM " . TABLE_PREFIX . "ranks AS ranks
            LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup USING(usergroupid)
            ORDER BY ranks.usergroupid, minposts 
        ");
    Y lo reemplazamos por lo siguiente:

    Código:
    // ###################### Start modify #######################
    if ($_REQUEST['do'] == 'modify')
    {
        $ranks = $db->query_write("
            SELECT rankid, ranklevel, minposts, rankimg, ranks. usergroupid,title, type, display, stack, rankorder
            FROM " . TABLE_PREFIX . "ranks AS ranks
            LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup USING(usergroupid)
            ORDER BY rankorder, ranks.usergroupid, minposts
        ");
    Y guardamos los cambios realizados.

    Lo segundo que tendremos que hacer es ir al FTP e buscar y editar el archivo "functions_ranks.php" el cual se encuentra dentro de la carpeta "includes".

    Una vez adentro buscamos lo siguiente:

    Código:
    // #################### 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; 
    } 
    Y lo reemplazamos con lo siguiente:

    Código:
    // #################### 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.rankorder, ranks.usergroupid DESC, minposts DESC 
        "); 
    
        $rankarray = array(); 
        while ($rank = $vbulletin->db->fetch_array($ranks)) 
        { 
            $rankarray[] = $rank; 
        } 
    
        build_datastore('ranks', serialize($rankarray), 1); 
    
        return $rankarray; 
    }
    Y guardamos los cambios realizados.

    Lo tercero que tendremos que hacer es ir al CPanel y entrar a la Base de Datos y abrir la tabla "ranks" y creamos un nuevo campo llamado "rankorder" con el valor INT y guardamos.




    Puntos Claves a tomar:



    • Un vez modificado los archivos, podemos crear los rangos y al momento de crearlos nos saldrá un nuevo campo y procedemos a poner el numero del orden que queremos que tenga el rango:






    • Otro punto a tomar es que si ya teníamos rangos creados, y al ir asignar rangos a los usuarios o al editar un rango ya existente nos saldrá un error de Base de Datos; ese error se soluciona entrando al CPanel de su Hosting y ir a la Base de Datos e ingresar a la tabla "ranks" ahy en el campo "rankorder" que crearon antes le cambian los valores a cada rango con eso debería de funcionar todo correcto.

  2. #2
    Usuario Registrado
    Fecha de ingreso
    Sep 2010
    Mensajes
    53
    Re: Ordenar Rango de Usuarios

    4ngeluxpunk gracias por tu respuesta soluciono mi problema, pero tengo una pregunta al actualizar mi vbulletin tendre que editar de nuevo el ranks.php y el functions_ranks.php nuevamente

  3. #3
    Administrador Avatar de nextgen
    Fecha de ingreso
    Nov 2010
    Mensajes
    967
    [USER="5215"]elroble[/USER] , correcto, tenes que volver a realizar el procedimiento de modificación.

  4. #4
    Administrador Avatar de 4ngeluxpunk
    Fecha de ingreso
    Dec 2013
    Mensajes
    487
    [USER="5215"]elroble[/USER] es como te lo menciona [USER="1"]nextgen[/USER] pero recuerda esos archivos son los mismos, osea lo que puedes hacer es solo tener una copia en tu PC y cuando actualizas versión tan solo vuelves a subir esos archivos los cuales ya están modificados.

Temas similares

  1. Rango bajo nombre de usuario
    Por full-tag en el foro vBulletin 5 - Preguntas, Problemas y Soluciones
    Respuestas: 2
    Último mensaje: 11-12-2015, 08:06 PM
  2. Ayuda con orden de rango primario y secundario
    Por elroble en el foro vBulletin 4 - Preguntas, Problemas y Soluciones
    Respuestas: 3
    Último mensaje: 12-19-2014, 05:39 PM
  3. [Duda] Como Puedo colocar un Chatbox y Colocar imágenes del rango.
    Por drakions en el foro vBulletin 4 - Preguntas, Problemas y Soluciones
    Respuestas: 5
    Último mensaje: 11-19-2014, 06:46 AM
  4. [Duda] Como puedo cambar de Color los rango del foro.
    Por drakions en el foro vBulletin 4 - Preguntas, Problemas y Soluciones
    Respuestas: 4
    Último mensaje: 11-13-2014, 11:46 AM
  5. Como Ordenar en fila los Subforos (Ver Imagen)
    Por Callejero en el foro vBulletin 3 - Preguntas, Problemas y Soluciones
    Respuestas: 4
    Último mensaje: 03-31-2008, 02:17 AM

User Tag List

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •