Skip to content
Open
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).

### Fixed

- Fix PDF Generation involving a Network port with multiple IPs
- Fix PDF export of tabs renamed in GLPI 11

## [4.1.4] - 2026-07-30
Expand Down
42 changes: 27 additions & 15 deletions inc/networkport.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -138,27 +138,39 @@ public static function pdfForItem(PluginPdfSimplePDF $pdf, CommonDBTM $item)
$netport->fields['mac'],
));

$sqlip = ['LEFT JOIN' => ['glpi_networknames'
=> ['FKEY' => ['glpi_ipaddresses' => 'items_id',
'glpi_networknames' => 'id'],
['glpi_ipaddresses.entities_id'
=> $_SESSION['glpiactive_entity']]]],
'WHERE' => ['glpi_networknames.items_id' => $netport->fields['id']]];

$ipname = '';
$ip = new IPAddress();
if ($ip->getFromDBByRequest($sqlip)) {
$ipname = $ip->fields['name'];

$pdf->displayLine('<b>' . sprintf(__s('%1$s: %2$s'), __s('ip') . '</b>', $ipname));
$ips = $DB->request(
[
'SELECT' => [IPAddress::getTable() . '.*'],
'FROM' => IPAddress::getTable(),
'LEFT JOIN' => [
'glpi_networknames' => [
'FKEY' => [
'glpi_ipaddresses' => 'items_id',
'glpi_networknames' => 'id',
],
[
'glpi_ipaddresses.entities_id' => $_SESSION['glpiactive_entity'],
],
],
],
'WHERE' => [
'glpi_networknames.items_id' => $netport->fields['id'],
'glpi_networknames.itemtype' => NetworkPort::class,
],
],
);

foreach ($ips as $ip) {

$pdf->displayLine('<b>' . sprintf(__s('%1$s: %2$s'), __s('ip') . '</b>', $ip['name']));

$sql = ['SELECT' => 'glpi_ipaddresses_ipnetworks.ipnetworks_id',
'FROM' => 'glpi_ipaddresses_ipnetworks',
'LEFT JOIN' => ['glpi_ipnetworks'
=> ['FKEY' => ['glpi_ipaddresses_ipnetworks' => 'ipnetworks_id',
'glpi_ipnetworks' => 'id']]],
'WHERE' => ['glpi_ipaddresses_ipnetworks.ipaddresses_id' => $ip->getID()]
+ $dbu->getEntitiesRestrictCriteria('glpi_ipnetworks')];
'WHERE' => ['glpi_ipaddresses_ipnetworks.ipaddresses_id' => $ip['id']]
+ $dbu->getEntitiesRestrictCriteria('glpi_ipnetworks')];

$res = $DB->request($sql);
foreach ($res as $row) {
Expand Down