dolibarr 21.0.0-alpha
job_card.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2017 Laurent Destailleur <eldy@users.sourceforge.net>
3 * Copyright (C) 2021 Gauthier VERDOL <gauthier.verdol@atm-consulting.fr>
4 * Copyright (C) 2021 Greg Rastklan <greg.rastklan@atm-consulting.fr>
5 * Copyright (C) 2021 Jean-Pascal BOUDET <jean-pascal.boudet@atm-consulting.fr>
6 * Copyright (C) 2021 Grégory BLEMAND <gregory.blemand@atm-consulting.fr>
7 * Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 3 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program. If not, see <https://www.gnu.org/licenses/>.
21 */
22
30// Load Dolibarr environment
31require '../main.inc.php';
32
33require_once DOL_DOCUMENT_ROOT . '/core/class/html.formcompany.class.php';
34require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php';
35require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php';
36require_once DOL_DOCUMENT_ROOT . '/hrm/class/job.class.php';
37require_once DOL_DOCUMENT_ROOT . '/hrm/lib/hrm_job.lib.php';
38require_once DOL_DOCUMENT_ROOT . '/hrm/class/skillrank.class.php';
39
40// Load translation files required by the page
41$langs->loadLangs(array('hrm', 'other', 'products')); // why products?
42
43// Get parameters
44$id = GETPOSTINT('id');
45$ref = GETPOST('ref', 'alpha');
46$action = GETPOST('action', 'aZ09');
47$confirm = GETPOST('confirm', 'alpha');
48$cancel = GETPOST('cancel', 'aZ09');
49$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'jobcard'; // To manage different context of search
50$backtopage = GETPOST('backtopage', 'alpha');
51$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha');
52$lineid = GETPOSTINT('lineid');
53
54// Initialize a technical objects
55$object = new Job($db);
56$extrafields = new ExtraFields($db);
57$diroutputmassaction = $conf->hrm->dir_output . '/temp/massgeneration/' . $user->id;
58$hookmanager->initHooks(array('jobcard', 'globalcard')); // Note that conf->hooks_modules contains array
59
60// Fetch optionals attributes and labels
61$extrafields->fetch_name_optionals_label($object->table_element);
62
63$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_');
64
65// Initialize array of search criteria
66$search_all = GETPOST("search_all", 'alpha');
67$search = array();
68foreach ($object->fields as $key => $val) {
69 if (GETPOST('search_' . $key, 'alpha')) {
70 $search[$key] = GETPOST('search_' . $key, 'alpha');
71 }
72}
73
74if (empty($action) && empty($id) && empty($ref)) {
75 $action = 'view';
76}
77
78// Load object
79include DOL_DOCUMENT_ROOT . '/core/actions_fetchobject.inc.php'; // Must be 'include', not 'include_once'.
80
81// Permissions
82$permissiontoread = $user->hasRight('hrm', 'all', 'read');
83$permissiontoadd = $user->hasRight('hrm', 'all', 'write'); // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php
84$permissiontodelete = $user->hasRight('hrm', 'all', 'delete');
85$upload_dir = $conf->hrm->multidir_output[isset($object->entity) ? $object->entity : 1] . '/job';
86
87// Security check (enable the most restrictive one)
88//if ($user->socid > 0) accessforbidden();
89//if ($user->socid > 0) $socid = $user->socid;
90//$isdraft = (($object->status == $object::STATUS_DRAFT) ? 1 : 0);
91//restrictedArea($user, $object->element, $object->id, $object->table_element, '', 'fk_soc', 'rowid', $isdraft);
92if (empty($conf->hrm->enabled)) {
94}
95if (!$permissiontoread || ($action === 'create' && !$permissiontoadd)) {
97}
98
99
100/*
101 * Actions
102 */
103
104$parameters = array();
105$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
106if ($reshook < 0) {
107 setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
108}
109
110if (empty($reshook)) {
111 $error = 0;
112
113 $backurlforlist = dol_buildpath('/hrm/job_list.php', 1);
114
115 if (empty($backtopage) || ($cancel && empty($id))) {
116 if (empty($backtopage) || ($cancel && strpos($backtopage, '__ID__'))) {
117 if (empty($id) && (($action != 'add' && $action != 'create') || $cancel)) {
118 $backtopage = $backurlforlist;
119 } else {
120 $backtopage = dol_buildpath('/hrm/job_card.php', 1) . '?id=' . ($id > 0 ? $id : '__ID__');
121 }
122 }
123 }
124
125 $triggermodname = 'HRM_JOB_MODIFY'; // Name of trigger action code to execute when we modify record
126
127
128 // Actions cancel, add, update, update_extras, confirm_validate, confirm_delete, confirm_deleteline, confirm_clone, confirm_close, confirm_setdraft, confirm_reopen
129 if ($action != 'confirm_clone') {
130 include DOL_DOCUMENT_ROOT . '/core/actions_addupdatedelete.inc.php';
131 }
132
133 // Actions when linking object each other
134 include DOL_DOCUMENT_ROOT . '/core/actions_dellink.inc.php';
135
136 // Actions when printing a doc from card
137 include DOL_DOCUMENT_ROOT . '/core/actions_printing.inc.php';
138
139 // Action to move up and down lines of object
140 //include DOL_DOCUMENT_ROOT.'/core/actions_lineupdown.inc.php';
141
142 // Action to build doc
143 include DOL_DOCUMENT_ROOT . '/core/actions_builddoc.inc.php';
144
145 if ($action == 'set_thirdparty' && $permissiontoadd) {
146 $object->setValueFrom('fk_soc', GETPOSTINT('fk_soc'), '', null, 'date', '', $user, $triggermodname);
147 }
148 if ($action == 'classin' && $permissiontoadd) {
149 $object->setProject(GETPOSTINT('projectid'));
150 }
151
152 // Actions to send emails
153 $triggersendname = 'HRM_JOB_SENTBYMAIL';
154 $autocopy = 'MAIN_MAIL_AUTOCOPY_JOB_TO';
155 $trackid = 'job' . $object->id;
156 include DOL_DOCUMENT_ROOT . '/core/actions_sendmails.inc.php';
157
158 if ($action == 'confirm_clone' && $confirm != 'yes') {
159 $action = '';
160 }
161
162 if ($action == 'confirm_clone' && $confirm == 'yes' && ($user->hasRight('salaries', 'write'))) {
163 $db->begin();
164
165 $originalId = $id;
166
167 $object->fetch($id);
168 $skillRequire = $object->getSkillRankForJob($originalId);
169 if ($object->id > 0) {
170 $object->id = 0;
171 $object->ref = '';
172
173 if (GETPOST('clone_label', 'alphanohtml')) {
174 $object->label = GETPOST('clone_label', 'alphanohtml');
175 } else {
176 $object->label = $langs->trans("CopyOf").' '.$object->label;
177 }
178 if (GETPOST('clone_skills_required')) {
179 $cloneSkillRequired = GETPOST('clone_skills_required');
180 }
181
182 $id = $object->create($user);
183 if ($id > 0) {
184 if (!empty($cloneSkillRequired)) {
185 $i = 0;
186 while ($i < count($skillRequire)) {
187 $skillrank = new SkillRank($db);
188 $skillrank->createFromClone($user, $skillRequire[$i]->rowid, $id);
189 $i++;
190 }
191 }
192 $db->commit();
193 $db->close();
194
195 header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
196 exit;
197 } else {
198 $id = $originalId;
199 $db->rollback();
200
201 setEventMessages($object->error, $object->errors, 'errors');
202 }
203 } else {
204 $db->rollback();
205 dol_print_error($db, $object->error);
206 }
207 }
208}
209
210
211/*
212 * View
213 *
214 * Put here all code to build page
215 */
216
217$form = new Form($db);
218$formfile = new FormFile($db);
219$formproject = new FormProjets($db);
220
221$title = $langs->trans("Job");
222$help_url = '';
223llxHeader('', $title, $help_url);
224
225// Example : Adding jquery code
226// print '<script type="text/javascript" language="javascript">
227// jQuery(document).ready(function() {
228// function init_myfunc()
229// {
230// jQuery("#myid").removeAttr(\'disabled\');
231// jQuery("#myid").attr(\'disabled\',\'disabled\');
232// }
233// init_myfunc();
234// jQuery("#mybutton").click(function() {
235// init_myfunc();
236// });
237// });
238// </script>';
239
240
241// Part to create
242if ($action == 'create') {
243 print load_fiche_titre($langs->trans("NewJobProfile", $langs->transnoentities('Job')), '', 'object_' . $object->picto);
244
245 print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
246 print '<input type="hidden" name="token" value="' . newToken() . '">';
247 print '<input type="hidden" name="action" value="add">';
248 if ($backtopage) {
249 print '<input type="hidden" name="backtopage" value="' . $backtopage . '">';
250 }
251 if ($backtopageforcancel) {
252 print '<input type="hidden" name="backtopageforcancel" value="' . $backtopageforcancel . '">';
253 }
254
255 print dol_get_fiche_head(array(), '');
256
257 print '<table class="border centpercent tableforfieldcreate">' . "\n";
258
259 // Common attributes
260 include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_add.tpl.php';
261
262 // Other attributes
263 include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_add.tpl.php';
264
265 print '</table>' . "\n";
266
267 print dol_get_fiche_end();
268
269 print '<div class="center">';
270 print '<input type="submit" class="button" name="add" value="' . dol_escape_htmltag($langs->trans("Create")) . '">';
271 print '&nbsp; ';
272 print '<input type="' . ($backtopage ? "submit" : "button") . '" class="button button-cancel" name="cancel" value="' . dol_escape_htmltag($langs->trans("Cancel")) . '"' . ($backtopage ? '' : ' onclick="history.go(-1)"') . '>'; // Cancel for create does not post form if we don't know the backtopage
273 print '</div>';
274
275 print '</form>';
276
277 //dol_set_focus('input[name="ref"]');
278}
279
280// Part to edit record
281if (($id || $ref) && $action == 'edit') {
282 print load_fiche_titre($langs->trans("JobProfile"), '', 'object_' . $object->picto);
283
284 print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
285 print '<input type="hidden" name="token" value="' . newToken() . '">';
286 print '<input type="hidden" name="action" value="update">';
287 print '<input type="hidden" name="id" value="' . $object->id . '">';
288 if ($backtopage) {
289 print '<input type="hidden" name="backtopage" value="' . $backtopage . '">';
290 }
291 if ($backtopageforcancel) {
292 print '<input type="hidden" name="backtopageforcancel" value="' . $backtopageforcancel . '">';
293 }
294
295 print dol_get_fiche_head();
296
297 print '<table class="border centpercent tableforfieldedit">' . "\n";
298
299 // Common attributes
300 include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_edit.tpl.php';
301
302 // Other attributes
303 include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_edit.tpl.php';
304
305 print '</table>';
306
307 print dol_get_fiche_end();
308
309 print '<div class="center"><input type="submit" class="button button-save" name="save" value="' . $langs->trans("Save") . '">';
310 print ' &nbsp; <input type="submit" class="button button-cancel" name="cancel" value="' . $langs->trans("Cancel") . '">';
311 print '</div>';
312
313 print '</form>';
314}
315
316// Part to show record
317if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) {
318 $res = $object->fetch_optionals();
319
320 $head = jobPrepareHead($object);
321 $picto = 'company.png';
322 print dol_get_fiche_head($head, 'job_card', $langs->trans("Workstation"), -1, $object->picto);
323
324 $formconfirm = '';
325
326 // Confirmation to delete
327 if ($action == 'delete') {
328 $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteJob'), $langs->trans('ConfirmDeleteObject'), 'confirm_delete', '', 0, 1);
329 }
330 // Confirmation to delete line
331 if ($action == 'deleteline') {
332 $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id . '&lineid=' . $lineid, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_deleteline', '', 0, 1);
333 }
334 // Clone confirmation
335 if ($action == 'clone') {
336 // Create an array for form
337 $formquestion = array(
338 array('type' => 'text', 'name' => 'clone_label', 'label' => $langs->trans("Label"), 'value' => $langs->trans("CopyOf").' '.$object->label),
339 array('type' => 'checkbox', 'name' => 'clone_skills_required', 'label' => $langs->trans("RequiredSkills"), 'value' => '',),
340
341 );
342 $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneAsk', $object->label), 'confirm_clone', $formquestion, 'yes', 1, 280);
343 }
344
345 // Confirmation of action xxxx
346 if ($action == 'xxx') {
347 $formquestion = array();
348 /*
349 $forcecombo=0;
350 if ($conf->browser->name == 'ie') $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy
351 $formquestion = array(
352 // 'text' => $langs->trans("ConfirmClone"),
353 // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1),
354 // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1),
355 // array('type' => 'other', 'name' => 'idwarehouse', 'label' => $langs->trans("SelectWarehouseForStockDecrease"), 'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1, 0, 0, '', 0, $forcecombo))
356 );
357 */
358 $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('XXX'), $text, 'confirm_xxx', $formquestion, 0, 1, 220);
359 }
360
361 // Call Hook formConfirm
362 $parameters = array('formConfirm' => $formconfirm, 'lineid' => $lineid);
363 $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
364 if (empty($reshook)) {
365 $formconfirm .= $hookmanager->resPrint;
366 } elseif ($reshook > 0) {
367 $formconfirm = $hookmanager->resPrint;
368 }
369
370 // Print form confirm
371 print $formconfirm;
372
373
374 // Object card
375 // ------------------------------------------------------------
376 $linkback = '<a href="' . dol_buildpath('/hrm/job_list.php', 1) . '?restore_lastsearch_values=1' . (!empty($socid) ? '&socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>';
377
378 $morehtmlref = '<div class="refid">';
379 $morehtmlref .= $object->label;
380 $morehtmlref .= '</div>';
381
382
383 dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'rowid', $morehtmlref);
384
385
386 print '<div class="fichecenter">';
387 print '<div class="fichehalfleft">';
388 print '<div class="underbanner clearboth"></div>';
389 print '<table class="border centpercent tableforfield">'."\n";
390
391 // Common attributes
392 //$keyforbreak='fieldkeytoswitchonsecondcolumn'; // We change column just before this field
393 //unset($object->fields['fk_project']); // Hide field already shown in banner
394 //unset($object->fields['fk_soc']); // Hide field already shown in banner
395 $object->fields['label']['visible'] = 0; // Already in banner
396 include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php';
397
398 // Other attributes. Fields from hook formObjectOptions and Extrafields.
399 include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
400
401 print '</table>';
402 print '</div>';
403 print '</div>';
404
405 print '<div class="clearboth"></div>';
406
407 print dol_get_fiche_end();
408
409
410 /*
411 * Lines
412 */
413
414 if (!empty($object->table_element_line)) {
415 // Show object lines
416 $result = $object->getLinesArray();
417
418 print ' <form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '' : '#line_' . GETPOSTINT('lineid')) . '" method="POST">
419 <input type="hidden" name="token" value="' . newToken() . '">
420 <input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateline') . '">
421 <input type="hidden" name="mode" value="">
422 <input type="hidden" name="page_y" value="">
423 <input type="hidden" name="id" value="' . $object->id . '">
424 ';
425
426 if (!empty($conf->use_javascript_ajax) && $object->status == 0) {
427 include DOL_DOCUMENT_ROOT . '/core/tpl/ajaxrow.tpl.php';
428 }
429
430 print '<div class="div-table-responsive-no-min">';
431 if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) {
432 print '<table id="tablelines" class="noborder noshadow" width="100%">';
433 }
434
435 if (!empty($object->lines)) {
436 $object->printObjectLines($action, $mysoc, null, GETPOSTINT('lineid'), 1);
437 }
438
439 // Form to add new line
440 if ($object->status == 0 && $permissiontoadd && $action != 'selectlines') {
441 if ($action != 'editline') {
442 // Add products/services form
443
444 $parameters = array();
445 $reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
446 if ($reshook < 0) {
447 setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
448 }
449 if (empty($reshook)) {
450 $object->formAddObjectLine(1, $mysoc, $soc);
451 }
452 }
453 }
454
455 if (!empty($object->lines) || ($object->status == $object::STATUS_DRAFT && $permissiontoadd && $action != 'selectlines' && $action != 'editline')) {
456 print '</table>';
457 }
458 print '</div>';
459
460 print "</form>\n";
461 }
462
463
464 // Buttons for actions
465
466 if ($action != 'presend' && $action != 'editline') {
467 print '<div class="tabsAction">' . "\n";
468 $parameters = array();
469 $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
470 if ($reshook < 0) {
471 setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
472 }
473
474 if (empty($reshook)) {
475 // Back to draft
476 if ($object->status == $object::STATUS_VALIDATED) {
477 print dolGetButtonAction($langs->trans('SetToDraft'), '', 'default', $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=confirm_setdraft&confirm=yes&token=' . newToken(), '', $permissiontoadd);
478 }
479
480 print dolGetButtonAction($langs->trans('Modify'), '', 'default', $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=edit&token=' . newToken(), '', $permissiontoadd);
481
482 print dolGetButtonAction($langs->trans('ToClone'), '', 'default', $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=clone&token=' . newToken(), '', $permissiontoadd);
483
484 // Delete (need delete permission, or if draft, just need create/modify permission)
485 print dolGetButtonAction($langs->trans('Delete'), '', 'delete', $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=delete&token=' . newToken(), '', $permissiontodelete);
486 }
487 print '</div>' . "\n";
488 }
489
490
491 // Select mail models is same action as presend
492 if (GETPOST('modelselected')) {
493 $action = 'presend';
494 }
495
496 if ($action != 'presend') {
497 print '<div class="fichecenter"><div class="fichehalfleft">';
498 print '<a name="builddoc"></a>'; // ancre
499
500 $includedocgeneration = 0;
501
502 // Documents
503 if ($includedocgeneration) {
504 $objref = dol_sanitizeFileName($object->ref);
505 $relativepath = $objref . '/' . $objref . '.pdf';
506 $filedir = $conf->hrm->dir_output . '/' . $object->element . '/' . $objref;
507 $urlsource = $_SERVER["PHP_SELF"] . "?id=" . $object->id;
508 $genallowed = $user->hasRight('hrm', 'job', 'read'); // If you can read, you can build the PDF to read content
509 $delallowed = $user->hasRight('hrm', 'job', 'write'); // If you can create/edit, you can remove a file on card
510 print $formfile->showdocuments('hrm:Job', $object->element . '/' . $objref, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0, '', '', '', $langs->defaultlang);
511 }
512
513 // Show links to link elements
514 $tmparray = $form->showLinkToObjectBlock($object, array(), array('job'), 1);
515 $linktoelem = $tmparray['linktoelem'];
516 $htmltoenteralink = $tmparray['htmltoenteralink'];
517 print $htmltoenteralink;
518
519 $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
520
521 print '</div><div class="fichehalfright">';
522
523 $MAXEVENT = 10;
524
525 $morehtmlcenter = dolGetButtonTitle($langs->trans('SeeAll'), '', 'fa fa-bars imgforviewmode', DOL_URL_ROOT.'/hrm/job_agenda.php?id='.$object->id);
526
527 // List of actions on element
528 include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php';
529 $formactions = new FormActions($db);
530 $somethingshown = $formactions->showactions($object, $object->element . '@' . $object->module, (is_object($object->thirdparty) ? $object->thirdparty->id : 0), 1, '', $MAXEVENT, '', $morehtmlcenter);
531
532 print '</div></div>';
533 }
534
535 // Presend form
536 $modelmail = 'job';
537 $defaulttopic = 'InformationMessage';
538 $diroutput = $conf->hrm->dir_output;
539 $trackid = 'job' . $object->id;
540
541 include DOL_DOCUMENT_ROOT . '/core/tpl/card_presend.tpl.php';
542}
543
544// End of page
545llxFooter();
546$db->close();
$id
Definition account.php:39
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
Definition card.php:58
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Definition wrapper.php:70
Class to manage standard extra fields.
Class to manage building of HTML components.
Class to offer components to list and upload files.
Class to manage generation of HTML components Only common components must be here.
Class to manage building of HTML components.
Class for Job.
Definition job.class.php:38
Class for SkillRank.
llxFooter()
Footer empty.
Definition document.php:107
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
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.
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
dolGetButtonAction($label, $text='', $actionType='default', $url='', $id='', $userRight=1, $params=array())
Function dolGetButtonAction.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
jobPrepareHead($object)
Prepare array of tabs for Job.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.