News:

SMF 2.1.4 has been released! Take it for a spin! Read more.

Main Menu

loadMemberData en 2.1

Started by Dhayzon, July 29, 2020, 03:04:24 PM

Previous topic - Next topic

Dhayzon

Tengo una pequeña duda

uso mucho esa función o esa caracteristica, pero tengo dudas

esta es mi función simple


    protected static function addMembers(){

                global   $memberContext;
                if (empty(self::$members))
                return array();
       
                // Load the members.
                 loadMemberData(self::$members);
        // Store this member's information.
                $query_members = array();
                foreach (self::$members as $member)
                {
                    // Load their context data.
                    if (!loadMemberContext($member))
                        continue;
                    // Store this member's information.
                    $query_members[$member] = $memberContext[$member];
                }
               
                /**
                 * Add data anon
                 */
                $query_members[0] = array(
                    'link' => 's',
                    'name' => 's',
                );
                self::$query_members = $query_members;
               

    }

mi duda es por que no hay un custom


// We add or replace according the the set
switch ($set)
{
case 'normal':
$select_columns .= ', mem.buddy_list,  mem.additional_groups';
break;
case 'profile':
$select_columns .= ', mem.additional_groups, mem.id_theme, mem.pm_ignore_list, mem.pm_receive_from,
mem.time_format, mem.timezone, mem.secret_question, mem.smiley_set, mem.tfa_secret,
mem.total_time_logged_in, lo.url, mem.ignore_boards, mem.password_salt, mem.pm_prefs, mem.buddy_list, mem.alerts';
break;
case 'minimal':
$select_columns = '
mem.id_member, mem.member_name, mem.real_name, mem.email_address, mem.date_registered,
mem.posts, mem.last_login, mem.member_ip, mem.member_ip2, mem.lngfile, mem.id_group';
$select_tables = '';
break;
default:
trigger_error('loadMemberData(): Invalid member data set \'' . $set . '\'', E_USER_WARNING);
}



SMF Decide que campos me da, pero por que no ponerle una opción de que campos quiero, por ejemplo pasarle un array de los campos


$custom_fields = array(
                    'link' => 's',
                    'name' => 's',
                );


y cargar solo eso


normalmente cargo datos de 100 usuarios y tengo que ponerle unset a casi la mitad de los datos, ya que hay opciones que no quiero y que en los modos si hay y por eso me cargo todo,, y es mucha información,

es genial por que se usa facil pero falta esa opcion ):


mi duda es esa o tal vez por algo mucho mas razonable no se permite eso


vicram10

Si entiendo tu cuetionamiento es que no tenes la posibilidad de elegir que mas campos traer o consultar, en cambio en la rama SMF 2.1 existe el hooks "integrate_load_member_data" que te permite agregar  columnas, tablas, y el "set".

No sería ese el que necesitas para poder agregar campos que necesitas o en todo caso reemplazar todo el loadMemberData.

Dhayzon

si eh visto el integrate_load_member_data, pero no se como funciona voy a analizar el código ya que, veamos como se le puede sacar provecho

vicram10

el add_integration_hooks le haces y luego en tu funcion le pasas los mismos parametros que usa dicho hook, tal cual (en tu funcion).

Code (php) Select

function tuHook(&$select_columns, &$select_tables, &$set){
    $select_columns .= ', si queres agregar mas columnas';
    $select_tables .= ', si queres agregar una tabla mas';
}


Al hacer de esa forma, automaticamente se agregará la columna que agregaste y podras usarlo en tu archivo php que llama al LoadMemberData.

Advertisement: