GDRCD 5.5 Modifiche ai presenti e ai presenti estesi
GDRCD 5.5 Modifiche ai presenti e ai presenti estesi postato il 14/10/2020 16:29:51 nel forum programmazione, open source e hosting e modificato da gdr-online.com il 16/10/2020 09:04:56
Avrei bisogno di sistemare questi due file. Vediamo, step by step.
Allora, la prima modifica che proprio non riesco a far funzioanre riguarda il file presenti.inc.php.
Per farvi capire, ho aggiunto un 4° stato ai 3 già disponibili: collegato da smartphone. E una fuzione per cui in automatico, chi si collega da smartphone viene settato su quello stato.
Quando ci si ricollega da desktop, lo stato ritorna a quello precedente alla connessione via smartphone grazie ad una colonna che ho aggiunto in database: disponibile_old. Ovviamente, questa colonna contiene lo stesso dato della colonna "disponibile" e serve proprio per tenre traccia dello stato precedente.
Il problema è che non riesco a fare lo switch cliccando sul pallino ed infatti ho dovuto spostare la selezione dello stato all'interno della pagina di modifica dell'avatar. Funziona tutto perfettamente, solo che raggiungere e modificare ogni volta lo stato dall'avatar è scomodo, diciamolo pure.
La parte di codice interessata in presenti.inc.php è questa:
$change_disp = ($record['disponibile'] + 1) % 3;
if($record['nome'] == $_SESSION['login']) {
//se c'e' stato un cambio di permessi aggiorno
if($record['permessi'] != $_SESSION['permessi']) {
$_SESSION['permessi'] = $record['permessi'];
}
echo '<a href="presenti.inc.php?disponibile='.$change_disp.'" class="link_sheet">';
}
echo '<img class="presenti_ico" src="../imgs/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']]).'" />';
if($record['nome'] == $_SESSION['login']) {
echo '</a>';
}
Se cambio in:
$change_disp = ($record['disponibile'] + 1) % 4;
mi fa tranquillamente lo switch di tutti e quattro gli stati, ma non mi aggiorna la tabella disponibile_old.
Smanettando ho provato con:
$change_disp = (($record['disponibile'] + 1) % 4) && ($record['disponibile_old'] + 1) % 4));
e con
$change_disp = ($record['disponibile'] + 1) % 4;
$change_disp = ($record['disponibile_old'] + 1) % 4;
Ma non va.
Come faccio a far sì che cliccando sui pallini dello stato non si aggiorni solo la colonna disponibile MA anche la sua gemella disponibile_old?
Pagine → 1
18/10/2020 13:38:01
Ciao!
Come hai gestito l'update del db? Nel codice che hai postato manca quello ;)
20/10/2020 13:00:19
emendil ha scritto: Ciao!
Come hai gestito l'update del db? Nel codice che hai postato manca quello ;)
Il problema era proprio quello, me n'ero completamente dimenticata :)
Risolto sistemando la query a inizio codice in questo modo:
if(isset($_REQUEST['disponibile']) === true) {
$query = "UPDATE personaggio SET ultimo_refresh = NOW(), disponibile=".gdrcd_filter('num', $_REQUEST['disponibile']).", disponibile_old=".gdrcd_filter('num', $_REQUEST['disponibile'])." WHERE nome = '".gdrcd_filter('in', $_SESSION['login'])."'";
}
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!
Seconda Era ↗
Imperion ↗