Panel/themes/MasterControlProgram/conf/sbs_conf.php
2025-09-04 21:42:25 -04:00

219 lines
6 KiB
PHP

<?php
include("../../../includes/helpers.php");
startSession();
$default_conf_params = array(
'style' => 'light',
'background' => 'fire',
'custom_bg' => 'no',
'pace' => 'flash',
'dashboard_rows' => 'default'
);
$pace_loc = "../css/pace.css";
$css_loc = "../css/main.css";
$conf_loc = "./sbs.conf";
$sbs_css_loc = "./sbs.css";
$debug = false; // Set true for Debug in Brower Console
$conf_changes = false; // Declaration
$bg_change = false; // Declaration
$isadmin = false; // Declaration
$conf_params = array(); // Declaration
$rp = realpath(dirname(__FILE__));
$files_to_del = array(
"../modules/tickets/submitticket.css"
);
if($debug){
echo "sbs_conf.php loaded...\n";
echo "POST: ".print_r($_POST, true);
echo "FILES: ".print_r($_FILES, true);
echo "GET: ".print_r($_GET, true);
}
if(!file_exists($pace_loc)){
file_put_contents($pace_loc, '@import url("pace_flash.css");');
echo "Pace File not found. Created new one.\n";
}
if(!file_exists($conf_loc)){
file_put_contents($conf_loc, json_encode($conf_params));
echo "Theme Config not found. Created new one.\n";
$conf_params = $default_conf_params;
}else{
$json = json_decode(file_get_contents($conf_loc));
$new_param = false;
foreach($default_conf_params AS $key => $val)
{
if(!isset($json->{$key})){
$new_param = true;
$conf_params[$key] = $val;
}else{
$conf_params[$key] = $json->{$key};
}
}
if($new_param){
unlink($conf_loc);
file_put_contents($conf_loc, json_encode($conf_params));
echo "New Variable found. Updating Config File.\n";
}
}
if(!file_exists($sbs_css_loc)){
preg_match_all("/background-image: url\((.*)\)/", file_get_contents($css_loc), $css_bg);
file_put_contents($sbs_css_loc, "body {\n\tbackground-image: url(".$css_bg[1][0].") !important;\n}");
echo "Custom CSS not found. Created new one.\n";
}
if($debug){
echo "\$conf_params: ".print_r($conf_params, true);
}
/* *** Remove old Config File *** */
if(file_exists("./theme.config")){ unlink("./theme.config"); }
if(isset($_SESSION['users_group']) && $_SESSION['users_group'] == 'admin')
{
$isadmin = true;
/* *** Set Custom BG *** */
$cbgf = $rp.'/custom_bg';
if(!file_exists($cbgf)){
mkdir($cbgf, 0744, true);
}
if(!empty($_FILES)){
if($_FILES['bg_file']['error']==0){
$validextensions = array("jpeg", "jpg", "png");
$temporary = explode(".", $_FILES["bg_file"]["name"]);
$file_extension = end($temporary);
$file_name = 'custom.'.$file_extension;
$file_complete = $cbgf.'/'.$file_name;
if ((($_FILES["bg_file"]["type"] == "image/png") || ($_FILES["bg_file"]["type"] == "image/jpg") || ($_FILES["bg_file"]["type"] == "image/jpeg")) && in_array($file_extension, $validextensions)) {
if ($_FILES["bg_file"]["error"]==0){
if(file_exists($file_complete)){ unlink($file_complete); }
move_uploaded_file($_FILES['bg_file']['tmp_name'],$file_complete);
$conf_changes = true;
$bg_change = true;
$conf_params['custom_bg'] = $file_name;
if($debug){
echo "Custom BG Uploaded: ".$file_name;
}
}
}
}
}
/* *** Del Custom BG *** */
if(isset($_GET['del_custom_bg'])){
if($conf_params['custom_bg']!='no'){
unlink($cbgf.'/'.$conf_params['custom_bg']);
$conf_changes = true;
$conf_params['custom_bg'] = 'no';
preg_match_all("/background-image: url\((.*)\)/", file_get_contents($css_loc), $css_bg);
file_put_contents($sbs_css_loc, "body {\n\tbackground-image: url(".$css_bg[1][0].") !important;\n}");
if($debug){
echo "Custom BG Deleted.\n";
}
}
}
/* *** Pace Loader *** */
if(isset($_POST['style_loader'])){
if($_POST['style_loader']!=$conf_params['pace']){
$conf_changes = true;
$conf_params['pace'] = $_POST['style_loader'];
if(file_exists($pace_loc)){ unlink($pace_loc); }
file_put_contents($pace_loc, '@import url("pace_'.$_POST['style_loader'].'.css");');
if($debug){
echo "Style Loader Changed into: ".$_POST['style_loader']."\n";
}
}
}
/* *** General Save via Theme Settings *** */
if(isset($_POST['style_tab']))
{
if($_POST['style_tab']!=$conf_params['style'])
{
$conf_changes = true;
$conf_params['style'] = $_POST['style_tab'];
file_put_contents(
$css_loc,
preg_replace(
"/\/\* \*\*\* THEME STYLER \*\*\* \*\/(.*)\/\* \*\*\* THEME STYLER END \*\*\* \*\//s",
"/* *** THEME STYLER *** */\n".file_get_contents("../css/main_".$_POST['style_tab'].".css")."\n/* *** THEME STYLER END *** */",
file_get_contents($css_loc)
)
);
if($debug){
echo "Style changed into: ".$_POST['style_tab']."\n";
echo "Put ../css/main_".$conf_params['style'].".css into ".$css_loc."\n";
}
}
}
/* *** Set Dashboard Rows *** */
if(isset($_POST['dashboard_rows']))
{
if($_POST['dashboard_rows']!=$conf_params['dashboard_rows'])
{
$conf_changes = true;
$conf_params['dashboard_rows'] = $_POST['dashboard_rows'];
if($debug){
echo "Dashboard Rows changed into: ".$_POST['dashboard_rows']."\n";
}
}
}
}
if($conf_params['custom_bg']!='no')
{
change_bg("../conf/custom_bg/".$conf_params['custom_bg']);
}else
{
if(isset($_POST['style_bg']) && $isadmin)
{
if($_POST['style_bg']!=$conf_params['background']){
$conf_changes = true;
$conf_params['background'] = $_POST['style_bg'];
}
}
change_bg("../images/bg/".$conf_params['background'].".jpg");
}
if($conf_changes)
{
unlink($conf_loc);
file_put_contents($conf_loc, json_encode($conf_params));
if($debug){
echo "Found Changes. Rewrote Config File.\n";
}
}
// Delete All Files defined in Array (Cleanup)
foreach($files_to_del AS $fd)
{
if(file_exists($fd))
{
unlink($fd);
if($debug){
echo "File successfully Deleted: ".$fd."\n";
}
}
}
function change_bg($bg_path)
{
Global $sbs_css_loc, $debug, $bg_change;
if(strpos(file_get_contents($sbs_css_loc), $bg_path)===false Or $bg_change)
{
file_put_contents($sbs_css_loc, preg_replace("/background-image: url\((.*)\)/", "background-image: url(".$bg_path.")", file_get_contents($sbs_css_loc)));
if($debug){
echo "BG has been changed to: ".$bg_path.". Replaced it in ".$sbs_css_loc."\n";
}
}
}