Source code of filesite.io.
https://filesite.io
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.
171 lines
6.4 KiB
171 lines
6.4 KiB
<div class="menu"> |
|
<?php |
|
$selectedId = $viewData['cateId']; |
|
$breadcrumbs = !empty($viewData['breadcrumbs']) ? $viewData['breadcrumbs'] : []; |
|
if (!empty($viewData['menus'])) { //只显示第一级目录 |
|
foreach($viewData['menus'] as $index => $item) { |
|
$selected = $item['id'] == $selectedId || (!empty($breadcrumbs) && $item['id'] == $breadcrumbs[0]['id']) ? 'selected' : ''; |
|
echo <<<eof |
|
<a href="/?id={$item['id']}" class="{$selected}">{$item['directory']}</a> |
|
eof; |
|
} |
|
} |
|
?> |
|
</div> |
|
|
|
<div class="hr"></div> |
|
|
|
<?php |
|
if (!empty($breadcrumbs)) { |
|
echo <<<eof |
|
<div class="breadcrumbs"> |
|
<small>当前位置:</small> |
|
eof; |
|
|
|
foreach($breadcrumbs as $bread) { |
|
if ($bread['id'] != $selectedId) { |
|
echo <<<eof |
|
<a href="{$bread['url']}">{$bread['name']}</a> / |
|
eof; |
|
}else { |
|
echo <<<eof |
|
<strong>{$bread['name']}</strong> |
|
eof; |
|
} |
|
} |
|
|
|
echo <<<eof |
|
</div> |
|
eof; |
|
} |
|
?> |
|
|
|
<div class="content"> |
|
<?php |
|
$imgExts = !empty(FSC::$app['config']['supportedImageExts']) ? FSC::$app['config']['supportedImageExts'] : array('jpg', 'jpeg', 'png', 'webp', 'gif'); |
|
$category = !empty($viewData['scanResults'][$selectedId]) ? $viewData['scanResults'][$selectedId] : []; |
|
|
|
//当前目录的描述介绍 |
|
if (!empty($category['description'])) { |
|
echo <<<eof |
|
<p class="catedesc">{$category['description']}</p> |
|
eof; |
|
} |
|
|
|
//当前目录的readme详细介绍 |
|
if (!empty($viewData['htmlCateReadme'])) { |
|
echo <<<eof |
|
<div class="cateinfo markdown-body">{$viewData['htmlCateReadme']}</div> |
|
eof; |
|
} |
|
|
|
if (!empty($category['directories'])) { //两级目录支持 |
|
foreach($category['directories'] as $dir) { |
|
echo <<<eof |
|
<a href="{$dir['path']}" class="img-item"> |
|
eof; |
|
|
|
if (!empty($dir['snapshot'])) { |
|
echo <<<eof |
|
<img data-src="{$dir['snapshot']}" class="lazyload" alt="{$dir['directory']}"> |
|
eof; |
|
}else if (!empty($dir['files'])) { |
|
$first_img = array_shift($dir['files']); |
|
if (!in_array($first_img['extension'], $imgExts)) { |
|
foreach($dir['files'] as $file) { |
|
if (in_array($file['extension'], $imgExts)) { |
|
$first_img = $file; |
|
break; |
|
} |
|
} |
|
} |
|
|
|
if (in_array($first_img['extension'], $imgExts)) { |
|
echo <<<eof |
|
<img data-src="{$first_img['path']}" class="lazyload" alt="{$first_img['filename']}"> |
|
eof; |
|
}else { |
|
echo <<<eof |
|
<img src="/img/default.png" alt="default image"> |
|
eof; |
|
} |
|
} |
|
|
|
$title = !empty($dir['title']) ? $dir['title'] : $dir['directory']; |
|
echo <<<eof |
|
<strong>{$title}</strong> |
|
</a> |
|
eof; |
|
} |
|
} |
|
|
|
if (!empty($category['files'])) { //一级目录支持 |
|
foreach($category['files'] as $file) { |
|
if (!in_array($file['extension'], $imgExts)) {continue;} |
|
|
|
$title = !empty($file['title']) ? $file['title'] : $file['filename']; |
|
echo <<<eof |
|
<a href="{$file['path']}" class="img-item img-preview" target="_blank"> |
|
<img data-src="{$file['path']}" class="lazyload" alt="{$file['filename']}"> |
|
<strong>{$title}</strong> |
|
</a> |
|
eof; |
|
} |
|
} |
|
?> |
|
</div> |
|
|
|
<?php if (!empty($viewData['mp3File'])) { ?> |
|
<audio autoplay controls loop preload="auto" id="music" class="hide"> |
|
<source src="<?=$viewData['mp3File']['path']?>" type="audio/mpeg"> |
|
Your browser does not support the audio element. |
|
</audio> |
|
<div class="mbtns" onclick="playMusic()"> |
|
<div class="mbtn playing hide" id="btn_playing"> |
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-cassette-fill" viewBox="0 0 16 16"> |
|
<path d="M1.5 2A1.5 1.5 0 0 0 0 3.5v9A1.5 1.5 0 0 0 1.5 14h.191l1.862-3.724A.5.5 0 0 1 4 10h8a.5.5 0 0 1 .447.276L14.31 14h.191a1.5 1.5 0 0 0 1.5-1.5v-9A1.5 1.5 0 0 0 14.5 2h-13ZM4 7a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm8 0a1 1 0 1 1 0-2 1 1 0 0 1 0 2ZM6 6a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2H7a1 1 0 0 1-1-1Z"/> |
|
<path d="m13.191 14-1.5-3H4.309l-1.5 3h10.382Z"/> |
|
</svg> |
|
</div> |
|
<div class="mbtn paused" id="btn_paused"> |
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-cassette" viewBox="0 0 16 16"> |
|
<path d="M4 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm9-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM7 6a1 1 0 0 0 0 2h2a1 1 0 1 0 0-2H7Z"/> |
|
<path d="M1.5 2A1.5 1.5 0 0 0 0 3.5v9A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5v-9A1.5 1.5 0 0 0 14.5 2h-13ZM1 3.5a.5.5 0 0 1 .5-.5h13a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-.691l-1.362-2.724A.5.5 0 0 0 12 10H4a.5.5 0 0 0-.447.276L2.19 13H1.5a.5.5 0 0 1-.5-.5v-9ZM11.691 11l1 2H3.309l1-2h7.382Z"/> |
|
</svg> |
|
</div> |
|
</div> |
|
<script> |
|
function playMusic() { |
|
var mp3 = document.getElementById('music'); |
|
var playingBtn = document.getElementById('btn_playing'), |
|
pausedBtn = document.getElementById('btn_paused'); |
|
try { |
|
if (mp3.paused) { |
|
mp3.play(); |
|
mp3.volume = 0.5; |
|
playingBtn.className = playingBtn.className.replace(' hide', ''); |
|
pausedBtn.className = pausedBtn.className.replace(' hide', '') + ' hide'; |
|
}else { |
|
mp3.pause(); |
|
pausedBtn.className = pausedBtn.className.replace(' hide', ''); |
|
playingBtn.className = playingBtn.className.replace(' hide', '') + ' hide'; |
|
} |
|
}catch(e){} |
|
} |
|
|
|
function detectMusicAutoPlaying() { |
|
var mp3 = document.getElementById('music'); |
|
var playingBtn = document.getElementById('btn_playing'), |
|
pausedBtn = document.getElementById('btn_paused'); |
|
try { |
|
if (!mp3.paused) { |
|
mp3.volume = 0.5; |
|
playingBtn.className = pausedBtn.className.replace(' hide', ''); |
|
pausedBtn.className = playingBtn.className.replace(' hide', '') + ' hide'; |
|
if (typeof(timer) != 'undefined') {clearInterval(timer);} |
|
} |
|
}catch(e){} |
|
} |
|
var timer = setInterval(detectMusicAutoPlaying, 50); |
|
</script> |
|
<?php } ?>
|