Aggiungi un contatore di parole all'editor


Tutorial Aggiungi un contatore di parole all'editor

Messaggio Da Niko Mar 19 Gen 2021 - 13:05

Aggiungi un contatore di parole all'editor


Definizione

Con questo tutorial per tutte le versioni del forum, imparerai come impostare un numero minimo di parole richieste prima che il messaggio possa essere inviato. Puoi anche impostare il numero di lettere che ogni parola deve avere.

Aggiungi un contatore di parole all'editor Captu357

Aggiungi un contatore di parole all'editor Captu358

Aggiunta di Javascript

Andiamo verso Pannello di amministrazione ► Moduli> HTML e Javascript> Gestione codici Javascript, assicuriamoci che la gestione sia attivata e creiamone uno nuovo con queste impostazioni:
  • Titolo: a tua scelta
  • Dove: in tutte le pagine
  • Codice:
    Codice:
      $(function(){$(function(){
     
          var MinNumberOfWords = 5;
          var LetterCountPerWord = 3;
          var ico_compl = "https://i73.servimg.com/u/f73/18/10/89/49/ok-gre10.png";
          var ico_incompl = "https://i73.servimg.com/u/f73/18/10/89/49/exclam10.png"; 
     
        if($("#text_editor_textarea").length != 0){
              $("input[type='submit'][name='post']").attr("disabled", true).css("opacity", "0.5");     
              $(".sceditor-container").after("<br/><div id='div_minchars' align='center'><div id='div_minchars_header'> Minimo di parole per inviare il messaggio: " + MinNumberOfWords + " (almeno " + LetterCountPerWord + " lettere)</div><div id='div_minchars_info'></div></div>");
             
              var sceditor = $("#text_editor_textarea").sceditor("instance");                 
              var str = sceditor.val();
              var regex = new RegExp('\\w{' + LetterCountPerWord + ',}\\b', 'g');
              var str_arr = str.match(regex);
              var str_len = str_arr == null ? 0 : str_arr.length;
             
              if(str_len >= MinNumberOfWords) $("input[type='submit'][name='post']").attr("disabled", false).css("opacity", "1");
             
              sceditor.keyUp(function(e) {
                str = sceditor.val();
                str_arr = str.match(regex);
                str_len = str_arr == null ? 0 : str_arr.length;
                if(str_len >= MinNumberOfWords) {
                    $("#div_minchars_info").html("Hai scritto <span style='color:green'>" + str_len + "</span> parole. Puoi inviare il messaggio <img src='" + ico_compl  + "' />"); 
                $("input[type='submit'][name='post']").attr("disabled", false).css("opacity", "1");
                }else{
                    $("#div_minchars_info").html("Hai scritto <span style='color:red'>" + str_len + "</span> word(s). Ti servono ancora " + (MinNumberOfWords - str_len) + " parole per inviare il messaggio <img src='" + ico_incompl  + "' />");
                    $("input[type='submit'][name='post']").attr("disabled", true).css("opacity", "0.5");
                }
              });
          }
        })});


Modifiche

var MinNumberOfWords: è il numero minimo di parole necessarie per inviare un messaggio. Il valore predefinito è 5.

var LetterCountPerWord: è la lunghezza minima della parola. Il valore predefinito è 3.

var ico_compl: è l'immagine che compare quando puoi inviare il messaggio (il messaggio ha superato il numero minimo di parole), puoi modificarlo impostando il link dell'immagine che desideri.

var ico_incompl: è l'immagine che compare quando non puoi inviare il messaggio (il messaggio non ha ancora raggiunto il numero minimo di parole), puoi modificarlo impostando il link dell'immagine che desideri.



Niko
Niko
Moderatore
Moderatore

Sesso : Maschio
Età : 24
Messaggi : 8308
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.