Ajouter la date lors de la citation d'un message

3 participants

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

Résolu Ajouter la date lors de la citation d'un message

Message par castafiore Mer 30 Aoû 2023 - 16:54


Bonjour.

Dans une citation (quote), J'aimerais ajouter la date à laquelle a été posté un message après le nom du membre qui a posté ce message.
Serait-ce très compliqué à mettre en place ?

Exemple de ce que j'aurais aimé obtenir (pour donner une idée) :

Ajouter la date lors de la citation d'un message Screen14

Merci d'avance pour votre aide.
avatar

castafiore
Nouveau membre

Messages : 29
Inscrit(e) le : 12/11/2009

http://johns-tapas-bar.forumactif.org/forum.htm
castafiore a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Ajouter la date lors de la citation d'un message

Message par Cloo Sam 2 Sep 2023 - 5:05

C'est qqch que j'aimerais aussi avoir, et depuis longtemps... si quelqu'un a une solution?
Cloo

Cloo
*****

Féminin
Messages : 967
Inscrit(e) le : 09/07/2008

http://accrosjardin.forumactif.com/
Cloo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Ajouter la date lors de la citation d'un message

Message par Toryudo Dim 3 Sep 2023 - 9:43

Bonjour !

Techniquement, quelle serait exactement la demande ? Récupérer automatiquement la date, ou juste l'écrire quelque part et faire en sorte qu'elle apparaisse comme sur votre capture d'écran ? Et ce serait pour quelle version de forumactif, pour quel forum ?

La récupération automatique, j'ai des doutes, il faudrait que je réfléchisse.
Mais pour l'écrire manuellement et la faire s'afficher comme vous le voulez, ça me parait tout à fait faisable !
Toryudo

Toryudo
Aidactif
Aidactif

Masculin
Messages : 1323
Inscrit(e) le : 31/03/2020

https://deus-academia.forumactif.com/
Toryudo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Ajouter la date lors de la citation d'un message

Message par castafiore Dim 3 Sep 2023 - 18:43

Bonsoir Toryudo

Il s'agit d'un forum en phpBB3 . Voici son adresse : https://legrele.forumactif.org/
Le souhait c'est que la date à laquelle le message a été écrit soit récupérée et appraisse automatiquement à la suite du pseudo du membre (qui a écrit ce message).

En modifiant un code JavaScript, peut-être ?

Sinon, oui bien sûr, il est assez simple de l'afficher en cliquant sur l'icône quote dans le menu et en remplissant manuellement le pseudo du membre, puis a écrit, puis la date en question :

Toryudo a écrit le 3/9/2023 a écrit:Techniquement, quelle serait exactement la demande ?

Merci en tout cas de bien vouloir y réfléchir.
avatar

castafiore
Nouveau membre

Messages : 29
Inscrit(e) le : 12/11/2009

http://johns-tapas-bar.forumactif.org/forum.htm
castafiore a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Ajouter la date lors de la citation d'un message

Message par Toryudo Lun 4 Sep 2023 - 22:35

Bonjour !

Bon, pas simple.
Il n'y a pas de lien entre un message posté et un message cité, ça, je m'en doutais. Ça veut dire qu'on ne peut pas mettre ça en place rétroactivement. Le seul endroit où il y a une information exploitable, c'est sur la page de citation directement. Si je cite mon message précédent, je tombe sur la page https://forum.forumactif.com/post?p=3409103&mode=quote : je peux donc récupérer le numéro de message #3409103 à partir de l'url.

Ça permet de faire un script qui va chercher le message original, récupère la date du post, et enfin, édite le champ de message pour remplacer le [quote="Toryudo"] de départ par [quote="Toryudo Hier à 9"]

Bon, on voit déjà plusieurs problèmes :
- aller chercher la date en chargeant une autre page via Javascript, ça provoque un petit "délai", le temps que tout ça se fasse
- ce qu'on va récupérer dépend de l'affichage de la date sur le forum. Dans mon exemple, je ne peux que récupérer "Hier à 9:43", et ce "Hier" n'est pas très... parlant, c'est sûr. Il faudra peut-être obliger un autre affichage de date pour avoir quelque chose de propre

En tout cas, vous pouvez déjà essayer ce premier test, à placer "Sur toutes les pages" :
Code:
const params = new URLSearchParams(window.location.search);
const message = params.get('p');

if (message){
   $.get( "/viewtopic.php?p=" + message, function( data ) {
      let date = $(data).find('#p' + message + ' .author').text();
      let dateArray = date.split(' ');
      let author = dateArray.shift().replace('par', '').trim();
      date = dateArray.join(' ');

      const txtPost = $('textarea').sceditor('instance').val();
      $('textarea').sceditor('instance').val(txtPost.replace(/\[quote="[^"]*"\]/i, '[quote="' + author + ' ' + date + '"]'));
   });
}

Je vous laisse faire plusieurs tests, j'ai l'impression que ça marche, mais peut-être pas à tous les coups !
Toryudo

Toryudo
Aidactif
Aidactif

Masculin
Messages : 1323
Inscrit(e) le : 31/03/2020

https://deus-academia.forumactif.com/
Toryudo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Ajouter la date lors de la citation d'un message

Message par castafiore Ven 8 Sep 2023 - 1:14

Cher Toryudo,

Un grand merci pour votre réponse et désolé pour mon retard.
Bravo, ça fonctionne bien. Génial !

J'ignore si c'est compliqué à réaliser mais l'idéal serait que la date apparaisse après le "a écrit"

À titre d'exemple, voici une saisie d'écran du résultat obtenu :

Ajouter la date lors de la citation d'un message Screen16

Cordialement.
avatar

castafiore
Nouveau membre

Messages : 29
Inscrit(e) le : 12/11/2009

http://johns-tapas-bar.forumactif.org/forum.htm
castafiore a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Ajouter la date lors de la citation d'un message

Message par Toryudo Ven 8 Sep 2023 - 10:19

Bonjour !

Oui, je pense que ce serait possible à l'aide d'un autre script.
On peut même totalement changer la phrase s'il faut !

Qu'est-ce que vous voudriez exactement ?
"Pondyness a écrit le Mer 06 Sep 2023, 10:37" ?
"Le Mer 06 Sep 2023, 10:37, Pondyness a écrit:" ?
Autre chose de plus propre encore ?
Toryudo

Toryudo
Aidactif
Aidactif

Masculin
Messages : 1323
Inscrit(e) le : 31/03/2020

https://deus-academia.forumactif.com/
Toryudo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Ajouter la date lors de la citation d'un message

Message par castafiore Ven 8 Sep 2023 - 16:22

À mon avis, l'idéal serait :
"Le 6 septembre 2023, à10h37, Pondyness a écrit : "

Mais sinon, "Le Mer 06 Sep 2023, 10:37, Pondyness a écrit:", ce serait déjà très bien.

Merci.
avatar

castafiore
Nouveau membre

Messages : 29
Inscrit(e) le : 12/11/2009

http://johns-tapas-bar.forumactif.org/forum.htm
castafiore a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Ajouter la date lors de la citation d'un message

Message par Toryudo Sam 9 Sep 2023 - 9:15

Bonjour !

Alors, après pas mal de tests, j'ai modifié la façon de faire : c'est un peu contraire à ce que je voulais faire à la base, mais au moins, tous les cas seront correctement traités. On change un peu d'idée : quand on est sur la page de citation https://forum.forumactif.com/post?p=3409103&mode=quote on ne récupère plus la date du message, mais uniquement le numéro du message qu'on trouvait déjà dans l'url.

[quote="Toryudo"] va donc devenir [quote="3409103ŦToryudo"] au moment de l'édition, soit le numéro du message cité et un caractère Ŧ entre le numéro et le pseudo.

Ensuite, c'est au moment de l'affichage d'un sujet que le script va aller chercher la date et la formater comme il faut. C'est plus pratique, parce qu'on se débarrasse du problème des "Aujourd'hui" et "Hier". Deuxième avantage, c'est que si on veut modifier le format d'affichage un jour, ça modifiera partout en même temps. Seul désavantage, c'est qu'on va récupérer le message correspondant à la citation à chaque fois, c'est un peu plus de requêtes.

Au niveau du format des dates, j'ai donc :
- retiré le jour de la semaine et ajouté "Le " devant (sauf si on affiche "Aujourd'hui" et "Hier")
- remplacé le diminutif du mois par le mois entier
- ajouté "à" avant l'heure
- remplacé les ":" de l'heure par un "h"

Voici le script qui fait tout et qui remplace le précédent, je vous laisse me faire les retours si besoin !
Code:
const days = ['Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim'];
const month = {
  'Jan': 'janvier',
  'Fév': 'février',
  'Mar': 'mars',
  'Avr': 'avril',
  'Mai': 'mai',
  'Juin': 'juin',
  'Juil': 'juillet',
  'Aoû': 'août',
  'Sep': 'septembre',
  'Oct': 'octobre',
  'Nov': 'novembre',
  'Déc': 'décembre'
};

$(function() {
  // Récupération date messages cités
  $('blockquote cite').each(function() {
    var $this = $(this);
    var mcite = $(this).text().split('Ŧ');

    if (mcite.length > 1) {
      $.get("/viewtopic.php?p=" + mcite[0], function(data) {
        let date = $(data).find('#p' + mcite[0] + ' .author').text();
        let dateArray = date.split(' ');

        let author = dateArray.shift().replace('par', '').trim();
        date = dateArray.join(' ');
        date = date.replace(',', ', à');
        date = date.replace(':', 'h');
        if (days.includes(date.slice(0, 3))) {
          date = 'Le ' + date.slice(3).trim();
        }
        for (var prop in month) {
          if (month.hasOwnProperty(prop)) {
            date = date.replace(prop, month[prop]);
          }
        }

        $this.text(date + ', ' + author + ' a écrit :');
      });
    }
  });

  // Ajout du numéro de message dans le quote
  $(function() {
    const params = new URLSearchParams(window.location.search);
    const message = params.get('p');
    const mode = params.get('mode');

    if (mode && (mode == 'quote') && message) {
      const txtPost = $('textarea').sceditor('instance').val();
      $('textarea').sceditor('instance').val(txtPost.replace(/\[quote=\"?([^\"]*)\"?\]/i, '[quote="' + message + 'Ŧ$1"]'));
    }
  });
});
Toryudo

Toryudo
Aidactif
Aidactif

Masculin
Messages : 1323
Inscrit(e) le : 31/03/2020

https://deus-academia.forumactif.com/
Toryudo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Ajouter la date lors de la citation d'un message

Message par castafiore Sam 9 Sep 2023 - 18:01

Bonjour Toryudo

Merci pour ce gros boulot. Ça semble ingénieux.
Mais il doit y avoir quelque chose qui ne fonctionne pas dans ce script apparemment.
J'ai supprimé le précèdent et installé le nouveau sur toutes les pages mais rien n'apparait sur la citation.

Merci en tout cas. J'apprécie l'effort que vous faites pour m'aider.
avatar

castafiore
Nouveau membre

Messages : 29
Inscrit(e) le : 12/11/2009

http://johns-tapas-bar.forumactif.org/forum.htm
castafiore a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Ajouter la date lors de la citation d'un message

Message par castafiore Sam 9 Sep 2023 - 18:15

Au temps pour moi.

Ça marche magnifiquement bien au contraire !!!

Ce qui posait problème, c'est que quand je cliquais sur l'icône "copier" de votre script, une série de codes apparaissait en fin de script au delà de la ligne 57.
J'ai effacé ce qui avait en trop. Ça fonctionne parfaitement. Un tout, tout grand merci.

Voici à titre d'exemple, ce que cela donne :

Ajouter la date lors de la citation d'un message Screen17

Je transmets par la même occasion les plus vifs remerciements de la part de Kassandra88, la co-fondatrice du forum legrelé.
avatar

castafiore
Nouveau membre

Messages : 29
Inscrit(e) le : 12/11/2009

http://johns-tapas-bar.forumactif.org/forum.htm
castafiore a été remercié(e) par l'auteur de ce sujet.

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

- Sujets similaires

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