diff --git a/onedrive-index-theme/README.md b/onedrive-index-theme/README.md new file mode 100644 index 0000000..95b8f9e --- /dev/null +++ b/onedrive-index-theme/README.md @@ -0,0 +1,12 @@ +## 说明 + +这是为 onedrive 云盘程序[OneManager](https://github.com/qkqpttgf/OneManager-php)写的一个简单的 css 主题,参考了 OneIndex 的主题样式,对应 OneManager 程序版本为[21b966b43747b60ab9fb8b62c42a361379b8b53b](https://github.com/qkqpttgf/OneManager-php/tree/21b966b43747b60ab9fb8b62c42a361379b8b53b) + +## 预览 + +![](https://files.catbox.moe/nltur7.png) +![](https://files.catbox.moe/zvatil.png) + +## 使用 + +向程序 theme 文件夹里添加 onemoe.php 文件,网站后台切换主题即可,更多细节请访问[我的博客](https://www.2bboy.com/archives/154.html)。 diff --git a/onedrive-index-theme/onemoe.css b/onedrive-index-theme/onemoe.css new file mode 100644 index 0000000..2d33add --- /dev/null +++ b/onedrive-index-theme/onemoe.css @@ -0,0 +1,247 @@ +body { + font: 400 1em Helvetica Neue, Helvetica, Arial, Microsoft Yahei, Hiragino Sans GB, Heiti SC, WenQuanYi Micro Hei, sans-serif; + margin: auto; + max-width: 960px; + display: flex; + flex-direction: column; + background-color: #f2f5fa; +} +body a.login, +body li.operate { + color: #339999; + position: relative; + list-style: none; + width: 50px; +} +body a.login ion-icon, +body li.operate ion-icon { + vertical-align: middle; +} +body a.login ul, +body li.operate ul { + list-style-type: none; + display: none; +} +body a.login ul li, +body li.operate ul li { + padding: 5px 5px; + background-color: #ddd; + z-index: 999; +} +body li.operate:hover ul { + display: flex; + position: absolute; + top: 3px; + left: 5px; +} +body div[style="padding:1px"] { + height: 40px; +} +body div.operatediv { + position: fixed; + background-color: #ddd; + border: solid 1px blueviolet; + box-shadow: 0 0 10px blueviolet; + border-radius: 10px; +} +body div.operatediv div { + display: flex; +} +body div.operatediv div a.operatediv_close { + width: 20%; + border: solid 1px blueviolet; + border-radius: 10px; + margin: auto; + text-align: center; + font-size: large; + margin: auto 20px; +} +body div.operatediv div a.operatediv_close:hover { + background-color: rgba(137, 43, 226, 0.5); + cursor: pointer; +} +body div.operatediv div center { + width: 70%; +} +body div.mask { + display: none; +} +body h1.title { + margin: auto; +} +body h1.title a { + font-family: Cursive; + text-decoration: none; + color: #3290e7; + text-shadow: 2px 2px 3px #ccccff; +} +body h1.title a:hover { + text-shadow: none; +} +body select.changelanguage { + display: none; +} +body div.list-wrapper#head-div div.list-header-container { + margin-top: 20px; +} +body div.list-wrapper#head-div div.list-header-container div.readme svg, +body div.list-wrapper#head-div div.list-header-container div.readme span { + display: none; +} +body div.list-wrapper#head-div div.list-header-container div.readme p { + font-size: large; + padding: 0 20px; +} +body div.list-wrapper#list-div { + border-radius: 5px; + border: solid 5px rgba(137, 43, 226, 0.2); + background-color: #cccccc36; + margin-top: 40px; +} +body div.list-wrapper#list-div div.list-header-container { + height: 40px; + border-radius: 0; + border-bottom: dashed 1px rgba(59, 66, 107, 0.2); + display: flex; + align-items: center; + background-color: #eee; +} +body div.list-wrapper#list-div div.list-header-container a.back-link { + margin-left: 20px; +} +body div.list-wrapper#list-div div.list-header-container a.back-link ion-icon { + color: #339999; + width: 25px; + height: 25px; +} +body div.list-wrapper#list-div div.list-header-container h3.table-header, +body div.list-wrapper#list-div div.list-header-container h3.table-header a { + color: #339999; + margin-left: 20px; + font-style: italic; +} +body div.list-wrapper#list-div div.list-header-container h3.table-header a { + margin-left: 0; + text-decoration: none; +} +body div.list-wrapper#list-div div.list-body-container table.list-table { + margin: auto; + box-sizing: border-box; + width: 100%; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody { + margin: auto; + display: flex; + flex-direction: column; + align-items: center; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr { + width: 96%; + background-color: #fff; + margin: 4px 0; + border: solid 1px #ddd; + border-radius: 5px; + display: flex; + justify-content: space-between; + align-items: center; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td, +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th { + height: 3em; + margin: 0 5px; + box-sizing: border-box; + align-items: center; + display: flex; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td li, +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th li { + list-style: none; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td a, +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th a { + max-width: 60%; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th { + height: 2em; + font-weight: bold; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td:first-of-type, +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th:first-of-type { + width: 50%; + margin-left: 10px; + float: left; + justify-content: flex-start; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td:first-of-type a, +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th:first-of-type a { + color: #333; + margin-left: 5px; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td:nth-of-type(2), +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th:nth-of-type(2) { + width: 30%; + float: right; + justify-content: flex-end; + text-align: right; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td:last-of-type, +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th:last-of-type { + width: 20%; + margin-right: 10px; + float: right; + justify-content: flex-end; + text-align: right; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr:not(:first-of-type):hover { + background-color: #ccffcc8c; +} +body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr:first-of-type { + border: none; + background-color: #cccccc00; +} +body div.list-wrapper#list-div div.list-body-container div#upload_div center { + margin-top: 10px; + height: 40px; + display: flex; + justify-content: space-around; + align-items: center; +} +body div.list-wrapper#list-div div.list-body-container div#upload_div center input { + vertical-align: middle; + height: 25px; + min-width: 50px; + border: dotted 1px dimgrey; + border-radius: 4px; + box-sizing: border-box; + background-color: gainsboro; +} +body div.list-wrapper#list-div div.list-body-container div#upload_div center input:hover { + color: #339999; + box-shadow: 0 0 10px cornflowerblue; +} +body div.list-wrapper#list-div:hover { + box-shadow: 0 0 10px rgba(137, 43, 226, 0.25); +} +body div.list-wrapper:nth-of-type(4) { + width: 100%; + margin: 50px auto 50px; + box-sizing: border-box; + border-radius: 3px; + border: solid 5px rgba(137, 43, 226, 0.2); +} +body div.list-wrapper:nth-of-type(4) div.readme { + background-color: #f2f5fa; +} +body div.list-wrapper:nth-of-type(4) div.readme svg, +body div.list-wrapper:nth-of-type(4) div.readme span { + display: none; +} +body div.list-wrapper:nth-of-type(4) div.readme div.markdown-body { + margin: 10px 25px; +} +body div.list-wrapper:nth-of-type(4):hover { + box-shadow: 0 0 10px rgba(137, 43, 226, 0.25); +} diff --git a/onedrive-index-theme/onemoe.less b/onedrive-index-theme/onemoe.less new file mode 100644 index 0000000..f7a13e3 --- /dev/null +++ b/onedrive-index-theme/onemoe.less @@ -0,0 +1,267 @@ +body { + font: 400 1em Helvetica Neue, Helvetica, Arial, Microsoft Yahei, + Hiragino Sans GB, Heiti SC, WenQuanYi Micro Hei, sans-serif; + margin: auto; + max-width: 960px; + display: flex; + flex-direction: column; + background-color: #f2f5fa; + // 管理 + a.login, + li.operate { + color: #339999; + position: relative; + list-style: none; + width: 50px; + ion-icon { + vertical-align: middle; + } + ul { + list-style-type: none; + display: none; + li { + padding: 5px 5px; + background-color: #ddd; + z-index: 999; + } + } + } + li.operate:hover ul { + display: flex; + position: absolute; + top: 3px; + left: 5px; + } + // 登录 + div[style="padding:1px"] { + height: 40px; + } + div.operatediv { + position: fixed; + background-color: #ddd; + border: solid 1px blueviolet; + box-shadow: 0 0 10px blueviolet; + border-radius: 10px; + div { + display: flex; + a.operatediv_close { + width: 20%; + border: solid 1px blueviolet; + border-radius: 10px; + margin: auto; + text-align: center; + font-size: large; + margin: auto 20px; + } + a.operatediv_close:hover { + background-color: rgba(137, 43, 226, 0.5); + cursor: pointer; + } + center { + width: 70%; + // border: solid 1px blueviolet; + } + } + } + div.mask { + display: none; + } + // 标题 + h1.title { + margin: auto; + // margin-top: 20px; + a { + font-family: Cursive; + text-decoration: none; + color: rgb(50, 144, 231); + text-shadow: 2px 2px 3px #ccccff; + } + a:hover { + text-shadow: none; + } + } + // 语言 + select.changelanguage { + display: none; + } + // head.md + div.list-wrapper#head-div { + div.list-header-container { + margin-top: 20px; + div.readme { + svg, + span { + display: none; + } + p { + font-size: large; + padding: 0 20px; + } + } + } + } + + // 主体 + div.list-wrapper#list-div { + border-radius: 5px; + border: solid 5px rgba(137, 43, 226, 0.2); + background-color: #cccccc36; + margin-top: 40px; + // 文件路径 + div.list-header-container { + height: 40px; + border-radius: 0; + border-bottom: dashed 1px rgba(59, 66, 107, 0.2); + display: flex; + align-items: center; + background-color: #eee; + a.back-link { + margin-left: 20px; + ion-icon { + color: #339999; + width: 25px; + height: 25px; + } + } + h3.table-header, + h3.table-header a { + color: #339999; + margin-left: 20px; + font-style: italic; + } + h3.table-header a { + margin-left: 0; + text-decoration: none; + } + } + // 表格 + div.list-body-container { + table.list-table { + margin: auto; + box-sizing: border-box; + width: 100%; + tbody { + margin: auto; + display: flex; + flex-direction: column; + align-items: center; + tr { + width: 96%; + // 文件背景色 + background-color: #fff; + margin: 4px 0; + border: solid 1px #ddd; + border-radius: 5px; + display: flex; + justify-content: space-between; + align-items: center; + // transition: 0.3s; + td, + th { + height: 3em; + // font-size: 1.1em; + margin: 0 5px; + box-sizing: border-box; + align-items: center; + display: flex; + li { + list-style: none; + } + a { + max-width: 60%; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + } + } + th { + height: 2em; + font-weight: bold; + } + td:first-of-type, + th:first-of-type { + width: 50%; + margin-left: 10px; + float: left; + justify-content: flex-start; + a { + color: #333; + margin-left: 5px; + } + } + td:nth-of-type(2), + th:nth-of-type(2) { + width: 30%; + float: right; + justify-content: flex-end; + text-align: right; + } + td:last-of-type, + th:last-of-type { + width: 20%; + margin-right: 10px; + float: right; + justify-content: flex-end; + text-align: right; + } + } + tr:not(:first-of-type):hover { + background-color: #ccffcc8c; + } + tr:first-of-type { + border: none; + background-color: #cccccc00; + } + } + } + // 上传 + div#upload_div { + center { + margin-top: 10px; + height: 40px; + display: flex; + justify-content: space-around; + align-items: center; + input { + vertical-align: middle; + height: 25px; + min-width: 50px; + border: dotted 1px dimgrey; + border-radius: 4px; + box-sizing: border-box; + background-color: gainsboro; + } + input:hover { + color: #339999; + box-shadow: 0 0 10px cornflowerblue; + } + } + } + } + } + // 阴影 + div.list-wrapper#list-div:hover { + box-shadow: 0 0 10px rgba(137, 43, 226, 0.25); + } + // 底部readme + div.list-wrapper:nth-of-type(4) { + width: 100%; + margin: 50px auto 50px; + box-sizing: border-box; + border-radius: 3px; + border: solid 5px rgba(137, 43, 226, 0.2); + div.readme { + background-color: #f2f5fa; + svg, + span { + display: none; + } + div.markdown-body { + margin: 10px 25px; + } + } + } + div.list-wrapper:nth-of-type(4):hover { + box-shadow: 0 0 10px rgba(137, 43, 226, 0.25); + } +} diff --git a/yj2j9c.css b/onedrive-index-theme/onemoe.min.css similarity index 100% rename from yj2j9c.css rename to onedrive-index-theme/onemoe.min.css diff --git a/onedrive-index-theme/onemoe.php b/onedrive-index-theme/onemoe.php new file mode 100644 index 0000000..9d64f0c --- /dev/null +++ b/onedrive-index-theme/onemoe.php @@ -0,0 +1,1157 @@ + + + + + <?php echo $pretitle;?> - <?php echo $_SERVER['sitename'];?> + + + + + + + + + + + +
+ + + +
  • + +   + +
    + +
    + +

    + +

    +
    +
    +
    + + + + + +

    +
    +
    + +
    +
    + + +
    +
    +' . $files['error']['message'] . '
    '; + $statusCode=404; + } else { + if (isset($files['file'])) { +?> +
    +
    + +   +
    +
    +document.getElementById(\'url\').offsetWidth) this.style.width=\'100%\';" /> +'; + } elseif (in_array($ext, $exts['video'])) { + //echo ''; + $DPvideo=$files['@microsoft.graph.downloadUrl']; + echo '
    +'; + } elseif (in_array($ext, $exts['music'])) { + echo ' +'; + } elseif (in_array($ext, ['pdf'])) { + /*echo ' + +';*/ + $pdfurl = $files['@microsoft.graph.downloadUrl']; + echo '
    +'; + } elseif (in_array($ext, $exts['office'])) { + echo ' +'; + } elseif (in_array($ext, $exts['txt'])) { + $txtstr = htmlspecialchars(curl_request($files['@microsoft.graph.downloadUrl'])['body']); +?> +
    + +
    + +     + + + +'; ?> +
    + + +
    +'; + } else { + echo ''.getconstStr('FileNotSupport').''; + } ?> +
    +
    + + + + + + + + + + + + + + +'; + foreach ($files['children'] as $file) { + // Files + if (isset($file['file'])) { + if ($_SERVER['admin'] or (substr($file['name'],0,1) !== '.' and $file['name'] !== getConfig('passfile') ) ) { + if (strtolower($file['name']) === 'head.md') $head = $file; + if (strtolower($file['name']) === 'readme.md') $readme = $file; + if (strtolower($file['name']) === 'index.html' && !$_SERVER['admin']) { + $html = curl_request(fetch_files(spurlencode(path_format($path . '/' .$file['name']),'/'))['@microsoft.graph.downloadUrl'])['body']; + return output($html,200); + } + $filenum++; ?> + + + + + + +
       
    + +
  • +
      +
    • +
    • +
    • +
    • +
    +
  •     + + + +
    + +
  • +
      +
    • +
    • +
    • +
    +
  •     + + + + + + + + + + + + + + + + + + + + + + + +
    +200) { + $pagenum = $files['folder']['page']; + $maxpage = ceil($files['folder']['childCount']/200); + $prepagenext = ' + + + + + + + + +
    '; + if ($pagenum!=1) { + $prepagenum = $pagenum-1; + $prepagenext .= ' + '.getconstStr('PrePage').''; + } + $prepagenext .= ' + '; + for ($page=1;$page<=$maxpage;$page++) { + if ($page == $pagenum) { + $prepagenext .= ' + ' . $page . ' '; + } else { + $prepagenext .= ' + ' . $page . ' '; + } + } + $prepagenext = substr($prepagenext,0,-1); + $prepagenext .= ' + '; + if ($pagenum!=$maxpage) { + $nextpagenum = $pagenum+1; + $prepagenext .= ' + '.getconstStr('NextPage').''; + } + $prepagenext .= ' +
    + '; + echo $prepagenext; + } + if ($_SERVER['admin']) { ?> +
    +
    + + +
    +
    + +
    + +
    +
    +
    +
    + + '.$head['name'].' + +
    +'; + } + if ($readme) { + echo ' +
    +
    +
    +
    +
    +
    +
    + + '.$readme['name'].' +
    + +
    +
    +'; + } + } + } else { + echo ' +
    +
    +
    + + +
    +
    +
    '; + $statusCode = 401; + } + } ?> +
    +
    +
    + + +
    + + + + + +
    + + + + + + + + + + + + + diff --git a/onedrive-index-theme/yj2j9c.css b/onedrive-index-theme/yj2j9c.css new file mode 100644 index 0000000..d0036d5 --- /dev/null +++ b/onedrive-index-theme/yj2j9c.css @@ -0,0 +1 @@ +body{font:400 1em Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif;margin:auto;max-width:960px;display:flex;flex-direction:column;background-color:#f2f5fa}body a.login,body li.operate{color:#399;position:relative;list-style:none;width:50px}body a.login ion-icon,body li.operate ion-icon{vertical-align:middle}body a.login ul,body li.operate ul{list-style-type:none;display:none}body a.login ul li,body li.operate ul li{padding:5px 5px;background-color:#ddd;z-index:999}body li.operate:hover ul{display:flex;position:absolute;top:3px;left:5px}body div[style="padding:1px"]{height:40px}body div.operatediv{position:fixed;background-color:#ddd;border:solid 1px #8a2be2;box-shadow:0 0 10px #8a2be2;border-radius:10px}body div.operatediv div{display:flex}body div.operatediv div a.operatediv_close{width:20%;border:solid 1px #8a2be2;border-radius:10px;margin:auto;text-align:center;font-size:large;margin:auto 20px}body div.operatediv div a.operatediv_close:hover{background-color:rgba(137,43,226,.5);cursor:pointer}body div.operatediv div center{width:70%}body div.mask{display:none}body h1.title{margin:auto}body h1.title a{font-family:Cursive;text-decoration:none;color:#3290e7;text-shadow:2px 2px 3px #ccf}body h1.title a:hover{text-shadow:none}body select.changelanguage{display:none}body div.list-wrapper#head-div div.list-header-container{margin-top:20px}body div.list-wrapper#head-div div.list-header-container div.readme span,body div.list-wrapper#head-div div.list-header-container div.readme svg{display:none}body div.list-wrapper#head-div div.list-header-container div.readme p{font-size:large;padding:0 20px}body div.list-wrapper#list-div{border-radius:5px;border:solid 5px rgba(137,43,226,.2);background-color:#cccccc36;margin-top:40px}body div.list-wrapper#list-div div.list-header-container{height:40px;border-radius:0;border-bottom:dashed 1px rgba(59,66,107,.2);display:flex;align-items:center;background-color:#eee}body div.list-wrapper#list-div div.list-header-container a.back-link{margin-left:20px}body div.list-wrapper#list-div div.list-header-container a.back-link ion-icon{color:#399;width:25px;height:25px}body div.list-wrapper#list-div div.list-header-container h3.table-header,body div.list-wrapper#list-div div.list-header-container h3.table-header a{color:#399;margin-left:20px;font-style:italic}body div.list-wrapper#list-div div.list-header-container h3.table-header a{margin-left:0;text-decoration:none}body div.list-wrapper#list-div div.list-body-container table.list-table{margin:auto;box-sizing:border-box;width:100%}body div.list-wrapper#list-div div.list-body-container table.list-table tbody{margin:auto;display:flex;flex-direction:column;align-items:center}body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr{width:96%;background-color:#fff;margin:4px 0;border:solid 1px #ddd;border-radius:5px;display:flex;justify-content:space-between;align-items:center}body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td,body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th{height:3em;margin:0 5px;box-sizing:border-box;align-items:center;display:flex}body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td li,body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th li{list-style:none}body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td a,body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th a{max-width:60%;text-decoration:none;overflow:hidden;text-overflow:ellipsis}body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th{height:2em;font-weight:700}body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td:first-of-type,body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th:first-of-type{width:50%;margin-left:10px;float:left;justify-content:flex-start}body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td:first-of-type a,body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th:first-of-type a{color:#333;margin-left:5px}body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td:nth-of-type(2),body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th:nth-of-type(2){width:30%;float:right;justify-content:flex-end;text-align:right}body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr td:last-of-type,body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr th:last-of-type{width:20%;margin-right:10px;float:right;justify-content:flex-end;text-align:right}body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr:not(:first-of-type):hover{background-color:#ccffcc8c}body div.list-wrapper#list-div div.list-body-container table.list-table tbody tr:first-of-type{border:none;background-color:#cccccc00}body div.list-wrapper#list-div div.list-body-container div#upload_div center{margin-top:10px;height:40px;display:flex;justify-content:space-around;align-items:center}body div.list-wrapper#list-div div.list-body-container div#upload_div center input{vertical-align:middle;height:25px;min-width:50px;border:dotted 1px #696969;border-radius:4px;box-sizing:border-box;background-color:#dcdcdc}body div.list-wrapper#list-div div.list-body-container div#upload_div center input:hover{color:#399;box-shadow:0 0 10px #6495ed}body div.list-wrapper#list-div:hover{box-shadow:0 0 10px rgba(137,43,226,.25)}body div.list-wrapper:nth-of-type(4){width:100%;margin:50px auto 50px;box-sizing:border-box;border-radius:3px;border:solid 5px rgba(137,43,226,.2)}body div.list-wrapper:nth-of-type(4) div.readme{background-color:#f2f5fa}body div.list-wrapper:nth-of-type(4) div.readme span,body div.list-wrapper:nth-of-type(4) div.readme svg{display:none}body div.list-wrapper:nth-of-type(4) div.readme div.markdown-body{margin:10px 25px}body div.list-wrapper:nth-of-type(4):hover{box-shadow:0 0 10px rgba(137,43,226,.25)} \ No newline at end of file