1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

[TUTO][1.7.*] Bloquer les boutons de vote lorsque l'on ne peut pas voter :D

Discussion dans 'Vos Tutoriels' créé par guedesite, 30 Septembre 2018.

MineStrator, Votre hébergeur de serveur minecraft
  1. guedesite

    guedesite 1er classe

    68
    15
    8
    ¤ Patch | Vote | Bloquer les boutons lorsque le joueur ne peux pas voter ¤

    Tous d'abord créez un fichier en .php que nous allons nommé votetemps.php et copiez / collez ce code dedans

    Code:
    <?php
    $id = $liensVotes['id'];
    
    if(!ExisteJoueur($_Joueur_['pseudo'], $id, $bddConnection))
        CreerJoueur($_Joueur_['pseudo'], $id, $bddConnection);
    
    $donnees = RecupJoueur($_Joueur_['pseudo'], $id, $bddConnection);
    $lectureVotes = LectureVote($id, $bddConnection);
    
    $donnees = RecupJoueur($_Joueur_['pseudo'], $id, $bddConnection);
    $lectureVotes = LectureVote($id, $bddConnection);
    
        if(!Vote($_Joueur_['pseudo'], $id, $bddConnection, $donnees, $lectureVotes['temps']))
        {
            echo '<button type="submit" style="cursor: not-allowed;width: 150px; margin: 10px;" class="btn btn-primary bouton-vote" name="site" value="'.$liensVotes['id'].'"  disabled>';
            echo GetTempsRestant($donnees['date_dernier'], $lectureVotes['temps'], $donnees);
            echo '</button>';
        }
        else
        {
            echo '<button type="submit" style="margin:10px;" class="btn btn-primary bouton-vote" name="site" value="'.$liensVotes['id'].'" onclick="window.open(\''.$liensVotes['lien'].'\',\'Fiche\',\'toolbar=no,status=no,width=1350 ,height=900,scrollbars=yes,location=no,resize=yes,menubar=yes\')" >';
            echo $liensVotes['titre'];
            echo '</button>';
        }
    
    ?>
    c'est le bouton qui va être appellé à chaque boucle,
    placez ce fichiez dans le dossier pages de votre thème ( ex: theme/default/pages/votetemps.php )
    ouvrez ensuite le fichier vote qui se trouve dans le dossier pages de votre theme ( ex: theme/default/pages/voter.php )

    rendez-vous à la boucle générant les boutons ( ici ligne 70 avec le thème NeoCraft Delta )
    [​IMG]

    et remplacer l'encadrer par ce-là :

    Code:
    include('theme/'.$_Serveur_['General']['theme'].'/pages/votetemps.php');
    qui appelle le fichier que l'on avait créé juste avant ce qui donne :

    [​IMG]

    ensuite placez à la fin de votre page ce-si :

    Code:
    <?php
    function RecupJoueur($pseudo, $id, $bddConnection)
        {
            $line = $bddConnection->prepare('SELECT * FROM cmw_votes WHERE pseudo = :pseudo AND site = :site');
            $line->execute(array(
                'pseudo' => $pseudo,
                'site' => $id    ));
            $donnees = $line->fetch(PDO::FETCH_ASSOC);    
            return $donnees;
        }
        
        function Vote($pseudo, $id, $bddConnection, $donnees, $temps)
        {
            if($donnees['date_dernier'] + $temps < time())
            {
                return true;
            }
            else 
                return false;
        }
        
        function ExisteJoueur($pseudo, $id, $bddConnection)
        {
            $line = $bddConnection->prepare('SELECT * FROM cmw_votes WHERE pseudo = :pseudo AND site = :site');
            $line->execute(array(
                'pseudo' => $pseudo,
                'site' => $id    ));
                
            $donnees = $line->fetch(PDO::FETCH_ASSOC);
            
            if(empty($donnees['pseudo']))
                return false;
            else
                return true;
        }
        
        function CreerJoueur($pseudo, $id, $bddConnection)
        {
            $req = $bddConnection->prepare('INSERT INTO cmw_votes(pseudo, site) VALUES(:pseudo, :site)');
            $req->execute(array(
                'pseudo' => $pseudo,
                'site' => $id
                ));
        }
        
    function GetTempsRestant($temps, $tempsTotal, $donnees)
        {
            $tempsEcoule = time() - $temps;
            $tempsRestant = $tempsTotal - $tempsEcoule;
            $tempsH = 0;
            $tempsM = 0;
            while($tempsRestant >= 3600)
            {
                $tempsH = $tempsH + 1;
                $tempsRestant = $tempsRestant - 3600;
            }
            while($tempsRestant >= 60)
            {
                $tempsM = $tempsM + 1;
                $tempsRestant = $tempsRestant - 60;
            }
            if($tempsM <= 9)
            {
                return $tempsH. 'H0' .$tempsM;
            }
            else
            {
                return $tempsH. 'H' .$tempsM;
            }
        }
    
        function LectureVote($id, $bddConnection)
        {
            $req = $bddConnection->prepare('SELECT * FROM cmw_votes_config WHERE id = :id');
            $req->execute(array('id' => $id));
            return $req->fetch(PDO::FETCH_ASSOC);
        }
    ?>
    

    tous à la suite
    [​IMG]

    et voila ! les boutons seront bloqué et inscriveront les temps restant !
    [​IMG]
    Merci de vous Connecter/S'inscrire pour voir les liens.
    guedesite#0799​
     
    • J'aime J'aime x 3
  2. DevilishDante

    DevilishDante Soldat

    28
    3
    3
    Tuto super bien expliqué marche au poil ,merci ;););););)
    [​IMG]
     
  3. guedesite

    guedesite 1er classe

    68
    15
    8
    Oui bas hein ! xD j'ai juste adapté le tuto que j'ai fait il y a 6 - 8 mois de la 1.6 pour la 1.7
     
    • Fun Fun x 1
  4. DevilishDante

    DevilishDante Soldat

    28
    3
    3
    n'empêche que c'est bien utile XD
     
  5. Mario359

    Mario359 ✬ Maréchal ✬

    1 021
    144
    63
    Merci pour ce tutoriel, est-ce que tu saurais comment envoyer directement la récompense de vote lors du clique sur le bouton de vote (avec votetemps.php) ?
    Car je n'aime pas le système d'obtention des récompenses actuel où il faut retourner sur le site pour cliquer sur un bouton (Recevoir mes récompenses) pour obtenir ses objets, c'est une perte de temps dans mon cas car je n'utilise pas les votes pour obtenir les jetons
     
  6. guedesite

    guedesite 1er classe

    68
    15
    8
    Salut! tu peux tous à fais le faire, il faut que tu touches au fichier controleur/voter.php, dedans tu auras tous ce qu il te faut, si tu t'y retrouve pas, PAF > guedesite#0799, deplus, il est beaucoup plus simple a mettre en place un api de vérification de vote depuis la 1.7 ^^".
     
  7. Justinligny

    Justinligny Soldat

    2
    1
    3
    Un grand merci tu m'as beaucoup aidé ! :)
     
    • J'aime J'aime x 1
  8. VALERIAN2

    VALERIAN2 Soldat

    15
    0
    1
    le tuto ne fonctionne plus à partir de la 1.7.2, pourriez vous s'il vous plaît le mettre à jour ?
     
    Dernière édition: 30 Mars 2020
  9. Emilien52

    Emilien52 Administrateur Forum CMW Staff Administrateur Forum Directeur support Support

    375
    29
    28
    C'est désormais intégrer dans la 1.7.2
    Plus besoin de le mettre à jour
     

Partager cette page

Chargement...