Pagina 1 di 1

Bloccare automaticamente messaggio dopo X tempo inattività

Inviato: 23/11/2011, 17:07
da MrPrainx
Ciao a tutti!
Sono nuovo in questo forum. Veramente sono nuovo nel mondo del phpBB in assoluto :lol:
L'ho sempre "visto" da utente e mai da amministratore. Ora per motivi "fantacalcistici" mi ritrovo ad essere creatore ed amministratore di un piccolo forum.

Proprio a tal proposito volevo chiedere a voi utenti di questo forum, sicuramente più esperti di me:
è possibile fare in modo che un messaggio diventi "bloccato" dopo un tot di tempo senza che nessuno abbia risposto?
Mi spiego: voglio fare in modo che si possano fare aste online. Ovviamente molto rudimentali. Quindi se qualcuno apre un topic dal titolo "Francesco Totti" e scrive "1", io rilancio e scrivo "2", vorrei fare in modo che 24h dopo l'ultimo messaggio il topic diventi "bloccato".

So che c'è un'opzione simile nel pannello di amministrazione ma che riguarda la cancellazione del messaggio, non il blocco.

Spero di non chiedere la luna e di essere stato chiaro. Grazie a tutti!

Re: Bloccare automaticamente messaggio dopo X tempo inattivi

Inviato: 23/11/2011, 23:10
da Angolo
Prova a vedere se sul com esiste una MOD che fa quanto richiedi.

Re: Bloccare automaticamente messaggio dopo X tempo inattivi

Inviato: 24/11/2011, 0:02
da Micogian
Non è difficile: nella tabella topics ci sono due campi che possono tornare utili, topic_last_post_time che è la data dell'ultimo intervento e topic_status che è '0' per i topics normali '1' per quelli bloccati.

In questa guida viene illustrato che cos'è il TIMESTAMP

La procedura dovrebbe essere questa; quando un utente apre il Topic avviene il controllo del topic_last_post_time e se questo supera le 14 ore si provvede a sostituire il valore del campo topic_status che diventando '1' blocca il topic.
L'unico problema è che un moderatore potrebbe riaprire il Topic.

Re: Bloccare automaticamente messaggio dopo X tempo inattivi

Inviato: 24/11/2011, 10:15
da MrPrainx
Ok. Ho capito la "teoria". Ma in pratica ho molti dubbi :D
Cosa intendi per "tabella topics"?
Scusami ma sono veramente un novizio del settore.

Re: Bloccare automaticamente messaggio dopo X tempo inattivi

Inviato: 24/11/2011, 11:27
da Micogian
MrPrainx ha scritto:Ok. Ho capito la "teoria". Ma in pratica ho molti dubbi :D
Cosa intendi per "tabella topics"?
Scusami ma sono veramente un novizio del settore.
La tabella "topics" o più esattamente "phpbb_topics" (o diverso prefisso) è una tabella del database che contiene tutti i dati relativi ai "topics" (Argomenti).
Quando blocchi un argomento nella tabella "phpbb_topics" viene inserito il valore '1' nel campo "topic_status" e quindi il Topic risulta chiuso.
Dato che la modifica del contenuto di una tabella si può fare con una query del tipo

Codice: Seleziona tutto

UPDATE <Tabella>
SET <nome campo> = <nuovo valore>
[WHERE <condizione>]
si può intervenire direttamente modificando il valore di "topic_status" di un determinato topic_id nel caso l'ultimo messaggio sia precedente di 24 ore.
Capisco che questa è teoria e che questo vada tradotto in codice PHP. Il problema è quello di trovare il tempo per farlo.

Re: Bloccare automaticamente messaggio dopo X tempo inattivi

Inviato: 24/11/2011, 14:55
da MrPrainx
Ok.
Mi applicherò sperando di riuscirci. Magari mi permetterò di ridisturbarti se incontrerò difficoltà.
Grazie mille del prezioso aiuto!

Re: Bloccare automaticamente messaggio dopo X tempo inattivi

Inviato: 24/11/2011, 16:10
da Micogian
La mia è un'idea teorica ma che dovrebbe funzionare.
L'unico dubbio è legato all'utente che dovrebbe innescare la chiusura del Topic.
Dato che sarebbe complicato trovare un sistema automatico a tempo per la chiusura del topic, la mia idea è di farlo al momento che un utente apre quel Topic.
Il fatto che apra il topic innesca il controllo del periodo intercorso dall'ultimo inserimento e come abbiamo detto, se supera le 24 ore, facciamo chiudere il opic.
Quello che non so dirti, perchè bisognerebbe provare, è se questa operazione di chiusura può essere fatta da qualsiasi utente (che abbia i permessi di scrittura, naturalmente).
Se il Topic viene visualizzato da un utente che non può scrivere non ci sono problemi se il Topic resta ancora aperto, l'importante è che venga chiuso in base a due condizioni: che l'utente abbia i permessi di scrittura e che sia passato il tempo stabilito.

Ripeto, è teoria, ma mi sembra abbastanza verosimile.