You are not logged in.
Pages: 1
Topic closed
Bonjour,
Je voulais savoir s'il était possible d'ajouter une "Tache" via le plugin WebServices ?
Si oui, comment ?
Sinon, serait-il possible aux développeurs de ce plugin, d'ajouter cette fonctionnalité ?
Merci d'avance pour vos réponses
Offline
j'ai trouvé ça sur le forum anglais.
C'est valide ou pas ? Je peux l'utiliser ?
lien vers le topic : http://www.glpi-project.org/forum/viewt … p?id=26511
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
// Add this to webservices/inc/methodhelpdesk.class.php, at the end of the file *before* } ?>
/**
* Add a (planned) Task to a existing ticket
* for a authenticated user
*
* @param $params array of options (ticket, content)
* @return array of hashtable
*/
static function methodAddTicketTask($params, $protocol) {
if (isset ($params['help'])) {
return array('ticket' => 'integer,mandatory',
'content' => 'string,mandatory',
'private' => 'bool,optional',
'planstart' => 'datestring,optional',
'planend' => 'datestring,optional',
'close' => 'bool,optional',
'reopen' => 'bool,optional',
'help' => 'bool,optional');
}
if (!isset ($_SESSION['glpiID'])) {
return self::Error($protocol, WEBSERVICES_ERROR_NOTAUTHENTICATED);
}
$ticket = new Ticket();
if (!isset ($params['ticket'])) {
return self::Error($protocol, WEBSERVICES_ERROR_MISSINGPARAMETER, '', 'ticket');
} else if (!is_numeric($params['ticket'])) {
return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'ticket');
} else if (!$ticket->can($params['ticket'],'r')) {
return self::Error($protocol, WEBSERVICES_ERROR_NOTFOUND);
}
if (!$ticket->canAddFollowups()) {
return self::Error($protocol, WEBSERVICES_ERROR_NOTALLOWED);
}
if (!isset($params['content'])) {
return self::Error($protocol, WEBSERVICES_ERROR_MISSINGPARAMETER, '', 'content');
}
$task = new TicketTask();
$data = array('tickets_id' => $params['ticket'],
'taskcategories_id' => '0',
'content' => addslashes(clean_cross_side_scripting_deep($params["content"])));
if (!isset($params['private'])){
$data['is_private'] = 0;
}
if (isset($params['planstart']) && !isset($params['planend'])){
return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'planend');
}
if (isset($params['planend']) && !isset($params['planstart'])){
return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'planstart');
}
// date (open) : optional, default set by add method
if (isset ($params["date"])) {
if (preg_match(WEBSERVICES_REGEX_DATETIME, $params["date"])) {
$data['date'] = $params['date'];
} else {
return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'date');
}
}
if (isset($params['close'])) {
if ($ticket->fields['status'] == 'solved') {
$data['add_close'] = 1;
} else {
return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'close for not solved ticket');
}
}
if (isset($params['reopen'])) {
if ($ticket->fields['status'] == 'solved') {
$data['add_reopen'] = 1;
} else {
return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'reopen for not solved ticket');
}
}
$taskid = false;
$taskid = $task->add($data);
if ($taskid) {
if (isset($params['planstart']) && isset($params['planend'])){
$planning = new TicketPlanning();
$data = array(
'tickets_id' => $params['ticket'],
'users_id' => $_SESSION['glpiID'],
'tickettasks_id' => $taskid,
'begin' => $params['planstart'],
'end' => $params['planend']
);
if ($planning->add($data)){
return self::methodGetTicket(array('ticket' => $params['ticket']),$protocol);
} else {
return self::Error($protocol, WEBSERVICES_ERROR_FAILED, '',self::getDisplayError());
}
}
return self::methodGetTicket(array('ticket' => $params['ticket']),$protocol);
}
return self::Error($protocol, WEBSERVICES_ERROR_FAILED, '',self::getDisplayError());
}
// Add in webservices/hook.php in function plugin_webservices_registerMethods(), at the end of the funtion
$WEBSERVICES_METHOD['glpi.addTicketTask'] = array('PluginWebservicesMethodHelpdesk','methodAddTicketTask');
Last edited by olivem (2014-04-25 15:18:02)
Offline
Non ce code n'est pas correct car il ne contrôle pas les bons droits et ne fonctionnera pas avec glpi 0.84.
Ticket ajouté sur la forge du plugin : https://forge.indepnet.net/issues/4892
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Merci beaucoup pour la réponse et j'ai hâte de voir le résultat sur le plugin.
Offline
Nouvelle version du plugin Webservices: https://forge.glpi-project.org/news/347
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Pages: 1
Topic closed