Testpanel klasörüne güncel dosyalar eklendi
This commit is contained in:
211
testpanel/includes/functions.php
Normal file
211
testpanel/includes/functions.php
Normal file
@@ -0,0 +1,211 @@
|
||||
<?php
|
||||
$dbPath = __DIR__ . '/../ibo_panel.db';
|
||||
$db = new SQLiteWrapper($dbPath);
|
||||
|
||||
function sanitize($data) {
|
||||
$data = trim($data);
|
||||
$data = htmlspecialchars($data, ENT_QUOTES );
|
||||
$data = SQLite3::escapeString($data);
|
||||
return $data;
|
||||
}
|
||||
|
||||
function formatMacAddress($mac, $doubleDecode = false, $removeSubstr = null) {
|
||||
if ($doubleDecode) {
|
||||
$mac = base64_decode(base64_decode($mac));
|
||||
} else {
|
||||
$mac = base64_decode($mac);
|
||||
}
|
||||
|
||||
if ($removeSubstr) {
|
||||
$mac = str_replace($removeSubstr, "", $mac);
|
||||
}
|
||||
|
||||
$mac = substr($mac, 0, 12);
|
||||
return strtoupper(preg_replace('/..(?!$)/', '$0:', $mac));
|
||||
}
|
||||
|
||||
const ALLOWED_CHARACTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
|
||||
|
||||
function getDecodedString($str) {
|
||||
$encryptKeyPosition = strpos(ALLOWED_CHARACTERS,substr($str, -2, 1));
|
||||
$encryptKeyPosition2 = strpos(ALLOWED_CHARACTERS,substr($str, -1));
|
||||
$substring = substr($str, 0, -2);
|
||||
return trim(utf8_decode(base64_decode(substr($substring, 0, $encryptKeyPosition) . substr($substring, $encryptKeyPosition + $encryptKeyPosition2))));
|
||||
}
|
||||
|
||||
function getEncodedString($str) {
|
||||
$encryptKeyPosition = strpos(ALLOWED_CHARACTERS,substr($str, -2, 1));
|
||||
$encryptKeyPosition2 = strpos(ALLOWED_CHARACTERS,substr($str, -1));
|
||||
$encodedString = base64_encode(utf8_encode($str));
|
||||
$substring = substr($encodedString, 0, $encryptKeyPosition) . substr($encodedString, $encryptKeyPosition + $encryptKeyPosition2);
|
||||
return $substring . substr(ALLOWED_CHARACTERS, $encryptKeyPosition, 1) . substr(ALLOWED_CHARACTERS, $encryptKeyPosition2, 1);
|
||||
}
|
||||
|
||||
class Encryption {
|
||||
private static $keySets = [
|
||||
"IBO_38" => ["FIJo0GopkIRAPjbR", "RbjPARIkpoG0oJIF"],
|
||||
];
|
||||
|
||||
public static function encrypt($i, $key) {
|
||||
$encrypted = openssl_encrypt($i, 'AES-128-ECB', ($key), 0);
|
||||
$length = strlen($encrypted);
|
||||
return array($encrypted, $length);
|
||||
}
|
||||
|
||||
public static function run($i, $name) {
|
||||
$keys = self::$keySets[$name];
|
||||
$key1 = $keys[0];
|
||||
$key2 = $keys[1];
|
||||
$substring = rand(10, strlen($i) - 20);
|
||||
$ep1 = self::encrypt(substr($i, 0, $substring), $key1);
|
||||
$ep2 = self::encrypt(substr($i, $substring), $key2);
|
||||
$encoded = base64_encode($ep1[0] . $ep2[0] . '!' . $ep1[1]);
|
||||
return '{"data":"' . $encoded . '"}';
|
||||
}
|
||||
}
|
||||
|
||||
class SQLiteWrapper {
|
||||
private $db;
|
||||
|
||||
public function __construct($dbLoc) {
|
||||
|
||||
try {
|
||||
$this->db = new SQLite3($dbLoc);
|
||||
} catch (Exception $e) {
|
||||
$this->db = new SQLite3('/../ibo_panel.db');
|
||||
}
|
||||
if (!$this->db) {
|
||||
die("Error: Unable to open database.");
|
||||
}
|
||||
}
|
||||
|
||||
public function select($tableName, $columns = "*", $where = "", $orderBy = "", $placeholders = array()) {
|
||||
$query = "SELECT $columns FROM $tableName";
|
||||
if (!empty($where)) {
|
||||
$query .= " WHERE $where";
|
||||
}
|
||||
if (!empty($orderBy)) {
|
||||
$query .= " ORDER BY $orderBy";
|
||||
}
|
||||
|
||||
$stmt = $this->db->prepare($query);
|
||||
|
||||
foreach ($placeholders as $key => $value) {
|
||||
$stmt->bindValue($key, $value);
|
||||
}
|
||||
|
||||
$result = $stmt->execute();
|
||||
|
||||
$data = array();
|
||||
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
|
||||
$data[] = $row;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function insert($tableName, $data) {
|
||||
$columns = implode(', ', array_keys($data));
|
||||
$placeholders = ':' . implode(', :', array_keys($data));
|
||||
$query = "INSERT INTO $tableName ($columns) VALUES ($placeholders)";
|
||||
|
||||
$stmt = $this->db->prepare($query);
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
$stmt->bindValue(':' . $key, $value);
|
||||
}
|
||||
|
||||
return $stmt->execute();
|
||||
}
|
||||
|
||||
public function update($tableName, $data, $where = "", $placeholders = array()) {
|
||||
$setValues = [];
|
||||
foreach ($data as $column => $value) {
|
||||
$setValues[] = "$column = :$column";
|
||||
}
|
||||
$setClause = implode(', ', $setValues);
|
||||
$query = "UPDATE $tableName SET $setClause";
|
||||
if (!empty($where)) {
|
||||
$query .= " WHERE $where";
|
||||
}
|
||||
|
||||
$stmt = $this->db->prepare($query);
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
$stmt->bindValue(':' . $key, $value);
|
||||
}
|
||||
|
||||
foreach ($placeholders as $key => $value) {
|
||||
$stmt->bindValue($key, $value);
|
||||
}
|
||||
|
||||
return $stmt->execute();
|
||||
}
|
||||
|
||||
|
||||
public function delete($tableName, $where = "", $placeholders = array()) {
|
||||
$query = "DELETE FROM $tableName";
|
||||
if (!empty($where)) {
|
||||
$query .= " WHERE $where";
|
||||
}
|
||||
|
||||
$stmt = $this->db->prepare($query);
|
||||
|
||||
foreach ($placeholders as $key => $value) {
|
||||
$stmt->bindValue($key, $value);
|
||||
}
|
||||
|
||||
return $stmt->execute();
|
||||
}
|
||||
|
||||
|
||||
public function insertIfEmpty($tableName, $data) {
|
||||
$isEmpty = $this->isEmptyTable($tableName);
|
||||
|
||||
if ($isEmpty) {
|
||||
$columns = implode(', ', array_keys($data));
|
||||
$values = "'" . implode("', '", $data) . "'";
|
||||
$query = "INSERT INTO $tableName ($columns) VALUES ($values)";
|
||||
return $this->db->exec($query);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function insertDefaultTheme($defaultThemeId = '1') {
|
||||
$tableName = 'themes';
|
||||
$data = ['id' => 1, 'theme_id' => $defaultThemeId];
|
||||
|
||||
if ($this->isEmptyTable($tableName)) {
|
||||
$this->insert($tableName, $data);
|
||||
}
|
||||
}
|
||||
|
||||
private function isEmptyTable($tableName) {
|
||||
$result = $this->db->query("SELECT COUNT(*) as count FROM $tableName");
|
||||
$row = $result->fetchArray(SQLITE3_ASSOC);
|
||||
return ($row['count'] == 0);
|
||||
}
|
||||
public function customQuery($query, $placeholders = array()) {
|
||||
$stmt = $this->db->prepare($query);
|
||||
|
||||
foreach ($placeholders as $key => $value) {
|
||||
$stmt->bindValue($key, $value);
|
||||
}
|
||||
|
||||
$result = $stmt->execute();
|
||||
|
||||
$data = array();
|
||||
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
|
||||
$data[] = $row;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function getLastInsertId() {
|
||||
return $this->db->lastInsertRowID();
|
||||
}
|
||||
|
||||
public function close() {
|
||||
$this->db->close();
|
||||
}
|
||||
}
|
||||
110
testpanel/includes/header.php
Normal file
110
testpanel/includes/header.php
Normal file
@@ -0,0 +1,110 @@
|
||||
<?php
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
$static_url = dirname($_SERVER['SCRIPT_NAME']) . '/assets/';
|
||||
|
||||
$username = isset($_SESSION['username']) ? $_SESSION['username'] : "Guest";
|
||||
$isAdmin = isset($_SESSION['admin']) && $_SESSION['admin'] ? "Admin" : (isset($_SESSION['dealer']) && $_SESSION['dealer'] ? "Dealer" : "User");
|
||||
$balance = isset($_SESSION['balance']) ? $_SESSION['balance'] : 0;
|
||||
?>
|
||||
<div id="kt_app_header" class="app-header" data-kt-sticky="true" data-kt-sticky-activate="{default: true, lg: true}"
|
||||
data-kt-sticky-name="app-header-sticky" data-kt-sticky-offset="{default: '200px', lg: '300px'}">
|
||||
<div class="app-container container-fluid d-flex flex-stack" id="kt_app_header_container">
|
||||
<div class="d-flex d-lg-none align-items-center me-lg-20 gap-1 gap-lg-2">
|
||||
<div class="btn btn-icon btn-color-gray-500 btn-active-color-primary w-35px h-35px d-flex d-lg-none"
|
||||
id="kt_app_sidebar_toggle">
|
||||
<i class="ki-outline ki-abstract-14 lh-0 fs-1"></i>
|
||||
</div>
|
||||
<a href="dns.php">
|
||||
<img alt="Logo" src="<?php echo $static_url; ?>media/logos/logo.png" class="h-30px" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex flex-stack flex-lg-row-fluid" id="kt_app_header_wrapper">
|
||||
<div class="app-page-title d-flex flex-column gap-1 me-3 mb-5 mb-lg-0" data-kt-swapper="true"
|
||||
data-kt-swapper-mode="{default: 'prepend', lg: 'prepend'}"
|
||||
data-kt-swapper-parent="{default: '#kt_app_content_container', lg: '#kt_app_header_wrapper'}">
|
||||
</div>
|
||||
<div class="app-navbar flex-shrink-0 gap-2 gap-lg-4">
|
||||
<div class="app-navbar-item ms-lg-5" id="kt_header_user_menu_toggle">
|
||||
<div class="d-flex align-items-center" data-kt-menu-trigger="{default: 'click', lg: 'hover'}"
|
||||
data-kt-menu-attach="parent" data-kt-menu-placement="bottom-end">
|
||||
<div class="text-end d-none d-sm-flex flex-column justify-content-center me-3">
|
||||
<span class="text-gray-500 fs-8 fw-bold">Hello</span>
|
||||
<a href="pages/user-profile/overview.html"
|
||||
class="text-gray-800 text-hover-primary fs-7 fw-bold d-block"><?php echo htmlspecialchars($username); ?></a>
|
||||
</div>
|
||||
<div class="cursor-pointer symbol symbol symbol-circle symbol-35px symbol-md-40px">
|
||||
<img class="" src="<?php echo $static_url; ?>media/logos/logo.png" alt="user" />
|
||||
<div
|
||||
class="position-absolute translate-middle bottom-0 mb-1 start-100 ms-n1 bg-success rounded-circle h-8px w-8px">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg menu-state-color fw-semibold py-4 fs-6 w-275px"
|
||||
data-kt-menu="true">
|
||||
<div class="menu-item px-3">
|
||||
<div class="menu-content d-flex align-items-center px-3">
|
||||
<div class="symbol symbol-50px me-5">
|
||||
<img alt="Logo" src="<?php echo $static_url; ?>media/logos/logo.png" />
|
||||
</div>
|
||||
<div class="d-flex flex-column">
|
||||
<div class="fw-bold d-flex align-items-center fs-5"><?php echo htmlspecialchars($username); ?>
|
||||
<span class="badge badge-light-success fw-bold fs-8 px-2 py-1 ms-2"><?php echo htmlspecialchars($isAdmin); ?></span>
|
||||
</div>
|
||||
<span class="fw-semibold text-muted text-hover-primary fs-7">
|
||||
<?php echo $balance > 0 ? "Credit: " . htmlspecialchars($balance) : ""; ?>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="separator my-2"></div>
|
||||
<div class="menu-item px-5" data-kt-menu-trigger="{default: 'click', lg: 'hover'}"
|
||||
data-kt-menu-placement="left-start" data-kt-menu-offset="-15px, 0">
|
||||
<a href="#" class="menu-link px-5">
|
||||
<span class="menu-title position-relative">Mod
|
||||
<span class="ms-5 position-absolute translate-middle-y top-50 end-0">
|
||||
<i class="ki-outline ki-night-day theme-light-show fs-2"></i>
|
||||
<i class="ki-outline ki-moon theme-dark-show fs-2"></i>
|
||||
</span></span>
|
||||
</a>
|
||||
<div class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-title-gray-700 menu-icon-gray-500 menu-active-bg menu-state-color fw-semibold py-4 fs-base w-150px"
|
||||
data-kt-menu="true" data-kt-element="theme-mode-menu">
|
||||
<div class="menu-item px-3 my-0">
|
||||
<a href="#" class="menu-link px-3 py-2" data-kt-element="mode"
|
||||
data-kt-value="light">
|
||||
<span class="menu-icon" data-kt-element="icon">
|
||||
<i class="ki-outline ki-night-day fs-2"></i>
|
||||
</span>
|
||||
<span class="menu-title">Light</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="menu-item px-3 my-0">
|
||||
<a href="#" class="menu-link px-3 py-2" data-kt-element="mode"
|
||||
data-kt-value="dark">
|
||||
<span class="menu-icon" data-kt-element="icon">
|
||||
<i class="ki-outline ki-moon fs-2"></i>
|
||||
</span>
|
||||
<span class="menu-title">Dark</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="menu-item px-3 my-0">
|
||||
<a href="#" class="menu-link px-3 py-2" data-kt-element="mode"
|
||||
data-kt-value="system">
|
||||
<span class="menu-icon" data-kt-element="icon">
|
||||
<i class="ki-outline ki-screen fs-2"></i>
|
||||
</span>
|
||||
<span class="menu-title">System</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-item px-5">
|
||||
<a href="logout.php" class="menu-link px-5">Logout</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
69
testpanel/includes/layout.php
Normal file
69
testpanel/includes/layout.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
$static_url = dirname($_SERVER['SCRIPT_NAME']) . '/assets/';
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title><?php echo isset($page_title) ? $page_title : "UHD PLAYER PANEL"; ?></title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="description" content="İş Güvenlik Kontrol Sistemi" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="shortcut icon" href="<?php echo $static_url; ?>media/logos/logo.png" />
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:300,400,500,600,700" />
|
||||
<link href="<?php echo $static_url; ?>plugins/custom/fullcalendar/fullcalendar.bundle.css" rel="stylesheet" />
|
||||
<link href="<?php echo $static_url; ?>plugins/custom/datatables/datatables.bundle.css" rel="stylesheet" />
|
||||
<link href="<?php echo $static_url; ?>plugins/global/plugins.bundle.css" rel="stylesheet" />
|
||||
<link href="<?php echo $static_url; ?>css/style.bundle.css" rel="stylesheet" />
|
||||
</head>
|
||||
|
||||
<body id="kt_app_body" data-kt-app-sidebar-enabled="true" data-kt-app-sidebar-fixed="true"
|
||||
data-kt-app-sidebar-push-header="true" data-kt-app-sidebar-push-toolbar="true"
|
||||
data-kt-app-sidebar-push-footer="true" class="app-default">
|
||||
<script>var defaultThemeMode = "light"; var themeMode; if (document.documentElement) { if (document.documentElement.hasAttribute("data-bs-theme-mode")) { themeMode = document.documentElement.getAttribute("data-bs-theme-mode"); } else { if (localStorage.getItem("data-bs-theme") !== null) { themeMode = localStorage.getItem("data-bs-theme"); } else { themeMode = defaultThemeMode; } } if (themeMode === "system") { themeMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; } document.documentElement.setAttribute("data-bs-theme", themeMode); }</script>
|
||||
<div class="d-flex flex-column flex-root app-root" id="kt_app_root">
|
||||
<div class="app-page flex-column flex-column-fluid" id="kt_app_page">
|
||||
<?php include 'includes/header.php'; ?>
|
||||
<div class="app-wrapper flex-column flex-row-fluid" id="kt_app_wrapper">
|
||||
<?php include 'includes/sidebar.php'; ?>
|
||||
<div class="app-main flex-column flex-row-fluid" id="kt_app_main">
|
||||
<div class="d-flex flex-column flex-column-fluid">
|
||||
<div id="kt_app_content" class="app-content flex-column-fluid">
|
||||
<div id="kt_app_content_container" class="app-container container-fluid">
|
||||
<?php
|
||||
echo isset($page_content) ? $page_content : "<h1>İçerik bulunamadı</h1>";
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="kt_scrolltop" class="scrolltop" data-kt-scrolltop="true">
|
||||
<span class="svg-icon">
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect opacity="0.5" x="13" y="6" width="13" height="2" rx="1" transform="rotate(90 13 6)"
|
||||
fill="currentColor"></rect>
|
||||
<path
|
||||
d="M12.5657 8.56569L16.75 12.75C17.1642 13.1642 17.8358 13.1642 18.25 12.75C18.6642 12.3358 18.6642 11.6642 18.25 11.25L12.7071 5.70711C12.3166 5.31658 11.6834 5.31658 11.2929 5.70711L5.75 11.25C5.33579 11.6642 5.33579 12.3358 5.75 12.75C6.16421 13.1642 6.83579 13.1642 7.25 12.75L11.4343 8.56569C11.7467 8.25327 12.2533 8.25327 12.5657 8.56569Z"
|
||||
fill="currentColor"></path>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<script src="<?php echo $static_url; ?>plugins/global/plugins.bundle.js"></script>
|
||||
<script src="<?php echo $static_url; ?>js/scripts.bundle.js"></script>
|
||||
<script src="<?php echo $static_url; ?>plugins/custom/datatables/datatables.bundle.js"></script>
|
||||
<script src="<?php echo $static_url; ?>js/widgets.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
156
testpanel/includes/sidebar.php
Normal file
156
testpanel/includes/sidebar.php
Normal file
@@ -0,0 +1,156 @@
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
ini_set('display_startup_errors', 1);
|
||||
|
||||
$static_url = dirname($_SERVER['SCRIPT_NAME']) . '/assets/';
|
||||
|
||||
$current_page = basename($_SERVER['PHP_SELF']);
|
||||
|
||||
$accordion_active = ($current_page == 'themes.php') ? 'show' : '';
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<div id="kt_app_sidebar" class="app-sidebar" data-kt-drawer="true" data-kt-drawer-name="app-sidebar"
|
||||
|
||||
data-kt-drawer-activate="{default: true, lg: false}" data-kt-drawer-overlay="true" data-kt-drawer-width="250px"
|
||||
|
||||
data-kt-drawer-direction="start" data-kt-drawer-toggle="#kt_app_sidebar_toggle">
|
||||
|
||||
<div class="d-none d-lg-flex flex-center px-6 pt-10 pb-10" id="kt_app_sidebar_header">
|
||||
|
||||
<img alt="Logo" src="<?php echo $static_url; ?>media/logos/logo.png" class=" h-50px" />
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="flex-grow-1">
|
||||
|
||||
<div id="kt_app_sidebar_menu_wrapper" class="hover-scroll-y" data-kt-scroll="true" data-kt-scroll-height="auto"
|
||||
|
||||
data-kt-scroll-dependencies="#kt_app_sidebar_header, #kt_app_sidebar_footer" data-kt-scroll-offset="20px">
|
||||
|
||||
<div class="app-sidebar-navs-default px-5 mb-10">
|
||||
|
||||
<div id="#kt_app_sidebar_menu" data-kt-menu="true" data-kt-menu-expand="false"
|
||||
|
||||
class="menu menu-column menu-rounded menu-sub-indention">
|
||||
|
||||
<div class="menu-item pb-0 pt-0">
|
||||
|
||||
<div class="menu-content">
|
||||
|
||||
<span class="menu-heading">Dashboard</span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="separator mb-4 mx-4"></div>
|
||||
|
||||
|
||||
|
||||
<div class="menu-item">
|
||||
|
||||
<a class="menu-link <?php echo ($current_page == 'mac.php') ? 'active' : ''; ?>" href="mac.php">
|
||||
|
||||
<span class="menu-title">MAC Users</span>
|
||||
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="menu-item">
|
||||
|
||||
<a class="menu-link <?php echo ($current_page == 'mac_message.php') ? 'active' : ''; ?>" href="mac_message.php">
|
||||
|
||||
<span class="menu-title">MAC Message</span>
|
||||
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div data-kt-menu-trigger="click" class="menu-item <?php echo $accordion_active ? 'here ' . $accordion_active : ''; ?> menu-accordion">
|
||||
|
||||
<span class="menu-link">
|
||||
|
||||
<span class="menu-title">Customization</span>
|
||||
|
||||
<span class="menu-arrow"></span>
|
||||
|
||||
</span>
|
||||
|
||||
<div class="menu-sub menu-sub-accordion">
|
||||
|
||||
<div class="menu-item">
|
||||
|
||||
<a class="menu-link <?php echo ($current_page == 'themes.php') ? 'active' : ''; ?>" href="themes.php">
|
||||
|
||||
<span class="menu-bullet">
|
||||
|
||||
<span class="bullet bullet-dot"></span>
|
||||
|
||||
</span>
|
||||
|
||||
<span class="menu-title">Themes</span>
|
||||
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="menu-item">
|
||||
|
||||
<a class="menu-link <?php echo ($current_page == 'qr_url.php') ? 'active' : ''; ?>" href="qr_url.php">
|
||||
|
||||
<span class="menu-title">QR Code URL</span>
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-stack px-10 px-lg-15 pb-8" id="kt_app_sidebar_footer">
|
||||
|
||||
<span class="d-flex flex-center gap-1 text-white theme-light-show fs-5 px-0">
|
||||
|
||||
<i class="ki-outline ki-night-day text-gray-500 fs-2"></i>Dark Mode</span>
|
||||
|
||||
<span class="d-flex flex-center gap-1 text-white theme-dark-show fs-5 px-0">
|
||||
|
||||
<i class="ki-outline ki-moon text-gray-500 fs-2"></i>Light Mode</span>
|
||||
|
||||
<div data-bs-theme="dark">
|
||||
|
||||
<div class="form-check form-switch form-check-custom form-check-solid">
|
||||
|
||||
<input class="form-check-input h-25px w-45px" type="checkbox" value="1"
|
||||
|
||||
id="kt_sidebar_theme_mode_toggle" />
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user