Um Links zu benutzerdefinierten Seiten in der Seitenleiste des Bootstrap Admin Panels hinzuzufügen, müssen Sie Ihre Seite erstellen, sie dem Hauptrouter zuordnen und sie dann der Seitenleiste hinzufügen.
Die Seitenleiste setzt sich aus Kategorien, Navigationsleisten und Links zusammen. Die Kategorien sind die Hauptabschnitte der Seitenleiste, die Navigationsleisten sind die Unterabschnitte der Kategorien und die Links sind die eigentlichen Links zu den Seiten.
Hier ist die Struktur:
admin/
admin/angepasste-seite-eins.php
und admin/angepasste-seite-zwei.php
admin/index.php
, die zu Ihrer neuen Seite führen: // add your custom page(s) to the router
// the first parameter is the method (GET, POST, PUT, DELETE)
// the second parameter is the path to the page
// the third parameter is the name given to the route (any arbitrary name. It must be unique, without spaces, without special characters)
$router->map('GET', '/custom-page-one', 'custom-page-one.php', 'custom-page-one');
$router->map('GET', '/custom-page-two', 'custom-page-two.php', 'custom-page-two');
Fügen Sie Ihre Seite(n) zur Seitenleiste hinzu
Der folgende Code erstellt eine neue Kategorie mit dem Namen "Meine neue Kategorie", fügt dann ein Nav-Objekt zu der Kategorie hinzu und fügt schließlich die Links zum Nav-Objekt hinzu.
Die in diesem Code verwendeten Methoden sind die folgenden:
Sidebar::addCategory()
- fügt eine neue Kategorie zur Seitenleiste hinzu - /class/bootstrap/sidebar/Sidebar.php
SidebarCategories::addNav()
- fügt der Kategorie ein neues Navigationsobjekt hinzu - /class/bootstrap/sidebar/SidebarCategories.php
Nav::addLink()
- fügt einen neuen Link zum Nav-Objekt hinzu - /class/bootstrap/sidebar/Nav.php
admin\inc\sidebar.php
// create an array with the pages that we'll add to the "My New Category" category
// using the route names we gave in index.php => $router->map()
$category_pages = array('custom-page-one', 'custom-page-two');
/* ===================================
= Category =
==================================== */
$is_category_collapsed = true;
// test if the active (current) page is in the $category_pages array using $match from the router
// and expand the category accordingly
if (isset($match['name']) && in_array($match['name'], $category_pages)) {
$is_category_collapsed = false;
}
// add the category
$sidebar->addCategory('new-category', 'New Category', '', '', true, $is_category_collapsed);
/* ===================================
= Nav =
==================================== */
// create a nav object inside the category. The nav object will contain the links
// add nav into category - the 'newCategory' object is the sidebar's newly created category.
// its name ('newCategory') is the lower-camelcase version of 'new-category'
$sidebar->newCategory->addNav('new-nav', 'navbar-nav flex-column py-0');
/* ===================================
= Links =
==================================== */
// first link
$active = false;
// check if the page is active and set the active variable to true
if (isset($match['name']) && $match['name'] == 'custom-page-one') {
$active = true;
}
// add the first link to the nav object
$sidebar->newCategory->newNav->addLink(ADMIN_URL . 'custom-page-one', 'Custom page one', 'fas fa-circle-info', $active, 'class=nav-item', 'class=nav-link d-flex align-items-center');
// second link
$active = false;
// check if the page is active and set the active variable to true
if (isset($match['name']) && $match['name'] == 'custom-page-two') {
$active = true;
}
// add the second link to the nav object
$sidebar->newCategory->newNav->addLink(ADMIN_URL . 'custom-page-two', 'Custom page two', 'fas fa-users', $active, 'class=nav-item', 'class=nav-link d-flex align-items-center');