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

    63
    13
    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
    2
    3
    Tuto super bien expliqué marche au poil ,merci ;););););)
    [​IMG]
     
  3. guedesite

    guedesite 1er classe

    63
    13
    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
    2
    3
    n'empêche que c'est bien utile XD
     
  5. Mario359

    Mario359 ✬ Maréchal ✬

    1 116
    155
    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

    63
    13
    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 ^^".
     

Partager cette page

Chargement...