24 if (!defined(
'NOCSRFCHECK')) {
25 define(
'NOCSRFCHECK',
'1');
28 if (!defined(
'NOREQUIREMENU')) {
29 define(
'NOREQUIREMENU',
'1');
32 if (!defined(
"NOLOGIN")) {
33 define(
"NOLOGIN",
'1');
35 if (!defined(
'NOIPCHECK')) define(
'NOIPCHECK',
'1');
36 if (!defined(
'NOBROWSERNOTIF')) define(
'NOBROWSERNOTIF',
'1');
39 require
'../../main.inc.php';
40 require_once DOL_DOCUMENT_ROOT.
'/ticket/class/actions_ticket.class.php';
41 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formticket.class.php';
42 require_once DOL_DOCUMENT_ROOT.
'/core/class/CMailFile.class.php';
43 require_once DOL_DOCUMENT_ROOT.
'/core/lib/ticket.lib.php';
44 require_once DOL_DOCUMENT_ROOT.
'/core/lib/security.lib.php';
45 require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
46 require_once DOL_DOCUMENT_ROOT.
'/core/lib/payments.lib.php';
49 $langs->loadLangs(array(
"companies",
"other",
"ticket"));
52 $track_id =
GETPOST(
'track_id',
'alpha');
53 $action =
GETPOST(
'action',
'aZ09');
54 $email =
GETPOST(
'email',
'alpha');
56 if (
GETPOST(
'btn_view_ticket_list')) {
57 unset($_SESSION[
'track_id_customer']);
58 unset($_SESSION[
'email_customer']);
60 if (isset($_SESSION[
'track_id_customer'])) {
61 $track_id = $_SESSION[
'track_id_customer'];
63 if (isset($_SESSION[
'email_customer'])) {
64 $email = $_SESSION[
'email_customer'];
76 if ($action ==
"view_ticketlist") {
78 $display_ticket_list =
false;
79 if (!strlen($track_id)) {
81 array_push($object->errors, $langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"TicketTrackId")));
85 if (!strlen($email)) {
87 array_push($object->errors, $langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"Email")));
92 array_push($object->errors, $langs->trans(
"ErrorEmailOrTrackingInvalid"));
98 $ret = $object->fetch(
'',
'', $track_id);
100 if ($ret && $object->id > 0) {
102 $contacts = $object->liste_contact(-1,
'external');
103 foreach ($contacts as $contact) {
104 if ($contact[
'email'] == $email) {
105 $display_ticket_list =
true;
106 $_SESSION[
'email_customer'] = $email;
107 $_SESSION[
'track_id_customer'] = $track_id;
110 $display_ticket_list =
false;
113 if ($object->fk_soc > 0) {
114 $object->fetch_thirdparty();
115 if ($email == $object->thirdparty->email) {
116 $display_ticket_list =
true;
117 $_SESSION[
'email_customer'] = $email;
118 $_SESSION[
'track_id_customer'] = $track_id;
121 if ($object->fk_user_create > 0) {
122 $tmpuser =
new User($db);
123 $tmpuser->fetch($object->fk_user_create);
124 if ($email == $tmpuser->email) {
125 $display_ticket_list =
true;
126 $_SESSION[
'email_customer'] = $email;
127 $_SESSION[
'track_id_customer'] = $track_id;
132 if ($email == $emailorigin) {
133 $display_ticket_list =
true;
134 $_SESSION[
'email_customer'] = $email;
135 $_SESSION[
'track_id_customer'] = $track_id;
139 array_push($object->errors, $langs->trans(
"ErrorTicketNotFound", $track_id));
144 if ($error || $errors) {
158 $form =
new Form($db);
159 $user_assign =
new User($db);
160 $user_create =
new User($db);
163 if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) {
164 print '<div class="error">'.$langs->trans(
'TicketPublicInterfaceForbidden').
'</div>';
169 $arrayofjs = array();
170 $arrayofcss = array(
'/ticket/css/styles.css.php');
172 llxHeaderTicket($langs->trans(
"Tickets"),
"", 0, 0, $arrayofjs, $arrayofcss);
175 print '<div class="ticketpublicarealist">';
177 if ($action ==
"view_ticketlist")
180 if ($display_ticket_list) {
182 $search_fk_status =
GETPOST(
"search_fk_status",
'alpha');
183 $search_subject =
GETPOST(
"search_subject",
'alpha');
184 $search_type =
GETPOST(
"search_type",
'alpha');
185 $search_category =
GETPOST(
"search_category",
'alpha');
186 $search_severity =
GETPOST(
"search_severity",
'alpha');
187 $search_fk_user_create =
GETPOST(
"search_fk_user_create",
'int');
188 $search_fk_user_assign =
GETPOST(
"search_fk_user_assign",
'int');
191 $url_page_current =
dol_buildpath(
'/public/ticket/list.php', 1);
194 if (
GETPOST(
"button_removefilter_x")) {
195 $search_fk_status =
'';
196 $search_subject =
'';
198 $search_category =
'';
199 $search_severity =
'';
200 $search_fk_user_create =
'';
201 $search_fk_user_assign =
'';
206 $extrafields->fetch_name_optionals_label($object->table_element);
208 $search_array_options = $extrafields->getOptionalsFromPost($object->table_element,
'',
'search_');
211 $param =
'action=view_ticketlist';
214 $arrayfields = array(
215 't.datec' => array(
'label' => $langs->trans(
"Date"),
'checked' => 1),
216 't.date_read' => array(
'label' => $langs->trans(
"TicketReadOn"),
'checked' => 0),
217 't.date_close' => array(
'label' => $langs->trans(
"TicketCloseOn"),
'checked' => 0),
218 't.ref' => array(
'label' => $langs->trans(
"Ref"),
'checked' => 1),
220 't.fk_statut' => array(
'label' => $langs->trans(
"Status"),
'checked' => 1),
221 't.subject' => array(
'label' => $langs->trans(
"Subject"),
'checked' => 1),
222 'type.code' => array(
'label' => $langs->trans(
"Type"),
'checked' => 1),
223 'category.code' => array(
'label' => $langs->trans(
"Category"),
'checked' => 1),
224 'severity.code' => array(
'label' => $langs->trans(
"Severity"),
'checked' => 1),
225 't.progress' => array(
'label' => $langs->trans(
"Progression"),
'checked' => 0),
227 't.fk_user_create' => array(
'label' => $langs->trans(
"Author"),
'checked' => 1),
228 't.fk_user_assign' => array(
'label' => $langs->trans(
"AssignedTo"),
'checked' => 0),
237 if (is_array($extrafields->attributes[$object->table_element][
'label']) && count($extrafields->attributes[$object->table_element][
'label'])) {
238 foreach ($extrafields->attributes[$object->table_element][
'label'] as $key => $val) {
239 if ($extrafields->attributes[$object->table_element][
'type'][$key] !=
'separate') {
240 $arrayfields[
"ef.".$key] = array(
'label' => $extrafields->attributes[$object->table_element][
'label'][$key],
'checked' => ($extrafields->attributes[$object->table_element][
'list'][$key] < 0) ? 0 : 1,
'position' => $extrafields->attributes[$object->table_element][
'pos'][$key],
'enabled' =>(abs($extrafields->attributes[$object->table_element][
'list'][$key]) != 3) && $extrafields->attributes[$object->table_element][
'perms'][$key]);
244 if (!empty($search_subject)) {
245 $filter[
't.subject'] = $search_subject;
246 $param .=
'&search_subject='.urlencode($search_subject);
248 if (!empty($search_type)) {
249 $filter[
't.type_code'] = $search_type;
250 $param .=
'&search_type='.urlencode($search_type);
252 if (!empty($search_category)) {
253 $filter[
't.category_code'] = $search_category;
254 $param .=
'&search_category='.urlencode($search_category);
256 if (!empty($search_severity)) {
257 $filter[
't.severity_code'] = $search_severity;
258 $param .=
'&search_severity='.urlencode($search_severity);
260 if (!empty($search_fk_user_assign)) {
262 if ($search_fk_user_assign > 0) {
263 $filter[
't.fk_user_assign'] = $search_fk_user_assign;
264 $param .=
'&search_fk_user_assign='.urlencode($search_fk_user_assign);
267 if (!empty($search_fk_user_create)) {
269 if ($search_fk_user_create > 0) {
270 $filter[
't.fk_user_create'] = $search_fk_user_create;
271 $param .=
'&search_fk_user_create='.urlencode($search_fk_user_create);
274 if ((isset($search_fk_status) && $search_fk_status !=
'') && $search_fk_status !=
'-1' && $search_fk_status !=
'non_closed') {
275 $filter[
't.fk_statut'] = $search_fk_status;
276 $param .=
'&search_fk_status='.urlencode($search_fk_status);
278 if (isset($search_fk_status) && $search_fk_status ==
'non_closed') {
279 $filter[
't.fk_statut'] = array(0, 1, 3, 4, 5, 6);
280 $param .=
'&search_fk_status=non_closed';
283 require DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
285 $sortfield =
GETPOST(
"sortfield",
'alpha');
286 $sortorder =
GETPOST(
"sortorder",
'alpha');
289 $sortfield =
't.datec';
295 $limit = $conf->liste_limit;
298 if (empty($page) || $page == -1) { $page = 0; }
299 $offset = $limit * $page;
300 $pageprev = $page - 1;
301 $pagenext = $page + 1;
304 $sql =
"SELECT DISTINCT";
307 $sql .=
" t.track_id,";
308 $sql .=
" t.fk_soc,";
309 $sql .=
" t.fk_project,";
310 $sql .=
" t.origin_email,";
311 $sql .=
" t.fk_user_create, uc.lastname as user_create_lastname, uc.firstname as user_create_firstname,";
312 $sql .=
" t.fk_user_assign, ua.lastname as user_assign_lastname, ua.firstname as user_assign_firstname,";
313 $sql .=
" t.subject,";
314 $sql .=
" t.message,";
315 $sql .=
" t.fk_statut,";
316 $sql .=
" t.resolution,";
317 $sql .=
" t.progress,";
318 $sql .=
" t.timing,";
319 $sql .=
" t.type_code,";
320 $sql .=
" t.category_code,";
321 $sql .=
" t.severity_code,";
323 $sql .=
" t.date_read,";
324 $sql .=
" t.date_close,";
326 $sql .=
" type.label as type_label, category.label as category_label, severity.label as severity_label";
328 if (is_array($extrafields->attributes[$object->table_element][
'label']) && count($extrafields->attributes[$object->table_element][
'label'])) {
329 foreach ($extrafields->attributes[$object->table_element][
'label'] as $key => $val)
330 $sql .= ($extrafields->attributes[$object->table_element][
'type'][$key] !=
'separate' ?
", ef.".$key.
' as options_'.$key :
'');
332 $sql .=
" FROM ".MAIN_DB_PREFIX.
"ticket as t";
333 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_ticket_type as type ON type.code=t.type_code";
334 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_ticket_category as category ON category.code=t.category_code";
335 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_ticket_severity as severity ON severity.code=t.severity_code";
336 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"societe as s ON s.rowid=t.fk_soc";
337 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"user as uc ON uc.rowid=t.fk_user_create";
338 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"user as ua ON ua.rowid=t.fk_user_assign";
339 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"element_contact as ec ON ec.element_id=t.rowid";
340 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_type_contact as tc ON ec.fk_c_type_contact=tc.rowid";
341 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"socpeople sp ON ec.fk_socpeople=sp.rowid";
342 if (is_array($extrafields->attributes[$object->table_element][
'label']) && count($extrafields->attributes[$object->table_element][
'label'])) {
343 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"ticket_extrafields as ef on (t.rowid = ef.fk_object)";
345 $sql .=
" WHERE t.entity IN (".getEntity(
'ticket').
")";
346 $sql .=
" AND ((tc.source = 'external'";
347 $sql .=
" AND tc.element='".$db->escape($object->dao->element).
"'";
348 $sql .=
" AND tc.active=1)";
349 $sql .=
" OR (sp.email='".$db->escape($_SESSION[
'email_customer']).
"'";
350 $sql .=
" OR s.email='".$db->escape($_SESSION[
'email_customer']).
"'";
351 $sql .=
" OR t.origin_email='".$db->escape($_SESSION[
'email_customer']).
"'))";
353 if (!empty($filter)) {
354 foreach ($filter as $key => $value) {
355 if (strpos($key,
'date')) {
356 $sql .=
' AND '.$key.
' = \''.$value.
'\'';
357 } elseif (($key ==
't.fk_user_assign') || ($key ==
't.type_code') || ($key ==
't.category_code') || ($key ==
't.severity_code')) {
358 $sql .=
" AND ".$key.
" = '".$db->escape($value).
"'";
359 } elseif ($key ==
't.fk_statut') {
360 if (is_array($value) && count($value) > 0) {
361 $sql .=
'AND '.$key.
' IN ('.implode(
',', $value).
')';
363 $sql .=
' AND '.$key.
' = '.$db->escape($value);
366 $sql .=
' AND '.$key.
' LIKE \'%'.$value.
'%\'';
371 $sql .=
" ORDER BY ".$sortfield.
' '.$sortorder;
373 $resql = $db->query($sql);
375 $num_total = $db->num_rows(
$resql);
376 if (!empty($limit)) {
377 $sql .=
' '.$db->plimit($limit + 1, $offset);
380 $resql = $db->query($sql);
382 $num = $db->num_rows(
$resql);
383 print_barre_liste($langs->trans(
'TicketList'), $page,
'public/list.php', $param, $sortfield, $sortorder,
'', $num, $num_total,
'ticket');
386 print
'<form method="get" action="'.$url_form.
'" id="searchFormList" >'.
"\n";
387 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
388 print
'<input type="hidden" name="action" value="view_ticketlist">';
389 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
390 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
392 $varpage = empty($contextpage) ? $url_page_current : $contextpage;
393 $selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage);
395 print
'<table class="liste '.($moreforfilter ?
"listwithfilterbefore" :
"").
'">';
398 print
'<tr class="liste_titre">';
400 if (!empty($arrayfields[
't.datec'][
'checked'])) {
401 print
'<td class="liste_titre"></td>';
404 if (!empty($arrayfields[
't.date_read'][
'checked'])) {
405 print
'<td class="liste_titre"></td>';
407 if (!empty($arrayfields[
't.date_close'][
'checked'])) {
408 print
'<td class="liste_titre"></td>';
411 if (!empty($arrayfields[
't.ref'][
'checked'])) {
412 print
'<td class="liste_titre"></td>';
415 if (!empty($arrayfields[
't.subject'][
'checked'])) {
416 print
'<td class="liste_titre">';
417 print
'<input type="text" class="flat maxwidth100" name="search_subject" value="'.$search_subject.
'">';
421 if (!empty($arrayfields[
'type.code'][
'checked'])) {
422 print
'<td class="liste_titre">';
423 $formTicket->selectTypesTickets($search_type,
'search_type',
'', 2, 1, 1, 0,
'maxwidth150');
427 if (!empty($arrayfields[
'category.code'][
'checked'])) {
428 print
'<td class="liste_titre">';
429 $formTicket->selectGroupTickets($search_category,
'search_category',
'', 2, 1, 1);
433 if (!empty($arrayfields[
'severity.code'][
'checked'])) {
434 print
'<td class="liste_titre">';
435 $formTicket->selectSeveritiesTickets($search_severity,
'search_severity',
'', 2, 1, 1);
439 if (!empty($arrayfields[
't.progress'][
'checked'])) {
440 print
'<td class="liste_titre"></td>';
443 if (!empty($arrayfields[
't.fk_user_create'][
'checked'])) {
444 print
'<td class="liste_titre"></td>';
447 if (!empty($arrayfields[
't.fk_user_assign'][
'checked'])) {
448 print
'<td class="liste_titre"></td>';
451 if (!empty($arrayfields[
't.tms'][
'checked'])) {
452 print
'<td class="liste_titre"></td>';
456 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
459 $parameters = array(
'arrayfields'=>$arrayfields);
460 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters, $object);
461 print $hookmanager->resPrint;
464 if (!empty($arrayfields[
't.fk_statut'][
'checked'])) {
465 print
'<td class="liste_titre">';
466 $selected = ($search_fk_status !=
"non_closed" ? $search_fk_status :
'');
472 print
'<td class="liste_titre maxwidthsearch">';
473 $searchpicto = $form->showFilterButtons();
479 print
'<tr class="liste_titre">';
480 if (!empty($arrayfields[
't.datec'][
'checked'])) {
481 print_liste_field_titre($arrayfields[
't.datec'][
'label'], $url_page_current,
't.datec',
'', $param,
'', $sortfield, $sortorder);
483 if (!empty($arrayfields[
't.date_read'][
'checked'])) {
484 print_liste_field_titre($arrayfields[
't.date_read'][
'label'], $url_page_current,
't.date_read',
'', $param,
'', $sortfield, $sortorder);
486 if (!empty($arrayfields[
't.date_close'][
'checked'])) {
487 print_liste_field_titre($arrayfields[
't.date_close'][
'label'], $url_page_current,
't.date_close',
'', $param,
'', $sortfield, $sortorder);
489 if (!empty($arrayfields[
't.ref'][
'checked'])) {
490 print_liste_field_titre($arrayfields[
't.ref'][
'label'], $url_page_current,
't.ref',
'', $param,
'', $sortfield, $sortorder);
492 if (!empty($arrayfields[
't.subject'][
'checked'])) {
495 if (!empty($arrayfields[
'type.code'][
'checked'])) {
496 print_liste_field_titre($arrayfields[
'type.code'][
'label'], $url_page_current,
'type.code',
'', $param,
'', $sortfield, $sortorder);
498 if (!empty($arrayfields[
'category.code'][
'checked'])) {
499 print_liste_field_titre($arrayfields[
'category.code'][
'label'], $url_page_current,
'category.code',
'', $param,
'', $sortfield, $sortorder);
501 if (!empty($arrayfields[
'severity.code'][
'checked'])) {
502 print_liste_field_titre($arrayfields[
'severity.code'][
'label'], $url_page_current,
'severity.code',
'', $param,
'', $sortfield, $sortorder);
504 if (!empty($arrayfields[
't.progress'][
'checked'])) {
505 print_liste_field_titre($arrayfields[
't.progress'][
'label'], $url_page_current,
't.progress',
'', $param,
'', $sortfield, $sortorder);
507 if (!empty($arrayfields[
't.fk_user_create'][
'checked'])) {
508 print_liste_field_titre($arrayfields[
't.fk_user_create'][
'label'], $url_page_current,
't.fk_user_create',
'', $param,
'', $sortfield, $sortorder);
510 if (!empty($arrayfields[
't.fk_user_assign'][
'checked'])) {
511 print_liste_field_titre($arrayfields[
't.fk_user_assign'][
'label'], $url_page_current,
't.fk_user_assign',
'', $param,
'', $sortfield, $sortorder);
513 if (!empty($arrayfields[
't.tms'][
'checked'])) {
514 print_liste_field_titre($arrayfields[
't.tms'][
'label'], $url_page_current,
't.tms',
'', $param,
'', $sortfield, $sortorder);
518 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
521 $parameters = array(
'arrayfields'=>$arrayfields,
'param'=>$param,
'sortfield'=>$sortfield,
'sortorder'=>$sortorder);
522 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object);
523 print $hookmanager->resPrint;
525 if (!empty($arrayfields[
't.fk_statut'][
'checked'])) {
526 print_liste_field_titre($arrayfields[
't.fk_statut'][
'label'], $url_page_current,
't.fk_statut',
'', $param,
'', $sortfield, $sortorder);
528 print_liste_field_titre($selectedfields, $url_page_current,
"",
'',
'',
'align="right"', $sortfield, $sortorder,
'center maxwidthsearch ');
531 while ($obj = $db->fetch_object(
$resql))
533 print
'<tr class="oddeven">';
536 if (!empty($arrayfields[
't.datec'][
'checked'])) {
543 if (!empty($arrayfields[
't.date_read'][
'checked'])) {
550 if (!empty($arrayfields[
't.date_close'][
'checked'])) {
557 if (!empty($arrayfields[
't.ref'][
'checked'])) {
558 print
'<td class="nowraponall">';
564 if (!empty($arrayfields[
't.subject'][
'checked'])) {
566 print
'<a rel="nofollow" href="javascript:viewticket(\''.$obj->track_id.
'\',\
''.$_SESSION[
'email_customer'].
'\');
">'.$obj->subject.'</a>';
571 if (!empty($arrayfields['type.code']['checked'])) {
573 print $obj->type_label;
578 if (!empty($arrayfields['category.code']['checked'])) {
580 print $obj->category_label;
585 if (!empty($arrayfields['severity.code']['checked'])) {
587 print $obj->severity_label;
592 if (!empty($arrayfields['t.progress']['checked'])) {
594 print $obj->progress;
599 if (!empty($arrayfields['t.fk_user_create']['checked'])) {
601 if ($obj->fk_user_create > 0) {
602 $user_create->firstname = (!empty($obj->user_create_firstname) ? $obj->user_create_firstname : '');
603 $user_create->name = (!empty($obj->user_create_lastname) ? $obj->user_create_lastname : '');
604 $user_create->id = (!empty($obj->fk_user_create) ? $obj->fk_user_create : '');
605 print $user_create->getFullName($langs);
607 print $langs->trans('Email');
613 if (!empty($arrayfields['t.fk_user_assign']['checked'])) {
615 if ($obj->fk_user_assig > 0) {
616 $user_assign->firstname = (!empty($obj->user_assign_firstname) ? $obj->user_assign_firstname : '');
617 $user_assign->lastname = (!empty($obj->user_assign_lastname) ? $obj->user_assign_lastname : '');
618 $user_assign->id = (!empty($obj->fk_user_assign) ? $obj->fk_user_assign : '');
619 print $user_assign->getFullName($langs);
624 if (!empty($arrayfields['t.tms']['checked'])) {
625 print '<td>'.dol_print_date($db->jdate($obj->tms), 'dayhour').'</td>';
629 if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) {
630 foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) {
631 if (!empty($arrayfields["ef.
".$key]['checked'])) {
633 $align = $extrafields->getAlignFlag($key);
635 print ' align="'.$align.'"';
638 $tmpkey = 'options_'.$key;
639 print $extrafields->showOutputField($key, $obj->$tmpkey, '', 1);
646 if (!empty($arrayfields['t.fk_statut']['checked'])) {
647 print '<td class="nowraponall
">';
648 $object->fk_statut = $obj->fk_statut;
649 print $object->getLibStatut(2);
662 print '<form method="post
" id="form_view_ticket
" name="form_view_ticket
" enctype="multipart/form-data
" action="'.dol_buildpath('/
public/ticket/view.php
', 1).'" style="display:none;
">';
663 print '<input type="hidden
" name="token
" value="'.newToken().'">';
664 print '<input type="hidden
" name="action
" value="view_ticket
">';
665 print '<input type="hidden
" name="btn_view_ticket_list
" value="1
">';
666 print '<input type="hidden
" name="track_id
" value="">';
667 print '<input type="hidden
" name="email
" value="">';
669 print '<script type="text/javascript
">
670 function viewticket(ticket_id, email) {
671 var form = $("#form_view_ticket
");
672 form.find("input[
name=\\
"track_id\\"]
").val(ticket_id);
673 form.find("input[name=\\
"email\\"]
").val(email);
680 print '<div class="error
">Not Allowed<br><a href="'.$_SERVER['PHP_SELF
'].'?track_id=
'.$object->dao->track_id.'">'.$langs->trans('Back').'</a></div>';
683 print '<p class="center
">'.$langs->trans("TicketPublicMsgViewLogIn
").'</p>';
686 print '<div id="form_view_ticket
">';
687 print '<form method="post
" name="form_view_ticketlist
" enctype="multipart/form-data
" action="'.$_SERVER['PHP_SELF
'].'">';
688 print '<input type="hidden
" name="token
" value="'.newToken().'">';
689 print '<input type="hidden
" name="action
" value="view_ticketlist
">';
690 //print '<input type="hidden
" name="search_fk_status
" value="non_closed
">';
692 print '<p><label for="track_id
" style="display:
inline-block; width: 30%;
"><span class="fieldrequired
">'.$langs->trans("OneOfTicketTrackId
").'</span></label>';
693 print '<input size="30
" id="track_id
" name="track_id
" value="'.(GETPOST('track_id
', 'alpha
') ? GETPOST('track_id
', 'alpha
') : '').'" />';
696 print '<p><label for="email
" style="display:
inline-block; width: 30%;
"><span class="fieldrequired
">'.$langs->trans('Email').'</span></label>';
697 print '<input size="30
" id="email
" name="email
" value="'.(GETPOST('email
', 'alpha
') ? GETPOST('email
', 'alpha
') : $_SESSION['customer_email
']).'" />';
700 print '<p style="text-align: center; margin-top: 1.5em;
">';
701 print '<input class="button
" type="submit
" name="btn_view_ticket_list
" value="'.$langs->trans('ViewMyTicketList
').'" />';
711 htmlPrintOnlinePaymentFooter($mysoc, $langs, 0, $suffix, $object);
713 llxFooter('', 'public');
GETPOST($paramname, $check= 'alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
Class to manage Dolibarr users.
$conf db name
Only used if Module[ID]Name translation string is not found.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
setEventMessages($mesg, $mesgs, $style= 'mesgs', $messagekey= '')
Set event messages in dol_events session object.
print_barre_liste($titre, $page, $file, $options= '', $sortfield= '', $sortorder= '', $morehtmlcenter= '', $num=-1, $totalnboflines= '', $picto= 'generic', $pictoisfullpath=0, $morehtmlright= '', $morecss= '', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow= '')
Print a title with navigation controls for pagination.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname.
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
static getValidAddress($address, $format, $encode=0, $maxnumberofemail=0)
Return a formatted address string for SMTP protocol.
llxHeaderTicket($title, $head="", $disablejs=0, $disablehead=0, $arrayofjs= '', $arrayofcss= '')
Show header for public pages.
print
Draft customers invoices.
dol_print_date($time, $format= '', $tzoutput= 'auto', $outputlangs= '', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) if(!empty($conf->don->enabled)&&$user->rights->don->lire) if(!empty($conf->tax->enabled)&&$user->rights->tax->charges->lire) if(!empty($conf->facture->enabled)&&!empty($conf->commande->enabled)&&$user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) $resql
Social contributions to pay.
print $_SERVER["PHP_SELF"] n
Edit parameters.
isValidEmail($address, $acceptsupervisorkey=0)
Return true if email syntax is ok.