-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.php
86 lines (78 loc) · 2.86 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
if (!file_exists('config.inc.php') && !copy('default_config.php', 'config.inc.php')) {
echo 'ERROR';
die();
}
$config = require_once('config.inc.php');
$currentVersion = "1.3.1";
spl_autoload_register(function ($class) {
$file = 'libs/' . $class . '.php';
if (is_file($file)) {
/** @noinspection PhpIncludeInspection */
require_once $file;
}
});
$notify = [];
// формируем список всех страниц
$list = new cPageList($config);
// модуль парсинга страниц
$parse = new cParse($config['urlAPI']);
// инициализация кэша, если первый запуск, заполняем БД текущими статьями
if (!$list->getConfigDB('init')) {
if (!$list->getConfigDB('indexPage')) {
$listInitPages = $list->init();
foreach ($listInitPages as $page) {
// заносим список страниц в БД
$page->user = $config['defaultAuthor'];
$list->savePageDB($page);
}
$list->setConfigDB('indexPage', 1);
}
$pagesIds = $list->getEmptyPages();
foreach ($pagesIds as $id) {
$page = $list->getPageId($id);
$parse->updateCacheByPageId($page);
}
$list->setConfigDB('init', 1);
}
// проверяем версию скрипта с версией кэша
cUpdate::checkUpdate($currentVersion);
if (!empty($config['email'])) {
cUpdate::sendNotify($config['email']);
}
if (empty($list->getPages())) {
$notify['warning'][] = 'Нет доступа к API или в wiki не найдено страниц';
}
// проверяем все страницы
$parse->updateCache($list->listPage);
// заполняем пустые ссылки (при первом запуске формируются в кэше статьи без ссылок)
$parse->fillingURL();
// модуль формирования RSS
$rssTemplate = $_GET['template'] ?? $config['defaultTemplate'];
$rss = new cRSS($rssTemplate);
if (isset($_GET['page']) || isset($_GET['template'])) {
// формируем страницу rss
if (empty($_GET['page'])) {
$_GET['page'] = 0;
}
$listPages = $list->getPageList($_GET['page'], $rss->getMaxCount());
$lenta = $rss->generateRSS($listPages);
echo($lenta);
} else {
// формируем список rss
$fileParams = glob("rss_templates/*.default_params.php");
$rssListTemplate = [];
foreach ($fileParams as $fileParam) {
$nameRss = preg_replace(['#rss_templates/#', '#\.default_params.php#'], '', $fileParam);
$currentRss = new cRSS($nameRss);
$rssListTemplate[$nameRss] = [
'rss' => $currentRss,
'maxCount' => $currentRss->getMaxCount()
];
}
ob_start();
include('templates/index.php');
$html = ob_get_contents();
ob_end_clean();
echo $html;
}