Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Résolu]Système de ticket "simple"
#1

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 ?

Cool
#2

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">';

Cool
#3

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)
#4

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

Cool
#5

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

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 ?

Cool
#7

par CSS et jquery ?
#8

C'est bien ce que je pensais Big Grin

Cool
#9

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 ?

Cool
#10

J'avais récupéré ça sur ce site : http://www.fastinfo.com.au/developer-tip...de-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

Cool
#11

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?

{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)