Messaggi stile WA: i gruppi
Messaggi stile WA: i gruppi postato il 23/07/2021 19:57:59 nel forum programmazione, open source e hosting
@Kasa non odiarmi, ma mi rivolgo a te :D
E' fattibile, a tuo avviso?
Gdrcd già supporta la possibilità di inviare messaggi a destinatari multipli. Tuttora, se mando un messaggio a due destinatari, poi lo trovo nella conversazione singola con ciascuno.
Come gestiresti la cosa? Ha l'aria di una cosa che si può gestire o meglio lasciar perdere?
Pagine → 1
24/07/2021 20:57:22
Mi accodo anch'io con una richiesta, se posso!
C'è un modo per integrare a questa nuova messaggistica un sistema che diversifichi i messaggi On da quelli Off?
Ho provato a farlo col sistema che usavo per i messaggi originali del gdrcd, ma sembra non essere compatibile e le mie conoscenze in programmazione non sono all'altezza di farmi capire il perchè.
25/07/2021 17:34:01 e modificato da kanade tachibana il 25/07/2021 17:34:31
Si è fattibile, in linea di massima dovreste aggiungere un paio di tabelle nel database per accomodare i messaggi inviati ai gruppi.
gruppi
gruppi_utenti
messaggi
(gruppi) informazioni generali del gruppo
(gruppi_utenti) un utente può fare parte di più gruppi, e può anche teoricamente non scrivere nulla nel gruppo ma solamente leggere i messaggi degli altri.
(messaggi) tutti i messaggi degli utenti
(utenti) già presente anche se con un altro nome
Un esempio di query select da modificare per il gdrcd, l'asterisco andrebbe rimpiazzato con solo i parametri interessati.
26/07/2021 10:47:34
@haruka
Implementare la funzionalità dei Gruppi di WhatsApp all'interno della messagistica di GDRCD (prendendo come riferimento iniziale il pacchetto "WhatsApp") è sicuramente fattibile, sebbene sia richiesta qualche riflessione preliminare sul come introdurla nel contesto dell’engine.
Secondo me, anche solo per semplificare lo sviluppo della feature, ha senso mettere da parte del tutto il vecchio metodo della Messaggistica di GDRCD, quello a singoli messaggi, per due motivi: richiederebbe di effettuare il doppio delle modifiche e molto probabilmente lascerebbe fin troppe "accrochiature" nelle logiche dei Messaggi per garantire ad entrambi i metodi le stesse possibilità. Quest'ultime possono essere decisamente pericolose, in special modo sul lungo periodo, e dare non poco noia quando diventerà necessario introdurre un nuovo pacchetto o correggere qualche logica di base.
Quindi, in soldoni: toglierei la possibilità di scelta tra i due metodi, rimuoverei i vecchi file e manterrei solo i nuovi, rendendoli lo standard del modulo della messaggistica. In questo modo, avremmo concettualmente un modulo "a sé stante", più facile da gestire e da escludere nel caso volessimo aggiungere un altro pacchetto o lo dovessimo aggiornare.
Detto questo…
Passiamo alla gestione dei Gruppi.
Per quanto possa sembrare molto utile al nostro scopo, l’invio di Messaggi a Destinatari multipli non coincide proprio con quello che servirebbe per la creazione di un Gruppo, creando questa l’invio di X messaggi dove X sono i Destinatari impostati e non l’invio di un singolo messaggio ad Y Destinatari. Questo, di rimando, crea X conversazioni, una per ogni messaggio inviato, mentre a Noi serve che ne crei solo una e che abbia sotto di essa Y (+1, Noi stessi) Personaggi.
Bisogna pensare che il Gruppo è come se fosse una istanza a sé stante, un vero e proprio Personaggio fittizio per GDRCD, in modo che lo associ ad una conversazione unica presso cui tutti i possibili membri possono leggere i messaggi.
Essendo, quindi, staccata concettualmente dal sistema della messaggistica ordinaria, potrebbe avere senso affidargli una tabella dedicata che possa contenere le sue informazioni (quali Oggetto, o il suo nome, la sua Data di creazione, la Descrizione e qualche altro dettaglio). Una tabella del genere, per intenderci:
-- auto-generated definition
create table messaggi_gruppi
(
id_gruppo bigint auto_increment primary key,
oggetto varchar(100) not null,
descrizione text null,
data_creazione datetime not null
)
engine = MyISAM
charset = utf8;
create index id_gruppo
on messaggi_gruppi (id_gruppo);
È una tabella molto semplice, ovviamente, e che può essere implementata in base alle esigenze dell'Amministratore del sito.
Per associare un messaggio ad un Gruppo, inseriamo il riferimento dell'identificativo anche dentro la tabella messaggi. Una cosa del genere:
alter table messaggi add column id_gruppo bigint default null after destinatario;
Se è nullo, si tratta di un messaggio privato, mentre se è valorizzato significa che il messaggio appartiene ad un gruppo. Il campo destinatario, in caso di gruppi, può essere lasciato vuoto lo si può utilizzare come una formula di "rispondo a questo messaggio nel gruppo", una sorta di quote per intenderci.
In questo momento, i Gruppi sono delle entità a sé, come appunto dei Personaggi fittizi, ma così non è, come ben sappiamo. Per associare i Personaggi ad un gruppo occorre prevedere una tabella che si presti a gestire i membri della Conversazione. Una tabella del genere:
-- auto-generated definition
create table messaggi_gruppi_personaggi
(
id_gruppo bigint not null,
personaggio varchar(20) default '' not null,
amministratore tinyint(1) default 0
)
engine = MyISAM
charset = utf8;
create index gruppi_personaggi
on messaggi_gruppi_personaggi (id_gruppo, personaggio);
Questa tabella non fa altro che definire le associazioni, più implementa la possibilità di assegnare il ruolo Amministratore di un gruppo ad un determinato Personaggio. Con Amministratore intendo un Personaggio che ha diverse funzioni per amministrare il gruppo, tra cui chiuderlo, inserire nuovi membri, fissare i messaggi o chi più ne ha più ne metta. Si può fare un pacchetto di funzioni ad hoc solo per questo ( e credo che siano anche necessarie).
La conversazione di gruppo appare esattamente come lo sono ora quelle standard tra Personaggi, con magari qualche funzionalità in più. Basterà raccogliere tutti i messaggi associati a quell'id_gruppo ed incasellarli come vogliamo nella sua lunga cronologia. È probabile che la gestione del campo letto andrebbe rivista, bisognerà qui capire come.
Anche l'index.inc.php andrebbe sistemato, probabilmente con qualche UNION per consentire l'allineamento dei Gruppi nell'elenco delle Conversazioni. Si amplierà la query che già abbiamo inserendo anche questi. Nel caso, proveremo a crearne una.
Credo che sia anche molto utile dividere la messagistica ON da quella OFF, su cui magari si può fare una scelta nell'eventuale pacchetto, in modo da tenere le missive/email On Game separate e quindi come messaggi a parte. Fuori dalle Conversazioni OffGame.
Come vedi, c'è un poco di lavoro da fare...
Ma nulla di troppo complesso da essere fuori portata.
Kasa.
26/07/2021 10:57:29 e modificato da kasa il 26/07/2021 11:17:38
@nobara
Il modo migliore per farlo è creare una colonna nei messaggi dedicata a questa informazione; una cosa del genere:
alter table messaggi add column tipo enum ('OFF', 'ON') default 'OFF' after testo;
Quindi, nel file readnew.inc.php e createnew.inc.php andrai ad inserire un tag <select>, prima del tag <textarea> dedicato al testo del messaggio, in cui richiedi all'utente di identificare la tipologia di messaggio, con i tag <option> uno dedicato ad OFF e l'altro ad ON.
Poi in send_message.inc.php, nel momento dell'inserimento del nuovo messaggio, andrai ad inserire anche il valore del tag <select> appena creato per la colonna tipo.
Quando andrai a visualizzare la cronologia di una conversazione, in readnew.inc.php, nelle informazioni del messaggio aggiungerai un nuovo <div class="infos '.$side_infos.'"> dedicato alla tipologia del messaggio.
Kasa.
26/07/2021 11:22:49
Intanto grazie ad entrambi.
Non è una cosa semplice, ma è una cosa fattibile e già questo è un punto a favore.
L'estate è sempre... estate. A settembre mi metto seduta per bene e se mi date una mano come abbiamo fatto per il pacchetto WA, vedo se si riesce di tirarne fuori qualcosa.
Se non ci si riesce, pace, ci abbiamo provato.
Capisco il discorso dell'abbandonare del tutto il vecchio sistema di messaggistica.
Secondo me, ad una certa, va fatto se vogliamo ammodernare il gioco che è una delle tante cose di cui si è discusso qui in forum: come rendere gdrcd più affine a concetti e funzionalità nuove, quali potrebbero essere quelle introdotte da whatsapp, telegram etc. etc.
26/07/2021 11:47:01
haruka ha scritto: ...
Non è un problema per "rivederci a Settembre" con le modifiche. Ti chiedo in anticipo un poco di pazienza sulle mie tempistiche di risposta, dato che, tra lavoro e GDRCD, potrei essere impegnato altrove.
Per quel che riguarda la messaggistica, credo che il Pacchetto WA, unito a qualche altro cambiamento sulle tabelle dei messaggi e sulle funzionalità annesse, possa essere una ottima base di partenza per qualsiasi nuovo "modulo" dei Messaggi di GDRCD. A livello di integrazione, tra l'altro, non va nemmeno troppo ad impattare il resto dell'engine e, quindi, si presta per essere una componente che può essere facilmente implementata.
Kasa.
26/07/2021 11:57:01 e modificato da nobara il 26/07/2021 12:01:46
kasa ha scritto:
Grazie mille per la dritta, ora funziona tutto slendidamente!
Nella mia nabbaggine, mi ero semplicemente dimenticata di riguardare il send_message u.u'
26/07/2021 11:59:34
kasa ha scritto:
Non è un problema per "rivederci a Settembre" con le modifiche. Ti chiedo in anticipo un poco di pazienza sulle mie tempistiche di risposta, dato che, tra lavoro e GDRCD, potrei essere impegnato altrove.
Per quel che riguarda la messaggistica, credo che il Pacchetto WA, unito a qualche altro cambiamento sulle tabelle dei messaggi e sulle funzionalità annesse, possa essere una ottima base di partenza per qualsiasi nuovo "modulo" dei Messaggi di GDRCD. A livello di integrazione, tra l'altro, non va nemmeno troppo ad impattare il resto dell'engine e, quindi, si presta per essere una componente che può essere facilmente implementata.
Kasa.
Ho ipotizzato settembre semplicemente perché forse avrei testa per lavorarci, ora, fino al 6 di agosto e non mi sembra una cosa entro il 6 agosto riuscirei/mmo a finire. Poi ho una lunga pausa e a settembre dovrei riprendere da zero il filo ;)
Quindi se per te si può fare, pace per i tempi lunghi di risposta è tutto lavoro amatoriale, possiamo rivederci a settembre con questo tentativo di implementazione ;)
11/09/2021 16:05:38
Io sono tornata e mi piacerebbe, con molta calma, iniziare a ragionare su questa cosa (senza premura, vediamo dove si arriva).
Ho iniziato con le query in db, creando le due nuove tabelle "messaggi_gruppi" e " messaggi_gruppi_personaggi". Metto un po' le mani avanti, sono una schiappa cosmica con JOIN e UNION. E so bene che qui andranno usati...
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!
Crossout ↗
World of Tanks ↗
Seconda Era ↗
RAID Shadow Legends ↗
Storie di Agarthi ↗
Enlisted ↗
AlterEgo ↗
Hero Wars ↗
Sea of Conquest ↗
CRSED: F.O.A.D. ↗