Gdrcd 5.2.1 - Presenti estesi postato il 08/09/2015 22:18:42 nel forum programmazione, gdrcd, open source, hosting
Sera a tutti, premetto che ho spulciato il forum a lungo ma non ho trovato quello che cercavo nello specifico.
Come detto nel titolo uso la versione 5.2.
Lavoricchiando al codice dei presenti estesi mi è venuta la fissa della tabella che ho visto in molti pbc e fin qui tutto bene perchè l'ho fatta, ho incasellato ogni tipologia di icona che deve apparire e ho aggiunto anche l'avatar. Felice della cosa però non avevo notato una cosa che nelle ultime settimane mi tormenta e non sono, a conti fatti, in grado di risolvere. In sostanza quando si connettono più pg di prova, se si trovano nella stessa identica mappa tutto bene ma quando si dividono in due mappe differenti i titoli della mappe rimangono in alto uno sotto l'altro e i pg presenti slittano sotto il titolo dell'ultima mappa anziché posizionarsi nella mappa corrente in cui sono. Vorrei riuscire a risolvere la cosa se possibile. Qualcuno sa illuminarmi a riguardo?
Se l'argomento è già stato affrontato e c'è la spiegazione della soluzione, magari mi è sfuggito, mi basterebbe anche un linkaggio.
Grazie
Pagine → 1
08/09/2015 22:22:00
Vedrai che di sicuro c'è un errore nella tabella. Un <td> o un <tr> non chiuso, da qualche parte.
08/09/2015 22:32:18
Può essere perchè mi è già capitato con altre cose di perdermi i pezzi. Spero in effetti.
08/09/2015 22:36:12
Scusa sandorclegane non ti avevo letto. Non ho praticità con queste cose. Postato così va bene?
<div class="presenti_estesi">
<?php
/** * Abilitazione tooltip
* @author Blancks
*/
if ($PARAMETERS['mode']['user_online_state'] == 'ON')
echo '<div id="descriptionLoc"></div>';
//Carico la lista presenti.
/** * Fix della query per includere l'uso dell'orario di uscita per capire istantaneamente quando il pg non è più connesso
* @author Blancks
*/
$query = "SELECT personaggio.nome, personaggio.cognome, personaggio.permessi, personaggio.url_img_chat, personaggio.sesso, personaggio.id_razza, razza.sing_m, razza.sing_f, razza.icon, personaggio.disponibile, personaggio.online_status, personaggio.is_invisible, personaggio.ultima_mappa, personaggio.ultimo_luogo, personaggio.posizione, personaggio.ora_entrata, personaggio.ora_uscita, personaggio.ultimo_refresh, mappa.stanza_apparente, mappa.nome as luogo, mappa_click.nome as mappa FROM personaggio LEFT JOIN mappa ON personaggio.ultimo_luogo = mappa.id LEFT JOIN mappa_click ON personaggio.ultima_mappa = mappa_click.id_click LEFT JOIN razza ON personaggio.id_razza = razza.id_razza WHERE personaggio.ora_entrata > personaggio.ora_uscita AND DATE_ADD(personaggio.ultimo_refresh, INTERVAL 4 MINUTE) > NOW() ORDER BY personaggio.is_invisible, personaggio.ultima_mappa, personaggio.ultimo_luogo, personaggio.nome";
$result = gdrcd_query($query, 'result');
echo '<ul class="elenco_presenti">';
echo '</tr>';
echo '<table style="border:1px solid #59919e" width="500" cellpadding="1" margin-left="150">';
echo '<tr>';
echo '<td style="border:1px dotted #f3ecdc" bgcolor="#212121" width="35"><font color="#c34640">L</font><font color="#f3ecdc">og</font></td>';
echo '<td style="border:1px dotted #f3ecdc" bgcolor="#212121" width="45"><font color="#c34640">C</font><font color="#f3ecdc">arica</td>';
echo '<td style="border:1px dotted #f3ecdc" bgcolor="#212121" width="45"><font color="#c34640">S</font><font color="#f3ecdc">tato</td>';
echo '<td style="border:1px dotted #f3ecdc" bgcolor="#212121" ><font color="#c34640">V</font><font color="#f3ecdc">olto</td>';
echo '<td style="border:1px dotted #f3ecdc" bgcolor="#212121" width="45"><font color="#c34640">S</font><font color="#f3ecdc">esso</td>';
echo '<td style="border:1px dotted #f3ecdc" bgcolor="#212121" width="45"><font color="#c34640">R</font><font color="#f3ecdc">azza</td>';
echo '<td style="border:1px dotted #f3ecdc" bgcolor="#212121" width="100"><font color="#c34640">M</font><font color="#f3ecdc">&</font><font color="#c34640">G</font></td>';
echo '<td style="border:1px dotted #f3ecdc" bgcolor="#212121" width="200"><font color="#c34640">P</font><font color="#f3ecdc">ersonaggio</td>';
echo '</tr>';
$ultimo_luogo_corrente='';
$mappa_corrente='';
while ($record = gdrcd_query($result, 'fetch'))
{
//Stampo il nome del luogo
if($record['is_invisible']==1)
{
$luogo_corrente = $MESSAGE['status_pg']['invisible'][1];
} else
{
if ($record['mappa']!=$mappa_corrente)
{
$mappa_corrente = $record['mappa'];
echo '<li class="mappa">'.gdrcd_filter('out',$mappa_corrente).'</li>';
}//if
if (empty($record['stanza_apparente']))
{
$luogo_corrente = $record['luogo'];
} else
{
$luogo_corrente = $record['stanza_apparente'];
}//else
}
//Stampo il nome del luogo solo per il primo PG che vi e' posizionato
if (empty($luogo_corrente)===TRUE){
#echo 'ok';
/*if ($record['mappa']>=0){
$luogo_corrente = $PARAMETERS['names']['maps_location'];
} else {
$luogo_corrente = $PARAMETERS['names']['base_location'];
}//else*/
if ($ultimo_luogo_corrente!=$luogo_corrente){
$ultimo_luogo_corrente=$luogo_corrente;
echo '<li class="luogo">'.gdrcd_filter('out',$luogo_corrente).'</li>';
} //if
} else if ($ultimo_luogo_corrente!=$luogo_corrente){
$ultimo_luogo_corrente=$luogo_corrente;
if ($record['is_invisible']==0){
if(($PARAMETERS['mode']['mapwise_links']=='OFF')){ #||($record['ultima_mappa']==$_SESSION['mappa'])
echo '<li class="luogo"><a href="main.php?dir='.$record['ultimo_luogo'].'&map_id='.$record['ultima_mappa'].'">'.gdrcd_filter('out',$luogo_corrente).'</a></li>';
} else {
echo '<li class="luogo">'.gdrcd_filter('out',$luogo_corrente).'</li>';
}
} else {
echo '<li class="luogo">'.gdrcd_filter('out',$luogo_corrente).'</li>';
}//else
}//if
/** * Parametro di personalizzazione di uno stato online via tooltip
* @author Blancks
*/
$online_state = '';
if ($PARAMETERS['mode']['user_online_state']=='ON' && !empty($record['online_status']) && $record['online_status'] != NULL)
{
$record['online_status'] = trim(nl2br(gdrcd_filter('in',$record['online_status'])));
$record['online_status'] = strtr($record['online_status'], array("
" => '', "
" => '', "
" => '', '"' => '"'));
$online_state = 'onmouseover="show_desc(event, ''.$record['online_status'].'');" onmouseout="hide_desc();""';
}
//Stampo il PG
echo '<li class="presente"'. $online_state .'>';
echo '</tr>';
echo '<tr>';
echo '<td style="border:1px dotted #c34640" width="35">';
//Entrata, uscita PG
//Controllo da quanto il pg e' loggato
$activity = gdrcd_check_time ($record['ora_entrata']);
//Se e' loggato da meno di 2 minuti
if ($activity <= 2){
//Lo segnalo come appena entrato
echo '<img class="presenti_ico" src="decorazioni/icons/enter.png" alt="'.gdrcd_filter('out',$MESSAGE['status_pg']['enter']).'" title="'.gdrcd_filter('out',$MESSAGE['status_pg']['enter']).'" />';
} else {
//Altrimenti, se si e' sloggato da piu' di 2 minuti lo segnalo come uscito
$activity = gdrcd_check_time ($record['ultimo_refresh']);
if ($activity > 3){
echo '<img class="presenti_ico" src="decorazioni/icons/exit.png" alt="'.gdrcd_filter('out',$MESSAGE['status_pg']['exit']).'" title="'.gdrcd_filter('out',$MESSAGE['status_pg']['exit']).'" />';
} else {
//Altrimenti e' semplicemente loggato
echo '<img class="presenti_ico" src="decorazioni/icons/blank.png" alt="'.gdrcd_filter('out',$MESSAGE['status_pg']['logged']).'" title="'.gdrcd_filter('out',$MESSAGE['status_pg']['logged']).'" />';
}//else
}//else
switch ($record['permessi']){
case USER: $alt_permessi = ''; break;
case GUIDE: $alt_permessi = $PARAMETERS['names']['guide']['sing']; break;
case CAPOGILDA: $alt_permessi = $PARAMETERS['names']['capogilda']['sing']; break;
case CAPORAZZA: $alt_permessi = $PARAMETERS['names']['caporazza']['sing']; break;
case GAMEMASTER: $alt_permessi = $PARAMETERS['names']['master']['sing']; break;
case MODERATOR: $alt_permessi = $PARAMETERS['names']['moderators']['sing']; break;
case SUPERUSER: $alt_permessi = $PARAMETERS['names']['administrator']['sing']; break;
}//else
echo '</td>';
echo '<td style="border:1px dotted #c34640" width="45">';
//Livello di accesso del PG (utente, master, admin, superuser)
echo '<img class="presenti_ico" src="decorazioni/icons/permessi'.$record['permessi'].'.png" alt="'.gdrcd_filter('out',$alt_permessi).'" title="'.gdrcd_filter('out',$alt_permessi).'" />';
echo '</td>';
echo '<td style="border:1px dotted #c34640" width="45">';
//Icona stato di disponibilità. E' sensibile se la riga che sto stampando corrisponde all'utente loggato.
$change_disp=($record['disponibile']+1)%3;
echo '<img class="presenti_ico" src="decorazioni/icons/disponibile'.$record['disponibile'].'.png" alt="'.gdrcd_filter('out',$MESSAGE['status_pg']['availability'][$record['disponibile']]).'" title="'.gdrcd_filter('out',$MESSAGE['status_pg']['availability'][$record['disponibile']]).'" />';
echo '</td>';
echo '<td style="border:1px dotted #c34640" width="50" height="50" >';
//Immagine avatar
echo '<img class="avatar" src="'.gdrcd_filter('fullurl',$record['url_img_chat']).'" width="50px" heigh="50px" />';
echo '</td>';
echo '<td style="border:1px dotted #c34640" width="45">';
//Icona del genere del pg
echo '<img class="presenti_ico" src="decorazioni/icons/testamini'.$record['sesso'].'.png" alt="'.gdrcd_filter('out',$MESSAGE['status_pg']['gender'][$record['sesso']]).'" title="'.gdrcd_filter('out',$MESSAGE['status_pg']['gender'][$record['sesso']]).'" />';
echo '</td>';
echo '<td style="border:1px dotted #c34640" width="45">';
//Icona della razza pg
if($record['icon']==''){$record['icon']='standard_razza.png';}
echo '<img class="presenti_ico" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/races/'.$record['icon'].'" alt="'.gdrcd_filter('out',$record['sing_'.$record['sesso']]).'" title="'.gdrcd_filter('out',$record['sing_'.$record['sesso']]).'" />';
echo '</td>';
echo '<td style="border:1px dotted #c34640" width="100">';
// Modifica Light far apparire il simbolo della gilda
$query2 = "SELECT * FROM clgpersonaggioruolo where clgpersonaggioruolo.personaggio='".$record['nome']."'";
$result2 = gdrcd_query($query2, 'result');
$cont_mest=0;
while ($record2 = gdrcd_query($result2, 'fetch'))
{
$query3 = "SELECT ruolo.nome_ruolo, ruolo.immagine FROM ruolo where ruolo.id_ruolo=".$record2['id_ruolo']."";
$result3 = gdrcd_query($query3, 'result');
while ($record3 = gdrcd_query($result3, 'fetch'))
{
echo '';
$cont_mest++;
print '<img class="presenti_ico" src="../themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.$record3['immagine'].'" alt="'.gdrcd_filter('out',$record3['nome_ruolo']).'" title="'.gdrcd_filter('out',$record3['nome_ruolo']).'" />';
}
}
echo '</td>';
echo '<td style="border:1px dotted #c34640" width="200">';
//Nome pg e link alla sua scheda
echo ' <a href="main.php?page=scheda&pg='.$record['nome'].'" class="link_sheet">'.gdrcd_filter('out',$record['nome']);
if (empty($record['cognome'])===FALSE){echo ' '.gdrcd_filter('out',$record['cognome']);}
echo '</a> ';
echo '</td>';
echo '</tr>';
}//while
echo '</li>';
echo '</table>';
gdrcd_query($result, 'free');
echo '</ul>';
?>
</div>
</div>
<!-- Chiusura finestra del gioco -->
08/09/2015 23:11:46
Non so. Ho ricontrollato quello che mi hai detto e ho eliminato i tr di troppo. Ora ci sono quello per i titoletti e quello per il contenimento dei td. Doppio div sparito ma il problema sussiste. O li ho posizionati sbagliati io o boh, non capisco. Se sposto il tr dei titoli sopra ul presenti mi va in pappa spostandosi sulla sinistra e mostrando quindi le mappe ad elencazione.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Pandora Upside Down High School: Ritornano... I Nephilim
Il gestore di Cleveland City ha risposto alla recensione di enigmatrix
War Thunder → Aviazione, veicoli corazzati e flotte militari della seconda guerra mondiale. Parteciperai a tutte le principali battaglie!
Road to Hamartia: QUEST: Un Trono per i miei pensieri
RAID Shadow Legends: Drop Michelangelo!
I dati del generatore di rank sono stati aggiornati!
Hikaru No Tohei - Le Luci di Tohei: Riapertura iscrizioni per lunedì 25/8
Sea of Conquest → Vivi un'avventura tra i mari! Dal cuore del Mare del Diavolo, un paradiso piratesco brulicante di magia, tesori e avventure, salperai verso l'ignoto!
Il gestore di Cleveland City ha risposto alla recensione di onestamente
lowen ha recensito Naruto x Boruto GDR - New Rebirth
leftbehindgdr ha risposto alla discussione: Left Behind
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
RAID Shadow Legends: Campione in primo piano | Michelangelo 🐢
Neon & Shadows: Conclusione filone di trama Inferno Bianco
La Città dei Dogi: Nuova versione del gioco!
Sea of Conquest: Black Flag Beacon ⚓️🏴☠️
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
Pokémon Power Trainer - Articolo sul gioco di ruolo online Pokémon Power Trainer. Gotta catch'em all!
Dol Amroth - Intervista allo staff di Dol Amroth.. il play by chat ambientato nella Terra di Mezzo!
LotConn 2019 - Siamo stati alla LotConn2019 di eXtremelot dove il primo play by chat ha presentato le novità!
D&D in Edicola! - I romanzi di Dungeons and Dragons escono in edicola a partire da oggi!
Anchor - Intervista alla gestione di Anchor.. play by chat urban fantasy ambientato a Sydney!
Giochi Criminalità - Lista completa dei giochi di ruolo online ambientati nel mondo della criminalità
Connessioni - L'insolita connessione tra casinò online e GDR: due mondi che si incontrano...
Calcio e GdR - Calcio e (video)giochi di ruolo: 3 esempi di mashup tra generi