Possibilité d'ajouter de nouveaux champs à un ticket ?

Forum Général sur les questions que vous vous posez sur le logiciel.
Répondre
jacko
Gsup LEVEL 0
Messages : 7
Enregistré le : mer. 3 sept. 2014 18:42

Bonjour,

Je suis très intéressé par GESTSUP qui est vraiment très bien fait (Bravo).

Cependant, j'aurai besoin de le personnaliser en ajoutant de nouveaux champs aux "tickets".

Est-ce possible ?


Merci.
jacko
Gsup LEVEL 0
Messages : 7
Enregistré le : mer. 3 sept. 2014 18:42

SVP,
Est-ce que quelqu'un pourrais m'indiquer "en gros" comment faire pour ajouter un champ à ticket ?
>>> Tables et Pages php à mettre à jour, etc.

Merci de votre aide.
fabrice
Gsup LEVEL 7
Messages : 327
Enregistré le : mar. 11 mars 2014 12:01

bonjour,
pourriez vous préciser votre demande ( quel type de champ etc ...)
cordialement
OS : Linux gestsup 4.15.0-158-generic #166-Ubuntu SMP Fri Sep 17 19:37:52 UTC 2021 x86_64
MariaDB : 10.4.21-MariaDB-1:10.4.21+maria~bionic (base : bsup 183.8MB)
PHP : 7.3.30-1+ubuntu18.04.1+deb.sury.org+1
GestSup : 3.2.15 (8871 Tickets)
jacko
Gsup LEVEL 0
Messages : 7
Enregistré le : mer. 3 sept. 2014 18:42

Merci beaucoup de votre réponse.

En fait je souhaiterais ajouter un champ "Entité" (Texte, 100 caractères, obligatoire) basé sur une liste de valeurs gérée dans le module d'administration.


Merci
fabrice
Gsup LEVEL 7
Messages : 327
Enregistré le : mar. 11 mars 2014 12:01

bonjour,
est ce qu'un champ comme description ou résolution serait adéquat ?
OS : Linux gestsup 4.15.0-158-generic #166-Ubuntu SMP Fri Sep 17 19:37:52 UTC 2021 x86_64
MariaDB : 10.4.21-MariaDB-1:10.4.21+maria~bionic (base : bsup 183.8MB)
PHP : 7.3.30-1+ubuntu18.04.1+deb.sury.org+1
GestSup : 3.2.15 (8871 Tickets)
jacko
Gsup LEVEL 0
Messages : 7
Enregistré le : mer. 3 sept. 2014 18:42

Bonjour Fabrice,

En fait, mon besoin serait plutôt d'ajouter un champ comme "Lieux", basé sur une liste de valeurs gérée dans "/administration/listes".

Avez-vous déjà effectuer ce type d'évolution ?


Merci
fabrice
Gsup LEVEL 7
Messages : 327
Enregistré le : mar. 11 mars 2014 12:01

bonjour,
ok alors le souci c'est que la gestion des lieux est activée par une coche dans administration et alimente une table "tplace" dans la base de donnée.
le plus simple serait de renommer le champ "TYPES" pour s'en servir.
qu'en pensez vous ?
autre souci et lors des mise à jour il faudrait plutôt pouvoir ajouter des champs dans le menu de gestion des listes
OS : Linux gestsup 4.15.0-158-generic #166-Ubuntu SMP Fri Sep 17 19:37:52 UTC 2021 x86_64
MariaDB : 10.4.21-MariaDB-1:10.4.21+maria~bionic (base : bsup 183.8MB)
PHP : 7.3.30-1+ubuntu18.04.1+deb.sury.org+1
GestSup : 3.2.15 (8871 Tickets)
jacko
Gsup LEVEL 0
Messages : 7
Enregistré le : mer. 3 sept. 2014 18:42

En fait, je compte déjà utiliser les champs "Lieux" et "Types".

Mon besoin est de gérer d'autres champs de la même manière.


Merci.
jacko
Gsup LEVEL 0
Messages : 7
Enregistré le : mer. 3 sept. 2014 18:42

Bonjour à tous,

Suite aux indications de Flox, voilà comment j'ai fait pour ajouter un champs "Entité" (Texte) aux tickets :

1. "ticket.php" :

1.1. A ajouter au block "initialize variables"

Code : Tout sélectionner

if(!isset($entite)) $entite = ''; 

1.2. A ajouter au block "initialize variables POST"

Code : Tout sélectionner

if(!isset($_POST['entite'])) $_POST['entite'] = '';

1.3. A ajouter au block "defaults values for new tickets"

Code : Tout sélectionner

if(!isset($globalrow['entite'])) $globalrow['entite'] = '';

1.4. A ajouter dans le corps du html à générer, là où vous voulez placer le champ

Code : Tout sélectionner

<!-- START entite part -->
	<div class="form-group <?php if($rright['ticket_entite_disp']==0) echo 'hide';?>">
		<label class="col-sm-2 control-label no-padding-right" for="title">ENTITE:</label>
		<div class="col-sm-8">
			<input  name="entite" id="entite" type="text" size="20"  value="<?php if ($_POST['entite']) echo $_POST['entite']; else echo $globalrow['entite']; ?>" <?php if($rright['ticket_entite']==0  && $_GET['action']!='new') echo 'readonly="readonly"';?> />
		</div>
	</div>
	<!-- END entite part -->

2. "/core/ticket.php" :

2.1. A ajouter au block "escape special char in sql query"

Code : Tout sélectionner

$_POST['entite'] = mysql_real_escape_string($_POST['entite']);

2.2. A ajouter au block "secure HMTL injection"

Code : Tout sélectionner

$_POST['entite']=strip_tags($_POST['entite']);

2.3. A ajouter au block "insert ticket"

Code : Tout sélectionner

$query= "INSERT INTO tincidents (user,type,u_group,technician,t_group,title,description,date_create,date_hope,date_res,priority,criticality,state,creator,time,time_hope,category,subcat,techread,place,start_availability,end_availability,availability_planned,entite) VALUES ('$_POST[user]','$_POST[type]','$u_group','$_POST[technician]','$t_group','$_POST[title]','$_POST[description]','$_POST[date_create]','$_POST[date_hope]','$_POST[date_res]','$_POST[priority]','$_POST[criticality]','$_POST[state]','$_SESSION[user_id]','$_POST[time]','$_POST[time_hope]','$_POST[category]','$_POST[subcat]','$techread','$_POST[ticket_places]','$start_availability','$end_availability','$_POST[availability_planned]','$_POST[entite]')";
2.4. A ajouter au block "update ticket"

Code : Tout sélectionner

$query = "UPDATE tincidents SET 
	user='$_POST[user]',
	type='$_POST[type]',
	u_group='$u_group',
	technician='$_POST[technician]',
	t_group='$t_group',
	title='$_POST[title]',
	description='$_POST[description]',
	date_create='$_POST[date_create]',
	date_hope='$_POST[date_hope]',
	date_res='$_POST[date_res]',
	priority='$_POST[priority]',
	criticality='$_POST[criticality]',
	state='$_POST[state]',
	time='$_POST[time]',
	time_hope='$_POST[time_hope]',
	category='$_POST[category]',
	subcat='$_POST[subcat]',
	techread='$techread',
	place='$_POST[ticket_places]',
	start_availability='$start_availability',
	end_availability='$end_availability',
	availability_planned='$_POST[availability_planned]',
	entite='$_POST[entite]'
	WHERE
	id LIKE '$_GET[id]'";


3. Mise à jour de la base de données :

- Se connecter à l'interface d'administration de la base de données via phpmysql.
- Sélectionner la base "gestsup"
- Executer le script suivant :

Code : Tout sélectionner

-- tincidents
	-- ENTITE
	ALTER TABLE `tincidents` ADD COLUMN `entite` VARCHAR(9) NOT NULL;
	-- trights
	-- ENTITE
	ALTER TABLE `trights` ADD COLUMN `ticket_entite` int(1) NOT NULL;
	ALTER TABLE `trights` ADD COLUMN `ticket_entite_disp` int(1) NOT NULL;
	--
	ALTER TABLE `trights` MODIFY `ticket_entite` int(1) NOT NULL COMMENT 'Modification du champ ENTITE dans la demande';
	ALTER TABLE `trights` MODIFY `ticket_entite_disp` int(1) NOT NULL COMMENT 'Affiche le champ ENTITE dans la demande';
	-- 
	UPDATE `trights` SET `ticket_entite`=2, `ticket_entite_disp`=2 WHERE  `trights`.`id` =1; 
	UPDATE `trights` SET `ticket_entite`=2, `ticket_entite_disp`=2 WHERE  `trights`.`id` =2; 
	UPDATE `trights` SET `ticket_entite`=2, `ticket_entite_disp`=2 WHERE  `trights`.`id` =3; 
	UPDATE `trights` SET `ticket_entite`=2, `ticket_entite_disp`=2 WHERE  `trights`.`id` =4; 
	UPDATE `trights` SET `ticket_entite`=2, `ticket_entite_disp`=2 WHERE  `trights`.`id` =5;


>>> Et voilà ! J'espère que ça pourra aider certains d'entre vous.
Networkremote
Gsup LEVEL 0
Messages : 1
Enregistré le : mer. 25 févr. 2015 00:17

Hello Jacko,
Merci bcp pour le partage d'information, juste une question, comment faire pour que le champ ajouté sera affiché sur les états?
Répondre