/
index.php
64 lines (50 loc) · 1.77 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
use infrajs\ans\Ans;
use infrajs\load\Load;
use infrajs\path\Path;
use infrajs\rubrics\Rubrics;
use infrajs\router\Router;
use infrajs\access\Access;
$ans = array();
$lim = Ans::GET('lim','string','0,100');
$p = explode(',', $lim);
if (sizeof($p) != 2) return Ans::err($ans, 'Некорректный параметр lim');
list($start, $count) = $p;
$dir = Ans::GET('src','string');
if (!$dir) return Ans::err($ans, 'Укажите обязательный параметр src');
if (!Path::isNest('~', $dir)) return Ans::err($ans, 'Указан небезопасный путь src');
$order = Ans::GET('order',['descending','ascending']);
$html = Ans::GET('html');
$ans['order'] = $order;
$list = Access::cache(__FILE__, function ($dir, $order, $html) {
$list = array();
array_map(function ($file) use (&$list, $dir, $html) {
if ($file[0] == '.') return;
$file = Path::toutf($file);
if (!Path::theme($dir.$file)) return;
$fd = Load::nameInfo($file);
if (!in_array($fd['ext'], array('jpg', 'png','webp'))) return;
$slide = $fd;
//$slide['title'] = $fd['name'];
$src = Rubrics::find($dir, $fd['name'], 'articles');
if ($src) {
$slide['src'] = $src;
if ($html) $slide['text'] = Rubrics::article($src);
else $slide['text'] = Load::loadTEXT($src);
$slide['title'] = $slide['text'];
}
$src = Rubrics::find($dir, $fd['name'], ['json']);
if ($src) {
$slide['json'] = $src;
$slide['data'] = Load::loadJSON($src);
}
$list[] = $slide;
}, scandir(Path::theme($dir)));
Load::sort($list, $order);
//$list = array_reverse($list);
return $list;
}, array($dir, $order, $html));
$list = array_slice($list, $start, $count);
$ans['dir'] = $dir;
$ans['list'] = $list;
return Ans::ret($ans);