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
Shadow Scape: ✨ Land nuovamente aperta!
La Tana del Ladro: ~ Forte Xantharl - La Rocca dei Burroni ~
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
Dalemyr: Pratoverde, festa in tutti i Reami
Entropia Universe: Note sulla versione di Entropia Universe 18.13.0
Gioco più visitato di Aprile 2025: The Last Sparks - Savannah Tales
Enlisted: Rendiamo Enlisted un posto migliore N° 68
Exclusive Villa GdR → Las Vegas, azzardo, vizi, soldi, intrighi... Più le sue luci sono scintillanti, più le sue ombre sono oscure. La città che non dorme mai, vi aspetta.
I dati del generatore di rank sono stati aggiornati!
One Piece World: Level Up verso l'unicità
Legacy of Magic: Missione Superstizione IIII
Football Team Soccer: Ultimo numero del nostro magazine!
Dominion Gdr → In una NY con un tessuto sovrannaturale nascosto, il Bronx Vampirico e il Queens dei Lupi ribollono sotto il Dominio dei Bokor. Quanto durerà la pace?
Enlisted: Saldi di maggio in Enlisted
Raxhodya Yaoi GdR: Nuova Trama: L'incubo Senza Volto
Shadow Scape: ✨ Chiusura momentanea
Entropia Universe → Lascia che il tuo avatar esplori nuovi mondi e viaggi tra i pianeti in questo stupendo MmoRpg Sci-Fi Free to Play!
AfterHogwarts GDR - Intervista ai gestori del GdR play by forum potteriano AfterHogwarts GDR!
Lineage II - Entra in uno sconfinato mondo fantasy dominato da razze in contrasto tra loro. Scatena i tuoi poteri in uno dei Mmo più famosi al mondo!
Tipi di Videogame - I diversi tipi di giochi di ruolo per computer e console
Regno di Alziora - Fantasy Magazine presenta Il gdr fantasy Regno di Alziora ai suoi lettori..
Mist Island - Intervista al gestore di Mist Island... avventurati in un'isola fantasy horror dalle tinte Lovercraftiane!
The Plague Gdr - Intervista allo staff di The Plague Gdr, play by chat chat urban fantasy!
Wondershare Filmora X - Tutorial su Wondershare Filmora X per il Taglio e Montaggio Video per i tuoi giochi!
Naruto Legend - Intervista allo staff del play by forum Naruto Legend!