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

Statut serveur + liste des joueurs connectés

Discussion dans 'Vos Codes/Scripts pour CraftMyWebsite' créé par Kherra59, 22 Février 2017.

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

    Kherra59 Soldat

    36
    7
    8
    Salutations,

    Je vous met une petite modif que j'ai apporté sur mon site test, qui permet de modifier les informations lues depuis le menu.

    Le thème utilisé est celui par défaut.

    A la base, vous avez dans le menu, un bouton "Serveur" qui ne vous affiche qu'un sous menu "ban-list". Perso, ce ne me plaît pas, je préfère avoir les informations relatives à mon serveur.

    Donc j'ai modifié le code de manière a virer ce sous-menu et à y insérer les données de mon serveur que je récupère via JSONapi (Statut du serveur, Version, Ping) et j'en ai profité pour y glisser l'adresse IP, c'est quand même plus pratique.

    C'est parti, on s'attaque au fichier ./theme/default/entete.php :

    On remplace le bloc (ligne 23 à 46) :
    PHP:
                <ul class="dropdown-menu">
                    <?php
             
                    
    for($k 0$k count($_Menu_['MenuListeDeroulante'][$_Menu_['MenuTexteBB'][$i]]); $k++)
                    {
                        if(
    $_Menu_['MenuListeDeroulante'][$_Menu_['MenuTexteBB'][$i]][$k] == 'LastLinkDontDelete'){
                         
                        }elseif(
    $_Menu_['MenuListeDeroulante'][$_Menu_['MenuTexteBB'][$i]][$k] == '-divider-')
                        {
                            echo
    '<li class="divider"></li>';
                        }
                     
                        else
                        {
                            echo 
    '<li><a href="' .$_Menu_['MenuListeDeroulanteLien'][$_Menu_['MenuTexteBB'][$i]][$k]. '" style="font-weight: 600;color: #4f8db3;">' .$_Menu_['MenuListeDeroulante'][$_Menu_['MenuTexteBB'][$i]][$k]. '</a></li>';
                        }
                    }
                 
                    
    ?>
                </ul>
    Par celui-la :
    PHP:
    <ul class="dropdown-menu">
                    <div style="width: 400px;padding:10px;">
                        <?php
                            $lecture 
    = new Lire('modele/config/configServeur.yml');
                            
    $lecture $lecture->GetTableau();
                            for(
    $j 0$j count($lecture['Json']); $j++) {
                                if(!
    $conEtablie[$j] == true) {
                                    
    ?>
                                    <a href="#">Statut du serveur : <span style="color: red;">Hors-Ligne</span></a>             
                                <?php
                                
    }
                                else
                                {
                                    for(
    $i 0$i count($serveurStats); $i++)
                                    {
                                        
    ?>
                                        <span style="font-weight: bold;">IP du serveur : </span>VOTRE_ADRESSE_IP<br />
                                        <span style="font-weight: bold;">Statut du serveur : </span><span style="color: green;">En Ligne</span><br />
                                        <span style="font-weight: bold;">Version : </span><?php echo $serveurStats[$i]['version']; ?><br />
                                        <span style="font-weight: bold;">Ping : </span><?php echo $serveurStats[$i]['usedMemoryServer']; ?>ms<br />
                                        <?php
                                    
    }
                                }                       
                            }
    ?>
                    </div>
                </ul>
    Je vous passe les explications, je pense que le rendu sera assez explicite.

    On ne va pas s'arrêter en si bon chemin !
    A droite du menu, vous avez un lien "Membres inscrit :".
    Mon avis ? C'est nul et inutile...

    Encore une fois, j'ai modifié le code qui va bien pour en faire un petit dropdown qui nous affiche la liste des joueurs connectés avec leur petit avatar tout mignon, ce qui est quand même bien plus sympa !

    On retourne dans notre fichier entete.php et on remplace (Ligne 72-74):
    PHP:
            <li class="divider-vertical"></li>
                <li><a href="#">Membres inscrits: <?php $req_nbrMembre2 $bddConnection->query('SELECT * FROM cmw_users'); $Membretotal $req_nbrMembre2->rowCount(); echo $Membretotal;?></a></li>
            <li class="divider-vertical"></li>
    Par ceci :
    PHP:
            <li class="divider-vertical"></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Joueurs connectés<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <div style="width: 400px;padding:10px;">
                <?php
                $lecture 
    = new Lire('modele/config/configServeur.yml');
                
    $lecture $lecture->GetTableau();
                        for(
    $j 0$j count($lecture['Json']); $j++) {
                            if(!
    $conEtablie[$j] == true) {
                                
    ?>
                                <a href="#">Statut du serveur : <span style="color: red;">Hors-Ligne</span></a>             
                            <?php
                            
    }
                            else
                            {
                                for(
    $i 0$i count($serveurStats); $i++)
                                {
                                    
    ?>
                                <span style="font-weight: bold;">Joueurs actuellement connectés (<?php echo $serveurStats[$i]['enLignes'].' / '.$serveurStats[$i]['maxJoueurs']; ?>) :</span><br />
                                <?php
                                    $joueurCo 
    $serveurStats[$i]['joueurs'];
                                    foreach(
    $joueurCo as $tabJoueur)
                                        echo 
    '<img class="icon-player-topbar-size" src="http://api.craftmywebsite.fr/skin/face.php?u='.$tabJoueur.'&s=32&v=front" /> '.$tabJoueur.'<br />';
                                }
                            }                       
                        }
    ?></div></ul></li>
            <li class="divider-vertical"></li>
    Et voilà, vous avez maintenant les slots dispos de votre serveur (joueur en ligne / joueur maximum), et la liste des joueurs actuellement connectés sur votre serveur avec une image de leur tronche :)

    Dernière petite modif, parce que la propriété CSS : class="icon-player-topbar-size", n'existe pas..

    Donc on va sur le fichier ./theme/default/css/style.css et on rajoute à la fin :
    Code:
    .icon-player-topbar-size
    {
        margin-right: 4px;
        width: 21px;
        height: 21px;
        margin-bottom: 5px;
    }
    Voilà, c'est terminé !

    P.S = Certains d'entre vous vont surement crier au scandale car ce n'est pas le code le plus optimisé du monde. C'est vrai, mais ça fait le boulot, donc ça me convient bien !

    P.S2 = Je ne peux pas mettre les screens qui vont bien, je suis au boulot et le proxy bloque le code CSS de mon site test --' Donc si quelqu'un ajoute ce code et veut poster un screen, qu'il se fasse plaisir !
     
    • J'aime J'aime x 3
    • Instructif Instructif x 1
    Dernière édition: 22 Février 2017
  2. ddzouille0202

    ddzouille0202 Soldat

    7
    1
    3
    Voila les screens, j'aime bien ton script mais quand on a plusieur serveur comment fait-ton ?
     

    Fichiers attachés:

    • 354.PNG
      354.PNG
      Taille de fichier:
      21.9 KB
      Affichages:
      408
    • Capture.PNG
      Capture.PNG
      Taille de fichier:
      42.3 KB
      Affichages:
      392
    • J'aime J'aime x 1
  3. ZeTioZ

    ZeTioZ Soldat

    5
    2
    3
    Salut, possible de faire en sorte que le "En ligne" soit genre, dynamique ? genre, si le serveur est off, il marque "hors ligne" ?
    Merci d'avance de ta réponse ^^
     
  4. LucernoPower

    LucernoPower Caporal

    132
    12
    18
    Indice: Javascript (hé oui je fait plus de code pré-fait mais je te fait réfléhir)
     
  5. ZeTioZ

    ZeTioZ Soldat

    5
    2
    3
    Je sais pas du tout coder en Js x) le php je connais les bases mais js pas du tout x)
     
  6. Florentlife

    Florentlife Administrateur Forum CMW Staff Administrateur Forum Développeur officiel de CraftMyWebsite

    2 594
    376
    83
    J'aurais plutôt dit AJAX :) si ça t intéressé y a pleins de tutos sur cette fonction JavaScript et tu peux l utiliser sans avoir de base si tu te débrouilles bien ;)
     
  7. ZeTioZ

    ZeTioZ Soldat

    5
    2
    3
    Je veux bien essayer ^^, mais il y avait pas moyen de prendre des méthodes de JSONAPI et de les mettre dans le code php ?
     
  8. Florentlife

    Florentlife Administrateur Forum CMW Staff Administrateur Forum Développeur officiel de CraftMyWebsite

    2 594
    376
    83
    Le principe de l Ajax est de faire une requête toutes les x secondes vers une autre page web ( comme si ça ouvrait ton navigateur en arrière plan sur cette page ). Cette page est la page de traitement qui est écrite en PHP et qui renvoie des données a la page de l utilisateur.

    En gros : sur la page normal tu faisbune requête Ajax vers la page x
    La page x de charge de récupérer les variables jspnapi et de les renvoyer actualisé (pour renvoyé il suffit simplement d écrire les données (en JSON généralement ) sur la page x donc des écho )
    La page utilisateur va récupérer les données JSON et il te suffira juste de les traiter ( seul partie qui necessite des bidouillage en JS )
     
  9. ZeTioZ

    ZeTioZ Soldat

    5
    2
    3
    Je comprends le fonctionnement, et merci de ton explication, mais comme j'ai dis, je connais ni l'un ni l'autre langage, je ferais des recherches ^^
     
    • J'aime J'aime x 1
  10. LucernoPower

    LucernoPower Caporal

    132
    12
    18
    Si tu n'arrive vraiment pas je peut t'aider mais je ne fait plus de code pré-fait car sinon tu n'apprendra pas ;)
     

Partager cette page

Chargement...