dolibarr 24.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-2026 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// $id must be defined
30// $permissiondellink must be defined
31
41'
42@phan-var-force CommonObject $object
43@phan-var-force string $action
44@phan-var-force int $permissiondellink
45@phan-var-force int $id
46';
47
48$dellinkid = GETPOSTINT('dellinkid');
49$addlink = GETPOST('addlink', 'alpha');
50$addlinkids = GETPOST('idtolinkto', 'array:int');
51$addlinkref = GETPOST('reftolinkto', 'alpha');
52$cancellink = GETPOST('cancel', 'alpha');
53
54// Link object to another object
55if ($action == 'addlink' && !empty($permissiondellink) && !$cancellink && $id > 0 && !empty($addlinkids)) {
56 $object->fetch($id);
57 $object->fetch_thirdparty();
58 foreach ($addlinkids as $addlinkid) {
59 $result = $object->add_object_linked($addlink, $addlinkid);
60 }
61 $object->clearObjectLinkedCache();
62}
63
64// Link by reference
65if ($action == 'addlinkbyref' && !empty($permissiondellink) && !$cancellink && $id > 0 && !empty($addlinkref) && !getDolGlobalString('MAIN_HIDE_LINK_BY_REF_IN_LINKTO')) {
66 $element_prop = getElementProperties($addlink);
67 if (is_array($element_prop)) {
68 dol_include_once('/' . $element_prop['classpath'] . '/' . $element_prop['classfile'] . '.class.php');
69
70 $objecttmp = new $element_prop['classname']($db);
71 '@phan-var-force CommonObject $objecttmp';
73 $ret = $objecttmp->fetch(0, $addlinkref);
74 if ($ret > 0) {
75 $object->fetch($id);
76 $object->fetch_thirdparty();
77 $result = $object->add_object_linked($addlink, $objecttmp->id);
78 if (isset($_POST['reftolinkto'])) {
79 unset($_POST['reftolinkto']);
80 }
81 $object->clearObjectLinkedCache();
82 } elseif ($ret < 0) {
83 setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
84 } else {
85 $langs->load('errors');
86 setEventMessage($langs->trans('ErrorRecordNotFound'), 'errors');
87 }
88 }
89}
90
91// Delete link in table llx_element_element
92if ($action == 'dellink' && !empty($permissiondellink) && !$cancellink && $dellinkid > 0) {
93 $result = $object->deleteObjectLinked(0, '', 0, '', $dellinkid);
94 $object->clearObjectLinkedCache();
95 if ($result < 0) {
96 setEventMessages($object->error, $object->errors, 'errors');
97 }
98}
$id
Support class for third parties, contacts, members, users or resources.
Definition account.php:47
if(! $sortfield) if(! $sortorder) $object
Definition account.php:100
if(!isModEnabled('ai')||!getDolGlobalString('AI_ASSISTANT_ENABLED')) global $db
API class for accounts.
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.
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.