Membres connectés récemment
[PHPBB2]Afficher un message mentionnant le reste de caractéres dans le titre du sujet
2 participants
Page 1 sur 1
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
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.
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)
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.
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)
Hello Stéphane,
Ce sont les caractères manquants .
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 ).
En tout cas merci pour ses remontées 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 .
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 ).
En tout cas merci pour ses remontées Stéphane.
Hello Stéphane,
tu peux tester celui-ci:
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);
}
});
});});
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.
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);
}
});});
}
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.
euh Philippe, sur cette partie de message, je parle du fonctionnement natif pas avec le rajout du script.
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.
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.
- InvitéInvité
merci Phil mais ça me paraît un peu trop complexe pour moi
Sujets similaires
Créer un compte ou se connecter pour répondre
Vous devez être membre pour répondre.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum