/home/techb158/workloadmatch.com/Admin
NameSizeModeActions
dashboard.php105150644editdlrm
logs.php100170644editdlrm
main-header-inc.php11950644editdlrm
main-header.php75270644editdlrm
managers.php215240644editdlrm
masters.php217050644editdlrm
pages.php158220644editdlrm
pages_ajax.php6300644editdlrm
reports.php91930644editdlrm
roles.php158330644editdlrm
roles_ajax.php10070644editdlrm
settings.php45750644editdlrm
teachers.php278500644editdlrm
teacher_absence.php3050644editdlrm
Edit: /home/techb158/workloadmatch.com/Admin/pages.php (15822B)
prepare("SELECT page_id FROM pages_control WHERE page_key = ? LIMIT 1"); $chk->bind_param('s', $key); $chk->execute(); $chk->store_result(); if ($chk->num_rows > 0) { set_flash_msg("Page key '$key' already exists.", 'danger'); $chk->close(); header('Location: pages.php'); exit(); } $chk->close(); $stmt = $mysqli->prepare("INSERT INTO pages_control (page_name, page_key, module, status) VALUES (?, ?, ?, 1)"); $stmt->bind_param('sss', $name, $key, $module); if ($stmt->execute()) { set_flash_msg("Page '$name' created successfully.", 'success'); log_activity($mysqli, 'create', 'page', $stmt->insert_id, $name); } else { set_flash_msg('Error creating page: ' . $stmt->error, 'danger'); } $stmt->close(); header('Location: pages.php'); exit(); } if (isset($_POST['edit_page'])) { $id = (int)$_POST['page_id']; $name = trim($_POST['page_name']); $key = trim($_POST['page_key']); $module = $_POST['module']; $chk = $mysqli->prepare("SELECT page_id FROM pages_control WHERE page_key = ? AND page_id != ? LIMIT 1"); $chk->bind_param('si', $key, $id); $chk->execute(); $chk->store_result(); if ($chk->num_rows > 0) { set_flash_msg("Page key '$key' already in use by another page.", 'danger'); $chk->close(); header('Location: pages.php'); exit(); } $chk->close(); $stmt = $mysqli->prepare("UPDATE pages_control SET page_name=?, page_key=?, module=? WHERE page_id=?"); $stmt->bind_param('sssi', $name, $key, $module, $id); if ($stmt->execute()) { set_flash_msg("Page '$name' updated.", 'success'); log_activity($mysqli, 'edit', 'page', $id, $name); } else { set_flash_msg('Error updating page.', 'danger'); } $stmt->close(); header('Location: pages.php'); exit(); } if (isset($_GET['toggle']) && isset($_GET['pid'])) { $pid = (int)$_GET['pid']; $stmt = $mysqli->prepare("SELECT page_name, status FROM pages_control WHERE page_id=?"); $stmt->bind_param('i', $pid); $stmt->execute(); $stmt->bind_result($pname, $pstatus); $stmt->fetch(); $stmt->close(); if ($pname !== null) { $newStatus = $pstatus == 1 ? 0 : 1; $upd = $mysqli->prepare("UPDATE pages_control SET status=? WHERE page_id=?"); $upd->bind_param('ii', $newStatus, $pid); $upd->execute(); $upd->close(); $action = $newStatus == 1 ? 'enable' : 'disable'; set_flash_msg("Page '$pname' " . ($newStatus == 1 ? 'enabled' : 'disabled') . '.', 'success'); log_activity($mysqli, $action, 'page', $pid, $pname); } header('Location: pages.php'); exit(); } if (isset($_GET['delete']) && isset($_GET['pid'])) { $pid = (int)$_GET['pid']; $stmt = $mysqli->prepare("SELECT page_name FROM pages_control WHERE page_id=?"); $stmt->bind_param('i', $pid); $stmt->execute(); $stmt->bind_result($pname); $stmt->fetch(); $stmt->close(); if ($pname !== null) { $mysqli->query("DELETE FROM page_role_assignments WHERE page_id = $pid"); $del = $mysqli->prepare("DELETE FROM pages_control WHERE page_id=?"); $del->bind_param('i', $pid); if ($del->execute()) { set_flash_msg("Page '$pname' deleted.", 'success'); log_activity($mysqli, 'delete', 'page', $pid, $pname); } $del->close(); } header('Location: pages.php'); exit(); } if (isset($_POST['assign_roles'])) { $pageId = (int)$_POST['page_id']; $roleIds = $_POST['role_ids'] ?? []; $mysqli->query("DELETE FROM page_role_assignments WHERE page_id = $pageId"); $ins = $mysqli->prepare("INSERT INTO page_role_assignments (page_id, role_id, can_access) VALUES (?, ?, 1)"); foreach ($roleIds as $rid) { $rid = (int)$rid; $ins->bind_param('ii', $pageId, $rid); $ins->execute(); } $ins->close(); set_flash_msg('Role assignments updated.', 'success'); log_activity($mysqli, 'assign_roles', 'page', $pageId, "Page #$pageId"); header('Location: pages.php'); exit(); } $totalPages = $mysqli->query("SELECT COUNT(*) FROM pages_control")->fetch_row()[0]; $enabledPages = $mysqli->query("SELECT COUNT(*) FROM pages_control WHERE status = 1")->fetch_row()[0]; $disabledPages = $mysqli->query("SELECT COUNT(*) FROM pages_control WHERE status = 0")->fetch_row()[0]; ?> Admin | Pages Control

Pages Control Manage page access and visibility

Total Pages

Enabled Pages

Disabled Pages

All Pages

query("SELECT p.page_id, p.page_name, p.page_key, p.module, p.status, GROUP_CONCAT(DISTINCT r.role_name SEPARATOR ', ') AS role_names FROM pages_control p LEFT JOIN page_role_assignments pra ON p.page_id = pra.page_id LEFT JOIN roles r ON pra.role_id = r.role_id GROUP BY p.page_id ORDER BY p.page_name"); while ($p = $pages->fetch_assoc()) { $pid = $p['page_id']; $pname = htmlspecialchars($p['page_name']); $pkey = htmlspecialchars($p['page_key']); $mod = htmlspecialchars($p['module'] ?? 'all'); $status = $p['status'] == 1 ? 'Enabled' : 'Disabled'; $roles = $p['role_names'] ? htmlspecialchars($p['role_names']) : 'None'; $toggleLabel = $p['status'] == 1 ? 'Disable' : 'Enable'; $toggleClass = $p['status'] == 1 ? 'btn-warning' : 'btn-success'; $toggleIcon = $p['status'] == 1 ? 'fa-ban' : 'fa-check'; echo ""; } ?>
IDPage NamePage KeyModuleStatusAssigned RolesActions
$pid $pname $pkey $mod $status $roles