Insérer la possibilité d'édition directement avec le QUICK REPLY
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
Insérer la possibilité d'édition directement avec le QUICK REPLY
Détails techniques
Version du forum : phpBB2
Poste occupé : Administrateur
Navigateur(s) concerné(s) : Autre
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : https://albastrya.bbactif.com/
Description du problème
Salutations !Je ne sais pas si j'ai droit d'ouvrir deux demandes d'aides qui ont un lien mais pas du tout la même nature, si c'est le cas, je m'excuse et supprimerai même ma demande pour attendre que l'autre se résolve !
J'ai tenté par moi-même de rajouter la possibilité d'avoir la ligne 'édition' pour que, en suivant la logique de mes précédentes demandes, l'on puisse utiliser la variable d'édition comme d'un ajout de hors jeu au post !
J'ai donc fait ceci (le code n'est pas validé sur mon forum car ne fonctionnant pas, je ne veux pas perturber mes joueurs) :
- Code:
<td class="row2" width="100%">
<a name="quickreply"></a>
{QUICK_REPLY_FORM}
<br />
<tr>
<td class="row1" width="22%"><span class="gen"><strong>Commentaire hors-jeu :</strong></span></td>
<td class="row2" width="78%"><span class="gen"><input class="post" style="width:450px" type="text" name="edit_reason" value="{edit_reason.EDIT_REASON}" maxlength="255" /></span></td>
</tr>
</td>
Comme vous le voyez, le squelette fonctionne mais dès lors que j'écris un message, que j'écris " l'édition ", l'édition ne s'affiche pas dans le sujet... Faut-il passer par un JS malgré la présence de la variable ?
Merci à vous !
Dernière édition par Kaehlyth le Dim 21 Juil 2024 - 7:54, édité 3 fois (Raison : Grand merci à Toryudo et Milouze14)
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Bonjour !
Pas de problème, il n'y a pas de limitations au niveau du nombre de demandes, il faut juste être capable de toutes les suivre ensuite !
Au niveau de la raison de l'édition, ça ne va pas être possible de cette manière. "edit_reason" n'est pris en compte côté serveur que dans un seul cas : si le formulaire est en mode "editpost" (quand on édite). S'il est en mode "newtopic" (quand on crée un nouveau sujet) ou en mode "reply" (quand on répond dans un sujet), le "edit_reason" est ignoré. Je pense qu'il n'y a pas de moyen de contournement, il faut poster une première fois, puis éditer.
Ou alors, il faut personnaliser davantage l'éditeur et faire autrement.
On peut imaginer créer un champ input text dans le Template (qui s'appellerait par exemple "Raison"), dont le contenu est automatiquement ajouté à la fin de chaque message grâce à du JavaScript, au moment où on clique sur "Poster". Il faudrait également ajouter du code pour retirer cette raison du message au moment de l'édition, pour plutôt l'afficher dans le champ créé précédemment. Cette solution-là pourrait fonctionner dans tous les cas je pense !
Pas de problème, il n'y a pas de limitations au niveau du nombre de demandes, il faut juste être capable de toutes les suivre ensuite !
Au niveau de la raison de l'édition, ça ne va pas être possible de cette manière. "edit_reason" n'est pris en compte côté serveur que dans un seul cas : si le formulaire est en mode "editpost" (quand on édite). S'il est en mode "newtopic" (quand on crée un nouveau sujet) ou en mode "reply" (quand on répond dans un sujet), le "edit_reason" est ignoré. Je pense qu'il n'y a pas de moyen de contournement, il faut poster une première fois, puis éditer.
Ou alors, il faut personnaliser davantage l'éditeur et faire autrement.
On peut imaginer créer un champ input text dans le Template (qui s'appellerait par exemple "Raison"), dont le contenu est automatiquement ajouté à la fin de chaque message grâce à du JavaScript, au moment où on clique sur "Poster". Il faudrait également ajouter du code pour retirer cette raison du message au moment de l'édition, pour plutôt l'afficher dans le champ créé précédemment. Cette solution-là pourrait fonctionner dans tous les cas je pense !
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Au point où j'en suis niveau JS, plus rien ne me fait peur sur le fait de charger la mule ... J'ai fait le tri pour alléger l'ensemble du forum et réfléchis à nouveau à comment réduire le nombre de chargement pour le rendre ludique, pratique mais surtout responsive. En PhBB2 c'est possible mais ça demande + de travail que les autres versions. Car j'ai peur d'un jour futur où PhPBB2 soit abandonné...
Pour en revenir à nos moutons, je suis prête à suivre la démarche avec vous !
Par le passé, j'avais installé ce code :
Qui en somme permet de personnaliser pour avoir pile les options que je veux et si je m'abuse, vous en étiez même le propriétaire.
De ce fait, aucun de mes joueurs ne passent par le bouton "répondre" et passent directement par le quick_reply, d'où le fait d'ajouter l'option d'édition détournée en hors-jeu !
Je suis prête à comprendre à nouveau comment vous faites !
Déjà, je comprends que j'ai ciblé la bonne variable mais celle-ci ne s'appelle que lors d'une édition, d'où son nom, ce que moi je pensais être une variable "universelle" concernant l'édition.
Il va donc falloir faire un appel transformé via JS pour tromper le serveur.
Pauvre serveur
Pour en revenir à nos moutons, je suis prête à suivre la démarche avec vous !
Par le passé, j'avais installé ce code :
- Code:
$(document).ready(function() {
toolbar = 'bold,italic,underline,strike|left,center,right,justify|quote,code,faspoiler,fahide,table|servimg,image,,link,embed,youtube|headers,size,color,font,removeformat|faroll|,pastetext,source,lienediteur';
});
Qui en somme permet de personnaliser pour avoir pile les options que je veux et si je m'abuse, vous en étiez même le propriétaire.
De ce fait, aucun de mes joueurs ne passent par le bouton "répondre" et passent directement par le quick_reply, d'où le fait d'ajouter l'option d'édition détournée en hors-jeu !
Je suis prête à comprendre à nouveau comment vous faites !
Déjà, je comprends que j'ai ciblé la bonne variable mais celle-ci ne s'appelle que lors d'une édition, d'où son nom, ce que moi je pensais être une variable "universelle" concernant l'édition.
Il va donc falloir faire un appel transformé via JS pour tromper le serveur.
Pauvre serveur
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Petit UP du week-end
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Bonjour !
Désolé pour le petit délai de réponse ! Pour reprendre, non, il n'y a vraiment pas moyen d'utiliser le champ "edit_reason" sur un nouveau message. Ce que je propose, c'est un peu différent, ce serait de complètement abandonner ce "edit_reason" par défaut et d'en simuler un via de la personnalisation de Template et du JavaScript.
Imaginez qu'on divise un message en deux parties :
- la partie habituelle du textarea
- une autre partie qu'on appellerait "perso_raison" par exemple
Vous remplissez le textarea comme d'habitude, et vous ajoutez du texte ou non dans le nouveau champ "perso_raison". Au moment de cliquer sur "Prévisualisation" ou "Envoyer", le JavaScript s'occupe de fusionner le message du Textarea avec le texte du champ "perso_raison" (on peut imaginer rajouter le username en plus, avec des balises HTML si besoin, une personnalisation comme on veut). Ainsi, dans le post, c'est le message + la raison qui sont affichés.
Petite difficulté supplémentaire : quand on va vouloir éditer (ou à la prévisualisation), il faut rediviser le contenu du message en deux parties : la partie qui va aller dans le textarea, et la partie qui va aller dans le nouveau champ "perso_raison". Mais ce n'est pas si complexe à mettre en place non plus à priori.
Par contre, si vous partez là-dessus, c'est tout ce que vous avez fait avec Milouze qui tombe un peu à l'eau... juste pour cette petite fonctionnalité en plus. Je ne sais pas si vous voulez encore vous lancer là-dedans !
Désolé pour le petit délai de réponse ! Pour reprendre, non, il n'y a vraiment pas moyen d'utiliser le champ "edit_reason" sur un nouveau message. Ce que je propose, c'est un peu différent, ce serait de complètement abandonner ce "edit_reason" par défaut et d'en simuler un via de la personnalisation de Template et du JavaScript.
Imaginez qu'on divise un message en deux parties :
- la partie habituelle du textarea
- une autre partie qu'on appellerait "perso_raison" par exemple
Vous remplissez le textarea comme d'habitude, et vous ajoutez du texte ou non dans le nouveau champ "perso_raison". Au moment de cliquer sur "Prévisualisation" ou "Envoyer", le JavaScript s'occupe de fusionner le message du Textarea avec le texte du champ "perso_raison" (on peut imaginer rajouter le username en plus, avec des balises HTML si besoin, une personnalisation comme on veut). Ainsi, dans le post, c'est le message + la raison qui sont affichés.
Petite difficulté supplémentaire : quand on va vouloir éditer (ou à la prévisualisation), il faut rediviser le contenu du message en deux parties : la partie qui va aller dans le textarea, et la partie qui va aller dans le nouveau champ "perso_raison". Mais ce n'est pas si complexe à mettre en place non plus à priori.
Par contre, si vous partez là-dessus, c'est tout ce que vous avez fait avec Milouze qui tombe un peu à l'eau... juste pour cette petite fonctionnalité en plus. Je ne sais pas si vous voulez encore vous lancer là-dedans !
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Oh mince.
Je suis ultra curieuse de savoir à la fois votre idée , comment faire pour personnaliser comme l'a fait Milouze (et moi en CSS ^^) mais d'un autre, je ne sais pas si ça vaut le coup pour le principe de "faire perdre du temps" à un des bénévoles passionnés...
Pensez vous que avec votre idée on peut arriver au même résultat, ou pas du tout ?
Si ce n'est pas possible, je devrais peut être éviter de prendre de l'énergie malgré ma curiosité.
Je suis ultra curieuse de savoir à la fois votre idée , comment faire pour personnaliser comme l'a fait Milouze (et moi en CSS ^^) mais d'un autre, je ne sais pas si ça vaut le coup pour le principe de "faire perdre du temps" à un des bénévoles passionnés...
Pensez vous que avec votre idée on peut arriver au même résultat, ou pas du tout ?
Si ce n'est pas possible, je devrais peut être éviter de prendre de l'énergie malgré ma curiosité.
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Coucou Kaehlyth ,
pas de soucis pour moi si Toryudo (que je salue) peut t'apporter satisfaction et je n'en ai aucun doute et franchement je suis curieux de son astuce .
Ce que je j'apporte, pour moi c'est du loisir et rien de plus, n'est pas de remords Kaehlyth .
a++
pas de soucis pour moi si Toryudo (que je salue) peut t'apporter satisfaction et je n'en ai aucun doute et franchement je suis curieux de son astuce .
Ce que je j'apporte, pour moi c'est du loisir et rien de plus, n'est pas de remords Kaehlyth .
a++
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Dans ce cas je suis curieuse si Toryudo veut bien me proposer et répondre à ma question.
Car je suis actuellement pleinement satisfaite de ce que tu m'as créé !
Car je suis actuellement pleinement satisfaite de ce que tu m'as créé !
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Bonjour !
Au pire, vous pouvez laisser les deux en même temps dans un premier temps, vous pourrez voir ce que ça donne en faisant des tests.
Alors, dans un premier temps, il va falloir adapter les Template viewtopic_body (pour les quick reply) et posting_body (pour les réponses normales et prévisualisations) :
Dans le viewtopic_body, on va ajouter notre input personnalisé auquel on va donner un id edit_perso_reason :
Maintenant, voilà le JavaScript, à placer "Sur toutes les pages" :
Le principe est le suivant :
Si je propose cette solution, c'est parce qu'elle facilite pas mal de choses :
- vous pouvez personnaliser le HTML que vous ajoutez pour la raison perso, ça facilite la mise en forme derrière
- vous pouvez ajouter une raison personnalisée dès la création du post
- vous pouvez mettre autant de caractères que vous voulez dans la raison (attention quand même, ça empiète sur le nombre de caractères du message)
Par contre, il peut y avoir des petits ratés... Si vous cliquez sur prévisualiser, mais que vous arrêtez le chargement de la page immédiatement, le HTML est ajouté à la suite du message mais vous ne changez pas de page... c'est moche. Et si vous prévisualisez, puis que vous faites page précédente sur votre navigateur, vous avez des chances que le HTML soit toujours visible dans le message, parce qu'il n'aura pas été re-déplacé par le script. Ce sont des petits bémols que je ne peux pas vraiment résoudre...
Voilà, vous pouvez utiliser ou non, c'était mon petit défi
Au pire, vous pouvez laisser les deux en même temps dans un premier temps, vous pourrez voir ce que ça donne en faisant des tests.
Alors, dans un premier temps, il va falloir adapter les Template viewtopic_body (pour les quick reply) et posting_body (pour les réponses normales et prévisualisations) :
Dans le viewtopic_body, on va ajouter notre input personnalisé auquel on va donner un id edit_perso_reason :
- Code:
<tr>
<td class="row1" width="22%"><span class="gen"><strong>Commentaire hors-jeu :</strong></span></td>
<td class="row2" width="78%"><span class="gen"><input class="post" style="width:450px" type="text" id="edit_perso_reason" /></span></td>
</tr>
- Code:
<form id="normal_reply" action="{S_POST_ACTION}" method="post" name="post" enctype="multipart/form-data">
- Code:
<tr>
<td class="row1" width="22%"><span class="gen"><strong>Commentaire hors-jeu :</strong></span></td>
<td class="row2" width="78%"><span class="gen"><input class="post" style="width:450px" type="text" id="edit_perso_reason" /></span></td>
</tr>
Maintenant, voilà le JavaScript, à placer "Sur toutes les pages" :
- Code:
$(function(){
$(function(){
if ($('#text_editor_textarea').length){
var txt = $('#text_editor_textarea').sceditor("instance").val();
var match_raison = txt.match(/<div class="edit_raison_bloc">(.*)<\/div>/);
var match_raison_txt = txt.match(/<span class="edit_raison_txt">(.*)<\/span>/);
if (match_raison && match_raison_txt && match_raison[0] && match_raison_txt[1]){
$('#edit_perso_reason').val(match_raison_txt[1]);
$('#text_editor_textarea').sceditor("instance").val($('#text_editor_textarea').sceditor("instance").val().replace(match_raison[0], ''));
}
}
});
$('#quick_reply, #normal_reply').submit(function(){
if ($('#edit_perso_reason').val() != ''){
$('#text_editor_textarea').sceditor("instance").val($('#text_editor_textarea').sceditor("instance").val() + '<div class="edit_raison_bloc"><span class="Edit_first">Une note hors-jeu à votre attention a été laissée par ' + _userdata["username"] + '</span><br />Commentaires Hors-jeu : <span class="edit_raison_txt">' + $('#edit_perso_reason').val() + '</span></div>');
}
});
});
Le principe est le suivant :
- lorsqu'on valide (en cliquant sur "Prévisualiser" ou "Envoyer") l'un des deux formulaires, le quick ou le normal, on ajoute le contenu du champ edit_perso_reason à la fin du message. On en profite pour ajouter le HTML qu'on veut + le nom de la personne qui fait l'action, c'est pratique pour personnaliser à souhait. Dans mon exemple, j'ajoute un div ".edit_raison_bloc" autour du raison perso (pour faciliter l'usage de CSS ensuite), j'ajoute un span ".Edit_first" autour du texte "Une note hors-jeu..." pour garder ce que je vous ai vus faire avec Milouze, et un span "edit_raison_txt" qui va contenir uniquement le texte qu'on aura écrit dans le champ edit_perso_reason :
- Code:
<div class="edit_raison_bloc"><span class="Edit_first">Une note hors-jeu à votre attention a été laissée par ' + _userdata["username"] + '</span><br />Commentaires Hors-jeu : <span class="edit_raison_txt">' + $('#edit_perso_reason').val() + '</span></div>
- lorsqu'on prévisualise ou qu'on édite un post, on fait en sorte de supprimer la balise div ".edit_raison_bloc" et tout ce qu'elle contient du message, et on déplace le texte du span ".edit_raison_txt" vers le champ raison personnalisé #edit_perso_reason. Je ne sais pas si c'est compréhensible, mais c'est la raison pour laquelle tout est englobé dans un div "edit_raison_bloc" dont il ne faut pas changer le nom, et pour laquelle le texte entré dans le champ raison doit lui aussi rester dans le span "edit_raison_txt" dont il ne faut pas changer le nom.
Si je propose cette solution, c'est parce qu'elle facilite pas mal de choses :
- vous pouvez personnaliser le HTML que vous ajoutez pour la raison perso, ça facilite la mise en forme derrière
- vous pouvez ajouter une raison personnalisée dès la création du post
- vous pouvez mettre autant de caractères que vous voulez dans la raison (attention quand même, ça empiète sur le nombre de caractères du message)
Par contre, il peut y avoir des petits ratés... Si vous cliquez sur prévisualiser, mais que vous arrêtez le chargement de la page immédiatement, le HTML est ajouté à la suite du message mais vous ne changez pas de page... c'est moche. Et si vous prévisualisez, puis que vous faites page précédente sur votre navigateur, vous avez des chances que le HTML soit toujours visible dans le message, parce qu'il n'aura pas été re-déplacé par le script. Ce sont des petits bémols que je ne peux pas vraiment résoudre...
Voilà, vous pouvez utiliser ou non, c'était mon petit défi
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Bonsoir Toryudo,
vos explications sont toujours incroyables et le travail coooooooooooooooooooooooooooooooooooooooll avec beaucoup de Ooo !
Voici le résultat :
Vous pouvez le voir ici : https://albastrya.bbactif.com/t148-tests-codes?tt=1#1713
Apparemment il ne charge pas le CSS et met la modification dès le début de post, sans séparer en dessous du message posté.
Par contre, les deux cohabitent !!!! ça c'est génial !! Y'a juste un conflit (de canard?) de CSS ?
Explication :
- La toute première ligne est le code de Milouze personnalisé et donc, la variable "officielle" de FA : Une note hors-jeu à votre attention a été laissée par Naeisia
- Test : le contenu du message
- La 3eme ligne "Commentaires Hors-jeu : TEST DU QUICKREPLY" : est votre code
L'image en forme de séparation est générée par javascript par le code de Milouze permettant de séparer le contenu du post ET l'édition.
Merci ,
vos explications sont toujours incroyables et le travail coooooooooooooooooooooooooooooooooooooooll avec beaucoup de Ooo !
Voici le résultat :
Vous pouvez le voir ici : https://albastrya.bbactif.com/t148-tests-codes?tt=1#1713
Apparemment il ne charge pas le CSS et met la modification dès le début de post, sans séparer en dessous du message posté.
Par contre, les deux cohabitent !!!! ça c'est génial !! Y'a juste un conflit (de canard?) de CSS ?
Explication :
- La toute première ligne est le code de Milouze personnalisé et donc, la variable "officielle" de FA : Une note hors-jeu à votre attention a été laissée par Naeisia
- Test : le contenu du message
- La 3eme ligne "Commentaires Hors-jeu : TEST DU QUICKREPLY" : est votre code
L'image en forme de séparation est générée par javascript par le code de Milouze permettant de séparer le contenu du post ET l'édition.
Merci ,
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Bonjour !
D'après ce que je vois, tout est dans le bon ordre (au moins techniquement), c'est juste le margin-top: -35px; sur le .Edit_first qui fait remonter la première phrase au-dessus du contenu du message. On peut adapter le script pour changer le visuel tel que je le vois sur https://albastrya.bbactif.com/t148-tests-codes?tt=1#1713 : on ajoute les div, les images, et normalement, ça va afficher les prochains messages comme il faut :
Petit PS : parce que la raison perso est ajoutée au message, ça veut dire que le HTML inséré est "fixe" ; autrement dit, si vous changez le script, ça ne va pas automatiquement modifier le HTML dans les messages. Il va falloir éditer le/les messages (ou le faire sur des nouveaux messages) pour que le nouveau HTML soit inséré. C'est pour cette raison que je vous conseille de mettre le moins de CSS possible dans le script, de privilégier l'utilisation des class et le CSS à côté. Potentiellement même chose avec les images, privilégier peut-être un div avec un background au cas où vous voulez changer sur toutes les raisons d'un coup !
Plus les choses seront externalisée dans un CSS, plus ce sera facile (ou même juste possible) de changer partout à la fois.
D'après ce que je vois, tout est dans le bon ordre (au moins techniquement), c'est juste le margin-top: -35px; sur le .Edit_first qui fait remonter la première phrase au-dessus du contenu du message. On peut adapter le script pour changer le visuel tel que je le vois sur https://albastrya.bbactif.com/t148-tests-codes?tt=1#1713 : on ajoute les div, les images, et normalement, ça va afficher les prochains messages comme il faut :
- Code:
$(function(){
$(function(){
if ($('#text_editor_textarea').length){
var txt = $('#text_editor_textarea').sceditor("instance").val();
var match_raison = txt.match(/<div class="edit_raison_bloc">(.*)<\/div>/);
var match_raison_txt = txt.match(/<span class="edit_raison_txt">(.*)<\/span>/);
if (match_raison && match_raison_txt && match_raison[0] && match_raison_txt[1]){
$('#edit_perso_reason').val(match_raison_txt[1]);
$('#text_editor_textarea').sceditor("instance").val($('#text_editor_textarea').sceditor("instance").val().replace(match_raison[0], ''));
}
}
});
$('#quick_reply, #normal_reply').submit(function(){
if ($('#edit_perso_reason').val() != ''){
$('#text_editor_textarea').sceditor("instance").val($('#text_editor_textarea').sceditor("instance").val() + '<div class="edit_raison_bloc"><br><img src="https://zupimages.net/up/24/27/747x.png" style="max-width: 100%;margin-bottom:6px;" alt="Image HR"><img src="https://zupimages.net/up/24/27/q1ke.png" style="float: left; margin-top: 40px;margin-left: 11px;" alt="Image secondaire"><div class="message-container Edit_animation"><div class="gensmall M14_edit"><br><br><span class="Edit_first">Une note hors-jeu à votre attention a été laissée par ' + _userdata["username"] + '</span><br />Commentaires Hors-jeu : <span class="edit_raison_txt">' + $('#edit_perso_reason').val() + '</span></div></div></div>');
}
});
});
Petit PS : parce que la raison perso est ajoutée au message, ça veut dire que le HTML inséré est "fixe" ; autrement dit, si vous changez le script, ça ne va pas automatiquement modifier le HTML dans les messages. Il va falloir éditer le/les messages (ou le faire sur des nouveaux messages) pour que le nouveau HTML soit inséré. C'est pour cette raison que je vous conseille de mettre le moins de CSS possible dans le script, de privilégier l'utilisation des class et le CSS à côté. Potentiellement même chose avec les images, privilégier peut-être un div avec un background au cas où vous voulez changer sur toutes les raisons d'un coup !
Plus les choses seront externalisée dans un CSS, plus ce sera facile (ou même juste possible) de changer partout à la fois.
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Toryudo a écrit:Bonjour !
D'après ce que je vois, tout est dans le bon ordre (au moins techniquement), c'est juste le margin-top: -35px; sur le .Edit_first qui fait remonter la première phrase au-dessus du contenu du message. On peut adapter le script pour changer le visuel tel que je le vois sur https://albastrya.bbactif.com/t148-tests-codes?tt=1#1713 : on ajoute les div, les images, et normalement, ça va afficher les prochains messages comme il faut :
- Code:
$(function(){
$(function(){
if ($('#text_editor_textarea').length){
var txt = $('#text_editor_textarea').sceditor("instance").val();
var match_raison = txt.match(/<div class="edit_raison_bloc">(.*)<\/div>/);
var match_raison_txt = txt.match(/<span class="edit_raison_txt">(.*)<\/span>/);
if (match_raison && match_raison_txt && match_raison[0] && match_raison_txt[1]){
$('#edit_perso_reason').val(match_raison_txt[1]);
$('#text_editor_textarea').sceditor("instance").val($('#text_editor_textarea').sceditor("instance").val().replace(match_raison[0], ''));
}
}
});
$('#quick_reply, #normal_reply').submit(function(){
if ($('#edit_perso_reason').val() != ''){
$('#text_editor_textarea').sceditor("instance").val($('#text_editor_textarea').sceditor("instance").val() + '<div class="edit_raison_bloc"><br><img src="https://zupimages.net/up/24/27/747x.png" style="max-width: 100%;margin-bottom:6px;" alt="Image HR"><img src="https://zupimages.net/up/24/27/q1ke.png" style="float: left; margin-top: 40px;margin-left: 11px;" alt="Image secondaire"><div class="message-container Edit_animation"><div class="gensmall M14_edit"><br><br><span class="Edit_first">Une note hors-jeu à votre attention a été laissée par ' + _userdata["username"] + '</span><br />Commentaires Hors-jeu : <span class="edit_raison_txt">' + $('#edit_perso_reason').val() + '</span></div></div></div>');
}
});
});
Petit PS : parce que la raison perso est ajoutée au message, ça veut dire que le HTML inséré est "fixe" ; autrement dit, si vous changez le script, ça ne va pas automatiquement modifier le HTML dans les messages. Il va falloir éditer le/les messages (ou le faire sur des nouveaux messages) pour que le nouveau HTML soit inséré. C'est pour cette raison que je vous conseille de mettre le moins de CSS possible dans le script, de privilégier l'utilisation des class et le CSS à côté. Potentiellement même chose avec les images, privilégier peut-être un div avec un background au cas où vous voulez changer sur toutes les raisons d'un coup !
Plus les choses seront externalisée dans un CSS, plus ce sera facile (ou même juste possible) de changer partout à la fois.
Vous êtes un génie du mal !
Donc si je comprends bien, l'image à gauche, on la voit deux fois, car elle vient d'un JS de Milouze ?
- Code:
$(function(){$(function(){
$('.Edit_first').each(function(){
$(this).html($(this).html().replace(/\s\le\s/g,"<i style='display:none;'>le").replace(/fois/g,"</i>"));
});});});
$(function(){$(function(){
$('.message-container').each(function(){
var a=$(this).find('.Edit_last').length;
var b=$(this).find('.Edit_first').length;
var c='<img src="https://zupimages.net/up/24/27/q1ke.png" style="float: left; margin-top: 40px;margin-left: 11px;" alt="Image secondaire"/>';
if(a&&b)
{
$(this).before(c);
$(this).addClass('Edit_animation');
}
if(!a&&b)
{
$(this).before(c);
$(this).addClass('Edit_animation_first');
}
});})});
Qui est donc :
- Code:
var c='<img src="https://zupimages.net/up/24/27/q1ke.png" style="float: left; margin-top: 40px;margin-left: 11px;" alt="Image secondaire"/>';
Comment pourrais-je faire pour éviter le doublon et qu'il ne soit posté qu'une fois ?
Autant en CSS je pourrais m'en sortir quelque peu (c'est l'explication donné pour éviter les doublons que vous venez de dire, je comprends mieux du coup), autant dans des JS croisés, je ne saurais dire.
Je suis en liesse avant de partir au travail parce que ça marche même avec le script de changement de personnage avec un tableau JS !
Et l'image de séparation est donc dans le template directement. La seule image JS est donc l'icône de parchemin.
- Code:
<!-- END switch_signature -->
</div><br/>
<img src="https://zupimages.net/up/24/27/747x.png" style="max-width: 100%;margin-bottom:6px;" alt="Image HR"/>
<div class="message-container">
<span class="gensmall M14_edit" style="display: block; z-index: 2;">{postrow.displayed.EDITED_MESSAGE}</span>
<script type="text/javascript">
$('.M14_edit').each(function(){
$(this).html($(this).html().replace(/\Dernière édition par/g,"<span class='Edit_first'>Une note hors-jeu à votre attention a été laissée par").replace(/\(/g,"</span><br />").replace(/\)/g,"").replace(/\Raison :/g,"<span class='Edit_last'></span>"));
});
</script>
EDIT : Le second soucis s'il en est un est la disposition de la case de "raison édit" avec les boutons "envoyer"
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Effectivement, si le script de Milouze rajoute l'image de gauche automatiquement, vous pouvez retirer l'image de mon script :
Ce sera sans doute plus facile pour re-modifier visuellement partout en même temps si besoin.
Je vais essayer de trouver un meilleur code pour déplacer la zone commentaire hors-jeu d'ici ce soir, je vous redis ça !
- Code:
$(function(){
$(function(){
if ($('#text_editor_textarea').length){
var txt = $('#text_editor_textarea').sceditor("instance").val();
var match_raison = txt.match(/<div class="edit_raison_bloc">(.*)<\/div>/);
var match_raison_txt = txt.match(/<span class="edit_raison_txt">(.*)<\/span>/);
if (match_raison && match_raison_txt && match_raison[0] && match_raison_txt[1]){
$('#edit_perso_reason').val(match_raison_txt[1]);
$('#text_editor_textarea').sceditor("instance").val($('#text_editor_textarea').sceditor("instance").val().replace(match_raison[0], ''));
}
}
});
$('#quick_reply, #normal_reply').submit(function(){
if ($('#edit_perso_reason').val() != ''){
$('#text_editor_textarea').sceditor("instance").val($('#text_editor_textarea').sceditor("instance").val() + '<div class="edit_raison_bloc"><br><img src="https://zupimages.net/up/24/27/747x.png" style="max-width: 100%;margin-bottom:6px;" alt="Image HR"><div class="message-container Edit_animation"><div class="gensmall M14_edit"><br><br><span class="Edit_first">Une note hors-jeu à votre attention a été laissée par ' + _userdata["username"] + '</span><br />Commentaires Hors-jeu : <span class="edit_raison_txt">' + $('#edit_perso_reason').val() + '</span></div></div></div>');
}
});
});
Ce sera sans doute plus facile pour re-modifier visuellement partout en même temps si besoin.
Je vais essayer de trouver un meilleur code pour déplacer la zone commentaire hors-jeu d'ici ce soir, je vous redis ça !
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
J'ai testé par la même occasion d'éditer le message et de remettre un hors jeu, le plus rigolo c'est que ça me génère deux éditions totalement différentes
Le test QUICK REPLY par PRÉVISUALISATION prend bien en compte le code de Milouze SANS votre modification, c'est pour cela que le texte n'est pas violet..car il s'agit bien de la variable native.
Dans le doute, je préfère avertir ! Bien que ça me gène pas car en effet, comme vous l'avez dit, un commentaire en Quick REPLY est définitif.
Le test QUICK REPLY par PRÉVISUALISATION prend bien en compte le code de Milouze SANS votre modification, c'est pour cela que le texte n'est pas violet..car il s'agit bien de la variable native.
Dans le doute, je préfère avertir ! Bien que ça me gène pas car en effet, comme vous l'avez dit, un commentaire en Quick REPLY est définitif.
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Alors, pour la quick_reply, on va remodifier le Template viewtopic_body pour retravailler le champ edit perso (ajouter un id sur le tr et remodifier en un seul td) :
Et on rajoute une ligne dans le JavaScript pour faire le déplacement, parce qu'on ne peut pas faire autrement (parce que tout le form se trouve dans une variable dans le Template) :
Pour le violet, c'est bizarre, je ne le vois pas en tant qu'invité sur la page https://albastrya.bbactif.com/t148-tests-codes
Il y a d'autres éléments / CSS à rajouter pour les membres connectés peut-être ?
- Code:
<tr id="raison_perso_tr">
<td class="row2"><span class="gen">Commentaire hors-jeu : <input class="post" style="width:450px" type="text" id="edit_perso_reason" /></span></td>
</tr>
Et on rajoute une ligne dans le JavaScript pour faire le déplacement, parce qu'on ne peut pas faire autrement (parce que tout le form se trouve dans une variable dans le Template) :
- Code:
$(function(){
$(function(){
if ($('#text_editor_textarea').length){
var txt = $('#text_editor_textarea').sceditor("instance").val();
var match_raison = txt.match(/<div class="edit_raison_bloc">(.*)<\/div>/);
var match_raison_txt = txt.match(/<span class="edit_raison_txt">(.*)<\/span>/);
if (match_raison && match_raison_txt && match_raison[0] && match_raison_txt[1]){
$('#edit_perso_reason').val(match_raison_txt[1]);
$('#text_editor_textarea').sceditor("instance").val($('#text_editor_textarea').sceditor("instance").val().replace(match_raison[0], ''));
}
}
});
$('#quick_reply table tr:first').after($('#raison_perso_tr'));
$('#quick_reply, #normal_reply').submit(function(){
if ($('#edit_perso_reason').val() != ''){
$('#text_editor_textarea').sceditor("instance").val($('#text_editor_textarea').sceditor("instance").val() + '<div class="edit_raison_bloc"><br><img src="https://zupimages.net/up/24/27/747x.png" style="max-width: 100%;margin-bottom:6px;" alt="Image HR"><div class="message-container Edit_animation"><div class="gensmall M14_edit"><br><br><span class="Edit_first">Une note hors-jeu à votre attention a été laissée par ' + _userdata["username"] + '</span><br />Commentaires Hors-jeu : <span class="edit_raison_txt">' + $('#edit_perso_reason').val() + '</span></div></div></div>');
}
});
});
Pour le violet, c'est bizarre, je ne le vois pas en tant qu'invité sur la page https://albastrya.bbactif.com/t148-tests-codes
Il y a d'autres éléments / CSS à rajouter pour les membres connectés peut-être ?
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Toryudo a écrit:Alors, pour la quick_reply, on va remodifier le Template viewtopic_body pour retravailler le champ edit perso (ajouter un id sur le tr et remodifier en un seul td) :
Pour le violet, c'est bizarre, je ne le vois pas en tant qu'invité sur la page https://albastrya.bbactif.com/t148-tests-codes
Il y a d'autres éléments / CSS à rajouter pour les membres connectés peut-être ?
Il s'agit de ce code : https://www.never-utopia.com/t65864-un-seul-compte-plusieurs-personnages-choix-deroulant-2-versions
Donc c'est un code qui permet de créer une base de données de personnages liés à un compte comme si c'étaient de vrais compte !
On peut alors leur donner une couleur de texte aussi, d'où le violet, qui est lié à ce " faux compte".
En tout cas, défi relevé et je suis HYPER HEUREUSE ! Car j'ai pu garder le travail en amont avec Milouze et profiter de votre génie du JS.
Merci vraiment, c'est résolu !
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Oh je me permets juste une dernière petite question ! (Le double post parce que le sujet était en résolu et j'avais la crainte qu'il se perd en archive )
J'ai essayé de supprimer le TR avec "Commentaire hors-jeu" > row1...
mais ça fait chevaucher les boutons d'envoyer/prévisualiser sur ma boite de texte !
Savez vous comment faire pour n'avoir que cette ligne centrée sous l'avatar et le quick reply ? Merciiii
EDIT 1 :
Je doute que le code soit propre mais dans l'éventualité où c'est la seule et bonne solution :
(J'en doute, j'attends confirmation ! )
Le soucis de ce code hormis la fléxibilité de personnalisation, c'est que d'enlever le premier TD me décale à nouveau "Répondre" et "Choix du personnage" puisque, forcément, il manque une case....
J'ai essayé de supprimer le TR avec "Commentaire hors-jeu" > row1...
mais ça fait chevaucher les boutons d'envoyer/prévisualiser sur ma boite de texte !
Savez vous comment faire pour n'avoir que cette ligne centrée sous l'avatar et le quick reply ? Merciiii
EDIT 1 :
Je doute que le code soit propre mais dans l'éventualité où c'est la seule et bonne solution :
(J'en doute, j'attends confirmation ! )
- Code:
<table style="margin-top: -1.4em;">
<tr>
<td class="row2" width="1%"></td>
<td class="row2">
<span class="gen" style="display: inline-block; width: 253px;margin-left: -28%;"><strong>Commentaire hors-jeu :</strong></span>
<input class="post" style="width: 97%;" type="text" id="edit_perso_reason" />
</td>
</tr>
</table>
Le soucis de ce code hormis la fléxibilité de personnalisation, c'est que d'enlever le premier TD me décale à nouveau "Répondre" et "Choix du personnage" puisque, forcément, il manque une case....
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Bonjour !
C'est vrai que je me suis basé sur la version phpbb2 neutre pour le raison perso.
J'ai un petit doute sur le HTML du rendu actuel, est-ce que vous pouvez rendre ce sujet accessible aux invités ? Comme ça, je regarder en direct, et j'adapte le HTML à mettre dans le Template !
C'est vrai que je me suis basé sur la version phpbb2 neutre pour le raison perso.
J'ai un petit doute sur le HTML du rendu actuel, est-ce que vous pouvez rendre ce sujet accessible aux invités ? Comme ça, je regarder en direct, et j'adapte le HTML à mettre dans le Template !
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Salutations !
Bien sûr, voici le lien du test public : https://albastrya.bbactif.com/f4-boite-tests-publique
Bien sûr, voici le lien du test public : https://albastrya.bbactif.com/f4-boite-tests-publique
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Bon, je crois qu'il y a plein de choses qui sont masquées pour les invités, le code est très bizarre...
Si vous avez un compte test, je suis preneur
Si vous avez un compte test, je suis preneur
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Toryudo a écrit:Bon, je crois qu'il y a plein de choses qui sont masquées pour les invités, le code est très bizarre...
Si vous avez un compte test, je suis preneur
C'est envoyé !
Merci et désolé je ne comprends pas pourquoi en invité le forum ressemble à rien.
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
Oui, d'accord, je comprends la difficulté pour le positionnement.
Votre code fait un peu bidouille, mais ça fonctionne et je pense qu'on pourra difficilement faire plus propre sans changer beaucoup de choses, alors ça convient !
Votre code fait un peu bidouille, mais ça fonctionne et je pense qu'on pourra difficilement faire plus propre sans changer beaucoup de choses, alors ça convient !
Re: Insérer la possibilité d'édition directement avec le QUICK REPLY
D'accord, Merci beaucoup !!
J'ouvrirai probablement un sujet mais sauriez vous me dire ce qui bloque ?
Il faut dire que quasi tout sauf la navigation et les avatars sont de la bidouille, merci à mlleAlys pour ça.
J'ouvrirai probablement un sujet mais sauriez vous me dire ce qui bloque ?
Il faut dire que quasi tout sauf la navigation et les avatars sont de la bidouille, merci à mlleAlys pour ça.
Sujets similaires
» quick reply taille invariable ???
» Quick reply dans une boite "spoiler"
» Concernant le quick reply / Prévisualiser - Edition by Milouze14 et Toryudo
» Exclusivité Forumactif: Possibilité de créer un avatar personnalisé directement sur le forum
» Aligner les boutons "reply/new/watch" avec le cadre du forum
» Quick reply dans une boite "spoiler"
» Concernant le quick reply / Prévisualiser - Edition by Milouze14 et Toryudo
» Exclusivité Forumactif: Possibilité de créer un avatar personnalisé directement sur le forum
» Aligner les boutons "reply/new/watch" avec le cadre du forum
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