33 global $langs, $conf, $db;
36 $extrafields->fetch_name_optionals_label(
'ticket');
38 $langs->load(
"ticket");
43 $head[$h][0] = DOL_URL_ROOT.
'/admin/ticket.php';
44 $head[$h][1] = $langs->trans(
"TicketSettings");
45 $head[$h][2] =
'settings';
48 $head[$h][0] = DOL_URL_ROOT.
'/admin/ticket_extrafields.php';
49 $head[$h][1] = $langs->trans(
"ExtraFieldsTicket");
50 $nbExtrafields = $extrafields->attributes[
'ticket'][
'count'];
51 if ($nbExtrafields > 0) {
52 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbExtrafields.
'</span>';
54 $head[$h][2] =
'attributes';
57 $head[$h][0] = DOL_URL_ROOT.
'/admin/ticket_public.php';
58 $head[$h][1] = $langs->trans(
"PublicInterface");
59 $head[$h][2] =
'public';
85 global $db, $langs, $conf, $user;
89 $head[$h][0] = DOL_URL_ROOT.
'/ticket/card.php?track_id='.$object->track_id;
90 $head[$h][1] = $langs->trans(
"Ticket");
91 $head[$h][2] =
'tabTicket';
95 $nbContact = count($object->liste_contact(-1,
'internal')) + count($object->liste_contact(-1,
'external'));
96 $head[$h][0] = DOL_URL_ROOT.
'/ticket/contact.php?track_id='.$object->track_id;
97 $head[$h][1] = $langs->trans(
'ContactsAddresses');
99 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbContact.
'</span>';
101 $head[$h][2] =
'contact';
108 include_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
109 $upload_dir = $conf->ticket->dir_output.
"/".$object->ref;
111 $head[$h][0] = DOL_URL_ROOT.
'/ticket/document.php?id='.$object->id;
112 $head[$h][1] = $langs->trans(
"Documents");
114 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbFiles.
'</span>';
117 $head[$h][2] =
'tabTicketDocument';
122 $ticketViewType =
"messaging";
123 if (empty($_SESSION[
'ticket-view-type'])) {
124 $_SESSION[
'ticket-view-type'] = $ticketViewType;
126 $ticketViewType = $_SESSION[
'ticket-view-type'];
129 if ($ticketViewType ==
"messaging") {
130 $head[$h][0] = DOL_URL_ROOT.
'/ticket/messaging.php?track_id='.$object->track_id;
133 $head[$h][0] = DOL_URL_ROOT.
'/ticket/agenda.php?track_id='.$object->track_id;
135 $head[$h][1] = $langs->trans(
'Events');
136 if (
isModEnabled(
'agenda') && ($user->hasRight(
'agenda',
'myactions',
'read') || $user->hasRight(
'agenda',
'allactions',
'read'))) {
138 $head[$h][1] .= $langs->trans(
"Agenda");
140 $head[$h][2] =
'tabTicketLogs';
159 global $conf, $langs;
161 require_once DOL_DOCUMENT_ROOT.
'/core/class/CMailFile.class.php';
165 $url =
dol_buildpath(
'/public/ticket/view.php', 3).
'?track_id='.$object->track_id.
'&email='.$email;
170 $langs->load(
'errors');
171 $out .=
'<span class="opacitymedium">'.$langs->trans(
"ErrorPublicInterfaceNotEnabled").
'</span>';
173 $out .=
img_picto(
'',
'object_globe.png').
' <span class="opacitymedium">'.$langs->trans(
"TicketPublicAccess").
'</span><br>';
175 $out .=
'<div class="urllink">';
176 $out .=
'<input type="text" id="directpubliclink" class="quatrevingtpercentminusx" value="'.$url.
'">';
177 $out .=
'<a href="'.$url.
'" target="_blank" rel="noopener noreferrer">'.
img_picto(
'',
'object_globe.png',
'class="paddingleft"').
'</a>';
181 $out .=
'<span class="opacitymedium">'.$langs->trans(
"TicketNotCreatedFromPublicInterface").
'</span>';
197 $chaine =
"abcdefghijklmnopqrstuvwxyz123456789";
198 mt_srand((
double) microtime() * 1000000);
199 for ($i = 0; $i < $car; $i++) {
200 $string .= $chaine[mt_rand() % strlen($chaine)];
216 function llxHeaderTicket($title, $head =
"", $disablejs = 0, $disablehead = 0, $arrayofjs =
'', $arrayofcss =
'')
218 global $user, $conf, $langs, $mysoc;
221 top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss, 0, 1);
223 print
'<body id="mainbody" class="publicnewticketform">';
224 print
'<div class="publicnewticketform2 flexcontainer centpercent" style="min-height: 100%;">';
226 print
'<header class="center centpercent">';
232 $urllogo = DOL_URL_ROOT.
'/theme/common/login_logo.png';
234 if (!empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.
'/logos/thumbs/'.$mysoc->logo_small)) {
235 $urllogo = DOL_URL_ROOT.
'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.
'&file='.urlencode(
'logos/thumbs/'.$mysoc->logo_small);
236 } elseif (!empty($mysoc->logo) && is_readable($conf->mycompany->dir_output.
'/logos/'.$mysoc->logo)) {
237 $urllogo = DOL_URL_ROOT.
'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.
'&file='.urlencode(
'logos/'.$mysoc->logo);
238 } elseif (is_readable(DOL_DOCUMENT_ROOT.
'/theme/dolibarr_logo.svg')) {
239 $urllogo = DOL_URL_ROOT.
'/theme/dolibarr_logo.svg';
246 print
'<div class="backgreypublicpayment">';
247 print
'<div class="logopublicpayment">';
249 print
'<a href="'.(getDolGlobalString(
'TICKET_URL_PUBLIC_INTERFACE') ?
getDolGlobalString(
'TICKET_URL_PUBLIC_INTERFACE') :
dol_buildpath(
'/public/ticket/index.php?entity='.$conf->entity, 1)).
'">';
250 print
'<img id="dolpaymentlogo" src="'.$urllogo.
'"';
255 print
'<div class="clearboth"></div><strong>'.(getDolGlobalString(
'TICKET_PUBLIC_INTERFACE_TOPIC') ?
getDolGlobalString(
'TICKET_PUBLIC_INTERFACE_TOPIC') : $langs->trans(
"TicketSystem")).
'</strong>';
259 print
'<div class="poweredbypublicpayment opacitymedium right hideonsmartphone"><a class="poweredbyhref" href="https://www.dolibarr.org?utm_medium=website&utm_source=poweredby" target="dolibarr" rel="noopener">'.$langs->trans(
"PoweredBy").
'<br><img src="'.DOL_URL_ROOT.
'/theme/dolibarr_logo.svg" width="80px"></a></div>';
265 print
'<div class="backimagepublicticket">';
266 print
'<img id="idTICKET_IMAGE_PUBLIC_INTERFACE" src="'.getDolGlobalString(
'TICKET_IMAGE_PUBLIC_INTERFACE').
'">';