check_request('ix','/^[^\/]+$/','');
if ($request__ix == '') {
// ディレクトリインデックスを出力
$dirs = array();
$files = scandir(PATH_COMIC);
foreach ($files as $one) {
if (is_dir(PATH_COMIC.'/'.$one) && $one!='.' && $one!='..') {
$dirs[get_dir_index($one)][] = $one;
}
}
$comic = '';
$index = array();
$idx = 0;
foreach ($dirs as $var => $val) {
$index[] = ''.$var.'';
$series = '';
foreach ($val as $one) {
$hash = md5($one);
file_put_contents(PATH_CACHE_IX.'/'.$hash.CACHE_IX_EXT_DIR,$one);
$series .= '
'.htmlspecialchars($one).'';
}
$comic .= ''.htmlspecialchars($var).'
';
$comic .= '';
$idx++;
}
$my_html->set_value('indexlist',implode('|',$index));
$my_html->set_value('comiclist',$comic);
} else {
// ファイルリストを出力
$dir = file_get_contents(PATH_CACHE_IX.'/'.$request__ix.CACHE_IX_EXT_DIR);
$files = scandir(PATH_COMIC.'/'.$dir);
$html = '↵戻る';
$html .= ''.htmlspecialchars($dir).'
';
$html .= '';
foreach ($files as $one) {
if (preg_match('/.+\.zip$/usi',$one)) {
$path = $dir.'/'.$one;
$hash = md5($path);
file_put_contents(PATH_CACHE_IX.'/'.$hash.CACHE_IX_EXT_ZIP,$path);
// ブックマークリストを作成する
$bookmark = '';
if (file_exists(PATH_CACHE_IX.'/'.$hash.CACHE_IX_EXT_CX)) {
$cx = file_get_contents(PATH_CACHE_IX.'/'.$hash.CACHE_IX_EXT_CX);
$mark = array();
$page = array();
foreach (glob(PATH_CACHE_CX.'/'.$cx.str_replace('?','*',CACHE_CX_EXT_MARK)) as $path_to_mark) {
$a_mark = unserialize(file_get_contents($path_to_mark));
$mark[] = $a_mark;
$page[] = $a_mark['pg'];
}
if (count($mark)>0) {
array_multisort($page, SORT_ASC, $mark);
foreach ($mark as $a_mark) {
$bookmark .=
'¶'.$a_mark['pg'].''
;
}
}
}
if ($bookmark!='') {
$bookmark = ''.$bookmark.'
';
}
$title = mb_substr($one,0,mb_strlen($one)-4);
$html .= '- '.htmlspecialchars($title).''.$bookmark.'
';
}
}
$html .= '
';
$my_html->set_value('comiclist',$html);
}
$my_html->apply_template('browse.html',html::REMOVE_UNDEF_TAGS,html::OUTPUT_HTML);
// ディレクトリ名から索引を求める
function get_dir_index($name) {
global $config__dir_index;
$ret = '';
$f = mb_substr($name,0,1);
foreach ($config__dir_index as $var => $val) {
if (mb_strpos($val,$f) !== false) {
$ret = $var;
break;
}
if ($val == '') {
$ret = $var;
}
}
return $ret;
}
?>