Limitare il numero di messaggi privati inviabili


Tutorial Limitare il numero di messaggi privati inviabili

Messaggio Da Niko Mar 9 Feb 2021 - 22:39

Limitare il numero di messaggi privati inviabili


Questo tutorial consente di porre un limite personale per ogni utente sul numero di messaggi privati inviabili. Superato il limite assegnato al singolo utente, non sarà possibile inviarne altri, a meno che l'amministratore non lo consenta :bene:

Una volta installato, chi di dovere potrà modificare il valore numerico di un campo profilo che indicherà il numero massimo di messaggi privati inviabili. Se questo numero sarà uguale o minore al numero di messaggi inviati da utente, non potrà più inviare e/o rispondere ai messaggi privati.

Creazione di un campo profilo

Andiamo verso Pannello di amministrazione ► Utenti & gruppi ► Utenti ► Profili e creiamo un nuovo campo :new:

Limitare il numero di messaggi privati inviabili 2021-069

Qui riporto alcune impostazioni per il nuovo campo profilo, di alcune modificabili a piacimento:
  • Tipo
    Questo campo deve essere necessariamente Numero

  • Nome - Descrizione - Icona
    Questi campi potrete personalizzarli come preferite a piacimento!

  • Da riempire obbligatoriamente? No

  • Affissione
    Consigliato solo "Profilo" ma potete visualizzarlo anche nei messaggi se preferite; è obbligatorio che sia visibile sul profilo

  • Tipo di visualizzazione :
    A vostro piacimento, non influisce sulla funzione

  • Chi può modificare il valore del suo contenuto?
    1. Se volete che il numero massimo di messaggi privati sia modificabile solo dagli amministratori, togliete tutte le spunte
    2. Se volete concedere anche ai moderatori di modificarlo, potete inserire "Moderatore"
    3. Se inserite anche "Utente stesso" allora l'utente potrà gestire a piacimento il suo numero massimo di messaggi privati


  • Mostra questo campo per gli utenti che sono almeno :
    Necessariamente almeno Membro

  • Separatore :
    A vostro piacimento, non influisce sulla funzione

  • Numero massimo di cifre ::
    A vostro piacimento, dipende dall'attività del vostro forum, il consiglio è di mettere un numero di cifre alto (ad esempio 8)

  • Valore di default :
    Indica il numero che di base avranno gli utenti come tetto massimo per i messaggi privati
    I nuovi registrati avranno automaticamente questo valore
    Gli utenti già registrati non avranno alcun valore assegnato, potete modificare nuovamente :mod: il campo e sostituire il contenuto predefinito per tutti:

    Limitare il numero di messaggi privati inviabili 2021-068


L'ID del campo profilo creato

Andiamo nel nostro profilo (ad esempio https://aiuto.forumattivo.it/u8660) e cerchiamo il nostro campo. A questo punto facciamo tasto destro e selezioniamo "Ispeziona elemento"

Limitare il numero di messaggi privati inviabili 2021-070

Troveremo una schermata di questo tipo, dovremo andare a localizzare l'ID del nostro campo profilo, che in questo caso è 4 - e tenerlo a mente

Limitare il numero di messaggi privati inviabili 2021-071

Il codice Javascript

Andiamo ora verso Pannello di amministrazione ► Moduli ► HTML & Javascript ► Gestione del codice Javascript e creiamone uno nuovo :new: con le seguenti impostazioni:
  • Titolo: a tua scelta
  • Dove: in tutte le pagine
  • Codice:
    Codice:
    $(function(){
        var forum_url = 'https://aiuto.forumattivo.it'; //link del proprio forum
        var fieldID = 'field_id4'; //id del campo profilo
        var redirect_url = forum_url+'/forum'; //pagina a cui si viene mandati se si prova ad inviare un messaggio
        var allowReply = 0; //0 non permette nemmeno le risposte, 1 permette le risposte

        var url = window.location.href;

        $.ajax({
          url: '/u'+_userdata["user_id"],
          type:'GET',
          success: function(data){
              var authMP = $(data).find('dl#'+fieldID+' dd div').html();
                if(authMP < _userdata["user_nb_privmsg"]) {
                    //numero MP superato
                    console.info('La funzione messaggi privati è disabilitata perchè l\'utente ha superato il numero consentito');
                    $('form[action="/privmsg?folder=inbox"] .topic-actions a').remove();
                    if(url === forum_url+'/privmsg?mode=post'){
                        window.location.href = redirect_url;
                    }
                  if (allowReply = 0 && (url.indexOf("privmsg?mode=reply") > -1 || url.indexOf("privmsg?mode=quote") > -1)) {
                        window.location.href = redirect_url;
                    }
                } else {
                    //può inviare messaggi privati
                    console.info('La funzione messaggi privati è abilitata');
                } 
          }
        });
    });


Modifiche da effettuare

All'interno del nostro codice ci sono alcune parti che possono essere modificate:

  • forum_url è l'indirizzo del tuo forum, basta sostituirlo - fai attenzione a togliere il simbolo / alla fine

  • var fieldID = 'field_id-13' indica l'ID del campo profilo, dovremo quindi sostituire il numero con quello che abbiamo tenuto a mente da prima

  • redirect_url indica la pagina a cui verremo indirizzati se si tenta di creare un messaggio privato - di default è indicato il forum, ma potete anche inserire una pagina HTML per esempio, o un topic con le istruzioni per riattivarli

  • allowReply permette di decidere se vuoi disabilitare solo la creazione di nuovi messaggi privati, o anche le risposte
    1. 0 indica che non è possibile creare né rispondere
    2. 1 indica che è possibile rispondere ma non creare


Note aggiuntive

Il codice funziona anche sui moderatori e gli amministratori, quindi per questi utenti varrà la stessa regola - un consiglio può essere quello di impostare per loro un valore molto alto nel campo profilo.


Niko
Niko
Moderatore
Moderatore

Sesso : Maschio
Età : 25
Messaggi : 8410
Località : Provincia di Varese

Visualizza il profilo https://www.openstudio.one
Niko è stato ringraziato dall'autore di questo topic.

Visualizza l'argomento precedente Visualizza l'argomento successivo Torna in alto


 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.