[RISOLTO] [5.6.0.4] Icona Gilda visibile solo ai membri
[RISOLTO] [5.6.0.4] Icona Gilda visibile solo ai membri postato il 09/09/2023 00:04:03 nel forum programmazione, open source e hosting e modificato da werekoala il 11/09/2023 11:49:17
Sto cercando di fare in modo che l'appartenenza ad una determinata gilda sia nascosta e soltanto i membri della gilda stessa possano riconoscersi.
Ho sfruttato il codice che ho trovato qui:
https://www.gdr-online.com/readforum.asp?id=255243 ↗
In particolare, ho modificato la parte relativa alla visibilità delle icone in questo modo:
else {
// Se la gilda è visibile e ho i permessi di visualizzazione, allora mostro l'immagine della gilda
if(($row_guilds['id_gilda'] <> 2) && ($_SESSION['permessi'] >= USER)) {
$ceilContent_guilds .= '<a href="main.php?page=servizi_gilde&id_gilda='.$row_guilds['gilda'].'"><img class="gruppi_ico" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.gdrcd_filter('out', $row_guilds['immagine']).'" alt="'.gdrcd_filter('out', $row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" title="'.gdrcd_filter('out', $row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" /></a>';
}
// Altrimenti è una gilda nascosta
else {
if(($row_guilds['id_gilda'] == 2) && ($_SESSION['permessi'] >= MODERATOR)) {
$ceilContent_guilds_bad .= '<a href="main.php?page=servizi_gilde&id_gilda='.$row_guilds['gilda'].'"><img class="gruppi_ico" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.gdrcd_filter('out', $row_guilds['immagine']).'" alt="'.gdrcd_filter('out', $row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" title="'.gdrcd_filter('out', $row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" /></a>';
}
}
In questo modo l'appartenenza della gilda diviene visibile solo a chi ha un ruolo di Admin (per ora ho messo questo) o a chi, ovviamente, ne fa parte.
Non riesco, però, a completare l'istruzione perché l'appartenenza diventi visibile anche agli altri membri della gilda.
Potete aiutarmi? Grazie!
Pagine → 1
09/09/2023 15:49:22
Ciao!
All'inizio della pagina, puoi fare una query per salvarti a quale gilda (id_gilda) appartiene il pg.
Questo valore salvato lo confronti con la gilda che stai stampando e teoricamente sei a posto.
Se non ti è chiaro come fare, scrivimi che appena posso ti do una mano.
09/09/2023 18:21:25
Purtroppo non sono riuscita a farlo.
Ti lascio l'intera parte del codice e ti ringrazio in anticipo!
// Icona gilda
// Inizialiizzo la variabile che conterrà il nome della gilda
$ceilContent_jobs = '';
$ceilContent_guilds = '';
$ceilContent_guilds_bad = '';
$pg = gdrcd_filter('out', $_REQUEST['pg']);
// Ottengo le gilde del personaggio
$guilds = gdrcd_query("SELECT ruolo.nome_ruolo, ruolo.gilda, ruolo.immagine, gilda.id_gilda, gilda.visibile, gilda.tipo, gilda.nome AS nome_gilda FROM clgpersonaggioruolo LEFT JOIN ruolo ON ruolo.id_ruolo = clgpersonaggioruolo.id_ruolo LEFT JOIN gilda ON ruolo.gilda = gilda.id_gilda WHERE clgpersonaggioruolo.personaggio = '".gdrcd_filter('in', $record['nome'])."'", 'result');
// Se il personaggio non appartiene ad alcuna gilda, allora mostro l'immagine di disoccupato
if(gdrcd_query($guilds, 'num_rows') == 0) {
$ceilContent_jobs = '<img class="gruppi_ico" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/disoccupato.png" alt="disoccupato" title="disoccupato">';
}
// Altrimenti carico le gilde visibili
else {
// Scorro i risultati
while($row_guilds = gdrcd_query($guilds, 'fetch')) {
// Se si tratta di un lavoro, allora mostro l'immagine del lavoro
if($row_guilds['gilda'] == -1) {
$ceilContent_jobs .= '<img class="gruppi_ico" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.gdrcd_filter('out', $row_guilds['immagine']).'" alt="'.gdrcd_filter('out', $row_guilds['nome_ruolo']).'" title="'.gdrcd_filter('out', $row_guilds['nome_ruolo']).'" />';
}
// Altrimenti è una gilda
else {
// Se la gilda è visibile e ho i permessi di visualizzazione, allora mostro l'immagine della gilda
if(($row_guilds['id_gilda'] <> 2) && ($_SESSION['permessi'] >= USER)) {
$ceilContent_guilds .= '<a href="main.php?page=servizi_gilde&id_gilda='.$row_guilds['gilda'].'"><img class="gruppi_ico" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.gdrcd_filter('out', $row_guilds['immagine']).'" alt="'.gdrcd_filter('out', $row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" title="'.gdrcd_filter('out', $row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" /></a>';
}
// Altrimenti è una gilda nascosta
else {
if(($row_guilds['id_gilda'] == 2) && ($_SESSION['permessi'] >= MODERATOR)) {
$ceilContent_guilds_bad .= '<a href="main.php?page=servizi_gilde&id_gilda='.$row_guilds['gilda'].'"><img class="gruppi_ico" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.gdrcd_filter('out', $row_guilds['immagine']).'" alt="'.gdrcd_filter('out', $row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" title="'.gdrcd_filter('out', $row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" /></a>';
}
}
else {
if(($row_guilds['id_gilda'] == 2) && ($_REQUEST['id_gilda'] = 2)) {
$ceilContent_guilds_bad .= '<a href="main.php?page=servizi_gilde&id_gilda='.$row_guilds['gilda'].'"><img class="gruppi_ico" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.gdrcd_filter('out', $row_guilds['immagine']).'" alt="'.gdrcd_filter('out', $row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" title="'.gdrcd_filter('out', $row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" /></a>';
}
}
}
}
gdrcd_query($guilds, 'free');
}
cbr89 ha scritto: Ciao!
All'inizio della pagina, puoi fare una query per salvarti a quale gilda (id_gilda) appartiene il pg.
Questo valore salvato lo confronti con la gilda che stai stampando e teoricamente sei a posto.
Se non ti è chiaro come fare, scrivimi che appena posso ti do una mano.
11/09/2023 09:23:55
Ciao,
All'inizio della pagina, dopo che hai fatto la query per le gilde dei presenti inserisci questa
/* Brancix modifica per nascondere le gilde negative ai non membri. Faccio una query, per capire a quale gilda appartengo: Se appartengo ad una gilda, mi torna il suo id
*
*/
$query_myGuild = "select ruolo.gilda from clgpersonaggioruolo as pgrole left join ruolo on (pgrole.id_ruolo = ruolo.id_ruolo) where pgrole.personaggio = '" . $_SESSION['login'] . "'";
$tempMyGuild = gdrcd_query($query_myGuild, 'result');
$myGuilds = [];
while ($rec = gdrcd_query($tempMyGuild, 'fetch')) {
$myGuilds[] = (int) $rec['gilda'];
}
Poi nel punto in cui ragioni sulla apparteneneza ad una gilda
// Icona gilda
// Inizialiizzo la variabile che conterrà il nome della gilda
$ceilContent_jobs = '';
$ceilContent_guilds = '';
$ceilContent_guilds_bad = '';
$pg = gdrcd_filter('out', $_REQUEST['pg']);
// Ottengo le gilde del personaggio
$guilds = gdrcd_query("SELECT ruolo.nome_ruolo, ruolo.gilda, ruolo.immagine, gilda.id_gilda, gilda.visibile, gilda.tipo, gilda.nome AS nome_gilda FROM clgpersonaggioruolo LEFT JOIN ruolo ON ruolo.id_ruolo = clgpersonaggioruolo.id_ruolo LEFT JOIN gilda ON ruolo.gilda = gilda.id_gilda WHERE clgpersonaggioruolo.personaggio = '".gdrcd_filter('in', $record['nome'])."'", 'result');
// Se il personaggio non appartiene ad alcuna gilda, allora mostro l'immagine di disoccupato
if(gdrcd_query($guilds, 'num_rows') == 0) {
$ceilContent_jobs = '<img class="gruppi_ico" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/disoccupato.png" alt="disoccupato" title="disoccupato">';
}
// Altrimenti carico le gilde visibili
else {
// Scorro i risultati
while($row_guilds = gdrcd_query($guilds, 'fetch')) {
// Se si tratta di un lavoro, allora mostro l'immagine del lavoro
if($row_guilds['gilda'] == -1) {
$ceilContent_jobs .= '<img class="gruppi_ico" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.gdrcd_filter('out', $row_guilds['immagine']).'" alt="'.gdrcd_filter('out', $row_guilds['nome_ruolo']).'" title="'.gdrcd_filter('out', $row_guilds['nome_ruolo']).'" />';
}
// Altrimenti è una gilda
else {
// Se la gilda è visibile e ho i permessi di visualizzazione, allora mostro l'immagine della gilda
if (($row_guilds['gilda'] != 2) || ($_SESSION['permessi'] >= USER)) {
/* @author Brancix
* Iniziamo a ragionare, intanto la gilda deve essere visibile e quanto meno devo avere i permessi di USER
*/
if ((int) $row_guilds['gilda'] != 2){
//Brancix: entro qui se la gilda NON è nascosta, quindi possiamo stamparla senza dubbi
$ceilContent_guilds .= '<a href="main.php?page=servizi_gilde&id_gilda=' . $row_guilds['gilda'] . '"><img class="gruppi_ico" src="themes/' . $PARAMETERS['themes']['current_theme'] . '/imgs/guilds/' . gdrcd_filter('out', $row_guilds['immagine']) . '" alt="' . gdrcd_filter('out', $row_guilds['nome_ruolo'] . ' - ' . $row_guilds['nome_gilda']) . '" title="' . gdrcd_filter('out', $row_guilds['nome_ruolo'] . ' - ' . $row_guilds['nome_gilda']) . '" /></a>';
} else {
/* Brancix: se siamo arrivati qui, la gilda è nascosta, quindi devo verificare un paio di cose:
* 1) Se sono un membro della gilda
* 2) Se ho i permessi da GM in su per capire chi fa cazzate (puoi personalizzarlo)
*/
IF (in_array((int) $row_guilds['gilda'], $myGuilds) || $_SESSION['permessi'] >= GAMEMASTER) {
$ceilContent_guilds_bad .= '<a href="main.php?page=servizi_gilde&id_gilda=' . $row_guilds['gilda'] . '"><img class="gruppi_ico" src="themes/' . $PARAMETERS['themes']['current_theme'] . '/imgs/guilds/' . gdrcd_filter('out', $row_guilds['immagine']) . '" alt="' . gdrcd_filter('out', $row_guilds['nome_ruolo'] . ' - ' . $row_guilds['nome_gilda']) . '" title="' . gdrcd_filter('out', $row_guilds['nome_ruolo'] . ' - ' . $row_guilds['nome_gilda']) . '" /></a>';
}
}//ELSE
}//chiusura di: if($row_guilds['gilda'] != 1) || ($_SESSION['permessi'] >= USER)
}
} //while
gdrcd_query($guilds, 'free');
}
Questo dovrebbe risolvere il tuo problema.
Chiaramente , l'ho scritto senza vedere la totalità della tua pagina, quindi potrebbero esserci cose che non vanno
11/09/2023 11:48:46
Funziona benissimo! Ti ringrazio davvero molto!!! Sei stato molto gentile.
cbr89 ha scritto: Ciao,
All'inizio della pagina, dopo che hai fatto la query per le gilde dei presenti inserisci questa...
11/09/2023 11:54:27
werekoala ha scritto: Funziona benissimo! Ti ringrazio davvero molto!!! Sei stato molto gentile.
[quote]cbr89 ha scritto: Ciao,
All'inizio della pagina, dopo che hai fatto la query per le gilde dei presenti inserisci questa...
[/quote]
Ottimo!!
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Fallen Gods ↗
AlterEgo ↗
Storie di Agarthi ↗
Wuthering Waves ↗