AccueilFAQRechercherMembresGroupesS'enregistrerConnexion

Forum de graphisme, codage et game design proposant des tutoriels, astuces, libres services et commandes dans les domaines de l'infographie amateur, de l'intégration web (HTML et CSS essentiellement) ainsi que dans la conception de RPG sur forum.


    Système + et - de la réputation revisité : Compteur de "J'aime"

    Partagez
    avatar
    Invité

    le Dim 11 Aoû 2013 - 5:55

    Rappel du premier message :

    Bonjour ou bonsoir, bonne nuit, peut-être ? ^^

    Pour mon troisième tuto, je vous propose un système de réputation complétement revisité !


    Introduction



    Vous vous souvenez du + et du - sur le côté des messages comme ici, sur Never-Utopia, et cette jolie barre verte pour les votes positifs et rouges pour les négatifs ? C'est pas très esthétique, pas très personnalisable, n'est-ce pas ? Oh et combien de fois on a oublié de voter après avoir lu un post trop long car il fallait remonter le sujet afin de retrouver nos petits + et nos petits - ?

    Pas très pratique tout ça. :hum: La logique voudrait qu'on puisse voter une fois le post lu et comme ils ne sont pas tous de la même longueur...

    Alors pour les feignants comme moi qui ont la flemme de remonter les sujets, je vais vous montrer comment positionner le système de réputation en bas du message juste au-dessus de la signature (pour celles et ceux qui ne l'ont pas déplacée dans les templates bien sûr). Mais ce n'est pas tout ! Nous allons supprimer ce + et ce - ainsi que cette barre impossible à personnaliser et les remplacer par un système de "J'aime" qui indiquera le nombre de votes positifs reçus.

    Notez que les votes négatifs ne seront plus pris en compte. Pour celles et ceux que cela pourrait gêner, il suffit de se dire que si tu n'aimes pas, tu votes pas. xD Vous vous exprimer en ne vous exprimant pas... (Désolé, je fatigue ! ^^) . C'est beaucoup moins "triste" que de savoir que des personnes n'aiment clairement pas ce qu'on a fait ou dit. Et oui, cela me fait de la peine de recevoir des appréciations négatives, que voulez-vous, je suis un grand sensible. *sort*

    Passons aux choses sérieuses. Voici, en images, ce à quoi vous pouvez vous attendre en suivant ce tutoriel :

    Exemple :

    Dans le premier message, l'icône en forme de pouce relevé correspond au résultat lorsque personne n'a voté.
    Dans le deuxième message, l'icône indique que vous venez de voter. Petit plus, vous n'êtes pas redirigé vers la page de confirmation des votes. Lorsque vous votez vous pouvez continuer de lire les messages suivants tranquillement !



    Dans cette seconde image, le premier message vous montre ce que vous obtenez quand une personne a déjà voté mais pas vous.
    Et enfin, dans le deuxième message, il s'agit du résultat obtenu sur un message où vous avez déjà voté.

    Notez que le nombre de votes disparaît au moment où vous cliquez sur l'icône "J'aime" pour enregistrer votre vote. Le total des "J'aime" réapparaît une fois la page revisitée !

    Attention, il n'y a aucune garantie que ce tutoriel fonctionne si vous avez trop modifié le template viewtopic_body. Vous devez aussi avoir un compte fondateur sur un forum phpBB 2 pour pouvoir modifier le template qui nous intéresse et, bien sûr, avoir activé le système de réputation dans les modules.

    Je vous ai mis l'eau à la bouche ?
    *part se cacher*


    Le Tutoriel


    Javascript

    On va commencer par un copier/coller tout simple pour le début.

    Panneau d'administration > Modules > Gestion des codes Javascript.

    Vérifiez que vous avez activé et enregistré la gestion des codes Javascript. Puis créer un nouveau javascript, mettez le titre que vous voulez, cochez "Sur toutes les pages" ou "Sur les sujets", comme vous voulez, bien qu'en choisissant "Sur les sujets", j'ai eu l'impression que le code chargeait plus lentement alors qu'avec la première option, je n'ai rien remarqué.

    Ensuite collez ce code :

    Code:
    $(function(){
            $(".vote").each(function(){
            $(this).find(".vote-button:first a").html('<img src="ADRESSE DE VOTRE IMAGE POUR LE VOTE POSITIF" alt="Voter" title="Voter" />').click(function(){
            $.get($(this).attr("href"));
            $(this).parent().html('<img src="ADRESSE DE VOTRE IMAGE APPARAISSANT LORSQUE VOUS VOTEZ" alt="Vote enregistré" title="Vote engregistré" />');
            return!1
            });
            $(this).closest("tr.post").find("div.vote_pos").append($(this).find(".vote-button:first a")).append($(this).find(".vote-bar").length?' <div class="vote_count" title="Total des votes">'+$(this).find(".vote-bar").attr("title").replace(/^.*\(([0-9]*) .*?\)$/,"$1"):"")+'</div>';
            $(this).remove()
                      })
                    });
    Et validez. (Ce code JS a été fourni à plusieurs reprises par le staff de forumactif, je l'ai juste un peu adapté donc ne me demandez pas de le modifier, mes connaissances en JS sont quasi nulles contrairement au HTML et CSS où je me débrouille.)
    Je n'ai pas fourni les images donc vous devrez faire les vôtres, il suffira de remplacer les phrases explicatives en capitales dans le code JS par l'url de l’image correspondante. Ici, il s'agit d'une image cliquable du même genre que le "J'aime" de Facebook (ou ce que vous voulez, vous pouvez même remplacer le code de l'image par du HTML histoire de faire sans image pour ceux qui préfèrent le texte et une belle mise en forme via CSS, à vous de jouer avec votre créativité) et d'une autre image qui indique que vous avez cliqué dessus, comme un "J'aime" avec moins d'opacité par exemple.

    Faites attention aux tailles de vos images, elles devront toutes être de la même hauteur pour un alignement optimal (Pareil si vous changer les images par du HTML).


    Template



    Nous allons maintenant placer le système de réputation. Grâce au JS que nous venons d'installer la tâche va être grandement simplifiée, il suffira de mettre une div et une class là où nous souhaitons afficher nos "J'aime".

    Panneau d'administration > Affichage > Templates > viewtopic_body

    Repérez :

    Code:
    <!-- BEGIN switch_signature -->
    et placez

    Code:
    <div class="vote_pos"></div>
    juste au-dessus pour placer le système de vote au-dessus de la signature. Si vous avez bouger la signature, repérez plutôt :

    Code:
    <div>{postrow.displayed.MESSAGE}</div>
    et placez le code que je vous ai donné plus haut, juste après cette partie, cela devrait afficher les votes juste en-dessous des messages.

    Enfin, pour éviter qu'au chargement de la page la bar de vote s'affiche quelques secondes avant que le JS prenne le relais, repérez ceci :

    Code:
    <!-- BEGIN switch_vote_active -->
     <div class="vote gensmall">

    Et remplacez par :

    Code:
    <!-- BEGIN switch_vote_active -->
     <div class="vote gensmall" style="display: none">

    J'ai juste rajouté un display : none afin d'empêcher la bar d'être générée pour que cela fasse plus propre à l'affichage. :)


    CSS



    La dernière étape : la mise en forme via le CSS.

    Panneau d'administration > Affichage > Couleurs > Feuille de style CSS

    Collez ceci :

    Code:
    .vote_pos
    {
      width: 100%; /* permet de prendre toute la largeur du message */
      height: 30px; /* hauteur de toutes vos images à adapter selon les vôtres */
      margin-top: 10px; /* petite marge pour éviter que les votes se collent trop prêt du message */
      text-align: right; /* positionne le bouton de vote et le bouton de vote cliqué sur la droite du message */
    }
    .vote_count /* personnalise le nombre des votes */
    {
      float: left; /* oblige le total des votes à bien s'afficher à gauche des messages, aligné avec le bouton de vote cliquable */
      width: 30px; /* largueur de l'image de fond qui s'affiche sous le total des votes */
      height: 30px; /* hauteur de toutes vos images à adapter selon les vôtres, doit être identique au height du vote_pos */
      padding-top: 6px; /* à modifier selon votre image de fond afin de bien positionner vos chiffres sur la dite image */
      color: #000000; /* la couleur des chiffres du total des votes d'un message */
      font-size: 10px; /* la taille des chiffres du total des votes d'un message */
      font-weight: bold; /* met en gras les chiffres du total des votes d'un message */
      text-align: center; /* centre les chiffres du total des votes d'un message par rapport à l'image de fond si tant est que vous l'ayez bien centrée lors de sa création */
      background-image: url("ADRESSE URL DE VOTRE IMAGE DE FOND DES CHIFFRES DU TOTAL DES VOTES");
      background-repeat: no-repeat; /* empêche que l'image de fond se répète */
    }

    Lisez bien les annotations entre /* */ pour personnaliser le code selon vos besoins, puis supprimez-les, elles risquent de vous empêcher de valider votre css à cause des apostrophes (ou des accents, des virgules, je ne sais plus, je sais juste que j'ai déjà eu des bogs et c'étaient les annotations les responsables ! ><).

    Validez et vous voilà avec un tout nouveau système de réputation !


    Merci d'avoir lu ce tutoriel jusqu'au bout !

    Enfin un crédit pour Never-Utopia serait grandement apprécié si vous utilisez ce système de votes pour l'aide que ce tutoriel vous a - peut-être - apporté et pour le temps que j'ai passé à rédiger ce sujet et à me prendre la tête avec ce JS qui ne fonctionnait pas au départ ! :wall: 

    A vous les studios ! Very Happy

    P.S. : Vous pouvez observer à peu près le même système que je propose dans ce tutoriel sur ce forum officiel de FINAL FANTASY XIV. C'est tout en bas. Si vous avez un compte et êtes connecté, un bouton "Jaime" s'affiche à droite et le vote s'ajoute presque instantanément aux chiffres entre parenthèses à côté du pouce relevé. ;)Je fais de la pub en passant pour le jeu. xD

    Merci de laisser un message pour donner vos impressions, commentaires et/ou remerciements ^^
    Si vous avez des problèmes avec ce LS, venez poster ici.


    Dernière édition par Onyx le Sam 5 Mai 2018 - 23:33, édité 7 fois (Raison : Petite amélioration)
    avatar
    Kinjiro
    MasculinAge : 19Messages : 80

    le Jeu 17 Juil 2014 - 14:41

    Merci Very Happy



    avatar
    Invité

    le Mer 30 Juil 2014 - 0:35

    Thanks!
    avatar
    Trych
    FémininAge : 23Messages : 80

    le Ven 22 Aoû 2014 - 3:22

    merci pour l'astuce



    avatar
    Glow
    FémininAge : 18Messages : 93

    le Dim 7 Sep 2014 - 15:27

    Merci, c'est super que des gens pensent à ces petits détails ! Ça peut paraître insignifiant mais en fait, ça contribue à rendre un forum plus.. fluide ? Bref, merci, c'est génial OuO
    avatar
    LHOOQ
    MasculinAge : 26Messages : 20

    le Mer 24 Sep 2014 - 0:17

    Merci!
    avatar
    Gerrard
    MasculinAge : 27Messages : 12

    le Mer 1 Oct 2014 - 17:40

    Merci
    avatar
    Shatters
    FémininAge : 25Messages : 56

    le Mar 7 Oct 2014 - 13:51

    Merci !



    J'ai appelé les bourreaux pour, en périssant, mordre la crosse de leurs fusils. J'ai appelé les fléaux, pour m'étouffer avec le sable, avec le sang. Le malheur a été mon dieu. Je me suis allongé dans la boue. Je me suis séché à l'air du crime. Et j'ai joué de bons tours à la folie. (Rimbaud)
    avatar
    reshiram44
    MasculinAge : 20Messages : 380

    le Mar 21 Oct 2014 - 23:55

    merci



    avatar
    Lihuén
    FémininAge : 28Messages : 544

    le Mer 5 Nov 2014 - 1:05

    C'est justement ce que je cherchais, merci beaucoup ! (:



    avatar
    Eros
    MasculinAge : 23Messages : 19

    le Mar 18 Nov 2014 - 16:54

    merci
    avatar
    Ouat
    FémininAge : 34Messages : 74

    le Mer 3 Déc 2014 - 8:07

    Merci :love:
    avatar
    karadoc
    MasculinAge : 48Messages : 28

    le Jeu 18 Déc 2014 - 16:46

    Merci
    Mais ça ne marche pas pour les 'forum' mis en 'blog'
    Dommage, mais très bon tuto et très bien expliqué. Bravo
    avatar
    Xenala
    FémininAge : 35Messages : 28

    le Sam 27 Déc 2014 - 12:11

    Merci, sympa tout ça ^^
    avatar
    Ananké
    FémininAge : 32Messages : 45

    le Dim 15 Fév 2015 - 18:00

    Merci beaucoup pour cette astuce et le temps passé dessus Wink
    avatar
    Ryuu
    FémininAge : 24Messages : 61

    le Mar 12 Mai 2015 - 12:31

    Merci !



    avatar
    Izaya Orihara
    FémininAge : 17Messages : 105

    le Dim 31 Mai 2015 - 13:23

    Merci du partage!
    avatar
    Saya Shirayuki
    FémininAge : 25Messages : 150

    le Mer 10 Juin 2015 - 12:08

    Génial ! Merci !
    Abate.7
    MasculinAge : 23Messages : 58

    le Lun 3 Aoû 2015 - 0:45

    merci
    avatar
    SpaceSapien
    MasculinAge : 27Messages : 15

    le Sam 5 Sep 2015 - 14:50

    Tout à fait ce que je recherchais, merci :)
    avatar
    Kelalin
    FémininAge : 26Messages : 1965

    le Sam 5 Sep 2015 - 15:58

    Merci (*´・v・)
    avatar
    Jeremie
    MasculinAge : 23Messages : 4

    le Dim 20 Sep 2015 - 21:14

    Merci bien
    avatar
    Laety
    FémininAge : 23Messages : 13

    le Mer 21 Oct 2015 - 19:50

    Bonjour ! Je crois que ce tuto est tout à fait ce que je cherche ! Après les nombreuses supplications de mon équipe, je vais pouvoir leur montrer que j'écoute ce qu'ils suggèrent et demandent XD !
    Merci de le proposer !

    Mais dommage qu'il soit en hide ^^ ! Je vais voir si j'arrive à l'utiliser ! sinon je reviendrai râler ! Merci encore de partager !
    avatar
    Laety
    FémininAge : 23Messages : 13

    le Mer 21 Oct 2015 - 20:08

    excusez moi du dp mais je vois pas de bouton d'édition oO

    Alors je viens d'essayer, et ça n'apparait même pas :/ Je ne sais pas ce que j'ai mal fait, mais si quelqu'un pouvait m'aider ce serait cool ! Pourtant le tuto est hyper bien fait et hyper bien expliqué, mais j'ai du merdouiller un code :/
    avatar
    Rozenbrez
    FémininAge : 27Messages : 1383

    le Lun 28 Déc 2015 - 18:40

    Merci pour le tuto, il va bien me servir. :)

    avatar
    Fantôma
    MasculinAge : 16Messages : 67

    le Jeu 7 Avr 2016 - 14:09

    merci !



    Contenu sponsorisé


      La date/heure actuelle est Dim 21 Oct 2018 - 19:41