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
I dati del generatore di rank sono stati aggiornati!
Ynis Witrin: Razze lavate con Perlana e il Mercante in Fiera!
Football Team Soccer → Diventa una stella del calcio! Crea, allena ed equipaggia il tuo giocatore. Unisciti a un club e vinci in Football Team Game!
blackmines ha recensito The Coven
Nyx Insight - Project S.E.T.: Riapertura iscrizioni
New Wizarding World: Aggiunte nuove abilità e carriere!
RAID Shadow Legends: Mazzo demoniaco del destino!
War Thunder → Aviazione, veicoli corazzati e flotte militari della seconda guerra mondiale. Parteciperai a tutte le principali battaglie!
Harry Potter Magic World: Cerimonia di fine A.A. 2024-25 ad Hogwarts
The Coven: La Blackmore Academy ha aperto i cancelli
Felix Felicis GdR - Harry Potter GdR: Il Prezzo dell'Onore - il caos
blancks ha risposto alla discussione: Gothik Web RPG Community 1.0 Alpha
RAID Shadow Legends → Plasma i tuoi eroi fino a farli diventare vere e proprie armi viventi e assembla i più epici gruppi d'assalto mai visti finora!
Sea of Conquest: Nuovo eroe Sylvia Thorne! 🌿
Il gestore di Storie di Agarthi ha risposto alla recensione di plasticblue
Seconda Era - Le Terre Libere: Rinnovo Server
Ex Gratia GDR: Allarmanti notizie dalla città di Taiyang!
The Coven → Negli scorci di luce delle paludi della Louisiana fioriscono nuove ombre. Estend e la Congrega ti aspettano per vivere emozionanti avventure!
Creare un PNG - Come creare un PNG realistico e ben fatto?
Stargate Command - Stargate Command Online, un gioco da gaters presentato da Fantascienza.com
Creare Linguaggi - Come creare linguaggi per live e giochi di ruolo online...Tà ghén Mordor!
Indie Game - Tesi di laurea sull'estetica e Storytelling negli Indie Game
Abisso Oscuro - Recensione del GDR fantasy Abisso Oscuro
Deadly Sins - Intervista alla gestione del play by chat moderno-noir Deadly Sins
Giochi Digimon - Lista dei giochi ambientati nel mondo dei Digimon! Evolvili tutti!
Giochi Bleach - Lista completa dei giochi di ruolo online ambientati nel mondo di Bleach