diff --git a/htdocs/admin/ticketsup.php b/htdocs/admin/ticketsup.php index ced25a1cd2d..529d64abf9c 100644 --- a/htdocs/admin/ticketsup.php +++ b/htdocs/admin/ticketsup.php @@ -34,10 +34,10 @@ if (file_exists("../../main.inc.php")) { // Libraries require_once DOL_DOCUMENT_ROOT . "/core/lib/admin.lib.php"; -require_once "../class/ticketsup.class.php"; -require_once "../lib/ticketsup.lib.php"; +require_once DOL_DOCUMENT_ROOT."/ticketsup/class/ticketsup.class.php"; +require_once DOL_DOCUMENT_ROOT."/core/lib/ticketsup.lib.php"; // Translations -$langs->load("ticketsup@ticketsup"); +$langs->load("ticketsup"); // Access control if (!$user->admin) { diff --git a/htdocs/admin/ticketsup_extrafields.php b/htdocs/admin/ticketsup_extrafields.php index 8a7ae788921..9084cac2ac1 100644 --- a/htdocs/admin/ticketsup_extrafields.php +++ b/htdocs/admin/ticketsup_extrafields.php @@ -29,7 +29,8 @@ if (file_exists("../../main.inc.php")) { } else { die("Include of main fails"); } -require_once '../lib/ticketsup.lib.php'; +// Libraries +require_once DOL_DOCUMENT_ROOT."/core/lib/ticketsup.lib.php"; require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php'; diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php index 8ea76bb4fcb..55345d68cc7 100644 --- a/htdocs/core/class/html.formmail.class.php +++ b/htdocs/core/class/html.formmail.class.php @@ -859,7 +859,7 @@ class FormMail extends Form if (! GETPOST('modelselected','alpha') || GETPOST('modelmailselected') != '-1') { if ($arraydefaultmessage && $arraydefaultmessage->content) { - $defaultmessage = $arraydefaultmessage['content']; + $defaultmessage = $arraydefaultmessage->content; } elseif (! is_numeric($this->withbody)) { $defaultmessage = $this->withbody; } diff --git a/htdocs/core/class/html.formticketsup.class.php b/htdocs/core/class/html.formticketsup.class.php index 329d23a7c51..52b470c0929 100644 --- a/htdocs/core/class/html.formticketsup.class.php +++ b/htdocs/core/class/html.formticketsup.class.php @@ -31,9 +31,11 @@ if (!class_exists('FormCompany')) { /** * Classe permettant la generation du formulaire d'un nouveau ticket. * - * Utilisation: $formticketsup = new FormTicketsup($db) - * $formticketsup->proprietes=1 ou chaine ou tableau de valeurs - * $formticketsup->show_form() affiche le formulaire + * @package Ticketsup + + * \remarks Utilisation: $formticketsup = new FormTicketsup($db) + * \remarks $formticketsup->proprietes=1 ou chaine ou tableau de valeurs + * \remarks $formticketsup->show_form() affiche le formulaire */ class FormTicketsup { @@ -72,6 +74,7 @@ class FormTicketsup public $withcancel; /** + * * @var array $substit Substitutions */ public $substit = array(); @@ -526,7 +529,7 @@ class FormTicketsup $filterarray = explode(',', $filtertype); } - $ticketstat->load_cache_categories_tickets(); + $ticketstat->loadCacheCategoriesTickets(); print ''; //$placeholder=' placeholder="00:00"'; - $placeholder=''; //$tableCell.='+'; } $tableCell.='\n"; + $total_plannedworkload=0; + $total_declaredprogressworkload=0; while ($i < $num) { $objp = $db->fetch_object($resql); diff --git a/htdocs/core/lib/ticketsup.lib.php b/htdocs/core/lib/ticketsup.lib.php index c3063783a6f..d44ca92f68d 100644 --- a/htdocs/core/lib/ticketsup.lib.php +++ b/htdocs/core/lib/ticketsup.lib.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2016 Jean-François FERRY +/* + * Copyright (C) 2013-2018 Jean-François FERRY * 2016 Christophe Battarel * * This program is free software: you can redistribute it and/or modify @@ -20,7 +20,13 @@ /** * \file core/lib/ticketsup.lib.php * \ingroup ticketsup - * \brief This file is an example module library + * \brief This file is a library for TicketSup module + */ + +/** + * Build tabs for admin page + * + * @return array */ function ticketsupAdminPrepareHead() { @@ -31,18 +37,14 @@ function ticketsupAdminPrepareHead() $h = 0; $head = array(); - $head[$h][0] = dol_buildpath("/ticketsup/admin/admin_ticketsup.php", 1); + $head[$h][0] = DOL_URL_ROOT.'/admin/admin_ticketsup.php'; $head[$h][1] = $langs->trans("TicketSupSettings"); $head[$h][2] = 'settings'; $h++; - $head[$h][0] = dol_buildpath("/ticketsup/admin/ticketsup_extrafields.php", 1); + $head[$h][0] = DOL_URL_ROOT.'/admin/ticketsup_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFieldsTicketSup"); $head[$h][2] = 'attributes'; $h++; - $head[$h][0] = dol_buildpath("/ticketsup/admin/about.php", 1); - $head[$h][1] = $langs->trans("About"); - $head[$h][2] = 'about'; - $h++; // Show more tabs from modules // Entries must be declared in modules descriptor with line @@ -58,10 +60,10 @@ function ticketsupAdminPrepareHead() } /** - * Prepare head for ticket card - * - * @param Object $object Object Ticket - * @return array Array of tabs + * Build tabs for a Ticketsup object + * + * @param Ticketsup $object Object Ticket + * @return array Array of tabs */ function ticketsup_prepare_head($object) { @@ -69,21 +71,21 @@ function ticketsup_prepare_head($object) $h = 0; $head = array(); - $head[$h][0] = dol_buildpath('/ticketsup/card.php', 1) . '?action=view&track_id=' . $object->track_id; + $head[$h][0] = DOL_URL_ROOT.'/ticketsup/card.php?action=view&track_id=' . $object->track_id; $head[$h][1] = $langs->trans("Card"); $head[$h][2] = 'tabTicketsup'; $h++; if (empty($user->socid)) { - $head[$h][0] = dol_buildpath('/ticketsup/contacts.php', 1) . '?track_id=' . $object->track_id; + $head[$h][0] = DOL_URL_ROOT.'/ticketsup/contacts.php?track_id=' . $object->track_id; $head[$h][1] = $langs->trans('Contacts'); $head[$h][2] = 'tabTicketContacts'; $h++; } complete_head_from_modules($conf, $langs, $object, $head, $h, 'ticketsup'); - - + + // Attached files include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; $upload_dir = $conf->ticketsup->dir_output . "/" . $object->track_id; @@ -99,15 +101,15 @@ function ticketsup_prepare_head($object) // History - $head[$h][0] = dol_buildpath('/ticketsup/history.php', 1) . '?track_id=' . $object->track_id; + $head[$h][0] = DOL_URL_ROOT.'/ticketsup/history.php?track_id=' . $object->track_id; $head[$h][1] = $langs->trans('TicketHistory'); $head[$h][2] = 'tabTicketLogs'; $h++; - + complete_head_from_modules($conf, $langs, $object, $head, $h, 'ticketsup','remove'); - + return $head; } diff --git a/htdocs/core/modules/DolibarrModules.class.php b/htdocs/core/modules/DolibarrModules.class.php index eaf674d5eea..160499d3a45 100644 --- a/htdocs/core/modules/DolibarrModules.class.php +++ b/htdocs/core/modules/DolibarrModules.class.php @@ -1049,7 +1049,7 @@ class DolibarrModules // Can not be abstract, because we need to insta { if (preg_match('/\.sql$/i',$file) && ! preg_match('/\.key\.sql$/i',$file) && substr($file,0,4) == 'llx_' && substr($file,0,4) != 'data') { - $result=run_sql($dir.$file,1,'',1); + $result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?0:1, '', 1); if ($result <= 0) $error++; } } @@ -1067,7 +1067,7 @@ class DolibarrModules // Can not be abstract, because we need to insta { if (preg_match('/\.key\.sql$/i',$file) && substr($file,0,4) == 'llx_' && substr($file,0,4) != 'data') { - $result=run_sql($dir.$file,1,'',1); + $result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?0:1, '', 1); if ($result <= 0) $error++; } } @@ -1085,7 +1085,7 @@ class DolibarrModules // Can not be abstract, because we need to insta { if (preg_match('/\.sql$/i',$file) && ! preg_match('/\.key\.sql$/i',$file) && substr($file,0,4) == 'data') { - $result=run_sql($dir.$file,1,'',1); + $result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?0:1, '', 1); if ($result <= 0) $error++; } } @@ -1103,7 +1103,7 @@ class DolibarrModules // Can not be abstract, because we need to insta { if (preg_match('/\.sql$/i',$file) && ! preg_match('/\.key\.sql$/i',$file) && substr($file,0,6) == 'update') { - $result=run_sql($dir.$file,1,'',1); + $result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?0:1, '', 1); if ($result <= 0) $error++; } } diff --git a/htdocs/core/modules/ticketsup/mod_ticketsup_simple.php b/htdocs/core/modules/ticketsup/mod_ticketsup_simple.php index 25fabb12377..7aa636b0780 100644 --- a/htdocs/core/modules/ticketsup/mod_ticketsup_simple.php +++ b/htdocs/core/modules/ticketsup/mod_ticketsup_simple.php @@ -23,7 +23,7 @@ * \brief File with class to manage the numbering module Simple for ticketsup references */ -dol_include_once('/ticketsup/core/modules/modules_ticketsup.php'); +require_once DOL_DOCUMENT_ROOT.'/core/modules/modules_ticketsup.php'; /** * Class to manage the numbering module Simple for ticketsup references @@ -73,7 +73,8 @@ class mod_ticketsup_simple extends ModeleNumRefTicketsup $posindice = 8; $sql = "SELECT MAX(CAST(SUBSTRING(ref FROM " . $posindice . ") AS SIGNED)) as max"; $sql .= " FROM " . MAIN_DB_PREFIX . "ticketsup"; - $sql .= " WHERE ref LIKE '" . $this->prefix . "____-%'"; + $search = $this->prefix . "____-%"; + $sql .= " WHERE ref LIKE '" . $search ."'"; $sql .= " AND entity = " . $conf->entity; $resql = $db->query($sql); if ($resql) { @@ -107,7 +108,8 @@ class mod_ticketsup_simple extends ModeleNumRefTicketsup $posindice = 8; $sql = "SELECT MAX(CAST(SUBSTRING(ref FROM " . $posindice . ") AS SIGNED)) as max"; $sql .= " FROM " . MAIN_DB_PREFIX . "ticketsup"; - $sql .= " WHERE ref like '" . $this->prefix . "____-%'"; + $search = $this->prefix . "____-%"; + $sql .= " WHERE ref LIKE '" . $search ."'"; $sql .= " AND entity = " . $conf->entity; $resql = $db->query($sql); diff --git a/htdocs/core/modules/ticketsup/mod_ticketsup_universal.php b/htdocs/core/modules/ticketsup/mod_ticketsup_universal.php index cc8b88d7e8d..8c0c8c8fe0c 100644 --- a/htdocs/core/modules/ticketsup/mod_ticketsup_universal.php +++ b/htdocs/core/modules/ticketsup/mod_ticketsup_universal.php @@ -22,7 +22,7 @@ * \brief Fichier contenant la classe du modele de numerotation de reference de projet Universal */ -dol_include_once('/ticketsup/core/modules/modules_ticketsup.php'); +require_once DOL_DOCUMENT_ROOT.'/core/modules/modules_ticketsup.php'; /** * Classe du modele de numerotation de reference de projet Universal diff --git a/htdocs/core/triggers/interface_50_modTicketsup_TicketEmail.class.php b/htdocs/core/triggers/interface_50_modTicketsup_TicketEmail.class.php index 4f757c268ac..1990f184f84 100644 --- a/htdocs/core/triggers/interface_50_modTicketsup_TicketEmail.class.php +++ b/htdocs/core/triggers/interface_50_modTicketsup_TicketEmail.class.php @@ -134,8 +134,8 @@ class InterfaceTicketEmail extends DolibarrTriggers } $message .= ''; - $message .= '

' . $langs->trans('Message') . ' :
' . $object->message . '

'; - $message .= '

' . $langs->trans('SeeThisTicketIntomanagementInterface') . '

'; + $message .= '

' . $langs->trans('Message') . ' :
' . $object->message . '

'; + $message .= '

' . $langs->trans('SeeThisTicketIntomanagementInterface') . '

'; $sendto = $userstat->email; $from = dolGetFirstLastname($user->firstname, $user->lastname) . '<' . $user->email . '>'; @@ -202,7 +202,7 @@ class InterfaceTicketEmail extends DolibarrTriggers $message_admin.='

'.$langs->trans('Company'). ' : '.$object->thirdparty->name.'

'; } - $message_admin.='

'.$langs->trans('Message').' :
'.$object->message.'

'; + $message_admin.='

'.$langs->trans('Message').' :
'.$object->message.'

'; $message_admin.='

'.$langs->trans('SeeThisTicketIntomanagementInterface').'

'; $from = $conf->global->MAIN_INFO_SOCIETE_NOM.'<'.$conf->global->TICKETS_NOTIFICATION_EMAIL_FROM.'>'; @@ -250,7 +250,7 @@ class InterfaceTicketEmail extends DolibarrTriggers } } $message_customer.=''; - $message_customer.='

'.$langs->trans('Message').' :
'.$object->message.'

'; + $message_customer.='

'.$langs->trans('Message').' :
'.$object->message.'

'; $url_public_ticket = ($conf->global->TICKETS_URL_PUBLIC_INTERFACE?$conf->global->TICKETS_URL_PUBLIC_INTERFACE.'/':dol_buildpath('/ticketsup/public/view.php', 2)).'?track_id='.$object->track_id; $message_customer.='

' . $langs->trans('TicketNewEmailBodyInfosTrackUrlCustomer') . ' : '.$url_public_ticket.'

'; $message_customer.='

'.$langs->trans('TicketEmailPleaseDoNotReplyToThisEmail').'

'; diff --git a/htdocs/install/mysql/migration/7.0.0-8.0.0.sql b/htdocs/install/mysql/migration/7.0.0-8.0.0.sql index 7c82c54fb94..e9543583b03 100644 --- a/htdocs/install/mysql/migration/7.0.0-8.0.0.sql +++ b/htdocs/install/mysql/migration/7.0.0-8.0.0.sql @@ -120,4 +120,106 @@ ALTER TABLE llx_societe_rib ADD COLUMN total_amount_of_all_payments double(24,8) ALTER TABLE llx_societe_rib ADD COLUMN stripe_card_ref varchar(128); ALTER TABLE llx_societe_rib ADD COLUMN status integer NOT NULL DEFAULT 1; +CREATE TABLE llx_ticketsup +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + entity integer DEFAULT 1, + ref varchar(128) NOT NULL, + track_id varchar(128) NOT NULL, + fk_soc integer DEFAULT 0, + fk_project integer DEFAULT 0, + origin_email varchar(128), + fk_user_create integer, + fk_user_assign integer, + subject varchar(255), + message text, + fk_statut integer, + resolution integer, + progress varchar(100), + timing varchar(20), + type_code varchar(32), + category_code varchar(32), + severity_code varchar(32), + datec datetime, + date_read datetime, + date_close datetime, + tms timestamp +)ENGINE=innodb; + +ALTER TABLE llx_ticketsup ADD UNIQUE uk_ticketsup_rowid_track_id (rowid, track_id); +ALTER TABLE llx_ticketsup ADD INDEX id_ticketsup_track_id (track_id); + +CREATE TABLE llx_ticketsup_msg +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + entity integer DEFAULT 1, + fk_track_id varchar(128), + fk_user_action integer, + datec datetime, + message text, + private integer DEFAULT 0 +)ENGINE=innodb; + + +ALTER TABLE llx_ticketsup_msg ADD CONSTRAINT fk_ticketsup_msg_fk_track_id FOREIGN KEY (fk_track_id) REFERENCES llx_ticketsup (track_id); + +CREATE TABLE llx_ticketsup_logs +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + entity integer DEFAULT 1, + fk_track_id varchar(128), + fk_user_create integer, + datec datetime, + message text +)ENGINE=innodb; + +ALTER TABLE llx_ticketsup_logs ADD CONSTRAINT fk_ticketsup_logs_fk_track_id FOREIGN KEY (fk_track_id) REFERENCES llx_ticketsup (track_id); + +CREATE TABLE llx_ticketsup_extrafields +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + tms timestamp, + fk_object integer NOT NULL, + import_key varchar(14) +)ENGINE=innodb; + +ALTER TABLE llx_c_ticketsup_category ADD INDEX idx_code (code); + +CREATE TABLE llx_c_ticketsup_category +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + code varchar(32) NOT NULL, + pos varchar(32) NOT NULL, + label varchar(128) NOT NULL, + active integer DEFAULT 1, + use_default integer DEFAULT 1, + description varchar(255) +)ENGINE=innodb; + +ALTER TABLE llx_c_ticketsup_severity ADD INDEX idx_code (code); + +CREATE TABLE llx_c_ticketsup_severity +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + code varchar(32) NOT NULL, + pos varchar(32) NOT NULL, + label varchar(128) NOT NULL, + color varchar(10) NOT NULL, + active integer DEFAULT 1, + use_default integer DEFAULT 1, + description varchar(255) +)ENGINE=innodb; + +ALTER TABLE llx_c_ticketsup_type ADD INDEX idx_code (code); + +CREATE TABLE llx_c_ticketsup_type +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + code varchar(32) NOT NULL, + pos varchar(32) NOT NULL, + label varchar(128) NOT NULL, + active integer DEFAULT 1, + use_default integer DEFAULT 1, + description varchar(255) +)ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_ticketsup.key.sql b/htdocs/install/mysql/tables/llx_ticketsup.key.sql index 4e06a1d8f44..abf853e718c 100755 --- a/htdocs/install/mysql/tables/llx_ticketsup.key.sql +++ b/htdocs/install/mysql/tables/llx_ticketsup.key.sql @@ -14,4 +14,5 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . -ALTER TABLE llx_ticketsup ADD UNIQUE uk_matable_field(rowid, track_id); +ALTER TABLE llx_ticketsup ADD UNIQUE uk_ticketsup_rowid_track_id (rowid, track_id); +ALTER TABLE llx_ticketsup ADD INDEX id_ticketsup_track_id (track_id); diff --git a/htdocs/install/mysql/tables/llx_ticketsup_logs.key.sql b/htdocs/install/mysql/tables/llx_ticketsup_logs.key.sql index 764a6dc313a..180febe01bf 100755 --- a/htdocs/install/mysql/tables/llx_ticketsup_logs.key.sql +++ b/htdocs/install/mysql/tables/llx_ticketsup_logs.key.sql @@ -14,4 +14,4 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . -ALTER TABLE llx_ticketsup_logs ADD CONSTRAINT fk_ticketsup_logs_fk_track_id FOREIGN KEY (fk_track_id) REFERENCES llx_ticketsup (fk_track_id); +ALTER TABLE llx_ticketsup_logs ADD CONSTRAINT fk_ticketsup_logs_fk_track_id FOREIGN KEY (fk_track_id) REFERENCES llx_ticketsup (track_id); diff --git a/htdocs/public/ticketsup/create_ticket.php b/htdocs/public/ticketsup/create_ticket.php index 06c6b85cb02..867658b48ac 100644 --- a/htdocs/public/ticketsup/create_ticket.php +++ b/htdocs/public/ticketsup/create_ticket.php @@ -275,7 +275,7 @@ if ($action == 'create_ticket' && GETPOST('add_ticket')) { } } $message_admin .= ''; - $message_admin .= '

' . $langs->trans('Message') . ' :
' . $object->message . '

'; + $message_admin .= '

' . $langs->trans('Message') . ' :
' . $object->message . '

'; $message_admin .= '

' . $langs->trans('SeeThisTicketIntomanagementInterface') . '

'; $from = $conf->global->MAIN_INFO_SOCIETE_NOM . '<' . $conf->global->TICKETS_NOTIFICATION_EMAIL_FROM . '>'; @@ -367,7 +367,7 @@ if ($action != "infos_success") { $formticket->showForm(); } else { print '
' . $langs->trans('MesgInfosPublicTicketCreatedWithTrackId', '' . $object->track_id . ''); - print '
'; + print '
'; print $langs->trans('PleaseRememberThisId'); } print '
'; diff --git a/htdocs/public/ticketsup/list.php b/htdocs/public/ticketsup/list.php index 0cbbd65f6b2..adea8def5ea 100644 --- a/htdocs/public/ticketsup/list.php +++ b/htdocs/public/ticketsup/list.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2013-2016 Jean-François FERRY * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -34,28 +34,10 @@ if (!defined("NOLOGIN")) { } // If this page is public (can be called outside logged session) -// Change this following line to use the correct relative path (../, ../../, etc) -$res = 0; -if (!$res && file_exists("../main.inc.php")) { - $res = @include '../main.inc.php'; -} - -if (!$res && file_exists("../../main.inc.php")) { - $res = @include '../../main.inc.php'; -} - -if (!$res && file_exists("../../../main.inc.php")) { - $res = @include '../../../main.inc.php'; -} - -if (!$res) { - die("Include of main fails"); -} - -// Change this following line to use the correct relative path from htdocs -dol_include_once('/ticketsup/class/actions_ticketsup.class.php'); -dol_include_once('/ticketsup/class/html.formticketsup.class.php'); -dol_include_once('/ticketsup/lib/ticketsup.lib.php'); +require '../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/ticketsup/class/actions_ticketsup.class.php'; +require_once DOL_DOCUMENT_ROOT.'/ticketsup/class/html.formticketsup.class.php'; +require_once DOL_DOCUMENT_ROOT.'/ticketsup/lib/ticketsup.lib.php'; // Load traductions files requiredby by page $langs->load("companies"); @@ -671,7 +653,7 @@ if ($action == "view_ticketlist") { } } } else { - print ''; + print ''; } } else { print '

' . $langs->trans("TicketPublicMsgViewLogIn") . '

'; diff --git a/htdocs/ticketsup/.gitignore b/htdocs/ticketsup/.gitignore deleted file mode 100755 index 32dd28ee407..00000000000 --- a/htdocs/ticketsup/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -# Generated binaries -/build/*.zip -# Doxygen generated documentation -/build/doxygen/doxygen_warnings.log -/doc/code/doxygen -# Composer managed dependencies -/vendor/ -/dev/bin -# PHPdocumentor generated files -/build/phpdoc -/doc/code/phpdoc -# Sphinx generated files -/doc/user/build -/.settings/ -/.buildpath -/.project -/test/report -# PhpStorm generated files -/.idea/ diff --git a/htdocs/ticketsup/card.php b/htdocs/ticketsup/card.php index cdf026a9a0a..b5ffa4b63d8 100644 --- a/htdocs/ticketsup/card.php +++ b/htdocs/ticketsup/card.php @@ -533,7 +533,7 @@ if ($action == 'view' || $action == 'add_message' || $action == 'close' || $acti $userstatic = new User($db); foreach (array('internal', 'external') as $source) { $tmpobject = $object->dao; - $tab = $tmpobject->liste_contact(-1, $source); + $tab = $tmpobject->listeContact(-1, $source); $num = count($tab); $i = 0; while ($i < $num) { diff --git a/htdocs/ticketsup/class/actions_ticketsup.class.php b/htdocs/ticketsup/class/actions_ticketsup.class.php index 259be1eca2b..a98f3ecf15d 100644 --- a/htdocs/ticketsup/class/actions_ticketsup.class.php +++ b/htdocs/ticketsup/class/actions_ticketsup.class.php @@ -343,7 +343,7 @@ class ActionsTicketsup if ($ret) { // Si déjà un user assigné on le supprime des contacts if ($useroriginassign > 0) { - $internal_contacts = $this->dao->liste_contact(-1, 'internal'); + $internal_contacts = $this->dao->listeContact(-1, 'internal'); foreach ($internal_contacts as $key => $contact) { if ($contact['code'] == "SUPPORTTEC" && $contact['id'] == $useroriginassign) { @@ -609,8 +609,8 @@ class ActionsTicketsup /** * Add new message on a ticket (private area) * - * @param User $user Object user - * @param string $action Action + * @param User $user User for action + * @param string $action Action string */ private function newMessage($user, &$action) { @@ -820,8 +820,8 @@ class ActionsTicketsup /** * Add new message on a ticket (public area) * - * @param User $user Object user - * @param string $action Action + * @param User $user User for action + * @param string $action Action string */ private function newMessagePublic($user, &$action) { @@ -964,10 +964,10 @@ class ActionsTicketsup /** * Fetch object * - * @param int $id Id - * @param int $track_id Track id - * @param string $ref Ref - * @return void + * @param int $id ID of ticket + * @param int $track_id Track ID of ticket (for public area) + * @param string $ref Reference of ticket + * @return void */ public function fetch($id = 0, $track_id = 0, $ref = '') { @@ -977,8 +977,12 @@ class ActionsTicketsup /** * print statut +<<<<<<< HEAD * * @param int $mode Mode +======= + * @param int $mode Display mode +>>>>>>> branch 'develop' of git@github.com:Dolibarr/dolibarr.git * @return void */ public function getLibStatut($mode = 0) @@ -989,10 +993,9 @@ class ActionsTicketsup } /** - * Get ticket info + * Get ticket info * - * @param int $id Object id - * @return void + * @param int $id Object id */ public function getInfo($id) { @@ -1004,10 +1007,9 @@ class ActionsTicketsup } /** - * Get action title + * Get action title * - * @param string $action Type of action - * @return string Label + * @param string $action Type of action */ public function getTitle($action = '') { @@ -1029,8 +1031,7 @@ class ActionsTicketsup /** * View html list of logs * - * @param boolean $show_user Show user who make action - * @return void + * @param boolean $show_user Show user who make action */ public function viewTicketLogs($show_user = true) { @@ -1092,8 +1093,7 @@ class ActionsTicketsup /** * View list of logs with timeline view * - * @param boolean $show_user Show user who make action - * @return void + * @param boolean $show_user Show user who make action */ public function viewTimelineTicketLogs($show_user = true) { @@ -1139,9 +1139,8 @@ class ActionsTicketsup /** * Show ticket original message * - * @param User $user Object user - * @param string $action Action - * @return void + * @param User $user $user wich display + * @param string $action Action mode */ public function viewTicketOriginalMessage($user, $action = '') { @@ -1196,9 +1195,8 @@ class ActionsTicketsup /** * View html list of message for ticket * - * @param boolean $show_private Show private messages - * @param boolean $show_user Show user who make action - * @return void + * @param boolean $show_private Show private messages + * @param boolean $show_user Show user who make action */ public function viewTicketMessages($show_private, $show_user = true) { @@ -1268,9 +1266,8 @@ class ActionsTicketsup /** * View list of message for ticket with timeline display * - * @param boolean $show_private Show private messages - * @param boolean $show_user Show user who make action - * @return void + * @param boolean $show_private Show private messages + * @param boolean $show_user Show user who make action */ public function viewTicketTimelineMessages($show_private, $show_user = true) { @@ -1419,12 +1416,17 @@ class ActionsTicketsup /** * Copy files into ticket directory + * * Used for files linked into messages +<<<<<<< HEAD * * @return void +======= +>>>>>>> branch 'develop' of git@github.com:Dolibarr/dolibarr.git */ public function copyFilesForTicket() { + global $conf; // Create form object @@ -1466,9 +1468,14 @@ class ActionsTicketsup /** * Print html navbar with link to set ticket status +<<<<<<< HEAD * $selected : 0=>'NotRead', 1=>'Read', 3=>'Answered', 4=>'Assigned', 5 => 'InProgress', 6=> 'Waiting', 8=>'Closed', 9=>'Deleted' * * @return void +======= + * + * @global type $langs +>>>>>>> branch 'develop' of git@github.com:Dolibarr/dolibarr.git */ public function viewStatusActions() { @@ -1520,10 +1527,10 @@ class ActionsTicketsup /** * Hook to add email element template * - * @param array $parameters Parameters - * @param Object $object Object - * @param string $action Action - * @param HookManager $hookmanager Hookmanager + * @param array $parameters Parameters + * @param Ticketsup $object Object for action + * @param string $action Action string + * @param HookManager $hookmanager Hookmanager object * @return int */ public function emailElementlist($parameters, &$object, &$action, $hookmanager) diff --git a/htdocs/ticketsup/class/ticketsup.class.php b/htdocs/ticketsup/class/ticketsup.class.php index d01ca904a06..33bd82c38e6 100644 --- a/htdocs/ticketsup/class/ticketsup.class.php +++ b/htdocs/ticketsup/class/ticketsup.class.php @@ -533,14 +533,15 @@ class Ticketsup extends CommonObject /** * Load all objects in memory from database * - * @param User $user Object user - * @param string $sortorder Sort order - * @param string $sortfield Sort field - * @param int $limit page number - * @param int $offset Offset - * @param int $arch archive or not (not used) - * @param array $filter Filter - * @return int <0 if KO, >0 if OK + * @param User $user User for action + * @param string $sortorder Sort order + * @param string $sortfield Sort field + * @param int $limit page number + * @param int $offset Offset for query + * @param int $arch archive or not (not used) + * @param array $filter Filter for query + * output + * @return int <0 if KO, >0 if OK */ public function fetchAll($user, $sortorder = 'ASC', $sortfield = 't.datec', $limit = '', $offset = 0, $arch = '', $filter = '') { @@ -1052,7 +1053,7 @@ class Ticketsup extends CommonObject * * @return int Nb lignes chargees, 0 si deja chargees, <0 si ko */ - function load_cache_categories_tickets() + public function loadCacheCategoriesTickets() { global $langs; @@ -1128,17 +1129,19 @@ class Ticketsup extends CommonObject } } + /** - * Return status label of object + * Return status label of object * - * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto - * @return string Label + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto + * @return string Label */ public function getLibStatut($mode = 0) { - return $this->LibStatut($this->fk_statut, $mode); + return $this->libStatut($this->fk_statut, $mode); } + /** * Return status label of object * @@ -1291,11 +1294,11 @@ class Ticketsup extends CommonObject } /** - * Renvoie nom clicable (avec eventuellement le picto) + * Return clickable link to object * - * @param int $withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul - * @param string $option Sur quoi pointe le lien - * @return string Chaine avec URL + * @param int $withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul + * @param string $option Sur quoi pointe le lien + * @return string Chaine avec URL */ public function getNomUrl($withpicto = 0, $option = '') { @@ -1330,9 +1333,9 @@ class Ticketsup extends CommonObject /** * Mark a message as read * - * @param User $user Object user - * @param int $notrigger No trigger - * @return int <0 if KO, >0 if OK + * @param User $user Object user + * @param int $notrigger No trigger + * @return int <0 if KO, >0 if OK */ public function markAsRead($user, $notrigger = 0) { @@ -1431,10 +1434,10 @@ class Ticketsup extends CommonObject * 1- create entry into database for message storage * 2- if trigger, send an email to ticket contacts * - * @param User $user User that create - * @param string $message Log message - * @param int $noemail 0=send email after, 1=disable emails - * @return int <0 if KO, >0 if OK + * @param User $user User that create + * @param string $message Log message + * @param int $noemail 0=send email after, 1=disable emails + * @return int <0 if KO, >0 if OK */ public function createTicketLog(User $user, $message, $noemail = 0) { @@ -1492,7 +1495,7 @@ class Ticketsup extends CommonObject * @param string $log_message Log message * @return int <0 if KO, >0 if OK (number of emails sent) */ - private function sendLogByEmail($user, $log_message) + private function sendLogByEmail($user, $message) { global $conf, $langs; @@ -1501,8 +1504,8 @@ class Ticketsup extends CommonObject $langs->load('ticketsup@ticketsup'); // Retrieve email of all contacts (internal and external) - $contacts = $this->liste_contact(-1, 'internal'); - $contacts = array_merge($contacts, $this->liste_contact(-1, 'external')); + $contacts = $this->listeContact(-1, 'internal'); + $contacts = array_merge($contacts, $this->listeContact(-1, 'external')); /* If origin_email and no socid, we add email to the list * */ if (!empty($this->origin_email) && empty($this->fk_soc)) { @@ -2034,7 +2037,7 @@ class Ticketsup extends CommonObject */ public function getInfosTicketInternalContact() { - return $this->liste_contact(-1, 'internal'); + return $this->listeContact(-1, 'internal'); } /** @@ -2054,7 +2057,7 @@ class Ticketsup extends CommonObject */ public function getInfosTicketExternalContact() { - return $this->liste_contact(-1, 'external'); + return $this->listeContact(-1, 'external'); } /** @@ -2112,7 +2115,7 @@ class Ticketsup extends CommonObject } /** - * Check if contact are linked to the ticket. If yes, send mail and save trace into llx_notify. + * Send message * * @param string $subject Subject * @param string $texte Message to send @@ -2243,10 +2246,9 @@ class Ticketsup extends CommonObject * @param int $statut Status of lines to get (-1=all) * @param string $source Source of contact: external or thirdparty (llx_socpeople) or internal (llx_user) * @param int $list 0:Return array contains all properties, 1:Return array contains just id - * @param string $code Code * @return array Array of contacts */ - function liste_contact($statut = -1, $source = 'external', $list = 0, $code = '') + function liste_contact($statut = -1, $source = 'external', $list = 0) { global $langs; @@ -2298,8 +2300,7 @@ class Ticketsup extends CommonObject } $sql .= " ORDER BY t.lastname ASC"; - //echo $sql; exit; - dol_syslog(get_class($this) . "::liste_contact sql=" . $sql); + $resql = $this->db->query($sql); if ($resql) { $num = $this->db->num_rows($resql); diff --git a/htdocs/ticketsup/index.php b/htdocs/ticketsup/index.php index 74a6000c2ee..505812f84c6 100644 --- a/htdocs/ticketsup/index.php +++ b/htdocs/ticketsup/index.php @@ -347,7 +347,7 @@ if ($result) { $db->free(); } else { - print '
' . $langs->trans('NoTicketsFound') . '
'; + print '
' . $langs->trans('NoTicketsFound') . '
'; } print ""; diff --git a/htdocs/ticketsup/tpl/index.html b/htdocs/ticketsup/tpl/index.html new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/htdocs/ticketsup/tpl/index.html @@ -0,0 +1 @@ + diff --git a/htdocs/ticketsup/tpl/linkedobjectblock.tpl.php b/htdocs/ticketsup/tpl/linkedobjectblock.tpl.php index cd23471129e..4c1a00c3d82 100644 --- a/htdocs/ticketsup/tpl/linkedobjectblock.tpl.php +++ b/htdocs/ticketsup/tpl/linkedobjectblock.tpl.php @@ -16,6 +16,12 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +// Protection to avoid direct call of template +if (empty($conf) || ! is_object($conf)) +{ + print "Error, template page can't be called as URL"; + exit; +} ?> @@ -55,4 +61,4 @@ foreach ($linkedObjectBlock as $object) { - \ No newline at end of file +