23/07/2021 12:11:59
Buongiorno!
Scusate se vi scomodo per una bazzeccola, ma non riesco a capire come fare per modificare il formato della data nella pagina di lettura di una conversazione - readnew.inc.php per intenderci.
Mi spiego meglio: solo in questa pagina il formato della data risulta essere anno/mese/giorno, ma io vorrei che risultasse uniforme col resto della land dove le date appaiono tutte col formato giorno/mese/anno a cui siamo abituati tutti.
Ho spulciato anche negli altri file, ma non ho trovato il punto in cui poter mettere mano al problema.
Premetto che non ho modificato il codice se non per adattarlo graficamente e ho spostato il riquadro per rispondere in basso invece che in alto, come proposto nella patch originale.
Sto utilizzando il pacchetto sulla versione 5.4 del gdrcd e, a parte questo "problema", funziona tutto correttamente.
Grazie mille in anticipo!
23/07/2021 12:27:04
nobara ha scritto: ...
echo '
<div class="read_message_box_conversation">
<div class="infos '.$side_infos.'">
<span class="title">'.gdrcd_filter('out', $MESSAGE['interface']['messages']['sender']).': </span>
<span class="body">'.gdrcd_filter('out', $row['mittente']).'</span>
</div>
<div class="read_message_box_conversation_text '.$side_message_box_text.'">
'.nl2br(gdrcd_bbcoder(gdrcd_filter('out', $row['testo']))).'
</div>
<div class="infos '.$side_infos.'">
<span class="title">'.gdrcd_filter('out', $MESSAGE['interface']['messages']['date']).': </span>
<span class="body">'.gdrcd_filter('out', $data_spedito).'</span>
<span class="title">'.gdrcd_filter('out', $MESSAGE['interface']['messages']['time']).': </span>
<span class="body">'.gdrcd_filter('out', $ora_spedito).'</span>
'.$letto_box.'
</div>
<div class="infos '.$side_infos.' actions">
'.implode(' ', $actions_box).'
</div>
</div>';
echo '
<div class="read_message_box_conversation">
<div class="infos '.$side_infos.'">
<span class="title">'.gdrcd_filter('out', $MESSAGE['interface']['messages']['sender']).': </span>
<span class="body">'.gdrcd_filter('out', $row['mittente']).'</span>
</div>
<div class="read_message_box_conversation_text '.$side_message_box_text.'">
'.nl2br(gdrcd_bbcoder(gdrcd_filter('out', $row['testo']))).'
</div>
<div class="infos '.$side_infos.'">
<span class="title">'.gdrcd_filter('out', $MESSAGE['interface']['messages']['date']).': </span>
<span class="body">'.gdrcd_filter('out', gdrcd_format_date($data_spedito)).'</span>
<span class="title">'.gdrcd_filter('out', $MESSAGE['interface']['messages']['time']).': </span>
<span class="body">'.gdrcd_filter('out', gdrcd_format_time($ora_spedito)).'</span>
'.$letto_box.'
</div>
<div class="infos '.$side_infos.' actions">
'.implode(' ', $actions_box).'
</div>
</div>';
GitHub: https://github.com/GDRCD/GDRCD
Discord: https://discord.com/invite/K2eWXpvu4M
GdR-O: https://www.gdr-online.com/readforum.asp?id=250579
23/07/2021 14:37:54 e modificato da nobara il 23/07/2021 14:38:29
kasa ha scritto:
23/10/2021 23:54:14
Salve!
Scusate se riprendo in mano questa conversazione, ma sto sbattendo la testa su una cosetta.
Attualmente, indexnew fa in modo da mostrarmi un'icona diversa del messaggio (letto o non letto) a seconda che il destinatario abbia appunto aperto il messaggio o meno. Tuttavia, non distingue se il destinatario sia l'utente loggato oppure un altro pg. In questo modo l'icona è uguale sia che sia tu ad aver mandato il messaggio e l'altro non abbia ancora letto, sia quando tu devi ancora aprire il messaggio. Questo crea un attimo confusione perché di fatto quando magari sei impegnato a scrivere a più pg contemporaneamente e gli stessi ti rispondono in tempo reale, potresti avere due o più icone "non letto" che però a volte corrispondono a "nuovo messaggio che tu devi ancora leggere" e altre a "messaggio che hai mandato e l'altro non ha ancora aperto", e questo ti costringe poi ad aprire tutte le conversazioni "non letto" per scoprire chi ti ha risposto e chi no.
Ho provato a modificare
<?php
if($row['letto'] == 0) { ?>
<img src="imgs/icons/mail_new.png" class="colonna_elengo_messaggi_icon">
<?php
} else { ?>
<img src="imgs/icons/mail_read.png" class="colonna_elengo_messaggi_icon">
<?php
} ?>
if($row['destinatario'] == $_SESSION['login'] && $row['letto'] == 0) {?>
<img src="imgs/icons/mail_new.gif" class="colonna_elengo_messaggi_icon">
<?php } elseif ($row['destinatario'] != $_SESSION['login'] && $row['letto'] == 0) { ?>
<img src="imgs/icons/mail_new.png" class="colonna_elengo_messaggi_icon">
<?php } elseif ($row['letto'] == 1) { ?>
<img src="imgs/icons/mail_read.png" class="colonna_elengo_messaggi_icon">
<?php
} ?>
03/02/2022 09:46:15
zepam ha scritto: ...
// Costruisco la query per raccogliere le conversazioni
$sqlConversazioni = "
SELECT conversazioni.personaggio AS personaggio_conversazione,
conversazioni.testo, conversazioni.spedito, conversazioni.letto
FROM (
SELECT IF(destinatario = '".$_SESSION['login']."', mittente, destinatario) AS personaggio,
messaggi.*
FROM messaggi
) AS conversazioni
INNER JOIN (
SELECT MAX(spedito) AS spedito,
IF(destinatario = '".$_SESSION['login']."', mittente, destinatario) AS personaggio
FROM messaggi
WHERE 1
AND (
(destinatario = '".$_SESSION['login']."' AND destinatario_del = 0)
||
(mittente = '".$_SESSION['login']."' AND mittente_del = 0)
)
GROUP BY personaggio
) AS ultimo_messaggio_conversazione
ON (
conversazioni.spedito = ultimo_messaggio_conversazione.spedito
AND
conversazioni.personaggio = ultimo_messaggio_conversazione.personaggio
)
WHERE 1
AND (
(conversazioni.destinatario = '".$_SESSION['login']."' AND conversazioni.destinatario_del = 0)
||
(conversazioni.mittente = '".$_SESSION['login']."' AND conversazioni.mittente_del = 0)
)
GROUP BY personaggio_conversazione
ORDER BY conversazioni.spedito DESC
";
GitHub: https://github.com/GDRCD/GDRCD
Discord: https://discord.com/invite/K2eWXpvu4M
GdR-O: https://www.gdr-online.com/readforum.asp?id=250579
03/02/2022 16:11:51
Ciao! Intanto ti ringrazio tantissimo della risposta, anche se... sono ancora un po' lontana dal comprenderla!
Per prima cosa che intendi col fatto che il letto non ti dà problemi? Nel senso, già nella versione base del pacchetto dovrebbe essere possibile fare distinzione fra un messaggio non letto da parte dell'utente loggato e un messaggio non letto da parte del pg a cui l'utente loggato ha mandato un messaggio?
Perché il letto/non letto di per sé funziona, ma come detto, il mio problema è solo che non fa distinzione fra CHI non ha letto, ecco.
kasa ha scritto:
Anche se dentro la subquery esiste destinatario, questo viene sempre passato alla SELECT finale (quella sopra di tutte) come personaggio e, infine, gli viene dato il nome di personaggio_conversazione.
Prova a mettere personaggio_conversazione e dovresti vedere che entra nell'if se lo debugghi.
Kasa.
if($row['personaggio_conversazione'] == $_SESSION['login'] && $row['letto'] == 0) {?>
<img src="imgs/icons/mail_new.gif" class="colonna_elengo_messaggi_icon">
<?php } elseif ($row['personaggio_conversazione'] != $_SESSION['login'] && $row['letto'] == 0) { ?>
<img src="imgs/icons/mail_new.png" class="colonna_elengo_messaggi_icon">
<?php } elseif ($row['letto'] == 1) { ?>
<img src="imgs/icons/mail_read.png" class="colonna_elengo_messaggi_icon">
<?php
} ?>
04/02/2022 18:48:56 e modificato da zepam il 04/02/2022 18:56:36
Buondì!
Ritorno qui perché sono riuscita a risolvere il problema (leggasi: ho tediato per metà pomeriggio un altro poveraccio) e volevo condividere qui la cosa, se mai a qualcuno dovesse servire.
In pratica ho dovuto cambiare la query, da
SELECT conversazioni.personaggio AS personaggio_conversazione,
conversazioni.testo, conversazioni.spedito, conversazioni.letto
FROM (
SELECT IF(destinatario = '".$_SESSION['login']."', mittente, destinatario) AS personaggio,
messaggi.*
FROM messaggi
) AS conversazioni
INNER JOIN (
SELECT MAX(spedito) AS spedito,
IF(destinatario = '".$_SESSION['login']."', mittente, destinatario) AS personaggio
FROM messaggi
WHERE 1
AND (
(destinatario = '".$_SESSION['login']."' AND destinatario_del = 0)
||
(mittente = '".$_SESSION['login']."' AND mittente_del = 0)
)
GROUP BY personaggio
) AS ultimo_messaggio_conversazione
ON (
conversazioni.spedito = ultimo_messaggio_conversazione.spedito
AND
conversazioni.personaggio = ultimo_messaggio_conversazione.personaggio
)
WHERE 1
AND (
(conversazioni.destinatario = '".$_SESSION['login']."' AND conversazioni.destinatario_del = 0)
||
(conversazioni.mittente = '".$_SESSION['login']."' AND conversazioni.mittente_del = 0)
)
GROUP BY personaggio_conversazione
ORDER BY conversazioni.spedito DESC
SELECT conversazioni.personaggio AS personaggio_conversazione,
mittente, destinatario, conversazioni.testo, conversazioni.spedito, conversazioni.letto
FROM (
SELECT IF(destinatario = '".$_SESSION['login']."', mittente, destinatario) AS personaggio, messaggi.*
FROM messaggi
) AS conversazioni
INNER JOIN (
SELECT MAX(spedito) AS spedito,IF(destinatario = '".$_SESSION['login']."', mittente, destinatario) AS personaggio
FROM messaggi
WHERE 1
AND (
(destinatario = '".$_SESSION['login']."' AND destinatario_del = 0)
||
(mittente = '".$_SESSION['login']."' AND mittente_del = 0)
)
GROUP BY personaggio
) AS ultimo_messaggio_conversazione
ON (
conversazioni.spedito = ultimo_messaggio_conversazione.spedito
AND
conversazioni.personaggio = ultimo_messaggio_conversazione.personaggio
)
WHERE 1
AND (
(conversazioni.destinatario = '".$_SESSION['login']."' AND conversazioni.destinatario_del = 0)
||
(conversazioni.mittente = '".$_SESSION['login']."' AND conversazioni.mittente_del = 0)
)
GROUP BY personaggio_conversazione
ORDER BY conversazioni.spedito DESC
if($row['destinatario'] != $_SESSION['login'] && $row['letto'] == 0) {?>
<img src="imgs/icons/mail_sent.png" class="colonna_elengo_messaggi_icon">
<?php } elseif ($row['destinatario'] == $_SESSION['login'] && $row['letto'] == 0) { ?>
<img src="imgs/icons/mail_new.gif" class="colonna_elengo_messaggi_icon">
<?php } elseif ($row['letto'] == 1) { ?>
<img src="imgs/icons/mail_read.png" class="colonna_elengo_messaggi_icon">
<?php
} ?>
13/02/2022 08:59:58
Ottimo!
Appena ho qualche minuto la provo e, nel caso, aggiorniamo il pacchetto.
Mi dispiace non averti potuto seguire, ma purtroppo è un periodo intenso per il sottoscritto.
Grazie piuttosto per la condivisione, sempre utili e di grande aiuto alla community!
Kasa.
GitHub: https://github.com/GDRCD/GDRCD
Discord: https://discord.com/invite/K2eWXpvu4M
GdR-O: https://www.gdr-online.com/readforum.asp?id=250579
Discussione seguita da:
Non puoi scrivere in questo Forum
Aggiungi Discussione ai Preferiti
Inoltra Discussione
Forum Programmazione, GDRCD, Grafica e Open Source
Torna alla lista Forum
✋😟
Abbiamo rilevato che stai usando un software per bloccare la pubblicità!
L'utilizzo di GDR-online.com è gratuito da oltre 17 anni ma è necessario coprire i costi per mantenerlo online... ti chiediamo di aiutarci disabilitando il blocco dei banner pubblicitari.
Togliere il blocco significa fare in modo che GDR-online.com possa continuare a far conoscere piccoli giochi amatoriali gratuitamente e offrire un servizio sempre migliore e adatto alle esigenze dei suoi giocatori!
Se questo avviso continua ad apparire nonostante tu abbia autorizzato il portale:
- Verifica nelle opzioni che venga disattivato AdBlock in tutto il dominio gdr-online.com e non solo in una pagina
- Controlla di non avere fra le estensioni installate altre analoghe ad AdBlock, come AdBlock Plusbr, ublock origin, ecc.
- Probabilmente sul tuo PC è installato un Antivirus che ha anche funzioni di blocco pubblicità
- Se usi Firefox impostare il "Blocco Contenuti" su "Normale" e non su "Restrittivo". Per farlo clicca sull'icona dello scudo vicino all'URL e clicca su "Disattiva Blocco per questo sito"
- Prova a premere CTRL + F5, riloggarti e vedi se il problema persiste