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 Segui Discussione Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum


Il gestore di Western Redemption Gdr ha risposto alla recensione di andrewfg88
Il gestore di Black Sails Chronicles ha risposto alla recensione di piripicchia
The Coven → Negli scorci di luce delle paludi della Louisiana fioriscono nuove ombre. Estend e la Congrega ti aspettano per vivere emozionanti avventure!
andrewfg88 ha recensito Western Redemption Gdr
mattew1010 ha recensito Naruto GDR - Beyond the Great War
World of Tanks: Afferrate subito il leggendario M4A3E8 Fury!
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, inizia l'avventura!
RAID Shadow Legends: Mazzo Alimentare del Fato
I dati del generatore di rank sono stati aggiornati!
primo27 ha recensito New World GDR
morositas ha aperto una nuova discussione: [GDRCD 5.6.0.6] Mancanza di un file prenotazioni stanze
Hero Wars → Costruisci la tua squadra di eroi leggendari e domina il campo di battaglia! Strategia, tattica e potenza si scontrano in questo RPG ricco di azione!
Portus: Harry Potter Gioco di Ruolo: Micro (ma non troppo) Quest in Infermeria 🏥
dark heart ha recensito Serenity Island
Apocalypse Requiem: Detroit: La prima collezione terminata!
Fairy Tail GDR: ⌛ Arrivano i Tratti del Personaggio
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
Hellswhere XII - Intervista ai creatori del play by chat urban fantasy Hellswhere XII!
Fantawestern - Il fantawestern è un sottogenere della fantascienza poco conosciuto ma che ha fornito spunti a film e opere letterarie.. scopriamolo!
Analisi dei MUD - Analisi storica e critica dei Multi User Dungeon (MUD)!
Legislazione Web - Impariamo a districarci fra le oscure leggi italiane del web
GDR-CD - Prova su strada dell'open source GDR-CD di Romeo Gentile
eXtremelot - Leggi la nostra recensione di eXtremelot... il più famoso GDR italiano!
I Tipi di GDR - Il GDR pacifico e il GDR combattivo. Trucchi e consigli...
