You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
790 lines
39 KiB
790 lines
39 KiB
<?php
|
|
if (file_exists(__DIR__."/../pp-config.php")) {
|
|
if (file_exists(__DIR__.'/../maintenance.lock')) {
|
|
if (file_exists(__DIR__.'/../pp-include/pp-maintenance.php')) {
|
|
include(__DIR__."/../pp-include/pp-maintenance.php");
|
|
}else{
|
|
die('System is under maintenance. Please try again later.');
|
|
}
|
|
exit();
|
|
}else{
|
|
if (file_exists(__DIR__.'/../pp-include/pp-controller.php')) {
|
|
include(__DIR__."/../pp-include/pp-controller.php");
|
|
}else{
|
|
echo 'System is under maintenance. Please try again later.';
|
|
exit();
|
|
}
|
|
|
|
if (file_exists(__DIR__.'/../pp-include/pp-model.php')) {
|
|
include(__DIR__."/../pp-include/pp-model.php");
|
|
}else{
|
|
echo 'System is under maintenance. Please try again later.';
|
|
exit();
|
|
}
|
|
|
|
if (file_exists(__DIR__.'/../pp-include/pp-view.php')) {
|
|
include(__DIR__."/../pp-include/pp-view.php");
|
|
}else{
|
|
echo 'System is under maintenance. Please try again later.';
|
|
exit();
|
|
}
|
|
|
|
if($global_user_login == false){
|
|
?>
|
|
<script>
|
|
location.href="https://<?php echo $_SERVER['HTTP_HOST']?>/admin/login";
|
|
</script>
|
|
<?php
|
|
exit();
|
|
}
|
|
}
|
|
}else{
|
|
?>
|
|
<script>
|
|
location.href="https://<?php echo $_SERVER['HTTP_HOST']?>/install/";
|
|
</script>
|
|
<?php
|
|
exit();
|
|
}
|
|
|
|
if (!defined('pp_allowed_access')) {
|
|
die('Direct access not allowed');
|
|
}
|
|
|
|
if(isset($_GET['download'])){
|
|
?>
|
|
<script>location.href = "https://github.com/PipraPay/PipraPay-Open-Source-App/";</script>
|
|
<?php
|
|
eixt();
|
|
}
|
|
|
|
if (function_exists('pp_trigger_hook')) {
|
|
pp_trigger_hook('pp_admin_initialize');
|
|
}
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="robots" content="noindex, nofollow">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
|
|
<title>Dashboard - PipraPay</title>
|
|
<link rel="icon" type="image/x-icon" href="https://cdn.piprapay.com/media/favicon.png">
|
|
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
|
|
|
|
<link rel="stylesheet" href="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/css/vendor.min.css">
|
|
|
|
<link rel="stylesheet" href="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/css/theme.minc619.css?v=1.3">
|
|
|
|
<link rel="preload" href="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/css/theme.min.css?v=1.4" data-hs-appearance="default" as="style">
|
|
<link rel="preload" href="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/css/theme-dark.min.css" data-hs-appearance="dark" as="style">
|
|
|
|
<style data-hs-appearance-onload-styles>
|
|
*
|
|
{
|
|
transition: unset !important;
|
|
}
|
|
|
|
body
|
|
{
|
|
opacity: 0;
|
|
}
|
|
</style>
|
|
|
|
<style>
|
|
body
|
|
{
|
|
opacity: 0;
|
|
}
|
|
table tr:hover {
|
|
background-color: #f8fafd;
|
|
cursor: pointer;
|
|
}
|
|
</style>
|
|
|
|
<script>
|
|
window.hs_config = {"autopath":"@@autopath","deleteLine":"hs-builder:delete","deleteLine:build":"hs-builder:build-delete","deleteLine:dist":"hs-builder:dist-delete","previewMode":false,"startPath":"/javascript:void(0)","vars":{"themeFont":"https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap","version":"?v=1.0"},"layoutBuilder":{"extend":{"switcherSupport":true},"header":{"layoutMode":"default","containerMode":"container-fluid"},"sidebarLayout":"default"},"themeAppearance":{"layoutSkin":"default","sidebarSkin":"default","styles":{"colors":{"primary":"#3BB77E","transparent":"transparent","white":"#fff","dark":"132144","gray":{"100":"#f9fafc","900":"#1e2022"}},"font":"Inter"}},"languageDirection":{"lang":"en"},"skipFilesFromBundle":{"dist":["https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/hs.theme-appearance.js","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/hs.theme-appearance-charts.js","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/demo.js"],"build":["https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/css/theme.css","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/vendor/hs-navbar-vertical-aside/dist/hs-navbar-vertical-aside-mini-cache.js","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/demo.js","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/css/theme-dark.html","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/css/docs.css","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/vendor/icon-set/style.html","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/hs.theme-appearance.js","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/hs.theme-appearance-charts.js","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.min.html","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/demo.js"]},"minifyCSSFiles":["https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/css/theme.css","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/css/theme-dark.css"],"copyDependencies":{"dist":{"*assets/js/theme-custom.js":""},"build":{"*assets/js/theme-custom.js":"","https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/node_modules/bootstrap-icons/font/*fonts/**":"https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/css"}},"buildFolder":"","replacePathsToCDN":{},"directoryNames":{"src":"./src","dist":"./dist","build":"./build"},"fileNames":{"dist":{"js":"theme.min.js","css":"theme.min.css"},"build":{"css":"theme.min.css","js":"theme.min.js","vendorCSS":"vendor.min.css","vendorJS":"vendor.min.js"}},"fileTypes":"jpg|png|svg|mp4|webm|ogv|json"}
|
|
window.hs_config.gulpRGBA = (p1) => {
|
|
const options = p1.split(',')
|
|
const hex = options[0].toString()
|
|
const transparent = options[1].toString()
|
|
|
|
var c;
|
|
if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){
|
|
c= hex.substring(1).split('');
|
|
if(c.length== 3){
|
|
c= [c[0], c[0], c[1], c[1], c[2], c[2]];
|
|
}
|
|
c= '0x'+c.join('');
|
|
return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',' + transparent + ')';
|
|
}
|
|
throw new Error('Bad Hex');
|
|
}
|
|
window.hs_config.gulpDarken = (p1) => {
|
|
const options = p1.split(',')
|
|
|
|
let col = options[0].toString()
|
|
let amt = -parseInt(options[1])
|
|
var usePound = false
|
|
|
|
if (col[0] == "#") {
|
|
col = col.slice(1)
|
|
usePound = true
|
|
}
|
|
var num = parseInt(col, 16)
|
|
var r = (num >> 16) + amt
|
|
if (r > 255) {
|
|
r = 255
|
|
} else if (r < 0) {
|
|
r = 0
|
|
}
|
|
var b = ((num >> 8) & 0x00FF) + amt
|
|
if (b > 255) {
|
|
b = 255
|
|
} else if (b < 0) {
|
|
b = 0
|
|
}
|
|
var g = (num & 0x0000FF) + amt
|
|
if (g > 255) {
|
|
g = 255
|
|
} else if (g < 0) {
|
|
g = 0
|
|
}
|
|
return (usePound ? "#" : "") + (g | (b << 8) | (r << 16)).toString(16)
|
|
}
|
|
window.hs_config.gulpLighten = (p1) => {
|
|
const options = p1.split(',')
|
|
|
|
let col = options[0].toString()
|
|
let amt = parseInt(options[1])
|
|
var usePound = false
|
|
|
|
if (col[0] == "#") {
|
|
col = col.slice(1)
|
|
usePound = true
|
|
}
|
|
var num = parseInt(col, 16)
|
|
var r = (num >> 16) + amt
|
|
if (r > 255) {
|
|
r = 255
|
|
} else if (r < 0) {
|
|
r = 0
|
|
}
|
|
var b = ((num >> 8) & 0x00FF) + amt
|
|
if (b > 255) {
|
|
b = 255
|
|
} else if (b < 0) {
|
|
b = 0
|
|
}
|
|
var g = (num & 0x0000FF) + amt
|
|
if (g > 255) {
|
|
g = 255
|
|
} else if (g < 0) {
|
|
g = 0
|
|
}
|
|
return (usePound ? "#" : "") + (g | (b << 8) | (r << 16)).toString(16)
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body class="has-navbar-vertical-aside navbar-vertical-aside-show-xl footer-offset">
|
|
<div class="progress" style=" position: fixed; top: 0; width: 100%; left: 0; height: 3px; z-index: 101; ">
|
|
<div class="progress-bar" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
|
|
</div>
|
|
|
|
<script src="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/hs.theme-appearance.js"></script>
|
|
|
|
<script src="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/vendor/hs-navbar-vertical-aside/dist/hs-navbar-vertical-aside-mini-cache.js"></script>
|
|
|
|
<!-- ========== HEADER ========== -->
|
|
|
|
<header id="header" class="navbar navbar-expand-lg navbar-fixed navbar-height navbar-container navbar-bordered bg-white">
|
|
<div class="navbar-nav-wrap">
|
|
<!-- Logo -->
|
|
<a class="navbar-brand" href="javascript:void(0)" aria-label="Front">
|
|
<img class="navbar-brand-logo" src="https://cdn.piprapay.com/media/logo.png" alt="Logo" data-hs-theme-appearance="default">
|
|
<img class="navbar-brand-logo" src="https://cdn.piprapay.com/media/logo-black.png" alt="Logo" data-hs-theme-appearance="dark">
|
|
<img class="navbar-brand-logo-mini" src="https://cdn.piprapay.com/media/favicon.png" alt="Logo" data-hs-theme-appearance="default">
|
|
<img class="navbar-brand-logo-mini" src="https://cdn.piprapay.com/media/favicon.png" alt="Logo" data-hs-theme-appearance="dark">
|
|
</a>
|
|
<!-- End Logo -->
|
|
|
|
<div class="navbar-nav-wrap-content-start">
|
|
<button type="button" class="js-navbar-vertical-aside-toggle-invoker navbar-aside-toggler">
|
|
<i class="bi-arrow-bar-left navbar-toggler-short-align" data-bs-template='<div class="tooltip d-none d-md-block" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>' data-bs-toggle="tooltip" data-bs-placement="right" title="Collapse"></i>
|
|
<i class="bi-arrow-bar-right navbar-toggler-full-align" data-bs-template='<div class="tooltip d-none d-md-block" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>' data-bs-toggle="tooltip" data-bs-placement="right" title="Expand"></i>
|
|
</button>
|
|
</div>
|
|
|
|
<div class="navbar-nav-wrap-content-end">
|
|
<!-- Navbar -->
|
|
<ul class="navbar-nav">
|
|
<li class="nav-item">
|
|
<!-- Account -->
|
|
<div class="dropdown">
|
|
<a class="navbar-dropdown-account-wrapper" href="javascript:;" id="accountNavbarDropdown" data-bs-toggle="dropdown" aria-expanded="false" data-bs-auto-close="outside" data-bs-dropdown-animation>
|
|
<div class="avatar avatar-sm avatar-circle">
|
|
<img class="avatar-img" src="https://cdn.piprapay.com/media/default.jpg" alt="Image Description">
|
|
<span class="avatar-status avatar-sm-status avatar-status-success"></span>
|
|
</div>
|
|
</a>
|
|
|
|
<div class="dropdown-menu dropdown-menu-end navbar-dropdown-menu navbar-dropdown-menu-borderless navbar-dropdown-account" aria-labelledby="accountNavbarDropdown" style="width: 16rem;">
|
|
<div class="dropdown-item-text">
|
|
<div class="d-flex align-items-center">
|
|
<div class="avatar avatar-sm avatar-circle">
|
|
<img class="avatar-img" src="https://cdn.piprapay.com/media/default.jpg" alt="Image Description">
|
|
</div>
|
|
<div class="flex-grow-1 ms-3">
|
|
<h5 class="mb-0"><?php echo $global_user_response['response'][0]['name']?></h5>
|
|
<p class="card-text text-body">@<?php echo $global_user_response['response'][0]['username']?></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="dropdown-divider"></div>
|
|
|
|
<a class="dropdown-item" href="javascript:void(0);" onclick="load_content('Admin Settings','system-admin-setting','nav-btn-admin-setting')">Settings</a>
|
|
|
|
<div class="dropdown-divider"></div>
|
|
|
|
<a class="dropdown-item" href="?logout">Sign out</a>
|
|
</div>
|
|
</div>
|
|
<!-- End Account -->
|
|
</li>
|
|
</ul>
|
|
<!-- End Navbar -->
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
<aside class="js-navbar-vertical-aside navbar navbar-vertical-aside navbar-vertical navbar-vertical-fixed navbar-expand-xl navbar-bordered bg-white ">
|
|
<div class="navbar-vertical-container">
|
|
<div class="navbar-vertical-footer-offset">
|
|
<!-- Logo -->
|
|
|
|
<a class="navbar-brand" href="javascript:void(0)" aria-label="Front">
|
|
<img class="navbar-brand-logo" src="https://cdn.piprapay.com/media/logo.png" alt="Logo" data-hs-theme-appearance="default">
|
|
<img class="navbar-brand-logo" src="https://cdn.piprapay.com/media/logo-black.png" alt="Logo" data-hs-theme-appearance="dark">
|
|
<img class="navbar-brand-logo-mini" src="https://cdn.piprapay.com/media/favicon.png" alt="Logo" data-hs-theme-appearance="default">
|
|
<img class="navbar-brand-logo-mini" src="https://cdn.piprapay.com/media/favicon.png" alt="Logo" data-hs-theme-appearance="dark">
|
|
</a>
|
|
|
|
<!-- End Logo -->
|
|
|
|
<!-- Navbar Vertical Toggle -->
|
|
<button type="button" class="js-navbar-vertical-aside-toggle-invoker navbar-aside-toggler">
|
|
<i class="bi-arrow-bar-left navbar-toggler-short-align" data-bs-template='<div class="tooltip d-none d-md-block" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>' data-bs-toggle="tooltip" data-bs-placement="right" title="Collapse"></i>
|
|
<i class="bi-arrow-bar-right navbar-toggler-full-align" data-bs-template='<div class="tooltip d-none d-md-block" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>' data-bs-toggle="tooltip" data-bs-placement="right" title="Expand"></i>
|
|
</button>
|
|
|
|
<!-- End Navbar Vertical Toggle -->
|
|
|
|
<!-- Content -->
|
|
<div class="navbar-vertical-content">
|
|
<div id="navbarVerticalMenu" class="nav nav-pills nav-vertical card-navbar-nav">
|
|
<!-- Collapse -->
|
|
<div class="nav-item">
|
|
<a class="nav-link nav-btn-dashboard" href="javascript:void(0);" onclick="load_content('Dashboard','dashboard','nav-btn-dashboard')">
|
|
<i class="bi-house-door nav-icon"></i>
|
|
<span class="nav-link-title">Dashboard</span>
|
|
</a>
|
|
</div>
|
|
<!-- End Collapse -->
|
|
|
|
<div id="navbarVerticalMenuPagesMenu">
|
|
<span class="dropdown-header mt-4">Payment</span>
|
|
<small class="bi-three-dots nav-subtitle-replacer"></small>
|
|
|
|
<!-- Collapse -->
|
|
<div class="nav-item">
|
|
<a class="nav-link nav-btn-transaction" href="javascript:void(0);" onclick="load_content('Transaction','transaction','nav-btn-transaction')">
|
|
<i class="bi bi-receipt nav-icon"></i>
|
|
<span class="nav-link-title">Transaction</span>
|
|
</a>
|
|
</div>
|
|
<!-- End Collapse -->
|
|
|
|
<!-- Collapse -->
|
|
<div class="nav-item">
|
|
<a class="nav-link nav-btn-customers" href="javascript:void(0);" onclick="load_content('Customers','customers','nav-btn-customers')">
|
|
<i class="bi bi-people nav-icon"></i>
|
|
<span class="nav-link-title">Customers</span>
|
|
</a>
|
|
</div>
|
|
<!-- End Collapse -->
|
|
|
|
<!-- Collapse -->
|
|
<div class="nav-item">
|
|
<a class="nav-link nav-btn-invoices" href="javascript:void(0);" onclick="load_content('Invoices','invoices','nav-btn-invoices')">
|
|
<i class="bi bi-receipt-cutoff nav-icon"></i>
|
|
<span class="nav-link-title">Invoices</span>
|
|
</a>
|
|
</div>
|
|
<!-- End Collapse -->
|
|
|
|
<!-- Collapse -->
|
|
<div class="nav-item">
|
|
<a class="nav-link nav-btn-payment-link" href="javascript:void(0);" onclick="load_content('Payment Links','payment-link','nav-btn-payment-link')">
|
|
<i class="bi bi-link-45deg nav-icon"></i>
|
|
<span class="nav-link-title">Payment Links</span>
|
|
</a>
|
|
</div>
|
|
<!-- End Collapse -->
|
|
|
|
<!-- Collapse -->
|
|
<div class="nav-item">
|
|
<a class="nav-link nav-btn-sms-data" href="javascript:void(0);" onclick="load_content('SMS Data','sms-data','nav-btn-sms-data')">
|
|
<i class="bi bi-phone nav-icon"></i>
|
|
<span class="nav-link-title">SMS Data</span>
|
|
</a>
|
|
</div>
|
|
<!-- End Collapse -->
|
|
|
|
<span class="dropdown-header mt-4">Customize</span>
|
|
<small class="bi-three-dots nav-subtitle-replacer"></small>
|
|
|
|
<!-- Collapse -->
|
|
<div class="nav-item">
|
|
<a class="nav-link dropdown-toggle nav-btn-appearance" href="#appearance_menu" role="button" data-bs-toggle="collapse" data-bs-target="#appearance_menu" aria-expanded="false" aria-controls="appearance_menu">
|
|
<i class="bi bi-brush nav-icon"></i>
|
|
<span class="nav-link-title">Appearance</span>
|
|
</a>
|
|
|
|
<div id="appearance_menu" class="nav-collapse collapse " data-bs-parent="#appearance_menu">
|
|
<a class="nav-link" href="javascript:void(0);" onclick="load_content('Appearance','appearance-themes','nav-btn-appearance')">Themes</a>
|
|
<a class="nav-link" href="javascript:void(0);" onclick="load_content('Appearance','appearance-customize','nav-btn-appearance')">Customize</a>
|
|
<a class="nav-link" href="javascript:void(0);" data-bs-toggle="modal" data-bs-target="#add-new-plugins">Add New</a>
|
|
</div>
|
|
</div>
|
|
<!-- End Collapse -->
|
|
|
|
<!-- Collapse -->
|
|
<div class="nav-item">
|
|
<a class="nav-link dropdown-toggle nav-btn-plugin" href="#plugin_menu" role="button" data-bs-toggle="collapse" data-bs-target="#plugin_menu" aria-expanded="false" aria-controls="plugin_menu">
|
|
<i class="bi bi-plugin nav-icon"></i>
|
|
<span class="nav-link-title">Plugin</span>
|
|
</a>
|
|
|
|
<div id="plugin_menu" class="nav-collapse collapse " data-bs-parent="#plugin_menu">
|
|
<a class="nav-link" href="javascript:void(0);" onclick="load_content('Plugin','plugin-manager','nav-btn-plugin')">Installed Plugin</a>
|
|
<a class="nav-link" href="javascript:void(0);" data-bs-toggle="modal" data-bs-target="#add-new-plugins">Add New</a>
|
|
</div>
|
|
</div>
|
|
<!-- End Collapse -->
|
|
|
|
<!-- Collapse -->
|
|
<div class="nav-item">
|
|
<a class="nav-link dropdown-toggle nav-btn-system-setting" href="#system-setting-menu" role="button" data-bs-toggle="collapse" data-bs-target="#system-setting-menu" aria-expanded="false" aria-controls="navbarVerticalMenuPagesUsersMenu">
|
|
<i class="bi bi-gear nav-icon"></i>
|
|
<span class="nav-link-title">System Settings</span>
|
|
</a>
|
|
|
|
<div id="system-setting-menu" class="nav-collapse collapse " data-bs-parent="#system-setting-menu">
|
|
<a class="nav-link" href="javascript:void(0);" onclick="load_content('System Settings','system-setting-general','nav-btn-system-setting')">General Settings</a>
|
|
<a class="nav-link" href="javascript:void(0);" onclick="load_content('System Settings','system-setting-api','nav-btn-system-setting')">API Settings</a>
|
|
<a class="nav-link" href="javascript:void(0);" onclick="load_content('CronJob','system-setting-cron-job','nav-btn-system-setting')">Cron Job</a>
|
|
<a class="nav-link" href="javascript:void(0);" onclick="load_content('System Currency','system-setting-currency','nav-btn-system-currency')">Currency Settings</a>
|
|
<a class="nav-link" href="javascript:void(0);" onclick="load_content('System Settings','system-setting-faq','nav-btn-system-setting')">FAQ Settings</a>
|
|
</div>
|
|
</div>
|
|
<!-- End Collapse -->
|
|
|
|
|
|
<span class="dropdown-header mt-4">More</span>
|
|
<small class="bi-three-dots nav-subtitle-replacer"></small>
|
|
<?php
|
|
$baseDir = __DIR__.'/../pp-content/plugins/';
|
|
|
|
$mainFolders = array_filter(scandir($baseDir), function($item) use ($baseDir) {
|
|
return $item !== '.' && $item !== '..' && is_dir($baseDir . DIRECTORY_SEPARATOR . $item);
|
|
});
|
|
|
|
foreach ($mainFolders as $mainFolder) {
|
|
$mainFolder_rand = rand();
|
|
?>
|
|
<!-- Collapse -->
|
|
<div class="nav-item">
|
|
<a class="nav-link dropdown-toggle nav-btn-more-<?php echo $mainFolder.$mainFolder_rand?>" href="#more-<?php echo $mainFolder.$mainFolder_rand?>" role="button" data-bs-toggle="collapse" data-bs-target="#more-<?php echo $mainFolder.$mainFolder_rand?>" aria-expanded="false" aria-controls="navbarVerticalMenuPagesUsersMenu">
|
|
<i class="bi bi-gear nav-icon"></i>
|
|
<span class="nav-link-title"><?php echo ucwords(str_replace('-', ' ', $mainFolder))?></span>
|
|
</a>
|
|
|
|
<div id="more-<?php echo $mainFolder.$mainFolder_rand?>" class="nav-collapse collapse " data-bs-parent="#more-<?php echo $mainFolder.$mainFolder_rand?>">
|
|
<div class="p-2">
|
|
<input type="text" class="form-control form-control-sm" placeholder="Search..." onkeyup="filterMenu(this, 'more-<?php echo $mainFolder.$mainFolder_rand?>')">
|
|
</div>
|
|
|
|
<?php
|
|
$pluginBasePath = $baseDir . DIRECTORY_SEPARATOR . $mainFolder;
|
|
|
|
$pluginFolders = array_filter(scandir($pluginBasePath), function($item) use ($pluginBasePath) {
|
|
return $item !== '.' && $item !== '..' && is_dir($pluginBasePath . DIRECTORY_SEPARATOR . $item);
|
|
});
|
|
|
|
$foundPlugins = false;
|
|
|
|
foreach ($pluginFolders as $pluginFolder) {
|
|
$mainFile = $pluginBasePath . DIRECTORY_SEPARATOR . $pluginFolder . DIRECTORY_SEPARATOR . $pluginFolder . '-class.php';
|
|
|
|
if (file_exists($mainFile)) {
|
|
$response_plugin = json_decode(getData($db_prefix.'plugins', 'WHERE plugin_slug="'.$pluginFolder.'" AND status="active"'), true);
|
|
if($response_plugin['status'] == true){
|
|
$foundPlugins = true;
|
|
$pluginInfo = parsePluginHeader($mainFile);
|
|
?>
|
|
<a class="nav-link" href="javascript:void(0);" onclick="load_content('<?php echo htmlspecialchars($pluginInfo['Plugin Name'] ?? '')?>','plugin-loader?page=<?php echo $mainFolder.'--'.htmlspecialchars($pluginFolder)?>','nav-btn-more-<?php echo $mainFolder.$mainFolder_rand?>')"><?php echo htmlspecialchars($pluginInfo['Plugin Name'] ?? '')?></a>
|
|
<?php
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!$foundPlugins) {
|
|
?>
|
|
<a class="nav-link" href="javascript:void(0);">No plugins available</a>
|
|
<?php
|
|
}
|
|
?>
|
|
</div>
|
|
</div>
|
|
<!-- End Collapse -->
|
|
<?php
|
|
}
|
|
?>
|
|
|
|
<span class="dropdown-header mt-4">Documentation</span>
|
|
<small class="bi-three-dots nav-subtitle-replacer"></small>
|
|
|
|
<div class="nav-item">
|
|
<a class="nav-link " href="https://play.google.com/store/apps/details?id=com.qube.piprapay" target="blank" data-placement="left">
|
|
<i class="bi-android nav-icon"></i>
|
|
<span class="nav-link-title">Android Payment Panel</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="nav-item">
|
|
<a class="nav-link " href="https://piprapay.readme.io/" target="blank" data-placement="left">
|
|
<i class="bi-book nav-icon"></i>
|
|
<span class="nav-link-title">Documentation</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="navbar-vertical-footer">
|
|
<ul class="navbar-vertical-footer-list">
|
|
<li class="navbar-vertical-footer-list-item">
|
|
<div class="dropdown dropup">
|
|
<button type="button" class="btn btn-ghost-secondary btn-icon rounded-circle" id="selectThemeDropdown" data-bs-toggle="dropdown" aria-expanded="false" data-bs-dropdown-animation>
|
|
|
|
</button>
|
|
|
|
<div class="dropdown-menu navbar-dropdown-menu navbar-dropdown-menu-borderless" aria-labelledby="selectThemeDropdown">
|
|
<a class="dropdown-item" href="#" data-icon="bi-moon-stars" data-value="auto">
|
|
<i class="bi-moon-stars me-2"></i>
|
|
<span class="text-truncate" title="Auto (system default)">Auto (system default)</span>
|
|
</a>
|
|
<a class="dropdown-item" href="#" data-icon="bi-brightness-high" data-value="default">
|
|
<i class="bi-brightness-high me-2"></i>
|
|
<span class="text-truncate" title="Default (light mode)">Default (light mode)</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
</li>
|
|
|
|
<li class="navbar-vertical-footer-list-item">
|
|
<div class="dropdown dropup">
|
|
<button type="button" class="btn btn-ghost-secondary btn-icon rounded-circle" id="otherLinksDropdown" data-bs-toggle="dropdown" aria-expanded="false" data-bs-dropdown-animation>
|
|
<i class="bi-info-circle"></i>
|
|
</button>
|
|
|
|
<div class="dropdown-menu navbar-dropdown-menu-borderless" aria-labelledby="otherLinksDropdown">
|
|
<span class="dropdown-header">Help</span>
|
|
<a class="dropdown-item" href="https://www.youtube.com/@piprapay" target="blank">
|
|
<i class="bi-journals dropdown-item-icon"></i>
|
|
<span class="text-truncate" title="Resources & tutorials">Resources & tutorials</span>
|
|
</a>
|
|
<div class="dropdown-divider"></div>
|
|
<span class="dropdown-header">Contacts</span>
|
|
<a class="dropdown-item" href="https://www.facebook.com/piprapay" target="blank">
|
|
<i class="bi-chat-left-dots dropdown-item-icon"></i>
|
|
<span class="text-truncate" title="Contact support">Contact support</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
|
|
<li class="navbar-vertical-footer-list-item">
|
|
<div class="dropdown dropup">
|
|
<button type="button" class="btn btn-ghost-secondary btn-icon rounded-circle" id="selectLanguageDropdown" data-bs-toggle="dropdown" aria-expanded="false" data-bs-dropdown-animation>
|
|
<img class="avatar avatar-xss avatar-circle" src="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/vendor/flag-icon-css/flags/1x1/us.svg" alt="United States Flag">
|
|
</button>
|
|
|
|
<div class="dropdown-menu navbar-dropdown-menu-borderless" aria-labelledby="selectLanguageDropdown">
|
|
<span class="dropdown-header">Select language</span>
|
|
<a class="dropdown-item" href="#">
|
|
<img class="avatar avatar-xss avatar-circle me-2" src="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/vendor/flag-icon-css/flags/1x1/us.svg" alt="Flag">
|
|
<span class="text-truncate" title="English">English (US)</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</aside>
|
|
|
|
|
|
<main id="content" role="main" class="main">
|
|
<div class="content container-fluid layout-content-prase">
|
|
|
|
</div>
|
|
|
|
<div class="footer">
|
|
<div class="row justify-content-between align-items-center">
|
|
<div class="col">
|
|
<p class="fs-6 mb-0">© PipraPay. <span class="d-none d-sm-inline-block">2025 QubePlug Bangladesh. <strong><?php echo $global_version['version'];?></strong></span></p>
|
|
</div>
|
|
<div class="col-auto">
|
|
<div class="d-flex justify-content-end">
|
|
<ul class="list-inline list-separator">
|
|
<li class="list-inline-item">
|
|
<a class="list-separator-link" href="https://piprapay.com/#faq">FAQ</a>
|
|
</li>
|
|
|
|
<li class="list-inline-item">
|
|
<a class="list-separator-link" href="https://piprapay.com/">Visit</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
|
|
<div class="modal fade" id="add-new-plugins" tabindex="-1" aria-labelledby="add-new-plugins" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="add-new-plugins">Add Themes or Plugins</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
|
|
<!-- Body -->
|
|
<div class="modal-body">
|
|
<label for="add-themes-plugins-files">Choose Zip files that you download from piprapay directory</label>
|
|
<br>
|
|
<br>
|
|
<input type="file" class="form-control" id="add-themes-plugins-files" accept=".zip">
|
|
|
|
<span class="response-add-themes-plugins-files"></span>
|
|
</div>
|
|
<!-- End Body -->
|
|
|
|
<!-- Footer -->
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-white" data-bs-dismiss="modal" aria-label="Close">Cancel</button>
|
|
<button type="button" class="btn btn-primary btn-add-themes-plugins">Upload</button>
|
|
</div>
|
|
<!-- End Footer -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/demo.js?v=1.8"></script>
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
|
<script src="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/vendor.min.js"></script>
|
|
|
|
<script src="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/vendor/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.min.js"></script>
|
|
|
|
<!-- JS Front -->
|
|
<script src="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/theme.min.js"></script>
|
|
<script src="https://<?php echo $_SERVER['HTTP_HOST']?>/pp-external/assets/admin/assets/js/hs.theme-appearance-charts.js"></script>
|
|
|
|
<script>
|
|
document.querySelector(".btn-add-themes-plugins").addEventListener("click", function () {
|
|
const fileInput = document.getElementById("add-themes-plugins-files");
|
|
const responseBox = document.querySelector(".response-add-themes-plugins-files");
|
|
|
|
if (fileInput.files.length === 0) {
|
|
responseBox.innerHTML = '<div class="alert alert-danger" style="margin-top:10px;margin-bottom:10px">Please select a ZIP file to upload.</div>';
|
|
return;
|
|
}
|
|
|
|
const file = fileInput.files[0];
|
|
const formData = new FormData();
|
|
formData.append("zip_file", file);
|
|
formData.append("action", "pp-theme-plugins-import");
|
|
|
|
responseBox.innerHTML = "";
|
|
|
|
document.querySelector(".btn-add-themes-plugins").innerHTML = '<div class="spinner-border spinner-border-sm text-white" role="status"> <span class="visually-hidden">Loading...</span> </div>';
|
|
|
|
fetch("dashboard", {
|
|
method: "POST",
|
|
body: formData
|
|
})
|
|
.then(res => res.json())
|
|
.then(data => {
|
|
document.querySelector(".btn-add-themes-plugins").innerHTML = 'Upload';
|
|
|
|
if (data.status === "success") {
|
|
responseBox.innerHTML = '<div class="alert alert-primary" style="margin-top:10px;margin-bottom:10px">Uploaded and installed successfully.</div>';
|
|
} else {
|
|
responseBox.innerHTML = '<div class="alert alert-danger" style="margin-top:10px;margin-bottom:10px">Error: ' + data.message + '</div>';
|
|
}
|
|
})
|
|
.catch(err => {
|
|
console.error(err);
|
|
responseBox.innerHTML = '<div class="alert alert-danger" style="margin-top:10px;margin-bottom:10px">Something went wrong.</div>';
|
|
});
|
|
});
|
|
|
|
|
|
|
|
function filterMenu(inputElement, parentId) {
|
|
const filter = inputElement.value.toLowerCase();
|
|
const parent = document.getElementById(parentId);
|
|
const links = parent.querySelectorAll('a.nav-link');
|
|
|
|
links.forEach(link => {
|
|
const text = link.textContent.toLowerCase();
|
|
if (text.includes(filter)) {
|
|
link.style.display = '';
|
|
} else {
|
|
link.style.display = 'none';
|
|
}
|
|
});
|
|
}
|
|
|
|
(function() {
|
|
localStorage.removeItem('hs_theme')
|
|
|
|
window.onload = function () {
|
|
new HSSideNav('.js-navbar-vertical-aside').init()
|
|
}
|
|
})()
|
|
</script>
|
|
|
|
<script>
|
|
(function () {
|
|
const $dropdownBtn = document.getElementById('selectThemeDropdown')
|
|
const $variants = document.querySelectorAll(`[aria-labelledby="selectThemeDropdown"] [data-icon]`)
|
|
|
|
const setActiveStyle = function () {
|
|
$variants.forEach($item => {
|
|
if ($item.getAttribute('data-value') === HSThemeAppearance.getOriginalAppearance()) {
|
|
$dropdownBtn.innerHTML = `<i class="${$item.getAttribute('data-icon')}" />`
|
|
return $item.classList.add('active')
|
|
}
|
|
|
|
$item.classList.remove('active')
|
|
})
|
|
}
|
|
|
|
$variants.forEach(function ($item) {
|
|
$item.addEventListener('click', function () {
|
|
HSThemeAppearance.setAppearance($item.getAttribute('data-value'))
|
|
})
|
|
})
|
|
|
|
setActiveStyle()
|
|
|
|
window.addEventListener('on-hs-appearance-change', function () {
|
|
setActiveStyle()
|
|
})
|
|
})()
|
|
</script>
|
|
<input type="hidden" id="navbar-aside-toggler-value" value = "0">
|
|
<script>
|
|
function checkDevice() {
|
|
if (window.innerWidth <= 600) {
|
|
var values = document.querySelector("#navbar-aside-toggler-value").value;
|
|
|
|
if(values == 1){
|
|
document.querySelector(".navbar-aside-toggler").click();
|
|
}else{
|
|
document.querySelector("#navbar-aside-toggler-value").value = '1';
|
|
}
|
|
}
|
|
}
|
|
|
|
function load_content(page, url, nav_id, fromPopState = false) {
|
|
const cleanPath = url.split('?')[0];
|
|
|
|
document.querySelector('.progress').style.display = 'block';
|
|
let progress = 0;
|
|
|
|
const interval = setInterval(function () {
|
|
if (progress < 90) {
|
|
progress += 5;
|
|
document.querySelector('.progress-bar').style.width = progress + '%';
|
|
}
|
|
}, 100);
|
|
|
|
fetch('https://<?php echo $_SERVER['HTTP_HOST']?>/admin/' + url, {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
},
|
|
body: new URLSearchParams({ webpage: cleanPath })
|
|
})
|
|
.then(res => res.text())
|
|
.then(html => {
|
|
$('.layout-content-prase').html(html);
|
|
|
|
clearInterval(interval);
|
|
document.querySelector('.progress').style.display = 'none';
|
|
|
|
checkDevice();
|
|
|
|
// Only push to history if not from popstate
|
|
if (!fromPopState) {
|
|
history.pushState({
|
|
page: page,
|
|
path: url,
|
|
nav_id: nav_id
|
|
}, "", url);
|
|
}
|
|
})
|
|
.catch(error => {
|
|
clearInterval(interval);
|
|
document.querySelector('.progress').style.display = 'none';
|
|
console.error('Error:', error);
|
|
});
|
|
|
|
document.querySelectorAll('.nav-link').forEach(el => el.classList.remove('active'));
|
|
if (document.querySelector('.' + nav_id)) {
|
|
document.querySelector('.' + nav_id).classList.add("active");
|
|
}
|
|
|
|
document.title = page + ' - PipraPay';
|
|
}
|
|
|
|
window.addEventListener("popstate", function (event) {
|
|
if (event.state) {
|
|
load_content(event.state.page, event.state.path, event.state.nav_id, true);
|
|
}
|
|
});
|
|
|
|
<?php
|
|
if(isset($_GET['name'])){
|
|
?>
|
|
load_content('Welcome','<?php echo extractPathAndQuery(getCurrentUrl());?>','nav-btn-<?php echo $_GET['name']?>');
|
|
<?php
|
|
}else{
|
|
?>
|
|
load_content('Dashboard','dashboard','nav-btn-dashboard');
|
|
<?php
|
|
}
|
|
?>
|
|
</script>
|
|
</body>
|
|
</html>
|