image personnalisée pour chaque commentaire

JoséJosé Member

Bonjour
je voudrais attribuer une image personnalisée pour les personnes qui laissent un commentaire.
pour le moment l'attribution de l'écu se fait de manière aléatoire:
```
https://armorial.cc-parthenay-gatine.fr/pour-nous-contacter
````
Est ce que quelqu'un aurait une solution
je suis en version 5-8-4 ( déjà une version de retard ) , cela fonctionne bien . Merci à vous

José

Réponses

  • Bonjour,
    une image personnalisée comme ceci s'appelle un avatar.
    En principe, il est déterminé par l'adresse courriel du visiteur.
    Il y a moyen d'enregistrer son gravatar personnel sur https://fr.gravatar.com/

    Pour en revenir à ces fameux blasons qui ne constituent pas une collection illimitée, on peut calculer le crc de l'adresse courriel du visiteur et le moduler (modulo) en fonction du nombre de blasons disponibles.
    Noter que crc() peut renvoyer une valeur négative.

    Voir ci-dessous pour la démo et en savoir plus :
    Voir démo
    voir script PHP

    Ce qui suit n'a pas de rapport avec le sujet, mais :
    Ton site est mal configuré. il ne permet pas la mise en cache d'images. A chaque rechargement de la page, c'est long.
    Cela nuit à "l'expérience utilisateur" de tes visiteurs.

    Sur mon site, il y a ceci dans le fichier .htaccess à la racine du site :

    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresByType image/* "access plus 7 days"
        ExpiresByType application/javascript "access plus 2 days"
        ExpiresByType text/css "access plus 2 days"
    </IfModule>
    
    <IfModule mod_headers.c>
        <FilesMatch ".*\.(?:jpe?g|png|svg|gif|js|css)$">
            Header append Cache-Control "public"
        </FilesMatch>
    </IfModule>
    
  • J'ai également mis, il y a plusieurs mois, sur framagit un script pour générér un gravatar à partir des dessins de David Revoy :
    https://framagit.org/bazooka07/cat-avatar-generator

  • JoséJosé Member

    Bonjour Bazooka

    Tout d'abord pour htaccess : les modifications sont faites , la navigation est plus fluide. j'ai bien recopié l'ensemble du texte à la suite. C'est super: je voyais bien que quelquechose n'était pas finalisé mais à mon niveau ....

    Pour le gros morceau des avatars : c'est du lourd que tu envoies! il me faudra du temps pour digérer tout cela. En attendant j'ai retroussé les manches et j'ai créé le champ avatar et la variable $avatar dans les fichiers de la partie core/. En y allant progressivement , cela m'a pris un peu de temps mais c'est Ok. Dans la page édition d'un commentaire , j'ai maintenant le champ avatar que je remplis à la main . Tu l'as vu les personnes qui laissent un commentaire ne sont pas nombreuses . et maintenant chaque commentateur a son avatar.
    j' ai bien enregistré les modifs pour la future montée de version , mais je vais attendre un peu : tout roule bien.

    Merci à toi et félicitations au projet PluXml
    José

  • Bonjour,
    Voici le lien sur Github pour modifier le template commentaires.php qui affiche automatiquement un avatar à chaque commentaire :
    https://gist.github.com/bazooka07/72b8916fcba3a86eec64ef8488fe30cc

    Note qu'il faut rajouter une règle au fichier theme.css

    Au cas où cela t'aurait échappé, voici quelques liens intéressants pour les blasons :

  • JoséJosé Member

    Merci pour les liens, j'avais déjà du en repérer quelques uns.

    ta proposition de template commentaires.php est intéressante ( et c'est du code que je comprends à mon niveau ). Elle présente l'avantage de ne pas toucher aux fichiers du core. Un petit inconvénient : l'administrateur ne choisit pas l'avatar.
    Dans mon cas l'administrateur choisit l'avatar ( qui, dans la mesure du possible,correspond au commentateur )
    saisie de l'avatar
    mais je modifie 4 fichiers du core. Un plugin serait une solution.

    José

  • bazooka07bazooka07 Member
    17 janv. modifié

    En plus de modifier 4 fichiers du core, il te faut aussi maintenir une liste de correspondances entre visiteur et avatar. Plus une intervention manuelle pour remplir le nouveau champ.

    Le mieux est de rendre l'adresse courriel obligatoire avec l'attribut required dans la balise <input> et le calculer l'avatar à partir de ce champ par l'intermédiaire de la function crc32().

    C'est un peu le principe des gravatars employés par Wordpress entre autres :
    http://fr.gravatar.com/

  • JoséJosé Member

    Dans mon cas, je modère les commentaires avant leur publication. C'est à ce moment que j'attribue l'avatar. J'aimerais bien me lancer dans la rédaction d'un plugin : 4 fichiers du core à modifier + 1 fichier du thème admin ( j'ai les codes, et cela fonctionne ). Ce qui m'interroge c'est la modifications des commentaires déjà existants pour que soit créée la Data avatar dans data/commentaires/0001.1230772900-11.xml

    <comment>
        <author><![CDATA[Philippe]]></author>
        <avatar><![CDATA[avatar_5]]></avatar>
        <type>normal</type> 
    
  • Ton principe d'organisation des données n'est pas correct :
    Si un visiteur publie plusieurs commentaires, il faudra répéter le nom de son blason à chaque commentaire.
    S'il faut changer son blason, il faut corriger tous ses commentaires
    Il sera également difficile de vérifier qu'un blason se soit pas attribué à plusieurs commentateurs.

    Il vaut mieux créer un fichier avatars.txt dans le dossier data/medias où chaque ligne contiendra le nom du commentateur et son blason séparé par un caractère spécifique.

    Cela évitera de reprendre tous les commentatires un par un pour ajouter ce champ avatar.

  • JoséJosé Member

    Dans l'absolu tu as raison , dans mon cas ( peu de visiteurs laissent un commentaire ) c'est plus facile à gérer:

    Si j'attribue 'avatar_5' à un commentateur, le jour où il change d'avatar, il garde 'avatar_5' , mais je remplace l'image de avatar_5.png
    je dois juste garder la correspondance ( en mémoire ou , au pire ,en visionnant la page contact sur le site . ) Ce qui est facile pour 20 ou 30 attributions d'avatar , n'est plus gérable au delà : tes remarque sont bien justifiées. Sinon la solution du fichier avatars.txt peut convenir.

Connectez-vous ou Inscrivez-vous pour répondre.