dolibarr 18.0.6
conferenceorbooth_contact.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2007-2017 Laurent Destailleur <eldy@users.sourceforge.net>
3 * Copyright (C) 2021 Florian HENRY <florian.henry@scopen.fr>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <https://www.gnu.org/licenses/>.
17 */
18
26// Load Dolibarr environment
27require '../main.inc.php';
28
29require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
30require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
31require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
32require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
33require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php';
34require_once DOL_DOCUMENT_ROOT.'/eventorganization/lib/eventorganization_conferenceorbooth.lib.php';
35require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
36
37
38// Load translation files required by the page
39$langs->loadLangs(array('companies', 'eventorganization', 'mails', 'others', 'projects'));
40
41// Variables GET
42$id = GETPOST('id', 'int');
43$ref = GETPOST('ref', 'alpha');
44$lineid = GETPOST('lineid', 'int');
45$socid = GETPOST('socid', 'int');
46
47$action = GETPOST('action', 'aZ09');
48$confirm = GETPOST('confirm', 'alpha');
49$cancel = GETPOST('cancel', 'aZ09');
50$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'conferenceorboothcard'; // To manage different context of search
51$backtopage = GETPOST('backtopage', 'alpha');
52$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha');
53
54$withproject = GETPOST('withproject', 'int');
55
56
57// Initialize technical objects
58$object = new ConferenceOrBooth($db);
59$extrafields = new ExtraFields($db);
60$projectstatic = new Project($db);
61$diroutputmassaction = $conf->eventorganization->dir_output.'/temp/massgeneration/'.$user->id;
62$hookmanager->initHooks(array('conferenceorboothcontact', 'globalcard')); // Note that conf->hooks_modules contains array
63
64// Fetch optionals attributes and labels
65$extrafields->fetch_name_optionals_label($object->table_element);
66
67$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_');
68
69// Load object
70include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once.
71
72// Security check
73if ($user->socid > 0) {
75}
76
77$isdraft = (($object->status== $object::STATUS_DRAFT) ? 1 : 0);
78$result = restrictedArea($user, 'eventorganization', $object->id, '', '', 'fk_soc', 'rowid', $isdraft);
79
80$permissiontoread = $user->rights->eventorganization->read;
81$permissiontoadd = $user->rights->eventorganization->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php
82$permissiontodelete = $user->rights->eventorganization->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT);
83$permissionnote = $user->rights->eventorganization->write; // Used by the include of actions_setnotes.inc.php
84$permissiondellink = $user->rights->eventorganization->write; // Used by the include of actions_dellink.inc.php
85$upload_dir = $conf->eventorganization->multidir_output[isset($object->entity) ? $object->entity : 1];
86
87// Security check
88if ($user->socid > 0) {
90}
91$isdraft = (($object->status== $object::STATUS_DRAFT) ? 1 : 0);
92$result = restrictedArea($user, 'eventorganization', $object->id, '', '', 'fk_soc', 'rowid', $isdraft);
93
94if (!$permissiontoread) {
96}
97
98
99/*
100 * Actions
101 */
102
103$parameters = array();
104$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
105if ($reshook < 0) {
106 setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
107}
108
109if ($action == 'addcontact' && $permission) { // Add a new contact
110 $contactid = (GETPOST('userid') ? GETPOST('userid', 'int') : GETPOST('contactid', 'int'));
111 $typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type'));
112 $result = $object->add_contact($contactid, $typeid, GETPOST("source", 'aZ09'));
113
114 if ($result >= 0) {
115 header("Location: ".$_SERVER['PHP_SELF']."?id=".((int) $object->id).(!empty($withproject)?'&withproject=1':''));
116 exit;
117 } else {
118 if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
119 $langs->load("errors");
120 setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
121 } else {
122 setEventMessages($object->error, $object->errors, 'errors');
123 }
124 }
125} elseif ($action == 'swapstatut' && $permission) {
126 // Toggle the status of a contact
127 $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
128} elseif ($action == 'deletecontact' && $permission) {
129 // Deletes a contact
130 $result = $object->delete_contact($lineid);
131
132 if ($result >= 0) {
133 header("Location: ".$_SERVER['PHP_SELF']."?id=".((int) $object->id).(!empty($withproject)?'&withproject=1':''));
134 exit;
135 } else {
136 dol_print_error($db);
137 }
138}
139
140
141/*
142 * View
143 */
144
145$form = new Form($db);
146$formcompany = new FormCompany($db);
147$contactstatic = new Contact($db);
148$userstatic = new User($db);
149
150$title = $langs->trans('ConferenceOrBooth')." - ".$langs->trans('ContactsAddresses');
151$help_url = '';
152//$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
153llxHeader('', $title, $help_url);
154
155
156/* *************************************************************************** */
157/* */
158/* View and edit mode */
159/* */
160/* *************************************************************************** */
161
162$result = $projectstatic->fetch($object->fk_project);
163if (!empty($conf->global->PROJECT_ALLOW_COMMENT_ON_PROJECT) && method_exists($projectstatic, 'fetchComments') && empty($projectstatic->comments)) {
164 $projectstatic->fetchComments();
165}
166if (!empty($projectstatic->socid)) {
167 $projectstatic->fetch_thirdparty();
168}
169$withProjectUrl='';
170$object->project = clone $projectstatic;
171
172if (!empty($withproject)) {
173 // Tabs for project
174 $tab = 'eventorganisation';
175 $withProjectUrl = "&withproject=1";
176 $head = project_prepare_head($projectstatic);
177 print dol_get_fiche_head($head, $tab, $langs->trans("Project"), -1, ($projectstatic->public ? 'projectpub' : 'project'), 0, '', '');
178
179 $param = ($mode == 'mine' ? '&mode=mine' : '');
180
181 // Project card
182
183 $linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
184
185 $morehtmlref = '<div class="refidno">';
186 // Title
187 $morehtmlref .= $projectstatic->title;
188 // Thirdparty
189 if (isset($projectstatic->thirdparty->id) && $projectstatic->thirdparty->id > 0) {
190 $morehtmlref .= '<br>'.$projectstatic->thirdparty->getNomUrl(1, 'project');
191 }
192 $morehtmlref .= '</div>';
193
194 // Define a complementary filter for search of next/prev ref.
195 if (empty($user->rights->project->all->lire)) {
196 $objectsListId = $projectstatic->getProjectsAuthorizedForUser($user, 0, 0);
197 $projectstatic->next_prev_filter = "rowid IN (".$db->sanitize(count($objectsListId) ?join(',', array_keys($objectsListId)) : '0').")";
198 }
199
200 dol_banner_tab($projectstatic, 'project_ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
201
202 print '<div class="fichecenter">';
203 print '<div class="fichehalfleft">';
204 print '<div class="underbanner clearboth"></div>';
205
206 print '<table class="border tableforfield centpercent">';
207
208 // Usage
209 if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) || empty($conf->global->PROJECT_HIDE_TASKS) || isModEnabled('eventorganization')) {
210 print '<tr><td class="tdtop">';
211 print $langs->trans("Usage");
212 print '</td>';
213 print '<td>';
214 if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) {
215 print '<input type="checkbox" disabled name="usage_opportunity"'.(GETPOSTISSET('usage_opportunity') ? (GETPOST('usage_opportunity', 'alpha') != '' ? ' checked="checked"' : '') : ($projectstatic->usage_opportunity ? ' checked="checked"' : '')).'"> ';
216 $htmltext = $langs->trans("ProjectFollowOpportunity");
217 print $form->textwithpicto($langs->trans("ProjectFollowOpportunity"), $htmltext);
218 print '<br>';
219 }
220 if (empty($conf->global->PROJECT_HIDE_TASKS)) {
221 print '<input type="checkbox" disabled name="usage_task"'.(GETPOSTISSET('usage_task') ? (GETPOST('usage_task', 'alpha') != '' ? ' checked="checked"' : '') : ($projectstatic->usage_task ? ' checked="checked"' : '')).'"> ';
222 $htmltext = $langs->trans("ProjectFollowTasks");
223 print $form->textwithpicto($langs->trans("ProjectFollowTasks"), $htmltext);
224 print '<br>';
225 }
226 if (empty($conf->global->PROJECT_HIDE_TASKS) && !empty($conf->global->PROJECT_BILL_TIME_SPENT)) {
227 print '<input type="checkbox" disabled name="usage_bill_time"'.(GETPOSTISSET('usage_bill_time') ? (GETPOST('usage_bill_time', 'alpha') != '' ? ' checked="checked"' : '') : ($projectstatic->usage_bill_time ? ' checked="checked"' : '')).'"> ';
228 $htmltext = $langs->trans("ProjectBillTimeDescription");
229 print $form->textwithpicto($langs->trans("BillTime"), $htmltext);
230 print '<br>';
231 }
232 if (isModEnabled('eventorganization')) {
233 print '<input type="checkbox" disabled name="usage_organize_event"'.(GETPOSTISSET('usage_organize_event') ? (GETPOST('usage_organize_event', 'alpha') != '' ? ' checked="checked"' : '') : ($projectstatic->usage_organize_event ? ' checked="checked"' : '')).'"> ';
234 $htmltext = $langs->trans("EventOrganizationDescriptionLong");
235 print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext);
236 }
237 print '</td></tr>';
238 }
239
240 // Visibility
241 print '<tr><td class="titlefield">'.$langs->trans("Visibility").'</td><td>';
242 if ($projectstatic->public) {
243 print $langs->trans('SharedProject');
244 } else {
245 print $langs->trans('PrivateProject');
246 }
247 print '</td></tr>';
248
249 // Date start - end
250 print '<tr><td>'.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").'</td><td>';
251 $start = dol_print_date($projectstatic->date_start, 'day');
252 print ($start ? $start : '?');
253 $end = dol_print_date($projectstatic->date_end, 'day');
254 print ' - ';
255 print ($end ? $end : '?');
256 if ($projectstatic->hasDelay()) {
257 print img_warning("Late");
258 }
259 print '</td></tr>';
260
261 // Budget
262 print '<tr><td>'.$langs->trans("Budget").'</td><td>';
263 if (strcmp($projectstatic->budget_amount, '')) {
264 print price($projectstatic->budget_amount, '', $langs, 1, 0, 0, $conf->currency);
265 }
266 print '</td></tr>';
267
268 // Other attributes
269 $cols = 2;
270 $objectconf = $object;
271 $object = $projectstatic;
272 include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';
273 $object = $objectconf;
274
275 print '</table>';
276
277 print '</div>';
278
279 print '<div class="fichehalfright">';
280 print '<div class="underbanner clearboth"></div>';
281
282 print '<table class="border tableforfield centpercent">';
283
284 // Description
285 print '<td class="tdtop">'.$langs->trans("Description").'</td><td>';
286 print nl2br($projectstatic->description);
287 print '</td></tr>';
288
289 // Categories
290 if (isModEnabled('categorie')) {
291 print '<tr><td class="valignmiddle">'.$langs->trans("Categories").'</td><td>';
292 print $form->showCategories($projectstatic->id, Categorie::TYPE_PROJECT, 1);
293 print "</td></tr>";
294 }
295
296 print '<tr><td>';
297 $typeofdata = 'checkbox:'.($projectstatic->accept_conference_suggestions ? ' checked="checked"' : '');
298 $htmltext = $langs->trans("AllowUnknownPeopleSuggestConfHelp");
299 print $form->editfieldkey('AllowUnknownPeopleSuggestConf', 'accept_conference_suggestions', '', $projectstatic, 0, $typeofdata, '', 0, 0, 'projectid', $htmltext);
300 print '</td><td>';
301 print $form->editfieldval('AllowUnknownPeopleSuggestConf', 'accept_conference_suggestions', '1', $projectstatic, 0, $typeofdata, '', 0, 0, '', 0, '', 'projectid');
302 print "</td></tr>";
303
304 print '<tr><td>';
305 $typeofdata = 'checkbox:'.($projectstatic->accept_booth_suggestions ? ' checked="checked"' : '');
306 $htmltext = $langs->trans("AllowUnknownPeopleSuggestBoothHelp");
307 print $form->editfieldkey('AllowUnknownPeopleSuggestBooth', 'accept_booth_suggestions', '', $projectstatic, 0, $typeofdata, '', 0, 0, 'projectid', $htmltext);
308 print '</td><td>';
309 print $form->editfieldval('AllowUnknownPeopleSuggestBooth', 'accept_booth_suggestions', '1', $projectstatic, 0, $typeofdata, '', 0, 0, '', 0, '', 'projectid');
310 print "</td></tr>";
311
312 print '<tr><td>';
313 print $form->editfieldkey($form->textwithpicto($langs->trans('PriceOfBooth'), $langs->trans("PriceOfBoothHelp")), 'price_booth', '', $projectstatic, 0, 'amount', '', 0, 0, 'projectid');
314 print '</td><td>';
315 print $form->editfieldval($form->textwithpicto($langs->trans('PriceOfBooth'), $langs->trans("PriceOfBoothHelp")), 'price_booth', $projectstatic->price_booth, $projectstatic, 0, 'amount', '', 0, 0, '', 0, '', 'projectid');
316 print "</td></tr>";
317
318 print '<tr><td>';
319 print $form->editfieldkey($form->textwithpicto($langs->trans('PriceOfRegistration'), $langs->trans("PriceOfRegistrationHelp")), 'price_registration', '', $projectstatic, 0, 'amount', '', 0, 0, 'projectid');
320 print '</td><td>';
321 print $form->editfieldval($form->textwithpicto($langs->trans('PriceOfRegistration'), $langs->trans("PriceOfRegistrationHelp")), 'price_registration', $projectstatic->price_registration, $projectstatic, 0, 'amount', '', 0, 0, '', 0, '', 'projectid');
322 print "</td></tr>";
323
324 print '<tr><td valign="middle">'.$langs->trans("EventOrganizationICSLink").'</td><td>';
325 // Define $urlwithroot
326 $urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root));
327 $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT;
328
329 // Show message
330 $message = '<a target="_blank" rel="noopener noreferrer" href="'.$urlwithroot.'/public/agenda/agendaexport.php?format=ical'.($conf->entity > 1 ? "&entity=".$conf->entity : "");
331 $message .= '&exportkey='.urlencode(getDolGlobalString('MAIN_AGENDA_XCAL_EXPORTKEY', '...'));
332 $message .= "&project=".$projectstatic->id.'&module='.urlencode('@eventorganization').'&status='.ConferenceOrBooth::STATUS_CONFIRMED.'">'.$langs->trans('DownloadICSLink').img_picto('', 'download', 'class="paddingleft"').'</a>';
333 print $message;
334 print "</td></tr>";
335
336 // Link to the submit vote/register page
337 print '<tr><td>';
338 //print '<span class="opacitymedium">';
339 print $form->textwithpicto($langs->trans("SuggestOrVoteForConfOrBooth"), $langs->trans("EvntOrgRegistrationHelpMessage"));
340 //print '</span>';
341 print '</td><td>';
342 $linksuggest = $dolibarr_main_url_root.'/public/project/index.php?id='.((int) $projectstatic->id);
343 $encodedsecurekey = dol_hash(getDolGlobalString('EVENTORGANIZATION_SECUREKEY').'conferenceorbooth'.((int) $projectstatic->id), 'md5');
344 $linksuggest .= '&securekey='.urlencode($encodedsecurekey);
345 //print '<div class="urllink">';
346 //print '<input type="text" value="'.$linksuggest.'" id="linkregister" class="quatrevingtpercent paddingrightonly">';
347 print '<div class="tdoverflowmax200 inline-block valignmiddle"><a target="_blank" href="'.$linksuggest.'" class="quatrevingtpercent">'.$linksuggest.'</a></div>';
348 print '<a target="_blank" rel="noopener noreferrer" href="'.$linksuggest.'">'.img_picto('', 'globe').'</a>';
349 //print '</div>';
350 //print ajax_autoselect("linkregister");
351 print '</td></tr>';
352
353 // Link to the subscribe
354 print '<tr><td>';
355 //print '<span class="opacitymedium">';
356 print $langs->trans("PublicAttendeeSubscriptionGlobalPage");
357 //print '</span>';
358 print '</td><td>';
359 $link_subscription = $dolibarr_main_url_root.'/public/eventorganization/attendee_new.php?id='.((int) $projectstatic->id).'&type=global';
360 $encodedsecurekey = dol_hash(getDolGlobalString('EVENTORGANIZATION_SECUREKEY').'conferenceorbooth'.((int) $projectstatic->id), 'md5');
361 $link_subscription .= '&securekey='.urlencode($encodedsecurekey);
362 //print '<div class="urllink">';
363 //print '<input type="text" value="'.$linkregister.'" id="linkregister" class="quatrevingtpercent paddingrightonly">';
364 print '<div class="tdoverflowmax200 inline-block valignmiddle"><a target="_blank" href="'.$link_subscription.'" class="quatrevingtpercent">'.$link_subscription.'</a></div>';
365 print '<a target="_blank" rel="noopener noreferrer" rel="noopener noreferrer" href="'.$link_subscription.'">'.img_picto('', 'globe').'</a>';
366 //print '</div>';
367 //print ajax_autoselect("linkregister");
368 print '</td></tr>';
369
370 print '</table>';
371
372 print '</div>';
373 print '</div>';
374
375 print '<div class="clearboth"></div>';
376
377 print dol_get_fiche_end();
378
379 print '<br>';
380}
381
382if ($object->id) {
383 /*
384 * Show tabs
385 */
386 $head = conferenceorboothPrepareHead($object, $withproject);
387
388 print dol_get_fiche_head($head, 'contact', $langs->trans("ConferenceOrBooth"), -1, $object->picto);
389
390 $linkback = '<a href="'.dol_buildpath('/eventorganization/conferenceorbooth_list.php', 1).'?restore_lastsearch_values=1'.(!empty($socid) ? '&socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
391
392 $morehtmlref = '<div class="refidno">';
393 /*
394 // Ref customer
395 $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', 0, 1);
396 $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, 0, 'string', '', null, null, '', 1);
397 // Thirdparty
398 $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . (is_object($object->thirdparty) ? $object->thirdparty->getNomUrl(1) : '');
399 // Project
400 if (isModEnabled('project'))
401 {
402 $langs->load("projects");
403 $morehtmlref.='<br>'.$langs->trans('Project') . ' ';
404 if ($permissiontoadd)
405 {
406 if ($action != 'classify')
407 //$morehtmlref.='<a class="editfielda" href="' . $_SERVER['PHP_SELF'] . '?action=classify&token='.newToken().'&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
408 $morehtmlref.=' : ';
409 if ($action == 'classify') {
410 //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
411 $morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
412 $morehtmlref.='<input type="hidden" name="action" value="classin">';
413 $morehtmlref.='<input type="hidden" name="token" value="'.newToken().'">';
414 $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
415 $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
416 $morehtmlref.='</form>';
417 } else {
418 $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
419 }
420 } else {
421 if (!empty($object->fk_project)) {
422 $proj = new Project($db);
423 $proj->fetch($object->fk_project);
424 $morehtmlref .= ': '.$proj->getNomUrl();
425 } else {
426 $morehtmlref .= '';
427 }
428 }
429 }*/
430 $morehtmlref .= '</div>';
431
432 dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', '', 1);
433
434 print dol_get_fiche_end();
435
436 print '<br>';
437
438 // Contacts lines (modules that overwrite templates must declare this into descriptor)
439 $dirtpls = array_merge($conf->modules_parts['tpl'], array('/core/tpl'));
440 foreach ($dirtpls as $reldir) {
441 $res = @include dol_buildpath($reldir.'/contacts.tpl.php');
442 if ($res) {
443 break;
444 }
445 }
446}
447
448// End of page
449llxFooter();
450$db->close();
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Definition wrapper.php:56
llxFooter()
Empty footer.
Definition wrapper.php:70
Class for ConferenceOrBooth.
Class to manage contact/addresses.
Class to manage standard extra fields.
Class to build HTML component for third parties management Only common components are here.
Class to manage generation of HTML components Only common components must be here.
Class to manage projects.
Class to manage Dolibarr users.
conferenceorboothPrepareHead($object, $with_project=0)
Prepare array of tabs for ConferenceOrBooth.
dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='rowid', $fieldref='ref', $morehtmlref='', $moreparam='', $nodbprefix=0, $morehtmlleft='', $morehtmlstatus='', $onlybanner=0, $morehtmlright='')
Show tab footer of a card.
img_warning($titlealt='default', $moreatt='', $morecss='pictowarning')
Show warning logo.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_get_fiche_end($notab=0)
Return tab footer of a card.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
project_prepare_head(Project $project, $moreparam='')
Prepare array with list of tabs.
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.
dol_hash($chain, $type='0')
Returns a hash (non reversible encryption) of a string.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.