Problème avec intitulé de citation
3 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
Problème avec intitulé de citation
Détails techniques
Version du forum : phpBB2
Poste occupé : Administrateur
Navigateur(s) concerné(s) : Google Chrome
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : (lien masqué, vous devez poster pour le voir)
Description du problème
Bonjour !J'ai suivi à la lettre ce tutoriel mais il apparaît que celui-ci ne prenne pas en compte le nom des membres tagué. Le résultat est donc celui attendu en enlevant l'option des tags (dans mon cas : je veux simplement que le nom du membre cité apparaisse, voir ci-dessous le JS que j'utilise sur mon forum) mais en activant la dite option, les citations ne s'affichent plus comme désirées et reprennent leur apparence initiale soit : "@nomdumembre a écrit:" (au lieu de "@nomdumembre"). Pourriez-vous m'indiquer ce qui cloche s'il vous plaît ?
- Code:
;$(function() {
/* paramètres à régler */
var spoiler_text = "Spoiler (cliquer pour afficher le contenu)";
var citation_text = "Citation";
var code_text = "Code";
var a_ecrit_text = "";
/* fin des paramètres à régler */
$(".postbody").find("dl.spoiler dt, dl.codebox dt, dl.codebox dt span.genmed b, blockquote cite").each(function() {
if (!this.hasChildNodes() || this.firstChild.nodeType != 3) return;
var c = this.firstChild, t = c.nodeValue.trim();
t == "Spoiler:" && (c.nodeValue = spoiler_text) ||
t == "Citation :" && (c.nodeValue = citation_text) ||
t == "Code:" && (c.nodeValue = code_text) ||
t.substr(-9) == " a écrit:" && (c.nodeValue = t.substr(0, t.length - 9) + a_ecrit_text);
}).filter('cite').find('a[rel][href^="/u"]').each(function(){
if($(this).text().substr(0,1)!="@")return;
$(this.nextSibling).replaceWith(a_ecrit_text);
});
});
Dernière édition par pinke le Mer 14 Juin 2017 - 12:53, édité 1 fois
Re: Problème avec intitulé de citation
Bonjour ^^
Pourrions nous avoir un lien accessible aux invités et contenant une citation ?
Pourrions nous avoir un lien accessible aux invités et contenant une citation ?
Re: Problème avec intitulé de citation
Bonjour Le forum "Espace staff" est désormais visible pour les invités, j'ai créé un nouveau sujet "Test citation" pour que vous ayez un aperçu du problème
Re: Problème avec intitulé de citation
Bonjour,
Effectivement. J'ai analysé le code, et le code ne fonctionne que si le champ à modifier est entièrement du texte. Or, comme vous avez un tagg utilisateur dans le champ modifié, celui-ci passe en élément, donc le code ne le prend pas en compte.
De ce que j'ai vu le code est sensé gérer le cas présent puisqu'il recherche un "@", mais comme il rejette tout élément qui n'est pas entièrement du texte... ca ne peut pas fonctionner. Comme ce code date maintenant, il se peut qu'il faille faire une petite mise à jour. J'ai essayé de corriger le code pour que ça prenne en compte les citations comprenant un tagg utilisateur, malheureusement c'est trop laborieux.
Donc je vous propose un code supplémentaire pour ce cas précis. Code rajouté dans le code initial, donc remplacez tout votre code par celui-ci :
J'ai rajouté une exception pour le cas où on a un tagg utilisateur dans la citation, mais pour voir si ça n'a pas cassé le reste du code il faudrait que vous rajoutiez des spoiler, codes etc à la suite.
Effectivement. J'ai analysé le code, et le code ne fonctionne que si le champ à modifier est entièrement du texte. Or, comme vous avez un tagg utilisateur dans le champ modifié, celui-ci passe en élément, donc le code ne le prend pas en compte.
De ce que j'ai vu le code est sensé gérer le cas présent puisqu'il recherche un "@", mais comme il rejette tout élément qui n'est pas entièrement du texte... ca ne peut pas fonctionner. Comme ce code date maintenant, il se peut qu'il faille faire une petite mise à jour. J'ai essayé de corriger le code pour que ça prenne en compte les citations comprenant un tagg utilisateur, malheureusement c'est trop laborieux.
Donc je vous propose un code supplémentaire pour ce cas précis. Code rajouté dans le code initial, donc remplacez tout votre code par celui-ci :
- Code:
;$(function() {
/* paramètres à régler */
var spoiler_text = "Cliquer pour afficher le contenu :";
var citation_text = "Ceci est une citation :";
var code_text = "Ceci est un code :";
var a_ecrit_text = " a écrit précédemment :";
/* fin des paramètres à régler */
$(".postbody").find("dl.spoiler dt, dl.codebox dt, dl.codebox dt span.genmed b, blockquote cite").each(function() {
if (!this.hasChildNodes() || (this.firstChild.nodeType == 1 && this.firstChild.className == "genmed")) {
var c = this.firstChild.lastElementChild, tag = c.lastElementChild;
$(tag.nextSibling).replaceWith(a_ecrit_text);
}
if (!this.hasChildNodes() || this.firstChild.nodeType != 3) return;
var c = this.firstChild, t = c.nodeValue.trim();
t == "Spoiler:" && (c.nodeValue = spoiler_text) ||
t == "Citation :" && (c.nodeValue = citation_text) ||
t == "Code:" && (c.nodeValue = code_text) ||
t.substr(-9) == " a écrit:" && (c.nodeValue = t.substr(0, t.length - 9) + a_ecrit_text);
}).filter('cite').find('a[rel][href^="/u"]').each(function(){
if($(this).text().substr(0,1)!="@")return;
$(this.nextSibling).replaceWith(a_ecrit_text);
});
});
J'ai rajouté une exception pour le cas où on a un tagg utilisateur dans la citation, mais pour voir si ça n'a pas cassé le reste du code il faudrait que vous rajoutiez des spoiler, codes etc à la suite.
♢ Pour faciliter les recherches, mettez un titre explicite.
♢ Remerciez le message qui vous a aidé pour que celui-ci soit mis en évidence.
♢ Épinglez votre sujet en résolu pour prévenir la modération.
Re: Problème avec intitulé de citation
Edité :
Lixyr : En fait le code avait subi une mise à jour mi-2015 pour prendre en compte ces tags utilisateurs. D'où le fait que le code de filtrage soit présent. Malheureusement nous n'avions filtré que la balise cite, qui n'existe pas en phpBB2.
Le code qui suit est fonctionnel sous phpBB2, punBB et ModernBB. Devrait aussi fonctionner sur les autres versions, mais pas testé de mon côté.
Fin de zone éditée.
Désolée, mais je n'avais pas vu votre réponse d'hier.
Le tutoriel avait été mis à jour quelques mois après l'apparition des tags utilisateurs et mots-clé mais je reproduis effectivement votre problème sur phpBB2.
Remplacez votre script par :
Code testé et fonctionnel sur phpBB2
Lixyr : En fait le code avait subi une mise à jour mi-2015 pour prendre en compte ces tags utilisateurs. D'où le fait que le code de filtrage soit présent. Malheureusement nous n'avions filtré que la balise cite, qui n'existe pas en phpBB2.
Le code qui suit est fonctionnel sous phpBB2, punBB et ModernBB. Devrait aussi fonctionner sur les autres versions, mais pas testé de mon côté.
Fin de zone éditée.
Désolée, mais je n'avais pas vu votre réponse d'hier.
pinke a écrit:J'ai suivi à la lettre ce tutoriel mais il apparaît que celui-ci ne prenne pas en compte le nom des membres tagué. Le résultat est donc celui attendu en enlevant l'option des tags
Le tutoriel avait été mis à jour quelques mois après l'apparition des tags utilisateurs et mots-clé mais je reproduis effectivement votre problème sur phpBB2.
Remplacez votre script par :
- Code:
;$(function() {
/* paramètres à régler */
var spoiler_text = "Spoiler (cliquer pour afficher le contenu)";
var citation_text = "Citation";
var code_text = "Code";
var a_ecrit_text = "";
/* fin des paramètres à régler */
$(".postbody").find("dl.spoiler dt, dl.codebox dt, dl.codebox dt span.genmed b, blockquote cite").each(function() {
if (!this.hasChildNodes() || this.firstChild.nodeType != 3) return;
var c = this.firstChild, t = c.nodeValue.trim();
t == "Spoiler:" && (c.nodeValue = spoiler_text) ||
t == "Citation :" && (c.nodeValue = citation_text) ||
t == "Code:" && (c.nodeValue = code_text) ||
t.substr(-9) == " a écrit:" && (c.nodeValue = t.substr(0, t.length - 9) + a_ecrit_text);
}).filter('cite, dl.codebox dt span.genmed b').find('a[rel][href^="/u"]').each(function(){
if($(this).text().substr(0,1)!="@")return;
$(this.nextSibling).replaceWith(a_ecrit_text);
});
});
Code testé et fonctionnel sur phpBB2
Re: Problème avec intitulé de citation
Merci à vous deux Le script de Neptunia marche à merveille !
Bonne journée
Bonne journée
Sujets similaires
» Problème avec citation multiple
» Problème avec les balises bbcode "code", "spoiler", "citation" et "hide".
» Un bouton pour barre de navigation avec intitulé Facebook
» Petit soucis esthétique avec le tuto intitulé "ajouter un bouton de sauvegarde"
» probléme de citation
» Problème avec les balises bbcode "code", "spoiler", "citation" et "hide".
» Un bouton pour barre de navigation avec intitulé Facebook
» Petit soucis esthétique avec le tuto intitulé "ajouter un bouton de sauvegarde"
» probléme de citation
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