Astuces Forumactif
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Membres connectés récemment
Voir tous les membres

[PHPBB2]Afficher un message mentionnant le reste de caractéres dans le titre du sujet


2 participants

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

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Sam 22 Sep 2018 - 12:05

hinhin

vous pouvez tester ce script stp et je vous laisse laisse découvrir l'effet quand vous posterez un sujet sur votre fofo en version phpbb2:

Ce script va compter la valeur minimale que vous avez mentionné dans votre P.A(voir ci-dessous)
Le bouton "Envoyer" sera en relation avec la frappe du clavier ne sera pas cliquable et on lui donne une autre valeur(texte) et affichera un décompte.
Si vous avez déterminé la valeur minimale à admettons 40 .
Le décompte s'effacera et vous verrez apparaitre au dessus un autre ligne affichant un message à gauche et à droite le titre du sujet et enfin le bouton "Envoyer" sera cliquable




Il faut juste avoir au moins 2 caractères pour la valeur minimale ici:

Longueur du titre d'un sujet mettre au minimum 10

Général/Messages et Emails/Configuration/Sujets


Longueur du titre d'un sujet : Valeur minimum 10


Modules/HTML JAVASCRIPT/Gestion des codes JavascriptCréer un nouveau javascript


Mettez un titre explicite.
Cochez sur toutes les pages.


Déposez ceci:
Code:

$(function(){
// TEXTE DU BOUTON ENVOYER EN ATTENTE
var M14_textInput='En attente';
$('input[name="post"][type="submit"]').val(M14_textInput).attr('disabled', true);
var input=$('input[name="post"][type="submit"]');
$('input[class="post"][name="subject"]').each(function(){
var $this=$(this);
    var a=$(this).attr('title');
    var regexp=/\d\d/;
    var max=(regexp.exec(a));
    var maxlength=(regexp.exec(a));
$(this).closest('tr').before('<tr class="M14_PostLength"style="display:none;"><td class="row1" width="22%"><span class="gen "><b>Vous pouvez poster votre sujet</b></span></td>
<td class="row2" width="78%"><span class="gen"><b>Votre Titre:</b><span class="gen M14_titre"><b></b></span></td></tr>');

$(this).closest('td').prev().find('.gen').after('<span id="M14_compt"class="gen"style="color:red;cursor:pointer;"></span>');
$(this).keyup(function(){$('.M14_titre b').text($this.val());
var length=$($this).val().length;
var total=maxlength-length;
$('#M14_compt').text(' ( '+total+' ) ') ;
if($this.val().length==max)
{
$('#M14_compt').fadeOut();
$('.M14_PostLength').fadeIn();

 
input.val('Envoyer').attr('disabled', false);
}
if($this.val().length<max)
{
  $('#M14_compt').fadeIn();
$('.M14_PostLength').fadeOut();
$('#M14_compt').attr('title','Nombre de caractère(s) manquant(s) '+total+'').css('color','red');
input.val(M14_textInput).attr('disabled', true);
}
});

});});



Penser a cliquer sur le bouton Valid




Dernière édition par Milouze14 le Lun 29 Nov 2021 - 7:40, édité 2 fois
fascicularia
fascicularia
https://altitudetropicale.forums-actifs.com/

Messagefascicularia Sam 22 Sep 2018 - 18:15

bonjour Philippe, 
fonctionne de mon côté lorsque l'on envoie le message directement.
Par contre, je n'ai pas en affichage "nombre de caractère(s) manquant(s) mais juste le décompte.

[PHPBB2]Afficher un message mentionnant le reste de caractéres dans le titre du sujet Sans_t13


Par contre, si on pré-visualise le sujet, le bouton en attente s'affiche alors que le nombre requis de lettres est atteint. Autre soucis, si l'on modifie le titre du sujet, on obtient un décompte inverse (par exemple si mon titre contient 10 lettres et que j'en rajoute 10 de plus, le décompte est à -10)

[PHPBB2]Afficher un message mentionnant le reste de caractéres dans le titre du sujet Sans_t14
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Sam 22 Sep 2018 - 19:01

Hello Stéphane,

Par contre, je n'ai pas en affichage "nombre de caractère(s) manquant(s) mais juste le décompte.

Ce sont les caractères manquants clin oeil .


Par contre, si on pré-visualise le sujet, le bouton en attente s'affiche alors que le nombre requis de lettres est atteint. Autre soucis, si l'on modifie le titre du sujet, on obtient un décompte inverse (par exemple si mon titre contient 10 lettres et que j'en rajoute 10 de plus, le décompte est à -10)


Ah, vi il faut que je prenne en compte tout cela,
je verrais tout cela à tête reposée et te taguerais pour te faire savoir que le script est bel est bien fonctionnel(enfin , j’espère lOL ).

En tout cas merci pour ses remontées Stéphane.

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Dim 23 Sep 2018 - 7:31

Hello Stéphane,
tu peux tester celui-ci:

Code:
$(function(){
    // TEXTE DU BOUTON ENVOYER EN ATTENTE
    var M14_textInput='En attente';
    $('input[name="post"][type="submit"]').val(M14_textInput).attr('disabled', true);
    var input=$('input[name="post"][type="submit"]');
    $('input[class="post"][name="subject"]').each(function(){
var lengthorigine=$('input[class="post"][name="subject"]').val().length;
    var $this=$(this);
        var a=$(this).attr('title');
        var regexp=/\d\d/;
        var max=(regexp.exec(a));
        var maxlength=(regexp.exec(a));
      $(this).closest('tr').before('<tr class="M14_PostLength"style="display:none;"><td class="row1" width="22%"><span class="gen "><b>Vous pouvez poster votre sujet</b></span></td>
    <td class="row2" width="78%"><span class="gen"><b>Votre Titre:</b><span class="gen M14_titre"><b></b></span></td></tr>');

    $(this).closest('td').prev().find('.gen').after('<span id="M14_compt"class="gen"style="color:red;cursor:pointer;"></span>');
    $(this).keyup(function(){
    $('.M14_titre b').text($this.val());
    var length=$($this).val().length;
    var total=maxlength-length;
      var totalorigine=total-lengthorigine;
      if(lengthorigine<1)
      {
$('input[class="post"][name="subject"]').css('borderColor','darkred');   
    $('#M14_compt').text(' ( '+total+' ) ') ;
      }
      else if(lengthorigine>1)
      {
$('input[class="post"][name="subject"]').css('borderColor','darkblue');       
    $('#M14_compt').text(' ( '+totalorigine+' ) ') ;
      }
    if($this.val().length==max)
    {
    $('#M14_compt').fadeOut();
    $('.M14_PostLength').fadeIn();

   
    input.val('Envoyer').attr('disabled', false);
    }
    if($this.val().length<max)
    {
     
    $('.M14_PostLength').fadeOut();
    $('#M14_compt').attr('title','Nombre de caractère(s) manquant(s) '+total+'').css('color','red');
    input.val(M14_textInput).attr('disabled', true);
    }
    });

    });});
fascicularia
fascicularia
https://altitudetropicale.forums-actifs.com/

Messagefascicularia Dim 23 Sep 2018 - 12:43

Bonjour Philippe, 
même soucis au moment de la prévisualisation;le bouton en attente est toujours présent. Par contre, si on efface le titre et qu'on le retape (même s'il est identique), le bouton envoyer apparait dés la fin de la saisie des 10 lettres.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Dim 23 Sep 2018 - 19:41

Oki Stéphane, je m'en doutais un peu,
je revois tout cela clin oeil ..
Merci et bonne soirée.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 24 Sep 2018 - 8:58

Hello Stéphane,

alors , j'ai quelque peu modifié le script:
Ce dernier ne sera actif seulement que sur la création de sujet.
Il trouvera automatiquement le nombre minimal de caractère.
Il mettra automatiquement la première lettre du titre en majuscule.

Code:
if(document.title=="Poster un nouveau sujet"){
$(function(){
//Le libellé du bouton envoyé modifié
var M14_textInput='En attente';
//L'information à gauche
var M14_info='Information:';
//Le titre à droite
var M14_titre='Vous pouvez poster votre sujet, le titre: ';
var input=$('input[name="post"][type="submit"]');
$('input[class="post"][name="subject"]').each(function(){
var a=$(this).attr('title');
var regexp=/\d+/;
var max=(regexp.exec(a));
var $this=$(this);
var M14_val=$(this).val().length;
var total=max-M14_val;
var txt= $(this).val();
$($this).val(txt.replace(/^(.)|\s(.)/g, function($1){ return $1.toUpperCase( ); }));
$($this).closest('tr').before('<tr class="M14_PostLength"style="display:none;"><td class="row1" width="22%"><span class="gen "><b>'+M14_info+'</b></span></td><td class="row2" width="78%"><span class="gen"><b>'+M14_titre+'</b><span class="gen M14_titre"><b></b></span></td></tr>');
$(this).closest('td').prev().find('.gen').after('<span id="M14_compt"class="gen"style="color:red;cursor:pointer;"></span>');
$('.M14_titre b').text($this.val());
$('#M14_compt').text(' ( '+total+' ) ') ;
if($this.val().length==max){$('#M14_compt').hide();}
else if($this.val().length!=max){$('#M14_compt').show().attr('title','Reste  ( '+total+' ) caractére(s)');}
$(this).keyup(function(){
var text= $(this).val();
$($this).val(text.replace(/^(.)|\s(.)/g, function($1){ return $1.toUpperCase( ); }));
var b=$('[name="subject"]').val().length; 
var totalKey=max-b;
$('#M14_compt').text(' ( '+totalKey+' ) ') ;
$('.M14_titre b').text($this.val());
if($this.val().length>=max)
{
input.val('Envoyer').attr('disabled', false); 
$('.M14_PostLength').show();$('#M14_compt').hide();
}
else if($this.val().length<max)
{
input.val(M14_textInput).attr('disabled', true);
$('.M14_PostLength').hide();$('#M14_compt').show().attr('title','Reste  ( '+totalKey+' ) caractére(s)');
}
});

if($this.val().length<max)
{
input.val(M14_textInput).attr('disabled', true);
$('#M14_compt').show();
}
if($this.val().length>=max)
{
$('.M14_PostLength').show();$('#M14_compt').hide();
input.val('Envoyer').attr('disabled', false);
}
});});

}
fascicularia
fascicularia
https://altitudetropicale.forums-actifs.com/

Messagefascicularia Lun 24 Sep 2018 - 11:25

Bonjour Philippe, 
ce dernier script fonctionne parfaitement de mon côté  super
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 24 Sep 2018 - 11:31

Merci Stéphane,
c'est chouette non impeccable .
fascicularia
fascicularia
https://altitudetropicale.forums-actifs.com/

Messagefascicularia Lun 24 Sep 2018 - 13:17

la fonctionnalité est intéressante au niveau de  l'automatisme mais je t'avouerai que je ne le rajouterai pas sur le forum. l'info est délivrée lorsque tu tapes le titre du sujet et, pour peu que le membre expédie tout de même le sujet, il reçoit une notification lui spécifiant que le titre n'est pas assez long.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 24 Sep 2018 - 15:50

Hum cela m'étonne car le tag qui s'affiche correspond à la limite de la longueur du sujet !!
fascicularia
fascicularia
https://altitudetropicale.forums-actifs.com/

Messagefascicularia Lun 24 Sep 2018 - 20:19

euh Philippe, sur cette partie de message, je  parle du fonctionnement natif pas avec le rajout du script.

l'info est délivrée lorsque tu tapes le titre du sujet et, pour peu que le membre expédie tout de même le sujet, il reçoit une notification lui spécifiant que le titre n'est pas assez long.

C'était juste pour argumenter le fait que je n'implanterai pas le script malgré l'automatisme de son fonctionnement qui est intéressant.
j'ai tellement de js sur le forum que j'évite d'en rajouter pour éviter une certaine lourdeur au chargement.

Autrement, je pense qu'il va trés certainement plaire à beaucoup de membres.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 24 Sep 2018 - 20:27

Re Stéphane,
tu me rassures lOL .

j'ai tellement de js sur le forum que j'évite d'en rajouter pour éviter une certaine lourdeur au chargement.

Rhoo, tu es médisant MdR1 .

Ok merci beaucoup.

fascicularia
fascicularia
https://altitudetropicale.forums-actifs.com/

Messagefascicularia Lun 24 Sep 2018 - 23:42

Bon, j'ai presqe réussi à me guérir de la photoclicmania lOL
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 25 Sep 2018 - 3:44

fascicularia a écrit:Bon, j'ai presqe réussi à me guérir de la photoclicmania lOL

Ah, c'était à ce point MdR
Anonymous
Invité
Invité

MessageInvité Lun 1 Oct 2018 - 18:54

merci Phil mais ça me paraît un peu trop complexe pour moi clin oeil MDR

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

Créer un compte ou se connecter pour répondre

Vous devez être membre pour répondre.

S'enregistrer

Rejoignez notre communauté ! C'est facile !


S'enregistrer

Connexion

Vous êtes déjà membre ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

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