dolibarr 21.0.0-beta
actions_dellink.inc.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2015-2016 Laurent Destailleur <eldy@users.sourceforge.net>
3 * Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
4 * Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <https://www.gnu.org/licenses/>.
18 * or see https://www.gnu.org/
19 */
20
27// $action must be defined
28// $object must be defined
29// $permissiondellink must be defined
30
40$dellinkid = GETPOSTINT('dellinkid');
41$addlink = GETPOST('addlink', 'alpha');
42$addlinkids = GETPOST('idtolinkto', 'array:int');
43$addlinkref = GETPOST('reftolinkto', 'alpha');
44$cancellink = GETPOST('cancel', 'alpha');
45
46// Link object to another object
47if ($action == 'addlink' && !empty($permissiondellink) && !$cancellink && $id > 0 && !empty($addlinkids)) {
48 $object->fetch($id);
49 $object->fetch_thirdparty();
50 foreach ($addlinkids as $addlinkid) {
51 $result = $object->add_object_linked($addlink, $addlinkid);
52 }
53 $object->clearObjectLinkedCache();
54}
55
56// Link by reference
57if ($action == 'addlinkbyref' && !empty($permissiondellink) && !$cancellink && $id > 0 && !empty($addlinkref) && !getDolGlobalString('MAIN_HIDE_LINK_BY_REF_IN_LINKTO')) {
58 $element_prop = getElementProperties($addlink);
59 if (is_array($element_prop)) {
60 dol_include_once('/' . $element_prop['classpath'] . '/' . $element_prop['classfile'] . '.class.php');
61
62 $objecttmp = new $element_prop['classname']($db);
63 '@phan-var-force CommonObject $objecttmp';
65 $ret = $objecttmp->fetch(0, $addlinkref);
66 if ($ret > 0) {
67 $object->fetch($id);
68 $object->fetch_thirdparty();
69 $result = $object->add_object_linked($addlink, $objecttmp->id);
70 if (isset($_POST['reftolinkto'])) {
71 unset($_POST['reftolinkto']);
72 }
73 $object->clearObjectLinkedCache();
74 } elseif ($ret < 0) {
75 setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
76 } else {
77 $langs->load('errors');
78 setEventMessage($langs->trans('ErrorRecordNotFound'), 'errors');
79 }
80 }
81}
82
83// Delete link in table llx_element_element
84if ($action == 'dellink' && !empty($permissiondellink) && !$cancellink && $dellinkid > 0) {
85 $result = $object->deleteObjectLinked(0, '', 0, '', $dellinkid);
86 $object->clearObjectLinkedCache();
87 if ($result < 0) {
88 setEventMessages($object->error, $object->errors, 'errors');
89 }
90}
$id
Definition account.php:48
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
Definition card.php:66
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.
setEventMessage($mesgs, $style='mesgs', $noduplicate=0, $attop=0)
Set event message in dol_events session object.
getElementProperties($elementType)
Get an array with properties of an element.
if(!function_exists( 'dol_getprefix')) dol_include_once($relpath, $classname='')
Make an include_once using default root and alternate root if it fails.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.