ADD: Добавим шаблон страницы для обзора
* Небольшое изменение страниц с документацией
27
app/Controllers/ExploreController.php
Normal file
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
namespace App\Controllers;
|
||||
use Hleb\Constructor\Handlers\Request;
|
||||
use App\Models\ExploreModel;
|
||||
use Lori\Config;
|
||||
use Lori\Base;
|
||||
|
||||
class ExploreController extends \MainController
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
Request::getHead()->addStyles('/assets/css/explore.css');
|
||||
|
||||
$uid = Base::getUid();
|
||||
$data = [
|
||||
'h1' => lang('Explore'),
|
||||
'meta_title' => lang('explore-title') .' | '. Config::get(Config::PARAM_NAME),
|
||||
'meta_desc' => lang('explore-desc') .' '. Config::get(Config::PARAM_HOME_TITLE),
|
||||
'sheet' => 'explore',
|
||||
'canonical' => Config::get(Config::PARAM_URL) . '/explore',
|
||||
];
|
||||
|
||||
return view(PR_VIEW_DIR . '/explore/index', ['data' => $data, 'uid' => $uid]);
|
||||
}
|
||||
|
||||
}
|
|
@ -13,9 +13,12 @@ class InfoController extends \MainController
|
|||
{
|
||||
Request::getResources()->addBottomStyles('/assets/css/info.css');
|
||||
|
||||
$text = file_get_contents(TEMPLATE_DIR. '/info/md/index.md');
|
||||
|
||||
$uid = Base::getUid();
|
||||
$data = [
|
||||
'h1' => lang('Info'),
|
||||
'content' => Base::text($text, 'md'),
|
||||
'canonical' => Config::get(Config::PARAM_URL) . '/info',
|
||||
'sheet' => 'info',
|
||||
'meta_title' => lang('Info') .' | '. Config::get(Config::PARAM_NAME),
|
||||
|
@ -27,27 +30,15 @@ class InfoController extends \MainController
|
|||
|
||||
public function stats()
|
||||
{
|
||||
// Количество: участников, постов, комментариев и голосов по ним
|
||||
$user_num = InfoModel::getUsersNumAll();
|
||||
$post_num = InfoModel::getPostsNumAll();
|
||||
$comm_num = InfoModel::getCommentsNumAll();
|
||||
$vote_comm_num = InfoModel::getCommentsVoteNumAll();
|
||||
$vote_post_num = InfoModel::getPostVoteNumAll();
|
||||
$flow_num = InfoModel::GrafAnsw();
|
||||
|
||||
Request::getResources()->addBottomStyles('/assets/css/info.css');
|
||||
Request::getHead()->addScript('/assets/js/Chart.js');
|
||||
|
||||
|
||||
$uid = Base::getUid();
|
||||
$data = [
|
||||
'h1' => lang('Statistics'),
|
||||
'canonical' => Config::get(Config::PARAM_URL) . '/info/stats',
|
||||
'user_num' => $user_num,
|
||||
'post_num' => $post_num,
|
||||
'comm_num' => $comm_num,
|
||||
'vote_comm_num' => $vote_comm_num,
|
||||
'vote_post_num' => $vote_post_num,
|
||||
'flow_num' => $flow_num,
|
||||
'flow_num' => InfoModel::GrafAnsw(),
|
||||
'stats' => InfoModel::getStatsAll(),
|
||||
'sheet' => 'stats',
|
||||
'meta_title' => lang('Statistics') .' | '. Config::get(Config::PARAM_NAME),
|
||||
'meta_desc' => lang('stats-desc') .' '. Config::get(Config::PARAM_HOME_TITLE),
|
||||
|
@ -60,9 +51,12 @@ class InfoController extends \MainController
|
|||
{
|
||||
Request::getResources()->addBottomStyles('/assets/css/info.css');
|
||||
|
||||
$text = file_get_contents(TEMPLATE_DIR. '/info/md/privacy.md');
|
||||
|
||||
$uid = Base::getUid();
|
||||
$data = [
|
||||
'h1' => lang('Privacy Policy'),
|
||||
'content' => Base::text($text, 'md'),
|
||||
'canonical' => Config::get(Config::PARAM_URL) . '/info/privacy',
|
||||
'sheet' => 'privacy',
|
||||
'meta_title' => lang('Privacy Policy') .' | '. Config::get(Config::PARAM_NAME),
|
||||
|
@ -74,7 +68,6 @@ class InfoController extends \MainController
|
|||
|
||||
public function restriction()
|
||||
{
|
||||
|
||||
Request::getResources()->addBottomStyles('/assets/css/info.css');
|
||||
|
||||
$uid = Base::getUid();
|
||||
|
|
|
@ -294,6 +294,9 @@ return [
|
|||
'Empty request' => 'Пустой поисковый запрос',
|
||||
'Enter' => 'Введите',
|
||||
'Enter your password' => 'Введите пароль',
|
||||
'Explore' => 'Открытие',
|
||||
'explore-title' => 'Исследовать',
|
||||
'explore-desc' => 'Эта сводная страница последней сводки на сайте',
|
||||
|
||||
'No account available' => 'Нет учетной записи',
|
||||
'Description is formed' => 'Описание формируется',
|
||||
|
|
14
app/Models/ExploreModel.php
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
use XdORM\XD;
|
||||
|
||||
class ExploreModel extends \MainModel
|
||||
{
|
||||
public static function post()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,54 +1,23 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
use XdORM\XD;
|
||||
use DB;
|
||||
use PDO;
|
||||
|
||||
class InfoModel extends \MainModel
|
||||
{
|
||||
|
||||
// Всего участников
|
||||
public static function getUsersNumAll()
|
||||
public static function getStatsAll()
|
||||
{
|
||||
$query = XD::select('*')->from(['users']);
|
||||
// $sql = "show table status";
|
||||
$sql = "SELECT
|
||||
(SELECT COUNT(*) FROM answers) AS answer,
|
||||
(SELECT COUNT(*) FROM posts) AS post,
|
||||
(SELECT COUNT(*) FROM comments) AS comment,
|
||||
(SELECT COUNT(*) FROM users) AS user";
|
||||
|
||||
return count($query->getSelect());
|
||||
return DB::run($sql)->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
// Количество постов
|
||||
public static function getPostsNumAll()
|
||||
{
|
||||
$query = XD::select('*')->from(['posts']);
|
||||
|
||||
return count($query->getSelect());
|
||||
}
|
||||
|
||||
// Количество комментариев
|
||||
public static function getCommentsNumAll()
|
||||
{
|
||||
$query = XD::select('*')->from(['comments']);
|
||||
|
||||
return count($query->getSelect());
|
||||
}
|
||||
|
||||
// Голосование за комментарии
|
||||
public static function getCommentsVoteNumAll()
|
||||
{
|
||||
$query = XD::select('*')->from(['votes_comm']);
|
||||
|
||||
return count($query->getSelect());
|
||||
}
|
||||
|
||||
// Голосование за посты
|
||||
public static function getPostVoteNumAll()
|
||||
{
|
||||
$query = XD::select('*')->from(['votes_post']);
|
||||
|
||||
return count($query->getSelect());
|
||||
}
|
||||
|
||||
// Для статистики по ответам
|
||||
|
||||
public static function GrafAnsw()
|
||||
{
|
||||
$sql = "SELECT COUNT(votes_answ_id), DATE(votes_answ_date) as date FROM votes_answ GROUP BY date limit 10";
|
||||
|
|
|
@ -24,7 +24,7 @@ class MainConnector implements Connector
|
|||
// ... or, if a specific class is added,
|
||||
"DB" => "database/DB.php",
|
||||
"XdORM\XD" => "vendor/phphleb/xdorm/XD.php",
|
||||
//"Phphleb\Debugpan\DPanel" => "vendor/phphleb/debugpan/DPanel.php",
|
||||
// "Phphleb\Debugpan\DPanel" => "vendor/phphleb/debugpan/DPanel.php",
|
||||
|
||||
"Lori\Base" => "app/Libraries/Base.php",
|
||||
"Lori\Config" => "app/Config/Config.php",
|
||||
|
|
3
public/assets/css/explore.css
Normal file
|
@ -0,0 +1,3 @@
|
|||
.explore {
|
||||
|
||||
}
|
|
@ -110,6 +110,10 @@ body > main {
|
|||
padding: 0.4rem 0.4rem;
|
||||
}
|
||||
|
||||
.w-33 {
|
||||
width: 33%;
|
||||
}
|
||||
|
||||
main.w-100 {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
|
@ -166,6 +170,10 @@ h3.lo {
|
|||
float: right;
|
||||
}
|
||||
|
||||
.left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
code {
|
||||
color: #b63e56;
|
||||
background: #f5f2f0;
|
||||
|
@ -239,6 +247,8 @@ a.link:hover {
|
|||
color: rgba(33, 32, 31, 0.5);
|
||||
font-size: 15px;
|
||||
border-radius: 2px;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.banner h1 {
|
||||
|
|
BIN
public/assets/images/discord-bot.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
public/assets/images/explore/Card01.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
public/assets/images/explore/Card02.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
public/assets/images/explore/Card03.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
public/assets/images/explore/Card04.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
public/assets/images/explore/Card05.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
public/assets/images/explore/Card06.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
public/assets/images/explore/Card07.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
public/assets/images/explore/Card08.png
Normal file
After Width: | Height: | Size: 24 KiB |
33
resources/views/default/explore/index.php
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?php include TEMPLATE_DIR . '/header.php'; ?>
|
||||
|
||||
<div class="banner">
|
||||
<div class="wrap">
|
||||
<h1><?= lang('Explore'); ?></h1>
|
||||
|
||||
<div class="w-33 left">
|
||||
<img alt="" src="assets/images/explore/Card04.png" title="Ивтеев" class="avatar">
|
||||
</div>
|
||||
<div class="w-33 left">
|
||||
<img alt="" src="assets/images/explore/Card07.png" title="Ивтеев" class="avatar">
|
||||
</div>
|
||||
<div class="w-33 left">
|
||||
<img alt="" src="assets/images/explore/Card05.png" title="Ивтеев" class="avatar">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="wrap">
|
||||
<main class="w-100 explore">
|
||||
|
||||
<br>
|
||||
Последние 5 ответов, комментариев, вопросов, статистика. Это будет сводная страница. <br>
|
||||
|
||||
Верхние картинки - фото, на различные главные разделы. Сводная, значит сводная. Обзорная по разделам.
|
||||
<br><br>
|
||||
|
||||
Она должна расширяться вниз и должна быть красочная.<br>
|
||||
|
||||
</main>
|
||||
</div>
|
||||
<?php include TEMPLATE_DIR . '/footer.php'; ?>
|
|
@ -11,44 +11,9 @@
|
|||
</ul>
|
||||
|
||||
<h1><?= $data['h1']; ?></h1>
|
||||
|
||||
<?= $data['content']; ?>
|
||||
|
||||
Этот раздел содержит справочную информацию.
|
||||
<br><br>
|
||||
<b>Где мне можно скачать архив сайта?</b>
|
||||
<br>
|
||||
Скачайте архив <i>loriup с GitHub:</i> <a rel="nofollow noreferrer" target="_blank" href="https://github.com/LoriUp/loriup">github.com/LoriUp/loriup</a>
|
||||
<i class="icon github"></i>
|
||||
<i class="icon link"></i>
|
||||
<br>
|
||||
|
||||
Код сайта имеет лицензию <i class="icon paper-clip"></i>
|
||||
<a rel="nofollow noreferrer" target="_blank" href="https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT">MIT</a>. <i class="icon link"></i>
|
||||
<br><br>
|
||||
|
||||
<b>Какие технологии используются на сайте?</b><br>
|
||||
В разделе документация есть статья: <a rel="nofollow noreferrer" target="_blank" href="https://docs.loriup.ru/info/hleb">Какие технологии использует сайт?</a> <i class="icon link"></i>
|
||||
<br><br>
|
||||
|
||||
<b>Где можно подробней ознакомится с документацией?</b><br>
|
||||
В разделе документация: <a href="https://docs.loriup.ru">docs.loriup.ru</a>
|
||||
<br><br>
|
||||
|
||||
<b>Как я могу помочь сайту?</b><br>
|
||||
1. Порекомендовать друзьям наш сайт.<br>
|
||||
2. Оставить ссылку на наш сайт в своем блоге, сайте, «Твиттере», на своей странице в социальной сети или на форуме, где Вас хорошо знают.<br>
|
||||
3. Сделать денежный взнос удобным для Вас способом. <br><br>
|
||||
|
||||
Способы оплаты<br>
|
||||
<i>ЮMoney:</i> 4100140143763
|
||||
|
||||
|
||||
<br><br>
|
||||
<b>Как с вами связаться?</b><br>
|
||||
По e-mail: <i>budo1@yandex.com</i>
|
||||
<br>
|
||||
Мы в Discord: <a rel="nofollow noreferrer" target="_blank" href="https://discord.gg/dw47aNx5nU">https://discord.gg/dw47aNx5nU</a>
|
||||
<i class="icon link"></i>
|
||||
<br><br>
|
||||
</main>
|
||||
<?php include TEMPLATE_DIR . '/_block/info-page-menu.php'; ?>
|
||||
</div>
|
||||
|
|
26
resources/views/default/info/md/index.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
Этот раздел содержит справочную информацию.
|
||||
|
||||
### Где мне можно скачать архив сайта?
|
||||
Скачайте архив *loriup с GitHub:* [github.com/LoriUp/loriup](https://github.com/LoriUp/loriup)
|
||||
|
||||
Код сайта имеет лицензию [MIT](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT).
|
||||
|
||||
### Какие технологии используются на сайте?
|
||||
В разделе документация есть статья: [Какие технологии использует сайт?](https://docs.loriup.ru/info/hleb)
|
||||
|
||||
### Где можно подробней ознакомится с документацией?
|
||||
В разделе документация: [docs.loriup.ru](https://docs.loriup.ru)
|
||||
|
||||
### Как я могу помочь сайту?
|
||||
|
||||
1. Порекомендовать друзьям наш сайт.
|
||||
2. Оставить ссылку на наш сайт в своем блоге, сайте, «Твиттере», на своей странице в социальной сети или на форуме, где Вас хорошо знают.
|
||||
3. Сделать денежный взнос удобным для Вас способом.
|
||||
|
||||
Способы оплаты: *ЮMoney - * 4100140143763
|
||||
|
||||
### Как с вами связаться?
|
||||
По e-mail: *budo1@yandex.com*
|
||||
|
||||
*Мы в Discord:* [discord.gg/dw47aNx5nU](https://discord.gg/dw47aNx5nU)
|
||||
|
14
resources/views/default/info/md/privacy.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
Это Интернет, у вас нет конфиденциальности.
|
||||
|
||||
Если вам [не исполнилось 13 лет](https://ru.wikipedia.org/wiki/%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B7%D0%B0%D0%BA%D0%BE%D0%BD_%E2%84%96_139-%D0%A4%D0%97_2012_%D0%B3%D0%BE%D0%B4%D0%B0), то и в этом случае вам сюда не разрешено.
|
||||
|
||||
### Правила
|
||||
|
||||
Пожалуйста, относитесь к этому сайту с таким же уважением, как относитесь к собственному дому.
|
||||
|
||||
* Нет нарушений законодательства РФ.
|
||||
* Нет нападкам.
|
||||
* Нет спаму.
|
||||
|
||||
*И мы не обсуждаем участников...*
|
||||
|
|
@ -12,21 +12,8 @@
|
|||
|
||||
<h1><?= $data['h1']; ?></h1>
|
||||
|
||||
<p>Это Интернет, у вас нет конфиденциальности.</p>
|
||||
<?= $data['content']; ?>
|
||||
|
||||
<p>Если вам <a rel="noopener nofollow ugc" href="https://ru.wikipedia.org/wiki/%D0%A4%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B7%D0%B0%D0%BA%D0%BE%D0%BD_%E2%84%96_139-%D0%A4%D0%97_2012_%D0%B3%D0%BE%D0%B4%D0%B0">
|
||||
не исполнилось 13 лет</a>, то в этом случае вам сюда не разрешено.
|
||||
</p>
|
||||
|
||||
<h3>Правила</h3>
|
||||
|
||||
<p>Пожалуйста, относитесь к этому сайту с таким же уважением, как относитесь к собственному дому. </p>
|
||||
<ul>
|
||||
<li>Нет нарушений законодательства РФ.</li>
|
||||
<li>Нет нападкам.</li>
|
||||
<li>Нет спаму.</li>
|
||||
</ul>
|
||||
<i>И мы не обсуждаем участников...</i>
|
||||
</main>
|
||||
<?php include TEMPLATE_DIR . '/_block/info-page-menu.php'; ?>
|
||||
</div>
|
||||
|
|
|
@ -10,22 +10,20 @@
|
|||
var myChart = new Chart(ctx, {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: ['<?= lang('Users'); ?>', '<?= lang('Posts'); ?>', '<?= lang('Comments'); ?>', '<?= lang('I like comments'); ?>', '<?= lang('I like posts'); ?>'],
|
||||
labels: ['<?= lang('Users'); ?>', '<?= lang('Posts'); ?>', '<?= lang('Comments'); ?>', '<?= lang('Answers'); ?>'],
|
||||
datasets: [{
|
||||
label: 'всего',
|
||||
data: [<?= $data['user_num']; ?>, <?= $data['post_num']; ?>, <?= $data['comm_num']; ?>, <?= $data['vote_comm_num']; ?>, <?= $data['vote_post_num']; ?>],
|
||||
label: 'данные',
|
||||
data: [<?= $data['stats'][0]['user']; ?>, <?= $data['stats'][0]['post']; ?>, <?= $data['stats'][0]['comment']; ?>, <?= $data['stats'][0]['answer']; ?>],
|
||||
backgroundColor: [
|
||||
'rgba(255, 99, 132, 0.2)',
|
||||
'rgba(54, 162, 235, 0.2)',
|
||||
'rgba(255, 206, 86, 0.2)',
|
||||
'rgba(75, 192, 192, 0.2)',
|
||||
'rgba(153, 102, 255, 0.2)'
|
||||
'rgba(153, 102, 255, 0.2)',
|
||||
],
|
||||
borderColor: [
|
||||
'rgba(255, 99, 132, 1)',
|
||||
'rgba(54, 162, 235, 1)',
|
||||
'rgba(255, 206, 86, 1)',
|
||||
'rgba(75, 192, 192, 1)',
|
||||
'rgba(153, 102, 255, 1)'
|
||||
],
|
||||
borderWidth: 1
|
||||
|
|
|
@ -159,6 +159,9 @@ Route::get('/flow/content')->controller('FlowController@contentChat');
|
|||
Route::get('/comments')->controller('CommentController');
|
||||
Route::get('/answers')->controller('AnswerController');
|
||||
|
||||
// Исследовать
|
||||
Route::get('/explore')->controller('ExploreController');
|
||||
|
||||
// Пространства
|
||||
Route::get('/space')->controller('SpaceController');
|
||||
Route::get('/s/{slug}/{tags?}')->controller('SpaceController@spacePosts', ['feed'])->where(['slug' => '[A-Za-z0-9_]+', 'tags' => '[0-9]+']);
|
||||
|
|