
Qualche giorno fa ho avuto la necessità di aggiungere un menù custom nella Web Gui di LibreNMS per poter aggiungere della documentazione.
Analizzando i file di configurazione dell’applicativo ho trovato il file con le indicazioni da seguire.
Infatti esiste già il codice per aggiungere una menù custom e lo troviamo all’interno del file /opt/librenms/html/includes/print-menubar.php
Se apriamo il file verso il fondo dovremmo vedere queste due righe
|
0
1
2
3
|
// Custom menubar entries.
if (is_file("includes/print-menubar-custom.inc.php")) {
require 'includes/print-menubar-custom.inc.php';
}
|
Creiamo quindi la pagina PHP print-menubar-custom.inc.php nel path /opt/librenms/html/includes/ con il comando:
|
0 |
sudo nano /opt/librenms/html/includes/print-menubar-custom.inc.php
|
Quindi incolliamo il seguente codice:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php
use LibreNMS\Authentication\Auth;
?>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-hover="dropdown" data-toggle="dropdown"><i class="fa fa-star fa-fw fa-lg fa-nav-icons hidden-md" aria-hidden="true"></i>
<span class="hidden-sm">Custom Menu</span></a>
<ul class="dropdown-menu">
<?php if (Auth::user()->hasGlobalAdmin()) { ?>
<li><a href="WIFI-Map.html"><i class="fa fa-wifi fa-fw fa-lg" aria-hidden="true"></i> WIFI-Map</a></li>
<li role="presentation" class="divider"></li>
<li><a href="Router-Map.html"><i class="fa fa-wifi fa-fw fa-lg" aria-hidden="true"></i> Router-Map</a></li>
<li role="presentation" class="divider"></li>
<?php } else { echo('
<li><a href="#">You need admin rights to see this</a></li>'); } ?>
</ul>
</li>
|
Quindi settiamo i permessi per l’utenza librenms alla pagina appena creata con il comando:
|
0 |
chown librenms:librenms /opt/librenms/html/includes/wifi-menubar-maps.inc.php
|
A questo punto dobbiamo creare i due file HTML citati nella pagina PHP appena creata WIFI-Map.html e Router-Map.html all’interno della cartella /opt/librenms/html
Dopo aver creato o copiato i file Html dobbiamo assegnare i permessi all’utenza librenms con il comando:
|
0
1
|
chown librenms:librenms /opt/librenms/html/WIFI-Map.html
chown librenms:librenms /opt/librenms/html/Router-Map.html
|
Se proviamo a fare un refresh della pagina web noteremo che dopo il menù Alerts è comparso il Custom Menu con all’interno i sotto menù che abbiamo creato.

se volessi aggiungere una nuova tab in device come dovrei fare? oltre overview etc?