25 require
'../main.inc.php';
27 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
28 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
29 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formprojet.class.php';
30 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formadmin.class.php';
31 require_once DOL_DOCUMENT_ROOT.
'/knowledgemanagement/class/knowledgerecord.class.php';
32 require_once DOL_DOCUMENT_ROOT.
'/knowledgemanagement/lib/knowledgemanagement_knowledgerecord.lib.php';
33 require_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
36 $langs->loadLangs(array(
"knowledgemanagement",
"ticket",
"other"));
41 $action =
GETPOST(
'action',
'aZ09');
42 $confirm =
GETPOST(
'confirm',
'alpha');
43 $cancel =
GETPOST(
'cancel',
'aZ09');
44 $contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'knowledgerecordcard';
45 $backtopage =
GETPOST(
'backtopage',
'alpha');
46 $backtopageforcancel =
GETPOST(
'backtopageforcancel',
'alpha');
47 $lineid =
GETPOST(
'lineid',
'int');
52 $diroutputmassaction = $conf->knowledgemanagement->dir_output.
'/temp/massgeneration/'.$user->id;
53 $hookmanager->initHooks(array(
'knowledgerecordcard',
'globalcard'));
56 $extrafields->fetch_name_optionals_label($object->table_element);
58 $search_array_options = $extrafields->getOptionalsFromPost($object->table_element,
'',
'search_');
61 $search_all =
GETPOST(
"search_all",
'alpha');
63 foreach ($object->fields as $key => $val) {
64 if (
GETPOST(
'search_'.$key,
'alpha')) {
65 $search[$key] =
GETPOST(
'search_'.$key,
'alpha');
69 if (empty($action) && empty($id) && empty($ref)) {
74 include DOL_DOCUMENT_ROOT.
'/core/actions_fetchobject.inc.php';
77 $permissiontoread = $user->rights->knowledgemanagement->knowledgerecord->read;
78 $permissiontovalidate = $user->rights->knowledgemanagement->knowledgerecord->write;
79 $permissiontoadd = $user->rights->knowledgemanagement->knowledgerecord->write;
80 $permissiontodelete = $user->rights->knowledgemanagement->knowledgerecord->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT);
81 $permissionnote = $user->rights->knowledgemanagement->knowledgerecord->write;
82 $permissiondellink = $user->rights->knowledgemanagement->knowledgerecord->write;
83 $upload_dir = $conf->knowledgemanagement->multidir_output[isset($object->entity) ? $object->entity : 1];
98 $parameters = array();
99 $reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
104 if (empty($reshook)) {
107 $backurlforlist = DOL_URL_ROOT.
'/knowledgemanagement/knowledgerecord_list.php';
109 if (empty($backtopage) || ($cancel && empty($id))) {
110 if (empty($backtopage) || ($cancel && strpos($backtopage,
'__ID__'))) {
111 if (empty($id) && (($action !=
'add' && $action !=
'create') || $cancel)) {
112 $backtopage = $backurlforlist;
114 $backtopage = DOL_URL_ROOT.
'/knowledgemanagement/knowledgerecord_card.php?id='.($id > 0 ? $id :
'__ID__');
119 $triggermodname =
'KNOWLEDGEMANAGEMENT_KNOWLEDGERECORD_MODIFY';
122 if (($action ==
'update' || $action ==
'add') && !empty($permissiontoadd)) {
127 include DOL_DOCUMENT_ROOT.
'/core/actions_addupdatedelete.inc.php';
130 include DOL_DOCUMENT_ROOT.
'/core/actions_dellink.inc.php';
133 include DOL_DOCUMENT_ROOT.
'/core/actions_printing.inc.php';
139 include DOL_DOCUMENT_ROOT.
'/core/actions_builddoc.inc.php';
141 if ($action ==
'set_thirdparty' && $permissiontoadd) {
142 $object->setValueFrom(
'fk_soc',
GETPOST(
'fk_soc',
'int'),
'',
'',
'date',
'', $user, $triggermodname);
144 if ($action ==
'classin' && $permissiontoadd) {
145 $object->setProject(
GETPOST(
'projectid',
'int'));
149 $triggersendname =
'KNOWLEDGEMANAGEMENT_KNOWLEDGERECORD_SENTBYMAIL';
150 $autocopy =
'MAIN_MAIL_AUTOCOPY_KNOWLEDGERECORD_TO';
151 $trackid =
'knowledgerecord'.$object->id;
152 include DOL_DOCUMENT_ROOT.
'/core/actions_sendmails.inc.php';
154 if ($action ==
'confirm_validate') {
167 $title = $langs->trans(
"KnowledgeRecord");
172 if ($action ==
'create') {
173 print
load_fiche_titre($langs->trans(
"NewKnowledgeRecord"),
'',
'object_'.$object->picto);
175 print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
176 print
'<input type="hidden" name="token" value="'.newToken().
'">';
177 print
'<input type="hidden" name="action" value="add">';
178 if (!empty($backtopage)) {
179 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
181 if (!empty($backtopageforcancel)) {
182 print
'<input type="hidden" name="backtopageforcancel" value="'.$backtopageforcancel.
'">';
187 print
'<table class="border centpercent tableforfieldcreate">'.
"\n";
190 include DOL_DOCUMENT_ROOT.
'/core/tpl/commonfields_add.tpl.php';
192 if (!empty($conf->categorie->enabled)) {
193 $cate_arbo =
$form->select_all_categories(Categorie::TYPE_KNOWLEDGEMANAGEMENT,
'',
'parent', 64, 0, 1);
195 if (count($cate_arbo)) {
197 print
'<tr><td>'.$langs->trans(
"Categories").
'</td><td colspan="3">';
198 print
img_picto(
'',
'category').$form->multiselectarray(
'categories', $cate_arbo,
GETPOST(
'categories',
'array'),
'', 0,
'quatrevingtpercent widthcentpercentminusx', 0, 0);
204 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_add.tpl.php';
206 print
'</table>'.
"\n";
210 print
$form->buttonsSaveCancel(
'Create');
218 if (($id || $ref) && $action ==
'edit') {
219 print
load_fiche_titre($langs->trans(
"KnowledgeRecord"),
'',
'object_'.$object->picto);
221 print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
222 print
'<input type="hidden" name="token" value="'.newToken().
'">';
223 print
'<input type="hidden" name="action" value="update">';
224 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
225 if (!empty($backtopage)) {
226 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
228 if (!empty($backtopageforcancel)) {
229 print
'<input type="hidden" name="backtopageforcancel" value="'.$backtopageforcancel.
'">';
234 print
'<table class="border centpercent tableforfieldedit">'.
"\n";
237 include DOL_DOCUMENT_ROOT.
'/core/tpl/commonfields_edit.tpl.php';
239 if (!empty($conf->categorie->enabled)) {
240 $cate_arbo =
$form->select_all_categories(Categorie::TYPE_KNOWLEDGEMANAGEMENT,
'',
'parent', 64, 0, 1);
242 if (count($cate_arbo)) {
244 print
'<tr><td>'.$langs->trans(
"Categories").
'</td><td colspan="3">';
246 $cats = $c->containing($object->id, Categorie::TYPE_KNOWLEDGEMANAGEMENT);
247 $arrayselected = array();
248 if (is_array($cats)) {
249 foreach ($cats as $cat) {
250 $arrayselected[] = $cat->id;
253 print
$form->multiselectarray(
'categories', $cate_arbo, $arrayselected,
'', 0,
'quatrevingtpercent widthcentpercentminusx', 0, 0);
259 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_edit.tpl.php';
265 print
$form->buttonsSaveCancel();
271 if ($object->id > 0 && (empty($action) || ($action !=
'edit' && $action !=
'create'))) {
272 $res = $object->fetch_optionals();
275 print
dol_get_fiche_head($head,
'card', $langs->trans(
"KnowledgeRecord"), -1, $object->picto);
280 if ($action ==
'delete') {
281 $formconfirm =
$form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.$object->id, $langs->trans(
'DeleteKnowledgeRecord'), $langs->trans(
'ConfirmDeleteObject'),
'confirm_delete',
'', 0, 1);
284 if ($action ==
'deleteline') {
285 $formconfirm =
$form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.$object->id.
'&lineid='.$lineid, $langs->trans(
'DeleteLine'), $langs->trans(
'ConfirmDeleteLine'),
'confirm_deleteline',
'', 0, 1);
288 if ($action ==
'clone') {
290 $formquestion = array();
291 $formconfirm =
$form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.$object->id, $langs->trans(
'ToClone'), $langs->trans(
'ConfirmCloneAsk', $object->ref),
'confirm_clone', $formquestion,
'yes', 1);
295 if ($action ==
'close') {
296 $text = $langs->trans(
'ConfirmCloseKM', $object->ref);
305 $formquestion = array();
316 $formconfirm =
$form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.$object->id, $langs->trans(
'SetObsolete'), $text,
'confirm_close', $formquestion, 0, 1, 220);
320 if ($action ==
'reopen') {
321 $text = $langs->trans(
'ConfirmReopenKM', $object->ref);
330 $formquestion = array();
341 $formconfirm =
$form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.$object->id, $langs->trans(
'Re-Open'), $text,
'confirm_reopen', $formquestion, 0, 1, 220);
345 $parameters = array(
'formConfirm' =>
$formconfirm,
'lineid' => $lineid);
346 $reshook = $hookmanager->executeHooks(
'formConfirm', $parameters, $object, $action);
347 if (empty($reshook)) {
349 } elseif ($reshook > 0) {
359 $linkback =
'<a href="'.DOL_URL_ROOT.
'/knowledgemanagement/knowledgerecord_list.php?restore_lastsearch_values=1'.(!empty($socid) ?
'&socid='.$socid :
'').
'">'.$langs->trans(
"BackToList").
'</a>';
361 $morehtmlref =
'<div class="refidno">';
396 $morehtmlref .=
'</div>';
399 dol_banner_tab($object,
'ref', $linkback, 1,
'ref',
'ref', $morehtmlref);
402 print
'<div class="fichecenter">';
403 print
'<div class="fichehalfleft">';
404 print
'<div class="underbanner clearboth"></div>';
405 print
'<table class="border centpercent tableforfield">'.
"\n";
408 $keyforbreak=
'fk_c_ticket_category';
411 include DOL_DOCUMENT_ROOT.
'/core/tpl/commonfields_view.tpl.php';
415 print
'<tr><td class="valignmiddle">'.$langs->trans(
"Categories").
'</td><td colspan="3">';
416 print
$form->showCategories($object->id, Categorie::TYPE_KNOWLEDGEMANAGEMENT, 1);
421 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_view.tpl.php';
427 print
'<div class="clearboth"></div>';
434 if ($action !=
'presend' && $action !=
'editline') {
435 print
'<div class="tabsAction">'.
"\n";
436 $parameters = array();
437 $reshook = $hookmanager->executeHooks(
'addMoreActionsButtons', $parameters, $object, $action);
442 if (empty($reshook)) {
444 if (empty($user->socid)) {
449 if ($object->status == $object::STATUS_VALIDATED) {
450 print
dolGetButtonAction($langs->trans(
'SetToDraft'),
'',
'default', $_SERVER[
"PHP_SELF"].
'?id='.$object->id.
'&action=confirm_setdraft&confirm=yes',
'', $permissiontoadd);
452 if (($object->status == $object::STATUS_DRAFT || $object->status == $object::STATUS_VALIDATED) && $permissiontovalidate) {
453 print
dolGetButtonAction($langs->trans(
'Modify'),
'',
'default', $_SERVER[
"PHP_SELF"].
'?id='.$object->id.
'&action=edit&token='.
newToken(),
'', $permissiontoadd);
456 if ($object->status == $object::STATUS_DRAFT) {
457 if ((empty($object->table_element_line) || (is_array($object->lines) && count($object->lines) > 0)) && $permissiontovalidate) {
458 print
dolGetButtonAction($langs->trans(
'Validate'),
'',
'default', $_SERVER[
'PHP_SELF'].
'?id='.$object->id.
'&action=confirm_validate&token='.
newToken().
'&confirm=yes',
'', $permissiontoadd);
460 $langs->load(
"errors");
462 print
'<a class="butActionRefused" href="" title="'.$langs->trans(
"ErrorAddAtLeastOneLineFirst").
'">'.$langs->trans(
"Reply").
'</a>';
467 print
dolGetButtonAction($langs->trans(
'ToClone'),
'',
'default', $_SERVER[
'PHP_SELF'].
'?id='.$object->id.
'&action=clone&token='.
newToken().
'&object=scrumsprint',
'', $permissiontoadd);
478 if ($permissiontoadd) {
479 if ($object->status == $object::STATUS_VALIDATED) {
480 print
'<a class="butActionDelete" href="'.$_SERVER[
"PHP_SELF"].
'?id='.$object->id.
'&action=close&token='.
newToken().
'">'.$langs->trans(
"SetObsolete").
'</a>'.
"\n";
482 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?id='.$object->id.
'&action=reopen&token='.
newToken().
'">'.$langs->trans(
"Re-Open").
'</a>'.
"\n";
487 print
dolGetButtonAction($langs->trans(
'Delete'),
'',
'delete', $_SERVER[
'PHP_SELF'].
'?id='.$object->id.
'&action=delete&token='.
newToken(),
'', $permissiontodelete || ($object->status == $object::STATUS_DRAFT && $permissiontoadd));
494 if (
GETPOST(
'modelselected')) {
498 if ($action !=
'presend') {
499 print
'<div class="fichecenter"><div class="fichehalfleft">';
500 print
'<a name="builddoc"></a>';
502 $includedocgeneration = 0;
505 if ($includedocgeneration) {
507 $relativepath = $objref.
'/'.$objref.
'.pdf';
508 $filedir = $conf->knowledgemanagement->dir_output.
'/'.$object->element.
'/'.$objref;
509 $urlsource = $_SERVER[
"PHP_SELF"].
"?id=".$object->id;
510 $genallowed = $user->rights->knowledgemanagement->knowledgerecord->read;
511 $delallowed = $user->rights->knowledgemanagement->knowledgerecord->write;
512 print $formfile->showdocuments(
'knowledgemanagement:KnowledgeRecord', $object->element.
'/'.$objref, $filedir, $urlsource, $genallowed, $delallowed, $object->model_pdf, 1, 0, 0, 28, 0,
'',
'',
'', $langs->defaultlang);
516 $linktoelem =
$form->showLinkToObjectBlock($object,
null, array(
'knowledgerecord'));
517 $somethingshown =
$form->showLinkedObjectBlock($object, $linktoelem);
520 print
'</div><div class="fichehalfright">';
524 $morehtmlcenter =
dolGetButtonTitle($langs->trans(
'SeeAll'),
'',
'fa fa-bars imgforviewmode', DOL_URL_ROOT.
'/knowledgemanagement/knowledgerecord_agenda.php?id='.$object->id);
527 include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formactions.class.php';
529 $somethingshown =
$formactions->showactions($object, $object->element.
'@'.$object->module, (is_object($object->thirdparty) ? $object->thirdparty->id : 0), 1,
'', $MAXEVENT,
'', $morehtmlcenter);
531 print
'</div></div>';
535 if (
GETPOST(
'modelselected')) {
540 $modelmail =
'knowledgerecord';
541 $defaulttopic =
'InformationMessage';
542 $diroutput = $conf->knowledgemanagement->dir_output;
543 $trackid =
'knowledgerecord'.$object->id;
545 include DOL_DOCUMENT_ROOT.
'/core/tpl/card_presend.tpl.php';