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

[TUTO] Rajouter une modification d'etat des tickets.

Discussion dans 'Vos Tutoriels' créé par Sprik07, 29 Mai 2015.

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

    Sprik07 Visiteur CMW Staff

    414
    164
    43
    Bonjour !
    Alors me voici pour un rajout assez sympathique qui va servir à modifier l'etat de vos ticket pour voir s'il est résolu ou non !
    Alors tout d'abord je tient à précisé que j'ai tout fait ça moi même sans aide, juste avec la compréhension PHP (J'apprend) & rien d'autre !
    Tout d'abord voici un genre d'interface que vous allez avoir, voir mon site pour des exemples type : Merci de vous Connecter/S'inscrire pour voir les liens.
    Alors commencent toute nos modifications !

    1) Rendez-vous dans ce fichier admin/action.php
    Rajouter ceci :
    PHP:
            case 'switchEtat':
                require_once(
    'admin/actions/switchEtat.php');
            break;
    2) Rendez-vous dans ce dossier admin/actions
    Créer un nouveau fichier d'où le nom : switchEtat.php

    3) Ouvrir ce fichier créer puis coller ce code :
    PHP:
    <?php
    $req 
    $bddConnection->prepare('UPDATE cmw_support SET etat = :etat WHERE id = :id');
    $req->execute(array (
        
    'etat' => $_POST['etat'],
        
    'id' => $_GET['id'],
        ))
    ?>
    4) Rendez-vous dans le dossier admin/donnees
    Ouvrir le fichier : support.php
    Puis supprimer sont contenu & coller ensuite ceci :
    PHP:
    <?php
    $req 
    $bddConnection->query('SELECT id, auteur, message, titre, etat, DAY(date_post) AS jour, MONTH(date_post) AS mois, HOUR(date_post) AS heure, MINUTE(date_post) AS minute FROM cmw_support ORDER BY date_post DESC');

    $aucunTicket false;
    $i 0;

    if(!empty(
    $req))
        while(
    $donnees $req->fetch())
        {
            
    $donneesSupport[$i]['id'] = $donnees['id'];
            
    $donneesSupport[$i]['auteur'] = $donnees['auteur'];
            
    $donneesSupport[$i]['titre'] = $donnees['titre'];
            
    $donneesSupport[$i]['message'] = $donnees['message'];
            
    $donneesSupport[$i]['etat'] = $donnees['etat'];
            
    $donneesSupport[$i]['jour'] = $donnees['jour'];
           
    $donneesSupport[$i]['mois'] = $donnees['mois'];
           
    $donneesSupport[$i]['heure'] = $donnees['heure'];
           
    $donneesSupport[$i]['minute'] = $donnees['minute'];
      
            
    $i++;
        }
    if(empty(
    $req) OR !isset($donneesSupport) OR empty($donneesSupport))
        
    $aucunTicket true;
    ?>
    5) Rendez-vous dans le dossier admin/page
    Ouvrir le fichier : support.php
    Supprimer sont contenu & coller ensuite ceci :
    PHP:
    <h1><center>Gestion des tickets</center></h1>
    </br>
    <?php
    if($aucunTicket)
        echo 
    '<p><center>Aucun ticket n\'a été créé par les membres jusqu\'à présent !</center></p>';
    else { 
    ?>
    <table class="table table-hover">
        <tr class="info">
            <th>Titre</th>
            <th>Auteur</th>
            <th>Etat</th>
            <th>Supprimer</th>
            <th>Sauvegarder</th>
        </tr>



        <?php for($i 0$i count($donneesSupport); $i++) { ?>
        <form class="form-horizontal default-form" method="post" action="?&action=switchEtat&id=<?php echo $donneesSupport[$i]['id']; ?>">
        <tr class="info">
            <td><?php echo $donneesSupport[$i]['titre']; ?></td>
            <td><?php echo $donneesSupport[$i]['auteur']; ?></td>
                    <td><input type="number" name="etat" value="<?php echo $donneesSupport[$i]['etat']; ?>" class="form-control" placeholder="Etat" ></td>
                    <td><a href="?action=supprTicket&id=<?php echo $donneesSupport[$i]['id']; ?>" class="btn btn-danger">Supprimer</a></td>
                <td><input type="submit" class="btn btn-warning" value="Modifier l'état" /></td>
            </tr>
            </form>
        <?php }  ?>
    </table>
    <?php ?>

    6) Rendez-vous dans le dossier theme/[VOTRE_THEME]/pages
    Ouvrir le fichier : support.php
    Trouver les lignes suivantes :
    PHP:
                                <th>Pseudo</th>
                                <
    th>Titre</th>
                                <
    th>Date</th>
                                <
    th>Action</th>
    Puis rajouter ceci juste après les codes cité précédemment :
    PHP:
                              <th>Etat</th>
    7) Toujours dans le même fichier trouver ce code :
    PHP:
                                <td>
                                    <a class="btn btn-warning btn-block <?php if($j%== 0) echo 'StyleSaut'?>" data-toggle="modal" data-target="#<?php echo $tickets['id']; ?>Slide" >Voir</a>
                                </td>
    Puis rajouter ceci juste après le code cité précédemment :
    PHP:
                                <td>
                                <?php
                                $ticketstatus 
    $tickets['etat'];
                                if(
    $ticketstatus == "1"){
                                echo 
    '<button class="btn btn-success ">Résolu</button>';
                                } else {
                                echo 
    '<button class="btn btn-danger ">Non Résolu</button>';
                                }
                                
    ?>
                                </td>

    Ce code à étais fait par TheTueurCity (Merci !)

    8) Rendez-vous dans modele/support/title.class.php
    Supprimer sont contenu & coller ceci :
    PHP:
    <?php
    class TitleTickets
    {
        private 
    $bdd;
       
        public function 
    __construct($bdd)
        {   
            
    $this->bdd $bdd;
        }
       
        public function 
    GetListTickets()
        {
            
    $tickets $this->bdd->query('SELECT id, auteur, message, titre, etat, DAY(date_post) AS jour, MONTH(date_post) AS mois, HOUR(date_post) AS heure, MINUTE(date_post) AS minute FROM cmw_support ORDER BY date_post DESC');
            return 
    $tickets;
        }
    }
    ?>
    9) Rendez-vous dans votre base de données SQL
    Cliquer sur : cmw_support
    Cliquer ensuite sur l'onglet : Structure
    Ensuite ajouter 1 colonne juste après date_post
    Comme nom mettez ceci : etat
    Comme type mettez ceci : INT
    Comme taille/valeurs mettez ceci : 1
    Ensuite sauvegarder.

    Voilà TOUT est terminé je pense bien donc j'espère que mon tuto vous auras plus, & n'hésitez pas à commenter ici pour me parler à propos de ce rajout ! ;)
    Et surtout j'espère que vous appréciez que je sois venu dans cette merveilleuse communauté & merci aux dirigeants de ce fameux CMS/Site ! :)
     
    • J'aime J'aime x 2
    • Utile Utile x 1
    Dernière édition: 30 Mai 2015
  2. Elmoren

    Elmoren Sergent-chef

    290
    52
    28
    Le rendu est sympa :D
     
    • J'aime J'aime x 1
  3. Sprik07

    Sprik07 Visiteur CMW Staff

    414
    164
    43
    Je vient de remarquer un éventuelle problème au niveau du support dans le panel, en gros c'est tout foireux à l'intérieur avec les boutons qui fonctionne pas a par le dernier qui modifier seulement le 1er ticket (what?), si quelqu'un à la solution qui m'en fasse part merci. ;)
     
    Dernière édition: 29 Mai 2015
  4. Elmoren

    Elmoren Sergent-chef

    290
    52
    28
    Le problème vient de ta form dans support.php qui s'ouvre avant le <?php et se ferme dedans je pense ^^ Pourquoi ne pas utiliser des données GET au lieu de POST ?
     
    • J'accepte J'accepte x 1
  5. Sprik07

    Sprik07 Visiteur CMW Staff

    414
    164
    43
    Problème résolu, merci Elmoren pour le petit problème qui étais assez flagrant :)
    PS : J'espère que je vais faire plaisir à des personnes avec ce tuto :confused:
     
    • J'aime J'aime x 1
  6. Elmoren

    Elmoren Sergent-chef

    290
    52
    28
    Pas de soucis je pense que beaucoup de gens vont apprécier ;)
    Au fait tu as fini la page maintenance ? :3
     
    • J'aime J'aime x 1
  7. Sprik07

    Sprik07 Visiteur CMW Staff

    414
    164
    43
    Si tu le dis alors c'est que sa dois être bien vrai ! :)
    La page maintenance je me penche dessus actuellement, car juste avant j'étais sur les tickets en priorité :D
     
    • J'aime J'aime x 2
  8. LogoxOfficiel16

    LogoxOfficiel16 Caporal

    128
    6
    18
    compatible pour le thème one ?
     
  9. Sprik07

    Sprik07 Visiteur CMW Staff

    414
    164
    43
    Oui ceci est compatible avec le thème one. :D
    Alors va dans : theme/theme_one/include/support.php
    Tu supprime tout sont contenu puis met ceci :
    PHP:
    <?php

    $adminmode 
    false;
    // Activer ou non le "mode admin"
    // Empêche les autres utilisateurs de voir les commentaires qui ne sont pas les leurs
    // Seuls les administrateurs sont capables de voir tous les commentaires et de tous y répondre.
    // false = désactivé
    // true = activé
    // Désactivé par défaut.

    ?>
    <section id="support" class="content-section">
      <?php require_once('controleur/support/support.php'); ?>
      <div class="row">
        <center>
          <h1>Support</h1>
        </center>
      </div>
      <div class="supportbg bg-cover shadow">
        <div class="container">
          <div class="col-md-10 col-md-offset-1">
            <div class="panel panel-default shadow">
              <div class="panel-heading">
                <b>Liste des 20 derniers tickets</b>
              </div>
              <div class="panel-body">
                <div class="table-responsive">
                <table class="table">
                  <thead>
                  <tr>
                                <th style="min-width: 60%;">Titre</th>
                                <th>Date</th>
                                <th>Pseudonyme</th>
                    <th><i class="fa fa-comments"></i></th>
                                    <th>Etat</th>
                            </tr>
                  </thead>
                  <tbody>
                    <?php
                    $j 
    = -1;
                    while(
    $tickets $ticketReq->fetch() AND $j 20){
                      
    $j++;
                      
    $smalltxt texte_resume_brut($tickets['message'], 200);
                    
    ?>
                  <tr>
                    <td>
                      <span data-toggle="popover" data-trigger="hover" data-content="<?php echo $smalltxt?>">
                        <a href="" data-toggle="modal" data-target="#ticket<?php echo $tickets['id'];?>"><?php echo $tickets['titre'?></a>
                      </span>
                    </td>

                    <td>
                      <?php echo $tickets['jour']. '/' .$tickets['mois']. ' à ' .$tickets['heure']. 'h' .$tickets['minute']; ?>
                    </td>

                    <td>
                      <img src="http://crafatar.com/avatars/<?php echo $tickets['auteur']; ?>?size=16&helm"/> <?php echo $tickets['auteur'?>
                    </td>

                    <td>
                      <?php
                      $commentaires 
    0;
                      for(
    $i 0$i count($ticketCommentaires[$tickets['id']]); $i++){
                        if (
    $ticketCommentaires[$tickets['id']][$i]['message'] != '')
                          
    $commentaires++;
                      }
                      echo 
    $commentaires?>
                    </td>
                                    <td>
                                         <?php
                           $ticketstatus 
    $tickets['etat'];
                            if(
    $ticketstatus == "1"){
                             echo 
    '<button class="btn btn-success ">Résolu</button>';
                             } else {
                              echo 
    '<button class="btn btn-danger ">Non Résolu</button>';
                             }
                           
    ?>
                                </td>
                                    
                  </tr>

                  <div class="modal fade" id="ticket<?php echo $tickets['id'];?>" tabindex="-1" role="dialog" aria-labelledby="ticket" aria-hidden="true">
                    <div class="modal-dialog">
                      <div class="modal-content">
                        <div class="modal-header">
                          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                          <h4 class="modal-title"><?php echo $tickets['titre'];?></h4>
                          <div class="pull-right">
                            <img src="http://crafatar.com/avatars/<?php echo $tickets['auteur']; ?>?size=16&helm"/> <?php echo $tickets['auteur'?> le <?php echo $tickets['jour']. '/' .$tickets['mois']. ' à ' .$tickets['heure']. 'h' .$tickets['minute']; ?>
                          </div>
                          <br>
                        </div>
                        <div class="modal-body">
                          <p>
                            <?php echo $tickets['message']; ?>
                          </p>
                          <?php
                          
    if(!isset($ticketCommentaires[$tickets['id']]))
                            echo 
    '<hr> Aucun commentaire pour le moment.';
                          else
                            {
                              for(
    $i count($ticketCommentaires[$tickets['id']]); $i >= 0$i--)
                              {
                                
    $tauteur $ticketCommentaires[$tickets['id']][$i]['auteur'];
                                
    $tmessage $ticketCommentaires[$tickets['id']][$i]['message'];
                                
    $tdate $ticketCommentaires[$tickets['id']][$i]['jour']. '/' .$ticketCommentaires[$tickets['id']][$i]['mois']. ' à ' .$ticketCommentaires[$tickets['id']][$i]['heure']. 'h' .$ticketCommentaires[$tickets['id']][$i]['minute'];
                                if (
    $tmessage != ''){
                                
    ?>
                                <hr>
                              <h6><img src="http://crafatar.com/avatars/<?php echo $tauteur?>?size=16&helm"/> <?php echo $tauteur?><small>, le <?php echo $tdate?></small></h6>
                              <small><?php echo $tmessage?></small>
                            <?php
                                
    }
                              }
                            }
                          
    ?>
                        </div>
                        <div class="modal-footer">
                          <?php if(isset($_Joueur_)){?>
                            <form action="?&action=post_ticket_commentaire" method="post">
                                                <input type="hidden" name="id" value="<?php echo $tickets['id']; ?>" />
                                                <textarea name="message" class="form-control" rows="2" placeholder="Aidez ce joueur !"></textarea>
                                                </br>
                                                <button type="submit" class="btn btn-success">Commenter</button>
                                            </form>
                            <?php ?>
                          <button type="button" class="btn btn-default" data-dismiss="modal">Fermer</button>
                        </div>
                      </div>
                    </div>
                  </div>

                  <?php
                  
    ?>
                  </tbody>
                </table>
                </div>
                <hr>
                <?php if(isset($_Joueur_)){ ?>
                <h4>Ouvrir un nouveau ticket</h4>
                <form action="?&action=post_ticket" method="post">
                  <div class="row">
                  <div class="col-md-4 center-block">
                  <input class="form-control" type="text" name="titre" placeholder="Titre du ticket explicite"></input>
                  </div>
                  </div>
                  <br>
                  <div class="row">
                    <div class="col-md-12 center-block">
                      <textarea class="form-control" type="text" rows="5" name="message" placeholder="Expliquez votre problème le plus clairement possible"></textarea>
                    </div>
                  </div>
                  <br>
                  <div class="row">
                    <div class="container">
                    Attention ! Tout abus du système de tickets sera sanctionné !
                  </div>
                      <button type="submit" class="btn btn-success pull-right">Envoyer le ticket</button>
                  </div>
                </form>
                <?php } else {?>
                  <h4>Veuillez vous connecter pour ouvrir un ticket</h4>
                  <?php ?>
              </div>
            </div>
          </div>
        </div>
      </div>
    </section>

    Voilà, dis moi si ça fonctionne ;)
    PS : Donne le lien de ton site pour voir le rendu s'il te plaît. :D
     
    • J'accepte J'accepte x 1
    Dernière édition: 29 Mai 2015
  10. Elmoren

    Elmoren Sergent-chef

    290
    52
    28
    Tu as mis une balise en trop après ton code php dans le tableau pour le thème one : </td>
    </td>
     
    • J'aime J'aime x 1
  11. Sprik07

    Sprik07 Visiteur CMW Staff

    414
    164
    43
    Oups merci je n'est pas remarquer du tout, je suis confu :p
     
    • J'aime J'aime x 1
  12. LogoxOfficiel16

    LogoxOfficiel16 Caporal

    128
    6
    18
    @Sprik07 encore moi je n'arriva a changer l'etat maintenant donc voici mon skype arnauddupont161
     
    Dernière édition: 29 Mai 2015
  13. Sprik07

    Sprik07 Visiteur CMW Staff

    414
    164
    43
    Je vient de t'ajouter ;)
     
    • J'aime J'aime x 2
  14. LogoxOfficiel16

    LogoxOfficiel16 Caporal

    128
    6
    18
  15. Sprik07

    Sprik07 Visiteur CMW Staff

    414
    164
    43
    Est-ce que je fait un tuto pour voir les skins de votre serveur de skin personnalisé dans le support/accueil etc.. ? :D
     
  16. Elmoren

    Elmoren Sergent-chef

    290
    52
    28
    J'ai pas compris ce que tu veux dire ^^
     

Partager cette page

Chargement...