function transferNetworkLink($itemtype, $ID, $newID)
{
global $DB;
/// TODO manage with new network system
$np = new NetworkPort();
$nn = new NetworkPort_NetworkPort();
$query = "SELECT `glpi_networkports`.*, `glpi_networkportethernets`.`netpoints_id`\n FROM `glpi_networkports`\n LEFT JOIN `glpi_networkportethernets`\n ON (`glpi_networkports`.`id` = `glpi_networkportethernets`.`networkports_id`)\n WHERE `glpi_networkports`.`items_id` = '{$ID}'\n AND `glpi_networkports`.`itemtype` = '{$itemtype}'";
if ($result = $DB->query($query)) {
if ($DB->numrows($result) != 0) {
switch ($this->options['keep_networklink']) {
// Delete netport
case 0:
// Not a copy -> delete
if ($ID == $newID) {
while ($data = $DB->fetch_assoc($result)) {
$np->delete(array('id' => $data['id']));
}
}
// Copy -> do nothing
break;
// Disconnect
// Disconnect
case 1:
// Not a copy -> disconnect
if ($ID == $newID) {
while ($data = $DB->fetch_assoc($result)) {
if ($nn->getFromDBForNetworkPort($data['id'])) {
$nn->delete($data);
}
if ($data['netpoints_id']) {
$netpointID = $this->transferDropdownNetpoint($data['netpoints_id']);
$input['id'] = $data['id'];
$input['netpoints_id'] = $netpointID;
$np->update($input);
}
}
} else {
// Copy -> copy netports
while ($data = $DB->fetch_assoc($result)) {
$data = Toolbox::addslashes_deep($data);
unset($data['id']);
$data['items_id'] = $newID;
$data['netpoints_id'] = $this->transferDropdownNetpoint($data['netpoints_id']);
unset($np->fields);
$np->add(toolbox::addslashes_deep($data));
}
}
break;
// Keep network links
// Keep network links
default:
// Copy -> Copy netpoints (do not keep links)
if ($ID != $newID) {
while ($data = $DB->fetch_assoc($result)) {
unset($data['id']);
$data['items_id'] = $newID;
$data['netpoints_id'] = $this->transferDropdownNetpoint($data['netpoints_id']);
unset($np->fields);
$np->add(toolbox::addslashes_deep($data));
}
} else {
while ($data = $DB->fetch_assoc($result)) {
// Not a copy -> only update netpoint
if ($data['netpoints_id']) {
$netpointID = $this->transferDropdownNetpoint($data['netpoints_id']);
$input['id'] = $data['id'];
$input['netpoints_id'] = $netpointID;
$np->update($input);
}
}
}
}
}
}
}