From 8d961d72de4d7cb7793d98d7eb49fddb52bd18f2 Mon Sep 17 00:00:00 2001
From: qkqpttgf <45693631+qkqpttgf@users.noreply.github.com>
Date: Sun, 24 May 2020 15:07:56 +0800
Subject: [PATCH] customTheme (url)
---
common.php | 71 ++++++++++++++++++++++++++++++++++++++----------------
1 file changed, 50 insertions(+), 21 deletions(-)
diff --git a/common.php b/common.php
index a8e8f63..6bb25db 100644
--- a/common.php
+++ b/common.php
@@ -18,6 +18,7 @@ $Base64Env = [
'sitename',
'customScript',
'customCss',
+ 'customTheme',
//'theme',
//'Drive_ver',
//'Drive_custom',
@@ -52,6 +53,7 @@ $CommonEnv = [
'sitename',
'customScript',
'customCss',
+ 'customTheme',
'theme',
];
@@ -71,6 +73,7 @@ $ShowedCommonEnv = [
'sitename',
'customScript',
'customCss',
+ 'customTheme',
'theme',
];
@@ -175,8 +178,6 @@ function main($path)
$_SERVER['timezone'] = getConfig('timezone');
if (isset($_COOKIE['timezone'])&&$_COOKIE['timezone']!='') $_SERVER['timezone'] = $_COOKIE['timezone'];
if ($_SERVER['timezone']=='') $_SERVER['timezone'] = 0;
- if (isset($_COOKIE['theme'])&&$_COOKIE['theme']!='') $_SERVER['theme'] = $_COOKIE['theme'];
- else $_SERVER['theme'] = getConfig('theme');
$_SERVER['PHP_SELF'] = path_format($_SERVER['base_path'] . $path);
if (getConfig('admin')=='') return install();
@@ -989,6 +990,7 @@ function adminoperate($path)
$path1 = path_format($_SERVER['list_path'] . path_format($path));
if ($path1!='/'&&substr($path1,-1)=='/') $path1=substr($path1,0,-1);
savecache('path_' . $path1 . '/?password', '', 1);
+ savecache('customTheme', '', 1);
return message('', getconstStr('RefreshCache'), 302);
}
return $tmparr;
@@ -1750,18 +1752,40 @@ function render_list($path = '', $files = '')
Github: https://github.com/qkqpttgf/OneManager-php
-->';
- //$theme = getConfig('theme');
- $theme = $_SERVER['theme'];
- if ( $theme=='' || !file_exists('theme/'.$theme) ) $theme = 'classic.html';
+
+ if (isset($_COOKIE['theme'])&&$_COOKIE['theme']!='') $theme = $_COOKIE['theme'];
+ if ( $theme=='' ) {
+ $tmp = getConfig('customTheme');
+ if ( $tmp!='' ) $theme = $tmp;
+ }
+ if ( $theme=='' ) {
+ $theme = getConfig('theme');
+ if ( $theme=='' || !file_exists('theme/'.$theme) ) $theme = 'classic.html';
+ }
if (substr($theme,-4)=='.php') {
@ob_start();
include 'theme/'.$theme;
$html = ob_get_clean();
} else {
- $file_path = 'theme/'.$theme;
- $fp = fopen($file_path,"r");
- $html = fread($fp,filesize($file_path));
- fclose($fp);
+ if (file_exists('theme/'.$theme)) {
+ $file_path = 'theme/'.$theme;
+ $html = file_get_contents($file_path);
+ } else {
+ if (!($html = getcache('customTheme'))) {
+ $file_path = $theme;
+ $tmp = curl_request($file_path, false, [], 1);
+ if ($tmp['stat']==302) {
+ error_log(json_encode($tmp));
+ $tmp = curl_request($tmp["returnhead"]["Location"]);
+ }
+ if (!!$tmp['body']) $html = $tmp['body'];
+ savecache('customTheme', $html, 9999);
+ }
+
+ }
+ //$fp = fopen($file_path,"r");
+ //$html = fread($fp,filesize($file_path));
+ //fclose($fp);
$tmp = splitfirst($html, '');
$html = $tmp[0];
@@ -2009,17 +2033,19 @@ function render_list($path = '', $files = '')
//$FolderListStr = str_replace('', path_format($_SERVER['base_disk_path'] . '/' . $path . '/' . str_replace('&','&', $file['name'])), $FolderListStr);
$FolderListStr = str_replace('', time_format($file['lastModifiedDateTime']), $FolderListStr);
$FolderListStr = str_replace('', size_format($file['size']), $FolderListStr);
- foreach ($IconValues as $key1 => $value1) {
- if (isset($exts[$key1])&&in_array($ext, $exts[$key1])) {
- $FolderListStr = str_replace('', $value1, $FolderListStr);
+ if (!!$IconValues) {
+ foreach ($IconValues as $key1 => $value1) {
+ if (isset($exts[$key1])&&in_array($ext, $exts[$key1])) {
+ $FolderListStr = str_replace('', $value1, $FolderListStr);
+ }
+ if ($ext==$key1) {
+ $FolderListStr = str_replace('', $value1, $FolderListStr);
+ }
+ //error_log('file:'.$file['name'].':'.$key1);
+ if (!strpos($FolderListStr, '')) break;
}
- if ($ext==$key1) {
- $FolderListStr = str_replace('', $value1, $FolderListStr);
- }
- //error_log('file:'.$file['name'].':'.$key1);
- if (!strpos($FolderListStr, '')) break;
+ if (strpos($FolderListStr, '')) $FolderListStr = str_replace('', $IconValues['default'], $FolderListStr);
}
- if (strpos($FolderListStr, '')) $FolderListStr = str_replace('', $IconValues['default'], $FolderListStr);
while (strpos($FolderListStr, '')) $FolderListStr = str_replace('', $filenum, $FolderListStr);
$html .= $FolderListStr;
}
@@ -2236,7 +2262,7 @@ function render_list($path = '', $files = '')
$folder1 = $tmp1[0];
if ($folder1!='') {
$tmp_url .= $folder1 . '/';
- $PathArrayStr1 = str_replace('', $tmp_url, $PathArrayStr);
+ $PathArrayStr1 = str_replace('', (isset($files['file'])?'':$tmp_url), $PathArrayStr);
$PathArrayStr1 = str_replace('', $folder1, $PathArrayStr1);
$html .= $PathArrayStr1;
}
@@ -2321,7 +2347,7 @@ function render_list($path = '', $files = '')
$html .= $MultiDiskArea . $tmp[1];
$diskname = getConfig('diskname');
if ($diskname=='') $diskname = $_SERVER['disktag'];
- if (strlen($diskname)>10) $diskname = substr($diskname, 0, 7).'...';
+ if (strlen($diskname)>15) $diskname = substr($diskname, 0, 12).'...';
while (strpos($html, '')) $html = str_replace('', $diskname, $html);
$tmp = splitfirst($html, '');
@@ -2467,8 +2493,11 @@ function render_list($path = '', $files = '')
';
foreach ($theme_arr as $v1) {
if ($v1!='.' && $v1!='..') $html .= '
- ';
+ ';
}
+ //$tmp = getConfig('customTheme');
+ //if ($tmp!='') $html .= '
+ // ';
$html .= '