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

[Tutoriel] Ajouter une console dans l'administration de votre site

Discussion dans 'Vos Codes/Scripts pour CraftMyWebsite' créé par Hexday18, 20 Avril 2017.

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

    Hexday18 Commandant

    669
    76
    28
    Vous devez créer page console.php dans le dossier "pages" et mettre ce code :
    HTML:
    <div class="container">
    <center>
    
    </center>
    </div>
    
    Entre les deux balises <center>, vous mettez :

    HTML:
        <meta charset="utf-8">
        <script src="jquery.min.js"></script>
        <script type="text/javascript">
       
        function sendcommand(){                                        // Envoie de la commande au script PHP
            var commande = $("#commande").val();                    // Récupération du contenue du champ texte
            var form_data = { COMMANDE : commande };
            $.ajax({                                                // Envoie des données par method POST à get_console.php
                type: "POST",
                url: "get_console.php",
                data: form_data,
                dataType: "html",
                error:function (xhr, ajaxOptions, thrownError) {
                    alert(xhr.status+"T"+ajaxOptions+"I"+thrownError);
                },
            });
            document.getElementById('commande').value = "";            // On vide le champ texte après avoir envoyer la commande
    
        }
       
        function view_console(){                                    // Récupération de la console via Ajax
        $.ajax({
            url: "get_console.php",
            dataType: "html",
            error:function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status+"T"+ajaxOptions+"I"+thrownError);
            },
            success: function(response){
                $('#console').html(response);                        // Insertion du code html généré par get_console.php dans la div avec id="console"
            }
            });
        }
        setInterval( view_console , 1500);                             //Intervale d'actualisation de la console, par défaut 1500
                                                                    // Ne pas indiquer une valeur trop faible pour éviter de faire lagger le Serveur et le Client
        </script>
    <style>
    @font-face {
        font-family: "Open Sans";
        font-style: normal;
        font-weight: 400;
        src: local("Open Sans"), local("OpenSans"), url("http://fonts.gstatic.com/s/opensans/v10/u-WUoqrET9fUeobQW7jkRT8E0i7KZn-EPnyo3HZu7kw.woff") format("woff");
    }
    .console {
        width: 700px;
        height: 400px;
        background-color:black;
        color:#FFF;
        font-family: 'Open Sans';
        font-size:11px;
        overflow: auto;
        font-weight:bold;
    }
    .sendcommand{
        width: 690px;
        padding:5px;
        background-color:black;
        color:#BBB;
        border:none;
    }
    </style>
    </head>
    <body>
        <div class="console">
            <div id="console">
            &nbsp;
            </div>
        </div>
        <input class="sendcommand" type="text" id="commande" onkeypress="if(event.keyCode==13){sendcommand();}" placeholder="Entrer votre commande"/>

    Nous avons pour l'instant mis en place le code de base permettant d'afficher la console.
    Maintenant dans
    url: "get_console.php",
    qui se retrouve à 2 reprises dans le code, vous devez changer "get_console.php" par le chemin dans votre ftp qui mène à ce fichier qui va se trouver dans le dossier include.

    Donc une fois cela fait, vous créez dans ce dossier include un fichier php nomé get_console.php et qui va contenir :

    Code:
    <?php
    require 'JSONAPI.php';
    
    $host = "127.0.0.1";     // Adresse IP du serveur
    $port = 20059;             // Port du serveur, par défaut 20059
    $username = "admin";     // Nom d'utilisateur dans le fichier users.yml
    $password = "changeme";         // Mot de passe de l'utilisateur dans users.yml
    
    $api = new JSONAPI($host,$port,$username,$password, "");
    $console = $api->call("getLatestConsoleLogs");                        // Récupération des 50 dernières lignes de la console dans un tableau
    $console = $console[0]["success"];   
                                   
    // var_dump($api->call("getLatestConsoleLogs")); Pour afficher la console à l'état brute
    
    if(isset($_POST["COMMANDE"]) && $_POST["COMMANDE"] != ""){            // Envoie de la commande au serveur
        $api->call("runConsoleCommand", array($_POST["COMMANDE"]));
    }
    
    foreach ($console as $value) {                                        // foreach permet de parcourir le tableau et de traiter lignes après lignes
    
        $console = $value["line"];
        if(strpos($console, " WARN]:") == true || strpos($console, " ERROR]:") == true) {
            $console = '<span style="color: red;">'.$console;             // Affichage de la ligne en rouge si on détecte
        }                                                                 // une erreur( chaine de texte " WARN]:" et " ERROR]:")
        $string_color = array("[0;33;22m",                                // Liste des codes 'couleurs' retourné par JSONAPI
                       "[0;37;1m",
                       "[m",
                       "[0;32;1m",
                       "[0;33;1m",
                       "[0;37;22m",
                       "[0;34;1m");
    
        $string_code = array('<span style="color: #57A82F;">',            // Liste des correspondances de chacun des codes 'couleurs' à une couleur en HTML
                   '<span style="color: #FFF;">',
                   '',
                   '<span style="color: #08F600;">',
                   '<span style="color: #FEF600;">',
                   '<span style="color: #FFF;">',
                   '<span style="color: #0000DD;">');
                   
        $console = str_replace($string_color, $string_code, $console);    // Remplacement des codes 'couleurs' par sa correspondance en HTML
    
        echo "<span style=\"color:#BBB;\">".$console."</span><br/>";      // Affichage de la console en HTML pour être récupéré par Ajax
    }
    ?>

    Maintenant nous devons changer ceci :

    Code:
    require 'JSONAPI.php';
    
    $host = "127.0.0.1";     // Adresse IP du serveur
    $port = 20059;             // Port du serveur, par défaut 20059
    $username = "admin";     // Nom d'utilisateur dans le fichier users.yml
    $password = "changeme";         // Mot de passe de l'utilisateur dans users.yml

    Donc JSNOAPI.php vous devez mettre le lien de redirection qui ira vers le dossier include dans votre ftp comme avant.

    Host, port, username et password vous devez changer ça par vos informations JSONAPI.

    Ensuite toujours dans le dossier include, vous devez créer un fichier nommé JSONAPI.php qui contiendra donc le script du plugin jsonapi soit :

    Partie 3 :)
     
  2. Florentlife

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

    2 594
    376
    83
    • Le script du fichier SONAPI est dispo dans controleur/json
     
    • Utile Utile x 1

Partager cette page

Chargement...