⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.124
Server IP:
50.28.103.30
Server:
Linux host.jcukjv-lwsites.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
Server Software:
nginx/1.28.0
PHP Version:
8.3.12
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
www
/
wwwroot
/
china-democracyparty.com
/
3
/
admin
/
View File Name :
sectiona.php
<!DOCTYPE html> <html lang="zxx"> <head> <meta charset="utf-8" /> <meta http-equiv="x-ua-compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="description" content="Fully Responsive Admin & Dashboard Template" /> <meta name="keyword" content="" /> <meta name="author" content="WRAPCODERS" /> <!--! The above 6 meta tags *must* come first in the head; any other head content must come *after* these tags !--> <!--! BEGIN: Google Fonts !--><link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Public+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet" /> <!--! END: Google Fonts !--> <!--! BEGIN: Favicon !--> <link rel="shortcut icon" type="image/x-icon" href="assets/images/favicon.ico" /> <!--! END: Favicon !--> <!--! BEGIN: Apps Title !--> <title>Settings</title> <!--! END: Apps Title !--> <!--! BEGIN: Page Vendors -!--> <!--! END: Page Vendors -!--> <!--! BEGIN: MatisMenu CSS -!--> <link rel="stylesheet" href="assets/vendors/metismenu/metisMenu.min.css"> <!--! END: MatisMenu CSS -!--> <!--! BEGIN: Flaticon CSS -!--> <link rel="stylesheet" href="assets/vendors/@flaticon/flaticon-uicons/css/all/all.css"> <!--! END: Flaticon CSS -!--> <!--! BEGIN: Theme CSS -!--> <link rel="stylesheet" type="text/css" href="assets/css/theme.min.css"> <!--! END: Theme CSS -!--> <!--! Start:: Color Modes JS -!--> <script src="assets/js/color-modes.min.js"></script> <!--! End:: Color Modes JS -!--> <!--! HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries !--> <!--! WARNING: Respond.js doesn"t work if you view the page via file: !--> <!--[if lt IE 9]> <script src="https:oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https:oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <!--! ================================================================ !--> <!--! Start:: Main Wrapper !--> <!--! ================================================================ !--> <div class="main-wrapper"> <!--! ================================================================ !--> <!--! Start:: Main Menu !--> <!--! ================================================================ !--> <?php include 'view/aside.php'; ?> <!--! ================================================================ !--> <!--! End:: Main Menu !--> <!--! ================================================================ !--> <!--! ================================================================ !--> <!--! Start:: Main Content !--> <!--! ================================================================ !--> <main id="edash-main"> <!--! ================================================================ !--> <!--! Start:: Header !--> <!--! ================================================================ !--> <header class="edash-header sticky-top d-flex align-items-end ht-80" id="edash-header-sticky" > <div class="edash-header-container container-xxl w-100 ht-70 px-4 bg-body-tertiary border rounded-3 d-flex align-items-center justify-content-between position-relative" id="edash-header-container" > <!--! Start:: edash-header-left !--> <div class="edash-header-left d-flex align-items-center gap-2"> <!--! Start:: edash-minimenu-toggle !--> <div class="edash-minimenu-toggle d-none d-xl-flex"> <div id="edash-menu-mini"> <a href="javascript:void(0);" class="edash-drop-item d-flex align-items-center justify-content-center rounded-pill ht-40" > <i class="fi fi-sr-menu-burger"></i> </a> </div> <div id="edash-menu-expand" style="display: none"> <a href="javascript:void(0);" class="edash-drop-item d-flex align-items-center justify-content-center rounded-pill ht-40" > <i class="fi fi-rr-arrow-right"></i> </a> </div> </div> <!--! End:: edash-minimenu-toggle !--> <!--! Start:: edash-menu-toggle !--> <div class="edash-menu-toggle d-xl-none"> <a href="javascript:void(0);" class="edash-drop-item d-flex align-items-center justify-content-center rounded-pill ht-40" id="edash-menu-show" > <i class="fi fi-sr-menu-burger"></i> </a> </div> <!--! End:: edash-menu-toggle !--> <!--! Start:: edash-search-wrapper !--> <div class="edash-search-wrapper"> <a href="javascript:void(0);" class="edash-drop-item d-flex align-items-center justify-content-center rounded-pill wd-40 ht-40 ms-1" id="edash-search-show" > <i class="fi fi-rr-search"></i> </a> <form action="#" class="edash-search position-absolute start-0 top-0 end-0 bottom-0 w-100 z-1090" > <div class="input-group ps-3 ps-md-4 pe-md-2 bg-body-tertiary rounded-3" style="height: calc(5rem - 0.75rem)" > <span class="input-group-text border-0"> <i class="fi fi-rr-search"></i> </span> <input type="text" class="form-control border-0 fw-medium text-muted" placeholder="Search...." /> <span class="input-group-text border-0" id="edash-search-hide"> <button type="button" class="btn-close"></button> </span> </div> </form> </div> <!--! End:: edash-search-wrapper !--> </div> <!--! End:: edash-header-left !--> <!--! Start:: edash-header-right !--> <div class="edash-header-right d-flex align-items-center gap-1 gap-sm-2"> <!--! Start:: edash-language !--> <div class="dropdown"> <a href="javascript:void(0);" class="edash-drop-item d-flex align-items-center justify-content-center rounded-pill wd-40 ht-40" data-bs-toggle="dropdown" data-bs-auto-close="outside" data-bs-offset="0, 19" > <img src="./../assets/images/flags/1x1/us.svg" class="img-fluid rounded-circle wd-20 ht-20" alt="" /> </a> <ul class="dropdown-menu dropdown-menu-end"> <li> <a href="javascript:void(0);" class="dropdown-item"> <img src="./../assets/images/flags/1x1/us.svg" alt="" class="img-fluid rounded-circle wd-20 ht-20" /> <span class="ms-3">English (US)</span> </a> </li> <li> <a href="javascript:void(0);" class="dropdown-item"> <img src="./../assets/images/flags/1x1/fr.svg" alt="" class="img-fluid rounded-circle wd-20 ht-20" /> <span class="ms-3">Français</span> </a> </li> <li> <a href="javascript:void(0);" class="dropdown-item"> <img src="./../assets/images/flags/1x1/ru.svg" alt="" class="img-fluid rounded-circle wd-20 ht-20" /> <span class="ms-3">Russian</span> </a> </li> <li> <a href="javascript:void(0);" class="dropdown-item"> <img src="./../assets/images/flags/1x1/de.svg" alt="" class="img-fluid rounded-circle wd-20 ht-20" /> <span class="ms-3">Deutsch</span> </a> </li> <li> <a href="javascript:void(0);" class="dropdown-item"> <img src="./../assets/images/flags/1x1/bd.svg" alt="" class="img-fluid rounded-circle wd-20 ht-20" /> <span class="ms-3">Bangeli</span> </a> </li> <li> <a href="javascript:void(0);" class="dropdown-item"> <img src="./../assets/images/flags/1x1/gb.svg" alt="" class="img-fluid rounded-circle wd-20 ht-20" /> <span class="ms-3">English (UK)</span> </a> </li> </ul> </div> <!--! End:: edash-language !--> <!--! Start:: theme-switcher !--> <div class="dropdown"> <svg xmlns="http://www.w3.org/2000/svg" class="d-none"> <symbol id="sun-fill" viewBox="0 0 24 24"> <path d="M12,17c-2.76,0-5-2.24-5-5s2.24-5,5-5,5,2.24,5,5-2.24,5-5,5Zm0-8c-1.65,0-3,1.35-3,3s1.35,3,3,3,3-1.35,3-3-1.35-3-3-3Zm1-5V1c0-.55-.45-1-1-1s-1,.45-1,1v3c0,.55,.45,1,1,1s1-.45,1-1Zm0,19v-3c0-.55-.45-1-1-1s-1,.45-1,1v3c0,.55,.45,1,1,1s1-.45,1-1ZM5,12c0-.55-.45-1-1-1H1c-.55,0-1,.45-1,1s.45,1,1,1h3c.55,0,1-.45,1-1Zm19,0c0-.55-.45-1-1-1h-3c-.55,0-1,.45-1,1s.45,1,1,1h3c.55,0,1-.45,1-1ZM6.71,6.71c.39-.39,.39-1.02,0-1.41l-2-2c-.39-.39-1.02-.39-1.41,0s-.39,1.02,0,1.41l2,2c.2,.2,.45,.29,.71,.29s.51-.1,.71-.29Zm14,14c.39-.39,.39-1.02,0-1.41l-2-2c-.39-.39-1.02-.39-1.41,0s-.39,1.02,0,1.41l2,2c.2,.2,.45,.29,.71,.29s.51-.1,.71-.29Zm-16,0l2-2c.39-.39,.39-1.02,0-1.41s-1.02-.39-1.41,0l-2,2c-.39,.39-.39,1.02,0,1.41,.2,.2,.45,.29,.71,.29s.51-.1,.71-.29ZM18.71,6.71l2-2c.39-.39,.39-1.02,0-1.41s-1.02-.39-1.41,0l-2,2c-.39,.39-.39,1.02,0,1.41,.2,.2,.45,.29,.71,.29s.51-.1,.71-.29Z" ></path> </symbol> <symbol id="moon-stars-fill" viewBox="0 0 24 24"> <path d="M15,24a12.021,12.021,0,0,1-8.914-3.966,11.9,11.9,0,0,1-3.02-9.309A12.122,12.122,0,0,1,13.085.152a13.061,13.061,0,0,1,5.031.205,2.5,2.5,0,0,1,1.108,4.226c-4.56,4.166-4.164,10.644.807,14.41a2.5,2.5,0,0,1-.7,4.32A13.894,13.894,0,0,1,15,24Zm.076-22a10.793,10.793,0,0,0-1.677.127,10.093,10.093,0,0,0-8.344,8.8A9.927,9.927,0,0,0,7.572,18.7,10.476,10.476,0,0,0,18.664,21.43a.5.5,0,0,0,.139-.857c-5.929-4.478-6.4-12.486-.948-17.449a.459.459,0,0,0,.128-.466.49.49,0,0,0-.356-.361A10.657,10.657,0,0,0,15.076,2Z" ></path> </symbol> <symbol id="circle-half" viewBox="0 0 24 24"> <path d="M12,0C5.38,0,0,5.38,0,12s5.38,12,12,12,12-5.38,12-12S18.62,0,12,0Zm0,22V2c5.51,0,10,4.49,10,10s-4.49,10-10,10Z" ></path> </symbol> </svg> <a href="javascript:void(0);" class="edash-drop-item d-flex align-items-center justify-content-center rounded-pill wd-40 ht-40" id="bd-theme" aria-expanded="false" data-bs-toggle="dropdown" aria-label="Toggle theme (dark)" data-bs-auto-close="outside" data-bs-offset="0, 19" > <svg class="theme-icon-active wd-20 ht-20" fill="currentColor"> <use href="#moon-stars-fill"></use> </svg> </a> <ul class="dropdown-menu dropdown-menu-end min-wd-200"> <li> <a href="javascript:void(0);" class="dropdown-item" data-bs-theme-value="light" > <svg class="theme-icon" fill="currentColor" width="16" height="16" > <use href="#sun-fill"></use> </svg> <span class="ms-3">Light</span> </a> </li> <li> <a href="javascript:void(0);" class="dropdown-item" data-bs-theme-value="dark" > <svg class="theme-icon" fill="currentColor" width="16" height="16" > <use href="#moon-stars-fill"></use> </svg> <span class="ms-3">Dark</span> </a> </li> <li> <a href="javascript:void(0);" class="dropdown-item" data-bs-theme-value="auto" > <svg class="theme-icon" fill="currentColor" width="16" height="16" > <use href="#circle-half"></use> </svg> <span class="ms-3">Auto</span> </a> </li> </ul> </div> <!--! End:: theme-switcher !--> <!--! Start:: edash-notifications !--> <div class="dropdown"> <a href="javascript:void(0);" class="edash-drop-item d-flex align-items-center justify-content-center rounded-pill wd-40 ht-40" data-bs-toggle="dropdown" data-bs-auto-close="outside" data-bs-offset="0, 19" > <i class="fi fi-rr-bell"></i> <div class="position-absolute top-10 start-50 translate-middle wd-6 ht-6 bg-danger rounded-circle" data-bs-toggle="tooltip" data-bs-trigger="hover" title="12+ Unread Notification" ></div> </a> <div class="dropdown-menu dropdown-menu-end dropdown-xl p-0 overflow-hidden" > <div class="bg-primary text-white px-4 py-4"> <h5 class="fw-semibold text-white mb-1"> <span>Notifications</span> <span class="badge bg-warning ms-1 rounded-pill">12+</span> </h5> <p class="fs-13 mb-0">You have 12+ unread notification</p> </div> <div class="list-group list-group-flush ht-300 position-relative init-perfect-scroll-bar" > <a href="javascript:void(0);" class="list-group-item d-flex position-relative" > <div class="avatar avatar-lg bg-danger-subtle rounded flex-shrink-0" > <i class="fi fi-rr-megaphone text-danger"></i> </div> <div class="media-body flex-grow-1 ms-3"> <p class="fw-normal mb-1"> Congratulate <span class="fw-semibold text-dark">Socrates Itumay</span> for work anniversaries </p> <span class="fs-12 fw-normal text-muted">Mar 15 12:32pm</span> </div> <div class="position-absolute top-40 translate-middle wd-5 ht-5 bg-primary rounded-circle" style="left: 0.75rem" data-bs-toggle="tooltip" data-bs-trigger="hover" title="Unread Notification" ></div> </a> <a href="javascript:void(0);" class="list-group-item d-flex position-relative" > <div class="avatar avatar-lg bg-warning-subtle rounded flex-shrink-0" > <i class="fi fi-rr-edit text-warning"></i> </div> <div class="media-body flex-grow-1 ms-3"> <p class="fw-normal mb-1"> <span class="fw-semibold text-dark">Althea Cabardo</span> just created a new blog post </p> <span class="fs-12 fw-normal text-muted">Mar 13 02:56am</span> </div> <div class="position-absolute top-40 translate-middle wd-5 ht-5 bg-primary rounded-circle" style="left: 0.75rem" data-bs-toggle="tooltip" data-bs-trigger="hover" title="Unread Notification" ></div> </a> <a href="javascript:void(0);" class="list-group-item d-flex"> <div class="avatar avatar-lg bg-info-subtle rounded flex-shrink-0" > <i class="fi fi-rr-comment-alt-dots text-info"></i> </div> <div class="media-body flex-grow-1 ms-3"> <p class="fw-normal mb-1"> <span class="fw-semibold text-dark">Adrian Monino</span> added new comment on your photo </p> <span class="fs-12 fw-normal text-muted">Mar 12 10:40pm</span> </div> </a> <a href="javascript:void(0);" class="list-group-item d-flex"> <div class="avatar avatar-lg bg-success-subtle rounded flex-shrink-0" > <i class="fi fi-rr-badge-check text-success"></i> </div> <div class="media-body flex-grow-1 ms-3"> <p class="fw-normal mb-1"> <span class="fw-semibold text-dark">Kenneth Hune</span> accepted your request </p> <span class="fs-12 fw-normal text-muted">Mar 13 02:56am</span> </div> </a> <a href="javascript:void(0);" class="list-group-item d-flex border-bottom-0" > <div class="avatar avatar-lg bg-warning-subtle rounded flex-shrink-0" > <i class="fi fi-rr-file-medical-alt text-warning"></i> </div> <div class="media-body flex-grow-1 ms-3"> <p class="fw-normal mb-1"> December monthly financial <strong>report</strong> is generated </p> <span class="fs-12 fw-normal text-muted">Mar 12 10:40pm</span> </div> </a> </div> <div class="px-4 py-3 border-top d-flex justify-content-between align-items-center" > <a href="javascript:void(0);">Make as Read</a> <a href="javascript:void(0);" class="icon-link icon-link-hover"> <span>View Alls</span> <i class="fi fi-rr-arrow-small-right bi"></i> </a> </div> </div> </div> <!--! End:: edash-notifications !--> <!--! Start:: edash-helpdesk !--> <div class="dropdown"> <a href="javascript:void(0);" class="edash-drop-item d-flex align-items-center justify-content-center rounded-pill wd-40 ht-40" data-bs-toggle="dropdown" data-bs-auto-close="outside" data-bs-offset="0, 19" > <i class="fi fi-rr-interrogation"></i> </a> <div class="dropdown-menu dropdown-menu-end dropdown-xl p-0 overflow-hidden" > <div class="bg-primary text-white text-center px-6 py-12"> <h4 class="fw-semibold text-white mb-2">Help Center</h4> <p class="fs-13"> This greeting is courteous and professional, setting a positive tone for your ticket. </p> <a href="javascript:void(0);" class="btn btn-sm btn-warning" >Get Support</a > </div> <div class="row g-2 p-3"> <div class="col-6"> <a href="javascript:void(0);" class="dropdown-item" >Introduction</a > <a href="javascript:void(0);" class="dropdown-item">Orders</a> <a href="javascript:void(0);" class="dropdown-item">Products</a> <a href="javascript:void(0);" class="dropdown-item">Customers</a> <a href="javascript:void(0);" class="dropdown-item">Suppliers</a> <a href="javascript:void(0);" class="dropdown-item" >Customization</a > </div> <div class="col-6"> <a href="javascript:void(0);" class="dropdown-item">Partners</a> <a href="javascript:void(0);" class="dropdown-item">Members</a> <a href="javascript:void(0);" class="dropdown-item">Components</a> <a href="javascript:void(0);" class="dropdown-item">Projects</a> <a href="javascript:void(0);" class="dropdown-item">Records</a> <a href="javascript:void(0);" class="dropdown-item">Support</a> </div> </div> </div> </div> <!--! End:: edash-helpdesk !--> <!--! Start:: edash-applications !--> <div class="dropdown"> <a href="javascript:void(0);" class="edash-drop-item d-flex align-items-center justify-content-center rounded-pill wd-40 ht-40" data-bs-toggle="dropdown" data-bs-auto-close="outside" data-bs-offset="0, 19" > <i class="fi fi-rr-apps-add"></i> </a> <div class="dropdown-menu dropdown-menu-end dropdown-lg"> <div class="row text-center align-items-center gx-0 gy-0"> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-3 rounded" > <img src="./../assets/images/brand/gmail.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Gmail </p> </a> </div> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-3 rounded" > <img src="./../assets/images/brand/dropbox.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Dropbox </p> </a> </div> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-3 rounded" > <img src="./../assets/images/brand/google-drive.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Gdrive </p> </a> </div> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-3 rounded" > <img src="./../assets/images/brand/figma.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Figma </p> </a> </div> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-3 rounded" > <img src="./../assets/images/brand/github.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Github </p> </a> </div> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-3 rounded" > <img src="./../assets/images/brand/gitlab.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Gitlab </p> </a> </div> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-3 rounded" > <img src="./../assets/images/brand/instagram.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Instagram </p> </a> </div> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-3 rounded" > <img src="./../assets/images/brand/pinterest.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Pinterest </p> </a> </div> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-3 rounded" > <img src="./../assets/images/brand/facebook.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Facebook </p> </a> </div> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-0" > <img src="./../assets/images/brand/shopify.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Shopify </p> </a> </div> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-0" > <img src="./../assets/images/brand/spotify.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Spotify </p> </a> </div> <div class="col-4 hstack"> <a href="javascript:void(0);" class="w-100 d-block px-2 py-3 text-center text-decoration-none mb-0" > <img src="./../assets/images/brand/whatsapp.png" alt="" class="img-fluid wd-20 ht-20" /> <p class="fs-12 fw-medium text-truncate mb-0 mt-1 pt-1"> Whatsapp </p> </a> </div> </div> </div> </div> <!--! End:: edash-applications !--> <!--! Start:: edash-profile !--> <div class="dropdown"> <a href="javascript:void(0);" class="edash-drop-item d-flex align-items-center justify-content-center rounded-pill wd-40 ht-40" data-bs-toggle="dropdown" data-bs-auto-close="outside" data-bs-offset="0, 19" > <div class="avatar avatar-md rounded-circle"> <img src="./../assets/images/avatar/1.png" alt="Avatar" class="img-fluid rounded-circle" /> <div class="avatar-indicator active"></div> </div> </a> <div class="dropdown-menu dropdown-menu-end dropdown-md p-0"> <div class="px-4 py-3 d-flex border-bottom"> <div class="avatar avatar-md flex-shrink-0"> <img src="./../assets/images/avatar/1.png" alt="Avatar" class="img-fluid rounded" /> </div> <div class="flex-grow-1 ms-3"> <h6 class="text-dark mb-1">Alexandra Della</h6> <span class="fs-13 text-muted">Premium Member</span> </div> </div> <div class="px-2 py-3"> <a href="./account-overview.html" class="dropdown-item"> <i class="fi fi-rs-user"></i> <span class="ms-3">Profile</span> </a> <a href="./account-activity.html" class="dropdown-item"> <i class="fi fi-rr-pulse"></i> <span class="ms-3">Activity</span> </a> <a href="./account-project.html" class="dropdown-item"> <i class="fi fi-rr-file-invoice-dollar"></i> <span class="ms-3">Projects</span> </a> <div class="dropdown-divider"></div> <a href="./general-pricing.html" class="dropdown-item"> <i class="fi fi-rr-usd-circle"></i> <span class="ms-3">Pricing</span> </a> <a href="./settings-account.html" class="dropdown-item"> <i class="fi fi-rr-settings"></i> <span class="ms-3">Settings</span> </a> <a href="./general-helpdesk.html" class="dropdown-item"> <i class="fi fi-rr-seal-question"></i> <span class="ms-3">Helpdesk</span> </a> <div class="dropdown-divider"></div> <a href="./auth-login.html" class="dropdown-item text-danger"> <i class="fi fi-rr-exit"></i> <span class="ms-3">Logout</span> </a> </div> </div> </div> <!--! End:: edash-profile !--> </div> <!--! End:: edash-header-right !--> </div> </header> <!--! ================================================================ !--> <!--! End:: Header !--> <!--! ================================================================ !--> <!--! ================================================================ !--> <!--! Start:: Page Content !--> <!--! ================================================================ !--> <div class="edash-page-container container-xxl" id="edash-page-container" > <!--! Start:: Breadcumb !--> <div class="edash-content-breadcumb row mb-4 mb-md-6 pt-md-2"> <div class="col-12"> <div class="d-flex align-items-center justify-content-between"> <div> <h2 class="h4 fw-semibold text-dark">Banners</h2> <nav aria-label="breadcrumb"> <ol class="breadcrumb mb-0"> <li class="breadcrumb-item"> <a href="javascript:void(0);">Components</a> </li> <li class="breadcrumb-item"> <a href="javascript:void(0);">Forms</a> </li> <li class="breadcrumb-item active" aria-current="page"> Validation </li> </ol> </nav> </div> <div class="d-flex align-items-center gap-2"> <a href="https://getbootstrap.com/docs/5.3/forms/validation/" class="btn btn-md btn-primary" target="_blank" >Official Docs</a > </div> </div> </div> </div> <!--! End:: Breadcumb !--> <!--! Start:: Content Section !--> <div class="edash-content-section row g-3 g-md-4"> <!-- Start:: Settings --> <div class="col-12"> <div class="card"> <div class="card-header"> <h4 class="card-title">Banners</h4> </div> <div class="card-body"> <?php // bulk_edit_items.php include "sql/sql.php"; // 选择要编辑的分组:?section_key=core1 $section_key = isset($_GET['section_key']) ? trim($_GET['section_key']) : 'core1'; // 读取该分组下的 3 个 item $stmt = $conn->prepare("SELECT * FROM sectiona WHERE type='item' AND section_key=? ORDER BY sort_order ASC, id ASC LIMIT 3"); $stmt->bind_param("s", $section_key); $stmt->execute(); $res = $stmt->get_result(); $items = []; while ($row = $res->fetch_assoc()) { $items[] = $row; } $stmt->close(); if (empty($items)) { echo "<p style='color:red'>分组 ".htmlspecialchars($section_key)." 下没有 item。请先插入 3 条 type='item' 的记录。</p>"; exit; } if ($_SERVER['REQUEST_METHOD'] === 'POST') { $ids = $_POST['id'] ?? []; $titles = $_POST['title_text'] ?? []; $contents = $_POST['content_text'] ?? []; $sort_orders = $_POST['sort_order'] ?? []; $actives = $_POST['is_active'] ?? []; // is_active[i] 存在即启用 // id => row 的映射,便于拿旧图 $byId = []; foreach ($items as $it) { $byId[$it['id']] = $it; } // 上传目录 $uploadUrlDir = "/uploads/core_values/"; $docRoot = rtrim($_SERVER['DOCUMENT_ROOT'], '/'); $uploadFsDir = $docRoot . $uploadUrlDir; if (!is_dir($uploadFsDir)) { mkdir($uploadFsDir, 0777, true); } for ($i = 0; $i < count($ids); $i++) { $id = intval($ids[$i]); if (!isset($byId[$id])) continue; $title_text = trim($titles[$i] ?? ''); $content_text = trim($contents[$i] ?? ''); $sort_order = intval($sort_orders[$i] ?? 0); $is_active = isset($actives[$i]) ? 1 : 0; // 默认保留旧图 $imagePathForDB = $byId[$id]['image_path'] ?? ''; // 对应 file input:image_0 / image_1 / image_2 $fileKey = "image_$i"; if (!empty($_FILES[$fileKey]['name']) && $_FILES[$fileKey]['error'] === UPLOAD_ERR_OK) { $ext = strtolower(pathinfo($_FILES[$fileKey]['name'], PATHINFO_EXTENSION)); $safe = preg_replace('/[^a-zA-Z0-9_\-\.]/', '_', pathinfo($_FILES[$fileKey]['name'], PATHINFO_FILENAME)); $newName = date("Ymd_His") . "_" . $safe . ($ext ? "." . $ext : ""); $targetFs = $uploadFsDir . $newName; $targetUrl = $uploadUrlDir . $newName; if (is_uploaded_file($_FILES[$fileKey]['tmp_name']) && move_uploaded_file($_FILES[$fileKey]['tmp_name'], $targetFs)) { // 删旧图(站内) if (!empty($byId[$id]['image_path'])) { $oldFs = $docRoot . $byId[$id]['image_path']; if (is_file($oldFs)) { @unlink($oldFs); } } $imagePathForDB = $targetUrl; } else { echo "<p style='color:red'>ID {$id} 图片上传失败(保持旧图)。</p>"; } } // 更新 $sql = "UPDATE sectiona SET title_text=?, content_text=?, image_path=?, sort_order=?, is_active=? WHERE id=? AND type='item' AND section_key=?"; $stmt = $conn->prepare($sql); $stmt->bind_param("sssiiis", $title_text, $content_text, $imagePathForDB, $sort_order, $is_active, $id, $section_key); if (!$stmt->execute()) { echo "<p style='color:red'>❌ 更新失败(ID {$id}):".htmlspecialchars($stmt->error)."</p>"; } $stmt->close(); } // 重新读取最新 $stmt = $conn->prepare("SELECT * FROM sectiona WHERE type='item' AND section_key=? ORDER BY sort_order ASC, id ASC LIMIT 3"); $stmt->bind_param("s", $section_key); $stmt->execute(); $res = $stmt->get_result(); $items = []; while ($row = $res->fetch_assoc()) { $items[] = $row; } $stmt->close(); echo "<p style='color:green'>✅ 批量更新完成</p>"; } ?> <!-- 选择分组 --> <form class="mb-3" method="GET"> <label class="form-label">选择分组(section_key)</label> <div class="d-flex gap-2"> <input type="text" class="form-control" name="section_key" value="<?= htmlspecialchars($section_key) ?>"> <button class="btn btn-outline-secondary" type="submit">切换</button> </div> </form> <!-- 批量编辑 3 个 item --> <form class="was-validated" action="?section_key=<?= htmlspecialchars($section_key) ?>" method="POST" enctype="multipart/form-data"> <?php foreach ($items as $i => $item): ?> <fieldset class="border rounded p-3 mb-4"> <legend class="float-none w-auto px-2 fs-6">Item #<?= $i+1 ?>(ID: <?= (int)$item['id'] ?>)</legend> <input type="hidden" name="id[]" value="<?= (int)$item['id'] ?>"> <div class="mb-3"> <label class="form-label">标题</label> <input type="text" class="form-control" name="title_text[]" value="<?= htmlspecialchars($item['title_text'] ?? '') ?>" required> </div> <div class="mb-3"> <label class="form-label">内容</label> <textarea class="form-control" name="content_text[]" rows="3" required><?= htmlspecialchars($item['content_text'] ?? '') ?></textarea> </div> <div class="row g-3"> <div class="col-md-4"> <label class="form-label">排序(越小越靠前)</label> <input type="number" class="form-control" name="sort_order[]" value="<?= (int)($item['sort_order'] ?? 0) ?>" required> </div> <div class="col-md-4 d-flex align-items-end"> <div class="form-check mt-4"> <input class="form-check-input" type="checkbox" name="is_active[<?= $i ?>]" <?= !empty($item['is_active']) ? 'checked' : '' ?>> <label class="form-check-label">启用</label> </div> </div> </div> <div class="mb-2 mt-3"> <label class="form-label">图片(不上传则保留原图)</label><br> <?php if (!empty($item['image_path'])): ?> <img src="<?= htmlspecialchars($item['image_path']) ?>" alt="" style="max-height:120px"><br><br> <?php endif; ?> <input type="file" class="form-control" name="image_<?= $i ?>" accept="image/*"> </div> </fieldset> <?php endforeach; ?> <div class="d-flex gap-2"> <button class="btn btn-primary" type="submit">保存 3 个 item</button> <a class="btn btn-outline-secondary" href="?section_key=<?= htmlspecialchars($section_key) ?>">刷新</a> </div> </form> </div> </div> </div> <!-- End:: Elements --> </div> <!--! End:: Content Section !--> </div> <!--! ================================================================ !--> <!--! End:: Page Content !--> <!--! ================================================================ !--> <!--! ================================================================ !--> <!--! Start:: Footer !--> <!--! ================================================================ !--> <footer class="edash-footer-container container-xxl d-flex align-items-center justify-content-between rounded-3 p-4 mx-auto mb-3 ht-64 bg-body-tertiary" id="edash-footer-container" > <div class="hstack"> <span class="text-muted"> <script> document.write(new Date().getFullYear()); </script> © </span> <span class="vr mx-2 bg-body-secondary"></span> <a href="mailto:wrapcoders@gmail.com">Expodash</a> </div> <div class="d-flex align-items-center gap-3"> <a href="./../../docs/documentation.html" target="_blank" class="d-none d-sm-block" >Docs</a > <a href="wrapcoders@gmail.com" target="_blank" class="d-none d-sm-block" >About</a > <a href="wrapcoders@gmail.com" target="_blank">Support</a> <a href="https://codecanyon.net/item/expodash-bootstrap-5-admin-dashboard-template/52160996" target="_blank" >Purchase</a > </div> </footer> <!--! ================================================================ !--> <!--! End:: Footer !--> <!--! ================================================================ !--> </main> <!--! ================================================================ !--> <!--! End:: Main Content !--> <!--! ================================================================ !--> <div class="edash-menu-backdrop" id="edash-menu-hide"></div> </div> <!--! ================================================================ !--> <!--! End:: Main Wrapper !--> <!--! ================================================================ !--> <!--! ================================================================ !--> <!--! Footer Script !--> <!--! ================================================================ !--> <!--! BEGIN: Common Vendors !--> <script src="assets/js/vendors.min.js"></script> <!--! END: Common Vendors !--> <!--! BEGIN: Apps Common Init !--> <script src="assets/js/common-init.min.js"></script> <!--! END: Apps Common Init !--> <!--! BEGIN: Page Vendors -!--> <!--! END: Page Vendors -!--> <script> // Example starter JavaScript for disabling form submissions if there are invalid fields (() => { "use strict"; // Fetch all the forms we want to apply custom Bootstrap validation styles to const forms = document.querySelectorAll(".needs-validation"); // Loop over them and prevent submission Array.from(forms).forEach((form) => { form.addEventListener( "submit", (event) => { if (!form.checkValidity()) { event.preventDefault(); event.stopPropagation(); } form.classList.add("was-validated"); }, false ); }); })(); </script> </body> </html>