Compteur de lettres, affiché sous le message.
2 participants
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1 • Partagez
Compteur de lettres, affiché sous le message.
Bonsoir. Ça peut sembler inutile mais j'ai vraiment besoin d'aide là dessus. Mon besoin est clair:
j'aimerais affiché la longueur, en lettres, d'un message, et ce, à la toute fin du message, en bas, dans un coin. J'ai essayer ceci :
Et ça marche jusqu'à un certain point. Il est au bon endroit, dans un DIV qui a la classe "textie", il est joli et compte très bien le nombre de lettres exactement comme je le souhaite mais, bien évidemment, ça bug à un moment donné. Lorsqu'il y a une réponse, le code ne compte que le dernier message et ce, partout. Donc admettons que le message principal a 200 lettres, et le second en a 100, ça va afficher 100 partout. Et ainsi de suite. Seulement le dernier message est comptabilisé, et tout les compteurs se ré-initialisent à la nouvelle valeur à chaque nouveau message dans un topic donné.
Alors j'ai pensé à la "variable" {postrow.displayed.U_POST_ID}. Ce truc (j'ignore le terme scriptien pour le désigner) est en réalité le ID du message. Puisqu'il existe aucuns messages qui a un ID identique à un autre, si je réussissais d'un moyen ou d'un autre "d'associé" le ID à son message ({postrow.displayed.MESSAGE}), le problème sera probablement résolu. Cependant j'ai aucunes idées de faire ça. Aucune inspiration, et des heures de recherches vaines.
Merci à ceux qui voudront bien m'aider dans ma causeperdue
PS: Je crois que le positionnement du code à peut être un effet. Au début il se situais dans le template Overall_header, mais à cause de cela, la valeur était constemment zéro. Je l'ai donc placé dans viewtopic_body, directement sous
Je sais que ça semble étrange, mais ça affiche exactement comme je le souhaite, à part bien sûr pour la variable qui ne "s'actualise" pas. Placé autrement, la variable donne zéro généralement. Surtout si c'est placé au dessus de lorsque {postrow.displayed.MESSAGE} est appelé pour affiché l'actuel message du membre.
j'aimerais affiché la longueur, en lettres, d'un message, et ce, à la toute fin du message, en bas, dans un coin. J'ai essayer ceci :
- Code:
<script type="text/javascript" language="JavaScript">
var seedie = "{postrow.displayed.MESSAGE}";
var resultie = seedie.length;
$(document).ready(function(){
$(".textie").html(" Total : " + resultie + " lettres. ");
});
</script>
Et ça marche jusqu'à un certain point. Il est au bon endroit, dans un DIV qui a la classe "textie", il est joli et compte très bien le nombre de lettres exactement comme je le souhaite mais, bien évidemment, ça bug à un moment donné. Lorsqu'il y a une réponse, le code ne compte que le dernier message et ce, partout. Donc admettons que le message principal a 200 lettres, et le second en a 100, ça va afficher 100 partout. Et ainsi de suite. Seulement le dernier message est comptabilisé, et tout les compteurs se ré-initialisent à la nouvelle valeur à chaque nouveau message dans un topic donné.
Alors j'ai pensé à la "variable" {postrow.displayed.U_POST_ID}. Ce truc (j'ignore le terme scriptien pour le désigner) est en réalité le ID du message. Puisqu'il existe aucuns messages qui a un ID identique à un autre, si je réussissais d'un moyen ou d'un autre "d'associé" le ID à son message ({postrow.displayed.MESSAGE}), le problème sera probablement résolu. Cependant j'ai aucunes idées de faire ça. Aucune inspiration, et des heures de recherches vaines.
Merci à ceux qui voudront bien m'aider dans ma cause
PS: Je crois que le positionnement du code à peut être un effet. Au début il se situais dans le template Overall_header, mais à cause de cela, la valeur était constemment zéro. Je l'ai donc placé dans viewtopic_body, directement sous
- Code:
<span class="gensmall">{postrow.displayed.EDITED_MESSAGE}</span>
</td>
</tr>
</table>
Je sais que ça semble étrange, mais ça affiche exactement comme je le souhaite, à part bien sûr pour la variable qui ne "s'actualise" pas. Placé autrement, la variable donne zéro généralement. Surtout si c'est placé au dessus de lorsque {postrow.displayed.MESSAGE} est appelé pour affiché l'actuel message du membre.
Dernière édition par Archas le Mar 2 Aoû 2011 - 21:06, édité 1 fois
Re: Compteur de lettres, affiché sous le message.
Up! C'est pour une bonne cause. Une fois ce problème résolu, mon forum va enfin pouvoir devenir fonctionnel. Ça fais des mois que je travaille ce code précisement et cette partie me fait défaut...
Merci!
Merci!
Re: Compteur de lettres, affiché sous le message.
Archas a écrit:Up
S'il vous plaiiiiiiiiiit. Il y a TELLEMENT de choses utiles rapportés à ce code. Je peux partager, si quelqu'un veut bien m'aider
Edit : J'ai eu une idée et j'ai essayer ceci:
- Code:
<script type="text/javascript" language="JavaScript">
var seedie = "{postrow.displayed.MESSAGE}";
var resultie = seedie.length;
var indie = "{postrow.displayed.U_POST_ID}";
$(document).ready(function(){
if(document.getElementById(" + indie + ")
{
$(".textie").html(" blablabla " + resultie + " blablabla2 ");
}
});
</script>
Je me suis dit que le message "actualiserait" si j'utilisais un .getElementById cependant cette commande m'est très obscure. Je crois par contre que je suis sur la bonne route! J'ai vu des trucs plus complexes que ça.
Re: Compteur de lettres, affiché sous le message.
Up...
En ignorant le code au précédent message, j'ai vérifier et la variable fonctionne. Cependant, elle affiche mal. Laissez moi expliquer:
Dans le code source, j'ai essayer et le compteur apparait comme il se doit. Mais c'est en visualisant la page (peu importe le navigateur) que cela ne fonctionne plus. Quelqu'un a une idée? Il faudrait que ma variable puisse affiché multiple valeurs simultanément... je crois que ça règlerait mon problème.
Edit: Après des recherches j'ai trouver ce topic (anglais)
Et j'ai essayer de modifier le code ainsi::
En ignorant le code au précédent message, j'ai vérifier et la variable fonctionne. Cependant, elle affiche mal. Laissez moi expliquer:
Dans le code source, j'ai essayer et le compteur apparait comme il se doit. Mais c'est en visualisant la page (peu importe le navigateur) que cela ne fonctionne plus. Quelqu'un a une idée? Il faudrait que ma variable puisse affiché multiple valeurs simultanément... je crois que ça règlerait mon problème.
Edit: Après des recherches j'ai trouver ce topic (anglais)
- Spoiler:
Et j'ai essayer de modifier le code ainsi::
- Code:
<script type="text/javascript" language="JavaScript">
function comptelettres()
{
var seedie = "{postrow.displayed.MESSAGE}";
var resultie = seedie.length;
return [seedie, resultie];
}
var a = comptelettres();
$(document).ready(function()
{
$(".textie").html(" Nombre de lettres :: " + a[1] + " <br/><br/> test perso: Message affiché, en répétition afin de voir où est le problème:: " + a[0]);
}
);
</script>
Re: Compteur de lettres, affiché sous le message.
Up et sans nouvelles :/ J'essaie..
Re: Compteur de lettres, affiché sous le message.
Bonjour,
Moi je mettrais ce script sur les pages de sujet :
Ensuite dans le code :
Moi je mettrais ce script sur les pages de sujet :
- Code:
$(function(){
$("div.postbody").each(function(){
$(this).after('<span class="total-lettres">Total : ' + $(this).text().length + ' lettres.</span>');
});
});
- Code:
$(function(){
});
- Code:
$("div.postbody")
- Code:
$(elements).each(function(){
// code
});
Ensuite dans le code :
- Code:
$(this).after("code html")
Je dirais " la variable de template remplacée par l'identifiant d'une message affiché ", ou plus simplement "l'id du message" =P{postrow.displayed.U_POST_ID}. Ce truc (j'ignore le terme scriptien pour le désigner)
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Compteur de lettres, affiché sous le message.
Bonsoir,
Je peux posé cela au même endroit où j'ai mis l'autre code?... Je ne l'ai pas essayer intégralement encore, mais j'ai modifié mon code de base pour tester un peu en me fiant à vos conseils. Et je peux dire qu'il y a un petit problème déjà...
Ça ne compte plus quand il s'y trouve des smileys/urls/autre trucs que je n'ai pas encore déterminé. Si c'est possible de les ignorer... Mais Merci pour ta réponse!
Je peux posé cela au même endroit où j'ai mis l'autre code?... Je ne l'ai pas essayer intégralement encore, mais j'ai modifié mon code de base pour tester un peu en me fiant à vos conseils. Et je peux dire qu'il y a un petit problème déjà...
Ça ne compte plus quand il s'y trouve des smileys/urls/autre trucs que je n'ai pas encore déterminé. Si c'est possible de les ignorer... Mais Merci pour ta réponse!
Re: Compteur de lettres, affiché sous le message.
Je n'ai pas compris, vous dites que ça les ignore et demander si c'est possible de les ignorer.
Et bien oui ça les ignores ( enfin le texte du lien devrait compter mais une image ça non ça ne doit pas compter ).
Et bien oui ça les ignores ( enfin le texte du lien devrait compter mais une image ça non ça ne doit pas compter ).
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Compteur de lettres, affiché sous le message.
Enfait, le code n'apparait plus du tout, probablement à cause des guillemets ("). Plus rien n'affiche lorsqu'il s'y trouve une image/smiley ou une URL. Alors j'aimerais que le code "passe par dessus", les ignore. Enfin, au moins les balises HTML, puisque c'est surtout cela qui encombre. D'ailleurs, les balises BBcode et HTML sont comptées (lorsqu'elles n'ont pas de guillemets)...
Désolée de ne pas avoir été très claire... par "ne compte plus" je voulais dire "ne fonctionne plus."
Edit: J'ai lu quelques trucs de RegExp, j'ai essayer sur une page de test et bien la chaîne que j'ai trouvée pour trouver les balises HTML et tout ce quelles contiennent ne "fonctionne pas" non plus, mais c'est peut être moi qui l'utilise mal... encore un problème de guillemets, mais cette fois, au sein du code. C'est la première fois que je travaille avec cela donc..
voici l'appercu de la page html de test que j'ai créée afin de comprendre comment utiliser les regular expressions.
C'est tout simple, si j'insère une paire de balise < > et il s'y trouve du texte à l'intérieur, elle est remplacée par du vide. Mais moindrement qu'il s'y trouve un espace, ou quoi que ce soit d'autre, elle y reste. Alors j'ai trouver que la chaîne à chercher devrait être
Mais cela ne fonctionne plus. Spécialement parce que les guillemets qui s'y trouvent dans la chaîne même, et donc l'expression est "fermée prématurément", et j'ignore comment régler ça.
Désolée de ne pas avoir été très claire... par "ne compte plus" je voulais dire "ne fonctionne plus."
Edit: J'ai lu quelques trucs de RegExp, j'ai essayer sur une page de test et bien la chaîne que j'ai trouvée pour trouver les balises HTML et tout ce quelles contiennent ne "fonctionne pas" non plus, mais c'est peut être moi qui l'utilise mal... encore un problème de guillemets, mais cette fois, au sein du code. C'est la première fois que je travaille avec cela donc..
voici l'appercu de la page html de test que j'ai créée afin de comprendre comment utiliser les regular expressions.
- Code:
<html>
<head>
<title>un titre !</title>
<script type="text/javascript" language="javascipt">
function testus()
{
var exp1 = new RegExp("<[A-z]*>", "g"); //va chercher les balises qui contiennent du texte
txtBox = document.getElementById("txtLolus");
strMessage = txtBox.value.replace(exp1, '') + "\n" + txtBox.value.length; //remplace la chaîne cherchée par un vide. Note, ce sont deux apostrophes. Il affiche aussi le nombre de lettre du message afin de voir si c'est encore compté //
alert(strMessage);
}
</script>
</head>
<body>
<h1>TEST</h1>
<input type="text" size="75" id="txtLolus" />
<input type="button" value="asdf" onclick="testus();" />
</body>
<html>
C'est tout simple, si j'insère une paire de balise < > et il s'y trouve du texte à l'intérieur, elle est remplacée par du vide. Mais moindrement qu'il s'y trouve un espace, ou quoi que ce soit d'autre, elle y reste. Alors j'ai trouver que la chaîne à chercher devrait être
- Code:
</?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)/?>
Mais cela ne fonctionne plus. Spécialement parce que les guillemets qui s'y trouvent dans la chaîne même, et donc l'expression est "fermée prématurément", et j'ignore comment régler ça.
Dernière édition par Archas le Mar 2 Aoû 2011 - 20:37, édité 1 fois
Re: Compteur de lettres, affiché sous le message.
Pourquoi ne pas utiliser la solution que j'ai donné qui fonctionne ?
En l'exécutant sur le forum de votre profil ( sans les templates modifiés ) :
- https://i.imgur.com/Vx7Sl.png
- https://i.imgur.com/GsZgO.png
- https://i.imgur.com/7JoQ0.png
- https://i.imgur.com/39wet.png
- https://i.imgur.com/CmMpp.png
- https://i.imgur.com/X8BFQ.png
- https://i.imgur.com/9Y0qR.png
- https://i.imgur.com/XVcpw.png
Si vous ne voulez pas compter les retours à la ligne et espaces, alors il suffit de mettre :
En l'exécutant sur le forum de votre profil ( sans les templates modifiés ) :
- Code:
$(function(){
$("div.postbody").each(function(){
$(this).after('<span class="total-lettres">Total : ' + $(this).text().length + ' lettres.</span>');
});
});
- https://i.imgur.com/Vx7Sl.png
- https://i.imgur.com/GsZgO.png
- https://i.imgur.com/7JoQ0.png
- https://i.imgur.com/39wet.png
- https://i.imgur.com/CmMpp.png
- https://i.imgur.com/X8BFQ.png
- https://i.imgur.com/9Y0qR.png
- https://i.imgur.com/XVcpw.png
Si vous ne voulez pas compter les retours à la ligne et espaces, alors il suffit de mettre :
- Code:
$(function(){
$("div.postbody").each(function(){
$(this).after('<span class="total-lettres">Total : ' + $(this).text().replace(/\s/g,"").length + ' lettres.</span>');
});
});
Je dis l'exécuter sur tout les sujets avec https://forum.forumactif.com/t308422-nouveaute-forumactif-gestion-des-codes-javascript sans avoir à modifier une template.Etana a écrit:Moi je mettrais ce script sur les pages de sujet
Dernière édition par Etana le Mar 2 Aoû 2011 - 20:42, édité 1 fois
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Compteur de lettres, affiché sous le message.
Où est-ce que je dois mettre cela, dans View_topicbody, exactement? au début? ou au milieu?
Edit: ah! Je vois Merci! J'essaie de ce pas.
Edit: ah! Je vois Merci! J'essaie de ce pas.
Dernière édition par Archas le Mar 2 Aoû 2011 - 20:43, édité 1 fois
Re: Compteur de lettres, affiché sous le message.
Il n'y a pas besoin de modifier de template, il faut juste le mettre dans la gestion des codes javascript en cochant sur les sujets :
https://forum.forumactif.com/t308422-nouveaute-forumactif-gestion-des-codes-javascript
https://forum.forumactif.com/t308422-nouveaute-forumactif-gestion-des-codes-javascript
Ea- Aidactif
- Messages : 23583
Inscrit(e) le : 04/04/2008
Re: Compteur de lettres, affiché sous le message.
Bon. Je l'ai installer, la première version, qui compte les espaces. C'est probablement un de mes template... mais bon. Ça me compte 500 lettres pour un message de trois lettres.
Edit: Je sais pourquoiiiiiiiiii c'est bon. Merci!
Edit: Je sais pourquoiiiiiiiiii c'est bon. Merci!
Sujets similaires
» Mettre un message qui s'affiche que sous I-E
» Comment faire pour que le nom du rang et l'image du rang soit affiché sous le pseudo dans le message
» Script compteur de mots ne s'affiche plus
» CSS qui s'affiche sous Chrome et non sous Firefox.
» Peut-on contraindre à un minimum de lettres ou mots dans un message
» Comment faire pour que le nom du rang et l'image du rang soit affiché sous le pseudo dans le message
» Script compteur de mots ne s'affiche plus
» CSS qui s'affiche sous Chrome et non sous Firefox.
» Peut-on contraindre à un minimum de lettres ou mots dans un message
Forum gratuit : Le forum des forums actifs :: Entraide & Support... :: Problème avec un script, un code :: Archives des problèmes avec un code
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum