<?php
use secure\Secure;
use crud\ElementsFilters;
use crud\Elements;
use phpformbuilder\Form;
use phpformbuilder\Validator\Validator;
use phpformbuilder\database\DB;
session_start();
include_once '../conf/conf.php';
include_once ADMIN_DIR . 'secure/class/secure/Secure.php';
include_once CLASS_DIR . 'phpformbuilder/Form.php';
// $item = lowercase compact table name
$item = $match['params']['item'];
$params = array();
if ($match['name'] === 'data-forms-edit-delete') {
$pk_fieldname = $match['params']['pk_fieldname'];
$pk_value = $match['params']['pk_value'];
$params[$pk_fieldname] = $pk_value;
} elseif ($match['name'] === 'data-forms-edit-delete-2-primary-keys') {
$pk_fieldname_1 = $match['params']['pk_fieldname_1'];
$pk_fieldname_2 = $match['params']['pk_fieldname_2'];
$pk_value_1 = $match['params']['pk_value_1'];
$pk_value_2 = $match['params']['pk_value_2'];
$params[$pk_fieldname_1] = $pk_value_1;
$params[$pk_fieldname_2] = $pk_value_2;
}
// create|edit|delete
$action = $match['params']['action'];
$element = new Elements($item);
$table = $element->table;
$item_class = $element->item_class;
// lock page
if ($action == 'edit' && Secure::canUpdate($table) !== true && Secure::canUpdateRestricted($table) !== true) {
Secure::logout();
} elseif (($action == 'create' || $action == 'delete') && (Secure::canCreate($table) !== true && Secure::canCreateRestricted($table) !== true)) {
Secure::logout();
}
// info label
$info_label = '';
$info_label_class = '';
if ($action == 'create') {
$info_label = ADD_NEW;
$info_label_class = 'primary';
} elseif ($action == 'edit') {
$info_label = EDIT;
$info_label_class = 'warning';
} elseif ($action == 'delete') {
$info_label = DELETE_ACTION;
$info_label_class = 'danger';
}
$desc = $info_label . ' ' . $table;
// 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_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-forms-js.html');
if (!file_exists('inc/forms/' . $item . '-' . $action . '.php')) {
exit('inc/forms/' . $item . '-' . $action . '.php : ' . ERROR_FILE_NOT_FOUND);
}
include_once 'inc/forms/' . $item . '-' . $action . '.php';
$form->useLoadJs('core');
$form->setMode('development');
$msg = '';
if (isset($_SESSION['msg'])) {
// catch registered message & reset.
$msg = $_SESSION['msg'];
unset($_SESSION['msg']);
}
$back_url = ADMIN_URL . $item;
if (isset($_SESSION['active_list_url'])) {
$back_url = $_SESSION['active_list_url'];
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title><?php echo SITENAME . ' ' . ADMIN . ' - ' . $desc; ?></title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex">
<meta name="description" content="<?php echo SITENAME; ?> - <?php echo $desc; ?>.">
<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="admin-form 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));
?>
<div class="px-4">
<div id="debug-content">
<?php
if (DEBUG_DB_QUERIES) {
echo $debug_content;
}
?>
</div>
<!-- shows all the user messages -->
<div id="msg" class="mx-4"><?php echo $msg; ?></div>
<div id="toolbar" class="d-flex align-items-center justify-content-between text-bg-light px-3 py-2">
<p class="text-semibold m-0"><a href="<?php echo $back_url; ?>"><i class="<?php echo ICON_BACK; ?> prepend"></i></a><?php echo $element->item_label; ?></p>
<span class="badge text-bg-<?php echo $info_label_class; ?>"><?php echo $info_label; ?></span>
</div>
<?php $form->render(); ?>
</div>
</div> <!-- end content-wrapper -->
</div> <!-- end container -->
<?php
echo $template_footer->render(array('object' => ''));
if (ENABLE_STYLE_SWITCHING) {
echo $template_style_switcher->render();
}
include_once 'inc/js-includes.php';
$form->printJsCode();
echo $template_js->render(array('object' => ''));
// load form javascript if exists
if (file_exists('inc/forms/' . $item . '.js')) {
?>
<script type="text/javascript" src="<?php echo ADMIN_URL . 'inc/forms/' . $item . '.js'; ?>"></script>
<?php
}
?>
</body>
</html>