Forum CMS Made Simple FR

Version complète : [Résolu]Système de ticket "simple"
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
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 ?
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">';
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)
Merci la première solution marche, je vais tester la dernière qui me parait "sympa"
très très puissante la dernière je te la conseille effectivement pour remplacer les echo sur du HTML
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 ?
par CSS et jquery ?
C'est bien ce que je pensais Big Grin
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 ?
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
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?