Pagina 1 di 1

richiamare utenti di un determinato gruppo phpBB

Inviato: 11/01/2012, 14:10
da slash
Giorno a tutti! avrei bisogno di richiamare in una pagina html tutti gli utenti appartenenti ad un determinato gruppo di phpBB.

Sapete aiutarmi? col php sono al livello di un ameba!

GRAZIE!

Re: richiamare utenti di un determinato gruppo phpBB

Inviato: 11/01/2012, 14:22
da Micogian
Cosa vuol dire "richiamare"? forse volevi dire "elencare" ? la cosa è leggermente diversa.
Se è una Lista che vuoi il "Gruppo" dove e come viene distinto ?

Re: richiamare utenti di un determinato gruppo phpBB

Inviato: 11/01/2012, 14:29
da slash
ecco l ho detto che sono un ameba in php XD! allora mi spiego meglio:

Io, per ipotesi, ho creato il gruppo utenti: "noob" dal pda di phpbb ora vorrei vedere nel index_body tutti gli utenti appartenerti a quel gruppo.

Re: richiamare utenti di un determinato gruppo phpBB

Inviato: 11/01/2012, 14:47
da Carlo
In generale dovresti creare una query SQL che estragga la lista di tutti gli utenti nel gruppo con ID X, e poi con un ciclo foreach aggiungerli ad una variabile di template.

Re: richiamare utenti di un determinato gruppo phpBB

Inviato: 11/01/2012, 14:57
da slash
XD! come faccio tutto ciò??? finché si sta nel campo html e css me la cavo ma ripeto sql e php per mè sono out!

Grazie!

Re: richiamare utenti di un determinato gruppo phpBB

Inviato: 11/01/2012, 16:28
da Micogian
Se hai un pò di pazienza posso darci un'occhiata, penso che il Gruppo vada cercato con una query su più tabelle, users, groups e user_groups. Nel frattempo controlla nelal tabella groups qual'è l'ID del gruppo che ti interessa visualizzare.

Re: richiamare utenti di un determinato gruppo phpBB

Inviato: 11/01/2012, 18:03
da slash
Grazie Mico! attenderò con ansia! appena torno a casa ti faccio sapere l iD del gruppo!

Re: richiamare utenti di un determinato gruppo phpBB

Inviato: 11/01/2012, 20:08
da Micogian
Allora, devi fare così:

1) Crea un file nella root del forum dal nome "special_group.php" con il seguente contenuto:

Codice: Seleziona tutto

<?php
$group = '99';  // sostituire con il group_id interessato
$sql = "SELECT u.user_id, u.username, u.user_colour, g.group_id, g.group_name, ug.group_id, ug.user_id
    FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug 
    WHERE g.group_id = " . $group ."
    AND u.user_id = ug.user_id
    AND g.group_id = ug.group_id
    ORDER BY u.username" ;
    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result))
    {
    $group_name = $row['group_name'];
    $user_group = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
    $special_group_list .= ($special_group_list != '') ? ', ' . $user_group : $user_group;    
    }
$template->assign_vars(array(
    'LEGEND_SPECIAL_LIST'     => "Gruppo " . $group_name . ": " ,
    'SPECIAL_USERS_LIST'    => $special_group_list
    ));
?>
2) Sostituisci ovviamente il valore di $group = 99; con il group_id che ti interessa estrarre.

3) Nel file index.php inserisci, prima della riga // Output page la seguente riga di codice:

Codice: Seleziona tutto

include($phpbb_root_path . 'special_group.' . $phpEx);
4) Nel template, nel file index_body.html trova il seguente codice:

Codice: Seleziona tutto

<!-- IF S_DISPLAY_ONLINE_LIST -->
    <!-- IF U_VIEWONLINE --><h3><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a></h3><!-- ELSE --><h3>{L_WHO_IS_ONLINE}</h3><!-- ENDIF -->
    <p>{TOTAL_USERS_ONLINE} ({L_ONLINE_EXPLAIN})<br />{RECORD_USERS}<br /> <br />{LOGGED_IN_USER_LIST}
    <!-- IF LEGEND --><br /><em>{L_LEGEND}: {LEGEND}</em><!-- ENDIF --></p>
<!-- ENDIF --> 
e aggiungi questo:

Codice: Seleziona tutto

<!-- IF S_USER_LOGGED_IN and not S_IS_BOT -->
<p>{LEGEND_SPECIAL_LIST} {SPECIAL_USERS_LIST}</p>
<!-- ENDIF --> 
Aggiorna la cache e prova.

Re: richiamare utenti di un determinato gruppo phpBB

Inviato: 11/01/2012, 21:13
da slash
Grazie infinite mico! funziona alla perfezione! \m/

Domani sistemo l html e poi ti faccio vedere a cosa mi è servito tutto ciò ;)