Rendere sempre visibile l'avvenuta modifica ad un messaggio

Area dedicata al phpBB 3.0.X
Rispondi
Lockheed
Utente
Utente
Messaggi: 124
Iscritto il: 14/03/2013, 17:56
Link del Forum:

Rendere sempre visibile l'avvenuta modifica ad un messaggio

Messaggio da Lockheed »

Ciao a tutti! Ho cercato su Google, sul .com, su phpbbitalia.net, ed ho trovato solo post obsoleti risalenti a vecchie versioni di phpbb, non compatibili con la versione attuale. Dicevano: cerca in functions_posting.php cercando ciò che dicevano, non ho trovato nulla, oppure ho trovato testi leggermente diversi, quindi non me la sono sentita di seguire quelle guide. Preferisco chiedere a voi esperti se conoscete una modifica che possa fare al caso mio. Mi piacerebbe che ogni volta un utente modificasse il proprio messaggio (preferibilmente dopo una distanza di 3 minuti), possa venire scritto (se l'utente modifica il messaggio): messaggio modificato (X volte in totale). Anche se l'utente in questione non ha ricevuto ancora nessuna risposta al suo topic. E' possibile? Potreste dirmi come? Grazie mille a chiunque vorrà aiutarmi!! Buona giornata a tutti! :ciao:
Avatar utente
Dr.House
Amministratore
Amministratore
Messaggi: 2173
Iscritto il: 08/01/2012, 8:24
Link del Forum: www.phpbb-italia.it
Località: Reggio Calabria
Contatta:

Re: Rendere sempre visibile l'avvenuta modifica ad un messaggio

Messaggio da Dr.House »

non possibile,possibilissimo.Stasera avrai la soluzione.
Lockheed
Utente
Utente
Messaggi: 124
Iscritto il: 14/03/2013, 17:56
Link del Forum:

Re: Rendere sempre visibile l'avvenuta modifica ad un messaggio

Messaggio da Lockheed »

Dr.House ha scritto:non possibile,possibilissimo.Stasera avrai la soluzione.
Grazie mille! Attendo risposta :)
Avatar utente
Dr.House
Amministratore
Amministratore
Messaggi: 2173
Iscritto il: 08/01/2012, 8:24
Link del Forum: www.phpbb-italia.it
Località: Reggio Calabria
Contatta:

Re: Rendere sempre visibile l'avvenuta modifica ad un messaggio

Messaggio da Dr.House »

quella modifica che hai linkato funziona perfettamente perchè l'ho testata in locale e anche se l'admin modifica il messaggio, lo stesso è visualizzato da tutti.

te la riporto in modo che anche gli altri possano usufruirne:

apri functions_posting.php che è dentro il folder includes:
cerca e cancella

Codice: Seleziona tutto

 case 'edit_topic':

                 // If edit reason is given always display edit info

                 // If editing last post then display no edit info
                 // If m_edit permission then display no edit info
                 // If normal edit display edit info

                 // Display edit info if edit reason given or user is editing his post, which is not the last within the topic.
                 if ($data['post_edit_reason'] || (!$auth->acl_get('m_edit', $data['forum_id']) && ($post_mode == 'edit' || $post_mode == 'edit_first_post')))
                 {
                    $sql_data[POSTS_TABLE]['sql'] = array(
                       'post_edit_time'   => $current_time,
                       'post_edit_reason'   => $data['post_edit_reason'],
                       'post_edit_user'   => (int) $data['post_edit_user'],
                    );

                    $sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1';
                 }
                 else if (!$data['post_edit_reason'] && $mode == 'edit' && $auth->acl_get('m_edit', $data['forum_id']))
                 {
                    $sql_data[POSTS_TABLE]['sql'] = array(
                       'post_edit_reason'   => '',
                    );
                 }

                 // If the person editing this post is different to the one having posted then we will add a log entry stating the edit
                 // Could be simplified by only adding to the log if the edit is not tracked - but this may confuse admins/mods
                 if ($user->data['user_id'] != $poster_id)
                 {
                    $log_subject = ($subject) ? $subject : $data['topic_title'];
                    add_log('mod', $data['forum_id'], $data['topic_id'], 'LOG_POST_EDITED', $log_subject, (!empty($username)) ? $username : $user->lang['GUEST']);
                 }

                 if (!isset($sql_data[POSTS_TABLE]['sql'])) 
sostituisci con:

Codice: Seleziona tutto

   case 'edit_topic':

                 // If edit reason is given always display edit info

                 // If editing last post then display no edit info
                 // If m_edit permission then display no edit info
                 // If normal edit display edit info

                 // Display edit info if edit reason given or user is editing his post, which is not the last within the topic.
                    $sql_data[POSTS_TABLE]['sql'] = array(
                       'post_edit_time'   => $current_time,
                       'post_edit_reason'   => $data['post_edit_reason'],
                       'post_edit_user'   => (int) $data['post_edit_user'],
                    );

                    $sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1';

                 // If the person editing this post is different to the one having posted then we will add a log entry stating the edit
                 // Could be simplified by only adding to the log if the edit is not tracked - but this may confuse admins/mods
                       $log_subject = ($subject) ? $subject : $data['topic_title'];
                    add_log('mod', $data['forum_id'], $data['topic_id'], 'LOG_POST_EDITED', $log_subject, (!empty($username)) ? $username : $user->lang['GUEST']);
                 
                 if (!isset($sql_data[POSTS_TABLE]['sql'])) 
e questo è il risultato:

edit.png
come vedi funziona non bene ma benissimo.
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Lockheed
Utente
Utente
Messaggi: 124
Iscritto il: 14/03/2013, 17:56
Link del Forum:

Re: Rendere sempre visibile l'avvenuta modifica ad un messaggio

Messaggio da Lockheed »

Dr.House ha scritto:quella modifica che hai linkato funziona perfettamente perchè l'ho testata in locale e anche se l'admin modifica il messaggio, lo stesso è visualizzato da tutti.
?? Non mi sembra di aver linkato nulla, a meno che io non sia ubriaco :bau:
Dr.House ha scritto:te la riporto in modo che anche gli altri possano usufruirne:

apri functions_posting.php che è dentro il folder includes:
cerca e cancella

Codice: Seleziona tutto

 case 'edit_topic':

                 // If edit reason is given always display edit info

                 // If editing last post then display no edit info
                 // If m_edit permission then display no edit info
                 // If normal edit display edit info

                 // Display edit info if edit reason given or user is editing his post, which is not the last within the topic.
                 if ($data['post_edit_reason'] || (!$auth->acl_get('m_edit', $data['forum_id']) && ($post_mode == 'edit' || $post_mode == 'edit_first_post')))
                 {
                    $sql_data[POSTS_TABLE]['sql'] = array(
                       'post_edit_time'   => $current_time,
                       'post_edit_reason'   => $data['post_edit_reason'],
                       'post_edit_user'   => (int) $data['post_edit_user'],
                    );

                    $sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1';
                 }
                 else if (!$data['post_edit_reason'] && $mode == 'edit' && $auth->acl_get('m_edit', $data['forum_id']))
                 {
                    $sql_data[POSTS_TABLE]['sql'] = array(
                       'post_edit_reason'   => '',
                    );
                 }

                 // If the person editing this post is different to the one having posted then we will add a log entry stating the edit
                 // Could be simplified by only adding to the log if the edit is not tracked - but this may confuse admins/mods
                 if ($user->data['user_id'] != $poster_id)
                 {
                    $log_subject = ($subject) ? $subject : $data['topic_title'];
                    add_log('mod', $data['forum_id'], $data['topic_id'], 'LOG_POST_EDITED', $log_subject, (!empty($username)) ? $username : $user->lang['GUEST']);
                 }

                 if (!isset($sql_data[POSTS_TABLE]['sql'])) 
sostituisci con:

Codice: Seleziona tutto

   case 'edit_topic':

                 // If edit reason is given always display edit info

                 // If editing last post then display no edit info
                 // If m_edit permission then display no edit info
                 // If normal edit display edit info

                 // Display edit info if edit reason given or user is editing his post, which is not the last within the topic.
                    $sql_data[POSTS_TABLE]['sql'] = array(
                       'post_edit_time'   => $current_time,
                       'post_edit_reason'   => $data['post_edit_reason'],
                       'post_edit_user'   => (int) $data['post_edit_user'],
                    );

                    $sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1';

                 // If the person editing this post is different to the one having posted then we will add a log entry stating the edit
                 // Could be simplified by only adding to the log if the edit is not tracked - but this may confuse admins/mods
                       $log_subject = ($subject) ? $subject : $data['topic_title'];
                    add_log('mod', $data['forum_id'], $data['topic_id'], 'LOG_POST_EDITED', $log_subject, (!empty($username)) ? $username : $user->lang['GUEST']);
                 
                 if (!isset($sql_data[POSTS_TABLE]['sql'])) 
e questo è il risultato:

edit.png
come vedi funziona non bene ma benissimo.
Ok, grazie mille!! Ora ci provo!
Lockheed
Utente
Utente
Messaggi: 124
Iscritto il: 14/03/2013, 17:56
Link del Forum:

Re: Rendere sempre visibile l'avvenuta modifica ad un messaggio

Messaggio da Lockheed »

Ok, l'ho provato ed è ottimo. Mi piacerebbe però che gli amministratori, possano modificare i propri messaggi, e quelli degli altri, senza lasciare traccia (senza far vedere che il messaggio è stato modificato). E iniziare a scrivere: messaggio modificato, solo dopo 3 minuti che il messaggio è stato inviato (ad esempio da un utente, che non ha ancora ricevuto nessuna risposta), non da subito. E' possibile? Grazie per l'aiuto :-)
Avatar utente
Dr.House
Amministratore
Amministratore
Messaggi: 2173
Iscritto il: 08/01/2012, 8:24
Link del Forum: www.phpbb-italia.it
Località: Reggio Calabria
Contatta:

Re: Rendere sempre visibile l'avvenuta modifica ad un messaggio

Messaggio da Dr.House »

Zeus ha scritto:Ok, l'ho provato ed è ottimo. Mi piacerebbe però che gli amministratori, possano modificare i propri messaggi, e quelli degli altri, senza lasciare traccia (senza far vedere che il messaggio è stato modificato). E iniziare a scrivere: messaggio modificato, solo dopo 3 minuti che il messaggio è stato inviato (ad esempio da un utente, che non ha ancora ricevuto nessuna risposta), non da subito. E' possibile? Grazie per l'aiuto :-)
la modifica al codice che è stata postata restringe il campo a tutti i gruppi admin inclusi.
La parte testo la puoi scrivere come la vuoi tu quando editi il messaggio nel box corrispondente.Sul messaggio a tempo non credo ci sia una cosa simile.
Lockheed
Utente
Utente
Messaggi: 124
Iscritto il: 14/03/2013, 17:56
Link del Forum:

Re: Rendere sempre visibile l'avvenuta modifica ad un messaggio

Messaggio da Lockheed »

Ok, si potrebbe tirare fuori gli admin da questo codice?
Avatar utente
Dr.House
Amministratore
Amministratore
Messaggi: 2173
Iscritto il: 08/01/2012, 8:24
Link del Forum: www.phpbb-italia.it
Località: Reggio Calabria
Contatta:

Re: Rendere sempre visibile l'avvenuta modifica ad un messaggio

Messaggio da Dr.House »

Zeus ha scritto:Ok, si potrebbe tirare fuori gli admin da questo codice?
non credo proprio perchè il file in questione fa parte della cartella includes che è "il cuore" di phpbb3.
Lockheed
Utente
Utente
Messaggi: 124
Iscritto il: 14/03/2013, 17:56
Link del Forum:

Re: Rendere sempre visibile l'avvenuta modifica ad un messaggio

Messaggio da Lockheed »

Ho la strana sensazione che il mio messaggio non sia stato interpretato nella maniera più corretta possibile. Forse mi sono spiegato male. Riprovo. :)

Visto che in questo codice:

Codice: Seleziona tutto

   case 'edit_topic':

                 // If edit reason is given always display edit info

                 // If editing last post then display no edit info
                 // If m_edit permission then display no edit info
                 // If normal edit display edit info

                 // Display edit info if edit reason given or user is editing his post, which is not the last within the topic.
                    $sql_data[POSTS_TABLE]['sql'] = array(
                       'post_edit_time'   => $current_time,
                       'post_edit_reason'   => $data['post_edit_reason'],
                       'post_edit_user'   => (int) $data['post_edit_user'],
                    );

                    $sql_data[POSTS_TABLE]['stat'][] = 'post_edit_count = post_edit_count + 1';

                 // If the person editing this post is different to the one having posted then we will add a log entry stating the edit
                 // Could be simplified by only adding to the log if the edit is not tracked - but this may confuse admins/mods
                       $log_subject = ($subject) ? $subject : $data['topic_title'];
                    add_log('mod', $data['forum_id'], $data['topic_id'], 'LOG_POST_EDITED', $log_subject, (!empty($username)) ? $username : $user->lang['GUEST']);
                 
                 if (!isset($sql_data[POSTS_TABLE]['sql'])) 

Sono stati tirati in ballo anche gli admin, mi chiedevo se fosse possibile applicare una cosa del genere solo agli utenti, quindi tirare fuori gli admin da questo codice...? :)
Rispondi