[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 gildaif(($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 nascostaelse {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!