35 global $langs,
$conf, $extrafields;
37 $extrafields->fetch_name_optionals_label(
'ticket');
39 $langs->load(
"ticket");
44 $head[$h][0] =
dolBuildUrl(DOL_URL_ROOT.
'/admin/ticket.php');
45 $head[$h][1] = $langs->trans(
"TicketSettings");
46 $head[$h][2] =
'settings';
49 $head[$h][0] =
dolBuildUrl(DOL_URL_ROOT.
'/admin/ticket_extrafields.php');
50 $head[$h][1] = $langs->trans(
"ExtraFieldsTicket");
51 $nbExtrafields = $extrafields->attributes[
'ticket'][
'count'];
52 if ($nbExtrafields > 0) {
53 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbExtrafields.
'</span>';
55 $head[$h][2] =
'attributes';
58 $head[$h][0] =
dolBuildUrl(DOL_URL_ROOT.
'/admin/ticket_public.php');
59 $head[$h][1] = $langs->trans(
"PublicInterface");
60 $head[$h][2] =
'public';
90 $head[$h][0] =
dolBuildUrl(DOL_URL_ROOT.
'/ticket/card.php', [
'track_id' =>
$object->track_id]);
91 $head[$h][1] = $langs->trans(
"Ticket");
92 $head[$h][2] =
'tabTicket';
96 $nbContact = count(
$object->liste_contact(-1,
'internal')) + count(
$object->liste_contact(-1,
'external'));
97 $head[$h][0] =
dolBuildUrl(DOL_URL_ROOT.
'/ticket/contact.php', [
'track_id' =>
$object->track_id]);
98 $head[$h][1] = $langs->trans(
'ContactsAddresses');
100 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbContact.
'</span>';
102 $head[$h][2] =
'contact';
109 if (!empty(
$object->note_private)) {
112 if (!empty(
$object->note_public)) {
116 $head[$h][1] = $langs->trans(
'Notes');
118 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbNote.
'</span>';
120 $head[$h][2] =
'note';
127 include_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
128 $upload_dir =
$conf->ticket->dir_output.
"/".
$object->ref;
142 $head[$h][0] =
dolBuildUrl(DOL_URL_ROOT.
'/ticket/document.php', [
'id' =>
$object->id]);
143 $head[$h][1] = $langs->trans(
"Documents");
145 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbFiles.
'</span>';
148 $head[$h][2] =
'tabTicketDocument';
153 $ticketViewType =
"messaging";
154 if (empty($_SESSION[
'ticket-view-type'])) {
155 $_SESSION[
'ticket-view-type'] = $ticketViewType;
157 $ticketViewType = $_SESSION[
'ticket-view-type'];
160 if ($ticketViewType ==
"messaging") {
161 $head[$h][0] =
dolBuildUrl(DOL_URL_ROOT.
'/ticket/messaging.php', [
'track_id' =>
$object->track_id]);
164 $head[$h][0] =
dolBuildUrl(DOL_URL_ROOT.
'/ticket/agenda.php', [
'track_id' =>
$object->track_id]);
166 $head[$h][1] = $langs->trans(
'Events');
167 if (
isModEnabled(
'agenda') && ($user->hasRight(
'agenda',
'myactions',
'read') || $user->hasRight(
'agenda',
'allactions',
'read'))) {
170 require_once DOL_DOCUMENT_ROOT.
'/core/lib/memory.lib.php';
171 $cachekey =
'count_events_ticket_'.$object->id;
173 if (!is_null($dataretrieved)) {
174 $nbEvent = $dataretrieved;
176 $sql =
"SELECT COUNT(id) as nb";
177 $sql .=
" FROM ".MAIN_DB_PREFIX.
"actioncomm";
178 $sql .=
" WHERE fk_element = ".((int)
$object->id);
179 $sql .=
" AND elementtype = 'ticket'";
180 $resql =
$db->query($sql);
182 $obj =
$db->fetch_object($resql);
185 dol_syslog(
'Failed to count actioncomm '.
$db->lasterror(), LOG_ERR);
191 $head[$h][1] .= $langs->trans(
"Agenda");
193 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbEvent.
'</span>';
196 $head[$h][2] =
'tabTicketLogs';
217 require_once DOL_DOCUMENT_ROOT.
'/core/class/CMailFile.class.php';
226 $langs->load(
'errors');
227 $out .=
'<span class="opacitymedium">'.$langs->trans(
"ErrorPublicInterfaceNotEnabled").
'</span>';
229 $out .=
img_picto(
'',
'object_globe.png');
231 $out .=
' <span class="opacitymedium">'.$langs->trans(
"TicketPublicAccess").
'</span>';
232 $out .=
'<br><div class="urllink">';
233 $out .=
'<input type="text" id="directpubliclink" class="quatrevingtpercentminusx" spellcheck="false" value="'.$url.
'">';
234 $out .=
'<a href="'.$url.
'" target="_blank" rel="noopener noreferrer">'.
img_picto(
'',
'object_globe.png',
'class="paddingleft"').
'</a>';
236 $out .= ajax_autoselect(
"directpubliclink",
'');
238 $out .=
' <span class="opacitymedium">'.$langs->trans(
"TicketNotCreatedFromPublicInterface").
'</span>';
254 $chaine =
"abcdefghijklmnopqrstuvwxyz123456789";
255 $max = strlen($chaine) - 1;
257 for ($i = 0; $i < $car; $i++) {
259 $key = random_int(0, $max);
262 $key = mt_rand(0, $max);
264 $string .= $chaine[$key];
280function llxHeaderTicket($title, $head =
"", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
284 top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss, 0, 1);
286 print
'<body id="mainbody" class="publicnewticketform">';
287 print
'<div class="publicnewticketform2 centpercent" style="min-height: 100%;">';
if(! $sortfield) if(! $sortorder) $object
static getValidAddress($address, $format, $encode=0, $maxnumberofemail=0)
Return a formatted address string for SMTP protocol.
htmlPrintOnlineHeader($mysoc, $langs, $showlogo=1, $alttext='', $subimageconst='', $altlogo1='', $altlogo2='')
Show the header of a company in HTML public pages.
dol_dir_list($utf8_path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0, $nbsecondsold=0)
Scan a directory and return a list of files/directories.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
dolBuildUrl($url, $params=[], $addtoken=false, $anchor='')
Return path of url.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, $mode='add', $filterorigmodule='')
Complete or removed entries into a head array (used to build tabs).
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs=array(), $arrayofcss=array(), $disableforlogin=0, $disablenofollow=0, $disablenoindex=0)
Output html header of a page.
dol_setcache($memoryid, $data, $expire=0, $filecache=0, $replace=0)
Save data into a memory area shared by all users, all sessions on server.
dol_getcache($memoryid, $filecache=0)
Read a memory area shared by all users, all sessions on server.
generate_random_id($car=16)
Generate a random id.
llxHeaderTicket($title, $head="", $disablejs=0, $disablehead=0, $arrayofjs=[], $arrayofcss=[])
Show http header, open body tag and show HTML header banner for public pages for tickets.
ticketAdminPrepareHead()
Build tabs for admin page.
showDirectPublicLink($object)
Return string with full Url.
ticket_prepare_head($object)
Build tabs for a Ticket object.