Forum CMS Made Simple FR
[Résolu]Système de ticket "simple" - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : [Résolu]Système de ticket "simple" (/thread-2041.html)



[Résolu]Système de ticket "simple" - Celtic MAn - 12/06/2012

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.3
#~ Url du site :
#~ Hébergeur / Soft : OVH
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~

Bonjour,

je souhaite mettre en place un système de ticket : j'ai testé serviceDesk mais il ne répond pas tout à fait à mes attentes.

Donc j'essaye de faire la même chose par UDT (crée mon module pas eu le temps de bien regarder).

Mais je bloque sur une chose pour le moment.

Voici ma première UDT : vueClient
Code :
[== PHP ==]
/* Connexion à la BDD */

try{
    $bdd = new PDO('mysql:host=localhost;dbname=espacewcln', 'root', 'root');
    }
    catch (Exception $e){
        die('Erreur : ' . $e->getMessage());
}

echo 'Poser une nouvelle question : ';

echo '<form method="post" action="./uploads/test.php">';

echo '<label for="question">Question</label> :
       <input type="text" size="40" name="question" id="question"/>';

echo '<label for="site">Site</label> :
       <input type="text" size="40" name="site" id="site"/>';

echo '<input type="submit" value="Soumettre" name="bouton">';

echo '</form>' ;


$modops = cmsms()->GetModuleOperations();
$feu = $modops->get_module_instance('FrontEndUsers');
$feu_user = $feu->LoggedInID();

$liste_question= $bdd->query("SELECT question,reponse,statut,site FROM question_reponse WHERE id_client = '$feu_user' ");

echo 'Liste de vos incidents :';

echo '<table style="border: 1px solid black;">';

while ($donnees = $liste_question->fetch()){
        echo '<tr>';
        echo '<td>';
        echo 'Question : '.$donnees['question'].'<br />';
        echo '</td>';
        echo '<td>';
        echo 'Reponse : '.$donnees['reponse'].'<br />';
        echo '</td>';
        echo '<td>';
        echo 'Statut : '.$donnees['statut'].'<br />';
        echo '</td>';
            echo '<td>';
        echo 'Site : '.$donnees['site'].'<br />';
        echo '</td>';
        echo '</tr>';
     }          

     echo '</table>';

La liste des "questions" marche bien mais dans mon formulaire j'appelle un fichier extérieur pour le traitement (test.php), mon soucis : comment récupérer cette variable $feu_user = $feu->LoggedInID(); dans ce fichier ?

Pensez vous que c'est possible ?


[Résolu]Système de ticket "simple" - Celtic MAn - 13/06/2012

J'ai pensé à faire ça dans ma balise UDT mais ça ne marche pas :

echo '<input type="hidden" value="<?php echo $feu_user?>" name="id_client">';

Edit : j'avais juste inverser, voilà la solution pour ceux que ça intéresse -> echo '<input type="hidden" value="'.$feu_user.'" name="id_client">';


[Résolu]Système de ticket "simple" - bess - 13/06/2012

c'est quoi le code que tu nous fais ???? :mad: :lol:


Code :
echo '<input type="hidden" value="'.$feu_user.'" name="id_client">';


Code :
echo "<input type='hidden' value='$feu_user' name='id_client'>";

Les deux devraient marcher. Le second est conditionné par l'utilisation des guillemets pour encadrer la chaine principale. L'utilisation des apostrophes (comme dans le premier exemple) désactiverait le parsing des variables.

dernière possibilité à ma connaissance :

Code :
echo <<<HTML
   ....
   <input type='hidden' value='$feu_user' name='id_client'>
   ...
HTML;

On appel cela une syntaxe heredoc. Très puissante mais nécessite de respecter certains principes. (+ d'info)


[Résolu]Système de ticket "simple" - Celtic MAn - 13/06/2012

Merci la première solution marche, je vais tester la dernière qui me parait "sympa"


[Résolu]Système de ticket "simple" - bess - 13/06/2012

très très puissante la dernière je te la conseille effectivement pour remplacer les echo sur du HTML


[Résolu]Système de ticket "simple" - Celtic MAn - 13/06/2012

Merci de l'info Wink je testerai une fois que tout marchera sur un autre projet.

Pour ceux qui ça intéresse ma balise UDT vueClient
Code :
[== PHP ==]
/* Connexion à la BDD */

try{
    $bdd = new PDO('mysql:host=localhost;dbname=root', 'root', 'W914iySE');
    }
    catch (Exception $e){
        die('Erreur : ' . $e->getMessage());
}

$modops = cmsms()->GetModuleOperations();
$feu = $modops->get_module_instance('FrontEndUsers');
$feu_user = $feu->LoggedInID();

$liste_question= $bdd->query("SELECT question,reponse,statut,site FROM espacewcln WHERE id_client = '$feu_user' ORDER BY STR_TO_DATE(date_creation, '%Y-%m-%d')");

while ($donnees = $liste_question->fetch()){
            echo '<table style="border: 1px solid black; width:650px;">';
            echo '<tr>';
        echo '<td>';
        echo '<strong>Question :</strong>';
            echo '<br/><br/>';
        echo '</td>';
            echo '<tr>';
            echo '<td>';
            echo $donnees['question'];
            echo '<br/><br/>';
            echo '</td>';
            echo '</tr>';
            if(!empty($donnees['reponse'])){
        echo '<tr>';
        echo '<td>';
        echo '<strong>Réponse :</strong>';
            echo '<br/><br/>';
        echo '</td>';
            echo '<tr>';
            echo '<td>';
            echo $donnees['reponse'];
            echo '<br/><br/>';
            echo '</td>';
            echo '</tr>';}
            echo '<tr>';
        echo '<td>';
        echo '<strong>Site :</strong>';
        echo '</td>';
            echo '<tr>';
            echo '<td>';
            echo $donnees['site'];
            echo '</td>';
            echo '</tr>';
            echo '<br/><br/>';
            echo '<tr>';
        echo '<td>';
            echo '<div align=right>';
        echo '<strong>Statut :</strong>';
            if ($donnees['statut'] == 0){
             echo '<img src="./uploads/enCours.png">';
            }
            else {
             echo '<img src="./uploads/Termine.png">';
            }
            echo '</div>';
            echo '</td>';
            echo '</tr>';
            echo '</table>';
     }

Elle permet d'afficher les questions de l'utilisateur connecté, si une réponse existe on l'affiche ainsi que le statut en cours (trié par ordre de "création").
Par la suite j'utiliserai ma méthode proposé par Bess.

Le contenu de ma page :
Code :
[== HTML ==]
{cms_module module=CustomContent}
{if $ccuser->loggedin()}
{cms_module module=FrontEndUsers form="logout"}
<strong>Carnet de liaison numérique :</strong>
<div align=right><a href={ajoutQuestionClient}>Ajouter une question</a>  <a href={ajoutQuestionClient}><img src="./uploads/nouvelleQ.png"></a></div>
{vueClient}
{else}
<p>Merci de vos identifier pour accéder à ce service.</p>
{cms_module module=FrontEndUsers form="login" nocaptcha="1" }
{/if}

Ma balise UDT ajoutQuestionClient :
Code :
[== PHP ==]
$modops = cmsms()->GetModuleOperations();
$feu = $modops->get_module_instance('FrontEndUsers');
$feu_user = $feu->LoggedInID();
$dateC = date("Y-m-d");

/* Nouvelle question */

echo '<form method="post" action="./uploads/test.php">';

echo '<input type="hidden" value="'.$feu_user.'" name="id_client">';

echo '<input type="hidden" value="'.$dateC.'" name="dateC">';

echo '<label for="question">Question</label> :
       <input type="text" size="40" name="question" id="question"/>';

echo '<label for="site">Site</label> :
       <input type="text" size="40" name="site" id="site"/>';

echo '<input type="submit" value="Soumettre" name="bouton">';

echo '</form>' ;

La il m'affiche directement mon formulaire, y a t-il un moyen pour ne l'afficher que lorsque que l'utilisateur clique sur ajouter une question ?


[Résolu]Système de ticket "simple" - bess - 13/06/2012

par CSS et jquery ?


[Résolu]Système de ticket "simple" - Celtic MAn - 13/06/2012

C'est bien ce que je pensais Big Grin


[Résolu]Système de ticket "simple" - Celtic MAn - 13/06/2012

Edit : j'ai changé ma requête en faisant un update et ça fonctionne.

Par contre j'aimerai une petite aide (encore Rolleyes ) sur le module FEU : pour récupérer le username

$feu2 =& $gCms->modules['FrontEndUsers']['object'];
$result = $feu2->GetUserInfo($uid);
$uinfo = $result[1];
$user_name = $uinfo['username'];

on fait bien comme ça ?


[Résolu]Système de ticket "simple" - Celtic MAn - 14/06/2012

J'avais récupéré ça sur ce site : http://www.fastinfo.com.au/developer-tips-and-tricks-cms-made-simple/

Mais il suffit de faire comme ça :
$modops = cmsms()->GetModuleOperations();
$feu = $modops->get_module_instance('FrontEndUsers');
$feu_user = $feu->LoggedInID(); //ID
$user_name = $feu->LoggedInName(); //username


[Résolu]Système de ticket "simple" - jissey - 15/06/2012

bonsoir,
à la place de
Code :
[== Indéfini ==]
try{
    $bdd = new PDO('mysql:host=localhost;dbname=root', 'root', 'W914iySE');
    }
    catch (Exception $e){
        die('Erreur : ' . $e->getMessage());
}
tu devrais utiliser
Code :
[== Indéfini ==]
$bdd = cmsms()->GetDb();
ou bien?