Minimum de mots dans un message avant de pouvoir poster

Voir le sujet précédent Voir le sujet suivant Aller en bas

  • 0

Astuce Minimum de mots dans un message avant de pouvoir poster

Message par Walt Dim 20 Mar 2016 - 17:03

Minimum de mots dans un message avant de pouvoir poster

Ce tutoriel permet d'ajouter un nombre minimal de mots (mots d'un certain nombre de caractères) nécessaire afin de pouvoir répondre à un sujet.

Minimum de mots dans un message avant de pouvoir poster AgDgQVv

Insertion du code javascript

Panneau d'administration Modules HTML et Javascript Gestion des codes javascript
La gestion des codes javascript doit être activée.

Créez un nouveau javascript ayant pour titre celui de votre choix, et activez-le sur les sujets
Code:
jQuery(function(){jQuery(function () {
          var NombreDeMots = 5;
          var NombreLettresParMot = 3;
          var icone_complet = 'http://2img.net/i/fa/admin/icones/ajouter.png';
          var icone_incomplet = 'http://2img.net/i/fa/admin/icones/supprimer.png';
          if (jQuery('#text_editor_textarea').length != 0) {
            jQuery('input[type=\'submit\'][name=\'post\']').attr('disabled', true).css('opacity', '0.5');
            jQuery('.sceditor-container').after('<div id=\'div_minchars_info\'></div>');
            /*
            gestion de 4 encodages FA:
            windows-1252 [anciens forums]
                cp-1252 [anciens forums]
              iso-8859-1 [anciens forums]
                  utf-8 [nouveaux forums]
            */
            var metas = document.getElementsByTagName('meta'),
            charset = '0';
            for (var i = 0; i < metas.length; i++) {
              var meta_charset = metas[i].hasAttribute('http-equiv') && metas[i].getAttribute('http-equiv').toLowerCase() === 'content-type' ? metas[i].getAttribute('content')  : 0;
              if (meta_charset) charset = meta_charset.substring(meta_charset.indexOf('=') + 1).toLowerCase();
            }
            switch (charset) {
              case 'utf-8':
                var regex = new RegExp('[\\w\\u00DF-\\u00F6\\u00F8-\\u00FD\\u0153]{' + NombreLettresParMot + ',}', 'gi');
                break;
              default:
                var regex = new RegExp('[\\w\\u00C0-\\u00F6\\u00F8-\\u00FF\\u0152]{' + NombreLettresParMot + ',}', 'gi');
            }
            /*fin gestion des encodages*/
       
            var sceditor = jQuery('#text_editor_textarea').sceditor('instance'),
            str = sceditor.val(),
            str_arr = str.match(regex),
            str_len = str_arr == null ? 0 : str_arr.length;
            if (str_len >= NombreDeMots)
            jQuery('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 >= NombreDeMots) {
                jQuery('#div_minchars_info').html(' <img src=\'' + icone_complet + '\' alt=\'\' /> Vous avez écrit <span style=\'color:green\'>' + str_len + '</span> mots, vous pouvez envoyer votre message.');
                jQuery('input[type=\'submit\'][name=\'post\']').attr('disabled', false).css('opacity', '1');
              } else {
                jQuery('#div_minchars_info').html('<img src=\'' + icone_incomplet + '\' alt=\'\' /> Vous avez écrit <span style=\'color:red\'>' + str_len + '</span> mot(s). Encore ' + (NombreDeMots - str_len) + ' avant de pouvoir poster.');
                jQuery('input[type=\'submit\'][name=\'post\']').attr('disabled', true).css('opacity', '0.5');
              }
            });
          }
        })});

:enreg:

Personnalisation du script

Les paramètres pouvant être changés sont les suivants :
Code:
        var NombreDeMots = 5;
        var NombreLettresParMot = 3;
        var icone_complet = "http://2img.net/i/fa/admin/icones/ajouter.png";
        var icone_incomplet = "http://2img.net/i/fa/admin/icones/supprimer.png";

Vous pouvez modifier le nombre de mots minimum requis pour pouvoir poster (5 par défaut), le nombre de lettres admises pour composer un mot (3 par défaut), et les deux icônes affichées lorsque les conditions sont ou non remplies (il est conseillé qu'elles soient de même taille).

Pour les utilisateurs les plus aguerris, les textes affichés peuvent également être modifiés dans le script.



Dernière édition par no_way le Ven 17 Juin 2016 - 22:53, édité 2 fois (Raison : Mise à jour, prise en compte de l'encodage UTF-8 et cp-1252 pour les lettres accentuées)
Walt

Walt
Modéractif
Modéractif

Masculin
Messages : 6087
Inscrit(e) le : 08/09/2015

Walt a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum