<?php use secure\Secure; use crud\ElementsFilters; use crud\Elements; use phpformbuilder\Form; session_start(); include_once '../conf/conf.php'; include_once CLASS_DIR . 'phpformbuilder/Form.php'; include_once ADMIN_DIR . 'secure/class/secure/Secure.php'; // $item = lowercase compact table name $item = $match['params']['item']; // $p = page number $_GET['p'] = @$match['params']['p']; // used to redirect forms to the current active list $_SESSION['active_list_url'] = $_SERVER['REQUEST_URI']; include_once ADMIN_DIR . 'class/crud/Elements.php'; $element = new Elements($item); $table = $element->table; $desc = ucfirst($table) . ' list'; $canonical = ADMIN_URL . $item; $meta_robots = ''; if (!empty($_GET['p'])) { $canonical .= '/p' . $_GET['p']; $desc .= ' - page ' . $_GET['p']; $meta_robots = '<meta name="robots" content="noindex" />'; } // lock page // user must have [restricted|all] READ rights on $table Secure::lock($table, 'restricted'); $item_class = $element->item_class; $item_class_with_namespace = $element->item_class_with_namespace; ElementsFilters::register($table); // create the item object include_once ADMIN_DIR . 'class/crud/' . $item_class . '.php'; $object = new $item_class_with_namespace($element); // store requested page number $page_var = $table . '-page'; $_SESSION[$page_var] = $_GET['p']; // breadcrumb include_once 'inc/breadcrumb.php'; // sidebar include_once 'inc/sidebar.php'; // twig loader & templates require_once ROOT . 'vendor/autoload.php'; $loader = new \Twig\Loader\FilesystemLoader('templates'); $twig = new \Twig\Environment($loader, array( 'debug' => DEBUG, )); include_once ROOT . 'vendor/twig/twig/src/Extension/CrudTwigExtension.php'; $twig->addExtension(new \Twig\Extension\CrudTwigExtension()); if (ENVIRONMENT == 'development') { $twig->addExtension(new \Twig\Extension\DebugExtension()); $twig->enableDebug(); } $template = $twig->load($item . '.html'); $template_breadcrumb = $twig->load('breadcrumb.html'); $template_navbar = $twig->load('navbar.html'); $template_sidebar = $twig->load('sidebar.html'); $template_footer = $twig->load('footer.html'); if (ENABLE_STYLE_SWITCHING) { $template_style_switcher = $twig->load('style-switcher.html'); } $template_js = $twig->load('data-lists-js.html'); $msg = ''; if (isset($_SESSION['msg'])) { // catch registered message & reset. $msg = $_SESSION['msg']; unset($_SESSION['msg']); } ?> <!DOCTYPE html> <html lang="en"> <head> <title><?php echo SITENAME . ' Admin Dashboard - ' . $desc; ?></title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <?php echo $meta_robots; ?> <link rel="canonical" href="<?php echo $canonical; ?>"> <meta name="description" content="PHP CRUD Admin Panel - <?php echo $desc; ?> - This professional Full-featured Bootstrap 5 admin dashboard has been built from the Sakila demo database using the PHP CRUD GENERATOR."> <meta name="theme-color" content="#ffffff"> <?php include_once 'inc/css-includes.php'; ?> </head> <body> <?php if (DEMO) { include_once '../inc/navbar-main.php'; } ?> <div class="d-flex flex-nowrap"> <?php echo $template_sidebar->render(array('sidebar' => $sidebar)); ?> <div id="content-wrapper"> <?php echo $template_navbar->render(array('session' => $_SESSION)); echo $template_breadcrumb->render(array('breadcrumb' => $breadcrumb)); ?> <!-- shows all the user messages --> <div id="msg" class="mx-4"><?php echo $msg; ?></div> <?php echo $template->render(array('object' => $object, 'session' => $_SESSION)); ?> </div> <!-- end content-wrapper --> </div> <!-- end container --> <div id="loader"> <div class="spinner"></div> </div> <?php echo $template_footer->render(array('object' => $object)); if (ENABLE_STYLE_SWITCHING) { echo $template_style_switcher->render(); } include_once 'inc/js-includes.php'; echo @$template_js->render(array('object' => $object)); ?> <!-- Single record view Modal --> <div id="single-record-view-modal" class="modal" tabindex="-1" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div class="modal-content"></div> </div> </div> </body> </html>