DEV: Template Simplification
This commit is contained in:
parent
bb441a733c
commit
95adae6020
116 changed files with 779 additions and 2083 deletions
|
@ -78,9 +78,9 @@ class LoginController extends MainController
|
|||
return Tpl::agRender(
|
||||
'/auth/login',
|
||||
[
|
||||
'meta' => meta($m, Translate::get('sign in'), Translate::get('info-login')),
|
||||
'meta' => meta($m, Translate::get('sign.in'), Translate::get('info-login')),
|
||||
'data' => [
|
||||
'sheet' => 'sign in',
|
||||
'sheet' => 'sign.in',
|
||||
'type' => 'login',
|
||||
]
|
||||
]
|
||||
|
|
|
@ -226,7 +226,6 @@ function votes($user_id, $content, $type, $ind, $css = '', $block = '')
|
|||
return $html;
|
||||
}
|
||||
|
||||
// function votes($user_id, $content, $type, $ind, $css = '', $block = '')
|
||||
function favorite($user_id, $content_id, $type, $favorite_tid, $ind, $css = '')
|
||||
{
|
||||
$html = '';
|
||||
|
@ -250,7 +249,7 @@ function tabs_nav($name, $item, $user, array $pages = [])
|
|||
foreach ($pages as $key => $page) {
|
||||
$tl = $page['tl'] ?? null;
|
||||
if ($user['trust_level'] >= $tl) {
|
||||
$classes = 'mr20 gray-500 sky-500-hover';
|
||||
$classes = 'mr20 gray-500';
|
||||
$isActive = $page['id'] == $item ? $classes . ' sky-500 ' : $classes;
|
||||
$isAria = $page['id'] == $item ? ' aria-current="page"' : '';
|
||||
|
||||
|
@ -260,20 +259,20 @@ function tabs_nav($name, $item, $user, array $pages = [])
|
|||
}
|
||||
}
|
||||
} else {
|
||||
$html = '<ul class="p0 mt10 list-none text-sm">';
|
||||
$html = '<ul class="p0 m0 list-none text-sm">';
|
||||
foreach ($pages as $key => $page) {
|
||||
$tl = $page['tl'] ?? null;
|
||||
if (!empty($page['hr'])) {
|
||||
if ($user['id'] > 0) $html .= '<li><hr class="w-90"></li>';
|
||||
} else {
|
||||
if ($user['trust_level'] >= $tl) {
|
||||
$classes = 'sky-500-hover dark-gray-200';
|
||||
$classes = 'dark-gray-300';
|
||||
$isActive = $page['id'] == $item ? $classes . ' sky-500 ' : $classes;
|
||||
$isAria = $page['id'] == $item ? ' aria-current="page"' : '';
|
||||
|
||||
$html .= '<li><a ' . $isAria . ' class="' . $isActive . '" href="' . $page['url'] . '">
|
||||
<i class="' . $page['icon'] . ' mr10 text-2xl"></i>
|
||||
<span>' . $page['title'] . '</span></a></li>';
|
||||
<span class="dark-gray-300">' . $page['title'] . '</span></a></li>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -94,7 +94,7 @@ $data = [
|
|||
'parent' => 'Elternteil',
|
||||
'edit topic' => 'Thema bearbeiten',
|
||||
'authorization' => 'Genehmigung',
|
||||
'sign in' => 'Anmelden',
|
||||
'sign.in' => 'Anmelden',
|
||||
'sign out' => 'Ausloggen',
|
||||
'sign up' => 'Anmelden',
|
||||
'advertising' => 'Werbung',
|
||||
|
|
|
@ -93,7 +93,7 @@ $data = [
|
|||
'parent' => 'Parent',
|
||||
'edit topic' => 'Edit topic',
|
||||
'authorization' => 'Authorization',
|
||||
'sign in' => 'Sign in',
|
||||
'sign.in' => 'Sign in',
|
||||
'sign out' => 'Sign out',
|
||||
'sign up' => 'Sign up',
|
||||
'advertising' => 'Advertising',
|
||||
|
|
|
@ -94,7 +94,7 @@ $data = [
|
|||
'parent' => 'Parent',
|
||||
'edit topic' => 'Edit topic',
|
||||
'authorization' => 'Authorization',
|
||||
'sign in' => 'Sign in',
|
||||
'sign.in' => 'Sign in',
|
||||
'sign out' => 'Sign out',
|
||||
'sign up' => 'Sign up',
|
||||
'advertising' => 'Advertising',
|
||||
|
|
|
@ -86,7 +86,7 @@ $data = [
|
|||
'parent' => 'Părinte',
|
||||
'edit topic' => 'Schimbați subiectul',
|
||||
'authorization' => 'Autentificare',
|
||||
'sign in' => 'Autentificare',
|
||||
'sign.in' => 'Autentificare',
|
||||
'sign out' => 'Ieși',
|
||||
'sign up' => 'Inregistrare',
|
||||
'advertising' => 'Publicitate',
|
||||
|
|
|
@ -65,7 +65,7 @@ $data = [
|
|||
'parent' => 'Родитель',
|
||||
'edit topic' => 'Изменим тему',
|
||||
'authorization' => 'Авторизация',
|
||||
'sign in' => 'Войти',
|
||||
'sign.in' => 'Войти',
|
||||
'sign out' => 'Выйти',
|
||||
'sign up' => 'Регистрация',
|
||||
'advertising' => 'Реклама',
|
||||
|
|
|
@ -93,7 +93,7 @@ $data = [
|
|||
'parent' => '家長',
|
||||
'edit topic' => '編輯主題',
|
||||
'authorization' => '授權',
|
||||
'sign in' => '登入',
|
||||
'sign.in' => '登入',
|
||||
'sign out' => '登出',
|
||||
'sign up' => '註冊',
|
||||
'advertising' => '廣告',
|
||||
|
|
|
@ -22,8 +22,8 @@
|
|||
<label class="block mt20 mb5"><?= Translate::get('password'); ?></label>
|
||||
<input type="password" placeholder="<?= Translate::get('enter your password'); ?>" name="password" class="w-100 h30 pl5">
|
||||
</div>
|
||||
<img class="mb5 right" src="<?= Config::get('meta.img_footer_url'); ?>">
|
||||
<?= sumbit(Translate::get('sign in')); ?>
|
||||
<img class="mb5 right" src="<?= Config::get('meta.img_footer_path'); ?>">
|
||||
<?= sumbit(Translate::get('sign.in')); ?>
|
||||
</form>
|
||||
|
||||
</main>
|
||||
|
|
|
@ -10,7 +10,7 @@ return [
|
|||
'title' => 'Агути — сообщество (темы, блоги по интересам)',
|
||||
'desc' => 'Темы по интересам, лента, блоги. Беседы, вопросы и ответы, интересные факты. Скрипты CMS и социальных сетей, Фреймворки. Скрипт агути.',
|
||||
'img_path' => '/assets/images/agouti.webp',
|
||||
'img_footer_url' => 'https://agouti.ru/assets/images/agouti_footer.gif',
|
||||
'img_footer_path' => '/assets/images/agouti_footer.gif',
|
||||
|
||||
// Для главной - заголовок и текст баннера
|
||||
// For the main page - the banner title and text
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
</div>
|
||||
</container>
|
||||
<footer class="w-100 mt15 p15 bg-zinc-800 clear">
|
||||
<div class="col-span-12 max-width grid grid-cols-12 mr-auto">
|
||||
<div class="text-sm mt5 mb5 gray-400 col-span-3">
|
||||
|
|
|
@ -45,4 +45,4 @@ $dark = Request::getCookie('dayNight') == 'dark' ? 'dark' : '';
|
|||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="max-width mr-auto grid grid-cols-12 gap-4 mb-gap-05 pr5 pl5">
|
||||
<container>
|
|
@ -20,8 +20,8 @@ class Catalog
|
|||
}
|
||||
|
||||
// Лист сайтов по темам (сайты по "категориям")
|
||||
public function sites($sheet)
|
||||
{
|
||||
public function index($sheet)
|
||||
{
|
||||
$slug = Request::get('slug');
|
||||
$page = Request::getInt('page');
|
||||
$page = $page == 0 ? 1 : $page;
|
||||
|
|
|
@ -1,25 +1,23 @@
|
|||
<?= Tpl::insert('header', ['user' => $user, 'data' => $data, 'meta' => $meta]); ?>
|
||||
<main class="col-span-12 mb-col-12">
|
||||
<div class="pt5 mr15 pb5 ml15">
|
||||
<?php if (UserData::checkAdmin()) { ?>
|
||||
<a title="<?= Translate::get('deleted'); ?>" class="right mt5 ml15" href="<?= getUrlByName('web.deleted'); ?>">
|
||||
<?= Translate::get('deleted'); ?>
|
||||
</a>
|
||||
<a title="<?= Translate::get('add'); ?>" class="right mt5" href="<?= getUrlByName('site.add'); ?>">
|
||||
<i class="bi bi-plus-lg middle"></i>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<h1 class="mt0 mb10 text-2xl font-normal"><?= Translate::get('categories'); ?></h1>
|
||||
</div>
|
||||
<div class="flex mb20 pt10 pr15 pb10 pl15 bg-yellow-50 flex-auto">
|
||||
<?php if (UserData::checkAdmin()) { ?>
|
||||
<a class="right mt5 ml15" href="<?= getUrlByName('web.deleted'); ?>">
|
||||
<?= Translate::get('deleted'); ?>
|
||||
</a>
|
||||
<a title="<?= Translate::get('add'); ?>" class="right mt5" href="<?= getUrlByName('site.add'); ?>">
|
||||
<i class="bi bi-plus-lg middle"></i>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<h1 class="ml10"><?= Translate::get('categories'); ?></h1>
|
||||
<div class="flex mb20 p15 bg-yellow-50 flex-auto">
|
||||
<?php foreach (Config::get('web-root-categories') as $cat) { ?>
|
||||
<div class="mr60">
|
||||
<a class="pt5 pr10 mr60 dark-gray-300 underline-hover text-2xl block " title="<?= $cat['title']; ?>" href="<?= getUrlByName('web.topic', ['slug' => $cat['url']]); ?>">
|
||||
<a class="pr10 mr60 dark-gray-300 underline-hover text-2xl block " href="<?= getUrlByName('web.topic', ['slug' => $cat['url']]); ?>">
|
||||
<?= $cat['title']; ?>
|
||||
</a>
|
||||
<?php if (!empty($cat['sub'])) { ?>
|
||||
<?php foreach ($cat['sub'] as $sub) { ?>
|
||||
<a class="pr10 pb5 text-sm black inline" title="<?= $sub['title']; ?>" href="<?= getUrlByName('web.topic', ['slug' => $sub['url']]); ?>">
|
||||
<a class="pr10 text-sm black inline" href="<?= getUrlByName('web.topic', ['slug' => $sub['url']]); ?>">
|
||||
<?= $sub['title']; ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
|
@ -30,7 +28,7 @@
|
|||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<div class="ml15 flex justify-between flex-row items-center max-w780">
|
||||
<div class="box-flex ml15 max-w780">
|
||||
<div>
|
||||
<?= num_word($data['count'], Translate::get('num-website'), false); ?>:
|
||||
<?= $data['count']; ?>
|
||||
|
@ -55,5 +53,5 @@
|
|||
<?= pagination($data['pNum'], $data['pagesCount'], $data['sheet'], getUrlByName($data['sheet'])); ?>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</container>
|
||||
<?= includeTemplate('/view/default/footer'); ?>
|
|
@ -6,9 +6,7 @@
|
|||
</div>
|
||||
<div class="mr20 flex-auto">
|
||||
<a class="dark-gray-300" href="<?= getUrlByName('web.website', ['slug' => $item['item_url_domain']]); ?>">
|
||||
<h2 class="font-normal underline-hover text-2xl mt0 mb0">
|
||||
<?= $item['item_title_url']; ?>
|
||||
</h2>
|
||||
<h2><?= $item['item_title_url']; ?></h2>
|
||||
</a>
|
||||
<div class="mt5 mb15 max-w640">
|
||||
<?= $item['item_content_url']; ?>
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
<?= Tpl::insert('header', ['user' => $user, 'data' => $data, 'meta' => $meta]); ?>
|
||||
<main class="col-span-12 mb-col-12">
|
||||
<div class="pt5 mr15 pb5 ml15 text-sm">
|
||||
<?php if (UserData::checkAdmin()) { ?>
|
||||
<a title="<?= Translate::get('add'); ?>" class="right mt5" href="<?= getUrlByName('site.add'); ?>">
|
||||
<i class="bi bi-plus-lg middle"></i>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<a class="gray" href="<?= getUrlByName('web'); ?>" class="text-sm gray-400"><?= Translate::get('websites'); ?></a>
|
||||
<a href="<?= getUrlByName('web'); ?>" class="text-sm gray-400 ml10"><?= Translate::get('websites'); ?></a>
|
||||
|
||||
<?php if (!empty($data['high_topics'][0])) {
|
||||
$site = $data['high_topics'][0]; ?>
|
||||
<span class="gray mr5 ml5">/</span>
|
||||
<a class="" href="<?= getUrlByName('web.topic', ['slug' => $site['facet_slug']]); ?>" title="<?= $site['facet_title']; ?>">
|
||||
<a href="<?= getUrlByName('web.topic', ['slug' => $site['facet_slug']]); ?>">
|
||||
<?= $site['facet_title']; ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<h1 class="mt0 mb5 text-2xl font-normal">
|
||||
<h1 class="ml10">
|
||||
<?= $data['topic']['facet_title']; ?>
|
||||
<?php if (UserData::checkAdmin()) { ?>
|
||||
<a class="text-sm ml5" href="<?= getUrlByName('topic.edit', ['id' => $data['topic']['facet_id']]); ?>">
|
||||
|
@ -26,9 +25,8 @@
|
|||
</a>
|
||||
<?php } ?>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="mb20 pt10 pr15 pb10 pl15 bg-yellow-50 dark-bg-black">
|
||||
<div class="mb20 p15 bg-yellow-50 dark-bg-black">
|
||||
<?php if ($data['low_topics']) { ?>
|
||||
<div class="grid grid-cols-3 gap-2 justify-between mb10">
|
||||
<?php foreach ($data['low_topics'] as $lt) { ?>
|
||||
|
@ -68,10 +66,12 @@
|
|||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-row items-center justify-between pt5 mr15 pb5 ml15 w-90">
|
||||
<p class="m0 text-xl lowercase"><?= num_word($data['count'], Translate::get('num-website'), true); ?></p>
|
||||
<div class="box-flex ml15 max-w780">
|
||||
<p class="m0 text-xl lowercase">
|
||||
<?= num_word($data['count'], Translate::get('num-website'), true); ?>
|
||||
</p>
|
||||
<ul class="flex flex-row list-none m0 p0 center">
|
||||
|
||||
|
||||
<?= tabs_nav(
|
||||
$user['id'],
|
||||
$data['sheet'],
|
||||
|
@ -103,7 +103,7 @@
|
|||
<?= pagination($data['pNum'], $data['pagesCount'], $data['sheet'], getUrlByName('web')); ?>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</container>
|
||||
<div class="bg-white p15 mb-none">
|
||||
<?= $data['topic']['facet_description']; ?>
|
||||
</div>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<?= votes($user['id'], $data['item'], 'item', 'ps', 'text-2xl', 'block'); ?>
|
||||
</div>
|
||||
|
||||
<h1 class="mt5 mb10 text-2xl font-normal"><?= $data['item']['item_title_url']; ?>
|
||||
<h1><?= $data['item']['item_title_url']; ?>
|
||||
<?php if ($user['trust_level'] == 5) { ?>
|
||||
<a class="text-sm ml5" title="<?= Translate::get('edit'); ?>" href="<?= getUrlByName('web.edit', ['id' => $data['item']['item_id']]); ?>">
|
||||
<i class="bi bi-pencil"></i>
|
||||
|
@ -44,30 +44,30 @@
|
|||
</div>
|
||||
</div>
|
||||
<?php if ($data['item']['item_is_soft'] == 1) { ?>
|
||||
<h2 class="mb5 mb-mt-5 font-normal"><?= Translate::get('soft'); ?></h2>
|
||||
<h3 class="mt5 mb10 font-normal"><?= $data['item']['item_title_soft']; ?></h3>
|
||||
<h2><?= Translate::get('soft'); ?></h2>
|
||||
<h3><?= $data['item']['item_title_soft']; ?></h3>
|
||||
<div class="gray-600">
|
||||
<?= $data['item']['item_content_soft']; ?>
|
||||
</div>
|
||||
<div class="mb5">
|
||||
<p>
|
||||
<i class="bi bi-github mr5"></i>
|
||||
<a target="_blank" rel="nofollow noreferrer ugc" href="<?= $data['item']['item_github_url']; ?>">
|
||||
<?= $data['item']['item_github_url']; ?>
|
||||
</a>
|
||||
</div>
|
||||
</p>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($data['related_posts']) { ?>
|
||||
<div class="bg-white br-box-gray pt15">
|
||||
<p>
|
||||
<?= Tpl::insert('/_block/related-posts', ['related_posts' => $data['related_posts'], 'number' => true]); ?>
|
||||
</div>
|
||||
</p>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</main>
|
||||
<aside class="col-span-3 relative mb-none">
|
||||
<div class="bg-white br-rd5 br-box-gray box-shadow-all p15 mb15">
|
||||
<box class="bg-white br-box-gray box-shadow-all">
|
||||
<?php if ($data['similar']) { ?>
|
||||
<div class="gray mb5"><?= Translate::get('recommended'); ?></div>
|
||||
<h3 class="uppercase-box"><?= Translate::get('recommended'); ?></h3>
|
||||
<?php foreach ($data['similar'] as $link) { ?>
|
||||
<?= website_img($link['item_url_domain'], 'thumbs', $link['item_title_url'], 'mr5 w200 box-shadow'); ?>
|
||||
<a class="inline mr20 mb15 block text-sm" href="<?= getUrlByName('web.website', ['slug' => $link['item_url_domain']]); ?>">
|
||||
|
@ -77,8 +77,8 @@
|
|||
<?php } else { ?>
|
||||
....
|
||||
<?php } ?>
|
||||
</div>
|
||||
<div class="bg-white br-rd5 br-box-gray box-shadow-all p15 mb15">
|
||||
</box>
|
||||
<box class="bg-white br-box-gray box-shadow-all">
|
||||
<?php if ($data['high_leve']) { ?>
|
||||
<div class="gray"><?= Translate::get('see more'); ?></div>
|
||||
<?php foreach ($data['high_leve'] as $rl) { ?>
|
||||
|
@ -91,7 +91,7 @@
|
|||
<?php } else { ?>
|
||||
....
|
||||
<?php } ?>
|
||||
</div>
|
||||
</box>
|
||||
</aside>
|
||||
</div>
|
||||
</container>
|
||||
<?= includeTemplate('/view/default/footer'); ?>
|
|
@ -45,11 +45,11 @@
|
|||
<?= pagination($data['pNum'], $data['pagesCount'], $data['sheet'], '/admin/search'); ?>
|
||||
|
||||
<?php } else { ?>
|
||||
<div class="mb20"><?= Translate::get('no.search.results'); ?></div>
|
||||
<p><?= Translate::get('no.search.results'); ?></p>
|
||||
<a class="mb20 block" href="/"><?= Translate::get('to main'); ?>...</a>
|
||||
<?php } ?>
|
||||
</main>
|
||||
<div class="col-span-2 mb-none"></div>
|
||||
</div>
|
||||
|
||||
<?= Tpl::insert('/_block/wide-footer'); ?>
|
||||
<?= Tpl::insert('footer', ['user' => $user]); ?>
|
File diff suppressed because one or more lines are too long
|
@ -1,8 +1,8 @@
|
|||
<div class="mb10 mt15">
|
||||
<fieldset>
|
||||
<?php if (!empty($title)) { ?><div class="mb5"><?= $title; ?><sup class="red-500">*</sup></div><?php } ?>
|
||||
<div id="ag-redactor" class="editorSection"><?php if (!empty($content)) { ?><?= $content; ?><?php } ?></div>
|
||||
<input type="hidden" name="content" class="text">
|
||||
</div>
|
||||
</fieldset>
|
||||
<?php $lang = $user['lang']; ?>
|
||||
<script src="/assets/js/editor/i18n/<?= $lang; ?>.js" charset="utf-8"></script>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div class="mb20">
|
||||
<label class="block" for="about"><?= $title; ?></label>
|
||||
<fieldset>
|
||||
<label for="about"><?= $title; ?></label>
|
||||
<textarea type="<?= $type; ?>" rows="4" <?php if (!empty($min)) { ?>minlength="<?= $min; ?>" <?php } ?> <?php if (!empty($max)) { ?>maxlength="<?= $max; ?>" <?php } ?> name="<?= $name; ?>"><?php if (!empty($content)) { ?><?= $content; ?><?php } ?></textarea>
|
||||
<?php if (!empty($help)) { ?><div class="text-sm gray-400"><?= $help; ?></div><?php } ?>
|
||||
</div>
|
||||
</fieldset>
|
|
@ -1,5 +1,5 @@
|
|||
<div class="mb20 max-w640">
|
||||
<label class="block" for="post_content"><?= Translate::get('type'); ?></label>
|
||||
<fieldset>
|
||||
<label for="post_content"><?= Translate::get('type'); ?></label>
|
||||
<select class="h40" name="facet_type">
|
||||
<?php foreach (Config::get('facets.facet_type') as $value) { ?>
|
||||
<option <?php if ($value['value'] == $type) { ?>selected<?php } ?> value="<?= $value['value']; ?>">
|
||||
|
@ -7,4 +7,4 @@
|
|||
</option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</div>
|
||||
</fieldset>
|
|
@ -3,13 +3,13 @@
|
|||
<form id="add_comm" class="new_comment" action="/comment/create" accept-charset="UTF-8" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<textarea rows="5" minlength="6" placeholder="<?= Translate::get('write-something'); ?>..." name="comment" id="comment"></textarea>
|
||||
<div class="mb20">
|
||||
<fieldset>
|
||||
<input type="hidden" name="post_id" id="post_id" value="<?= $data['post_id']; ?>">
|
||||
<input type="hidden" name="answer_id" id="answer_id" value="<?= $data['answer_id']; ?>">
|
||||
<input type="hidden" name="comment_id" id="comment_id" value="<?= $data['comment_id']; ?>">
|
||||
<?= sumbit(Translate::get('comment')); ?>
|
||||
<span id="cancel_comment" class="text-sm inline ml5 gray"><?= Translate::get('cancel'); ?></span>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
<?php } else { ?>
|
||||
<textarea rows="5" disabled="disabled" class="bg-gray-000" placeholder="<?= Translate::get('no-auth-comm'); ?>." name="content" id="content"></textarea>
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
<form id="add_comm" class="new_comment" action="/comment/edit" accept-charset="UTF-8" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<textarea rows="5" minlength="6" name="comment" id="comment"><?= $data['comment_content']; ?></textarea>
|
||||
<div class="mt5 mb20 max-w640">
|
||||
<fieldset>
|
||||
<input type="hidden" name="post_id" id="post_id" value="<?= $data['post_id']; ?>">
|
||||
<input type="hidden" name="comment_id" id="comment_id" value="<?= $data['comment_id']; ?>">
|
||||
<?= sumbit(Translate::get('edit')); ?>
|
||||
<span id="cancel_comment" class="text-sm inline ml5 gray"><?= Translate::get('cancel'); ?></span>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="v-otsr"></div>
|
||||
</form>
|
||||
<?php } ?>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<?php foreach ($data as $fl) { ?>
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5" for="post_title"><?= $fl['title']; ?>
|
||||
<fieldset>
|
||||
<label for="post_title"><?= $fl['title']; ?>
|
||||
<?php if (!empty($fl['red'])) { ?><sup class="red-500">*</sup><?php } ?>
|
||||
</label>
|
||||
<input class="w-100 h40 pl5"
|
||||
<input
|
||||
<?php if (!empty($fl['min'])) { ?>minlength="<?= $fl['min']; ?>" <?php } ?>
|
||||
<?php if (!empty($fl['max'])) { ?>maxlength="<?= $fl['max']; ?>" <?php } ?>
|
||||
<?php if (!empty($fl['id'])) { ?>id="<?= $fl['id']; ?>" <?php } ?>
|
||||
|
@ -12,5 +12,5 @@
|
|||
<?php if (!empty($fl['value'])) { ?>value="<?= $fl['value']; ?>" <?php } ?>
|
||||
name="<?= $fl['name']; ?>">
|
||||
<?php if (!empty($fl['help'])) { ?><div class="text-sm gray-400"><?= $fl['help']; ?></div><?php } ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
<?php } ?>
|
|
@ -2,18 +2,15 @@
|
|||
$checked = $value['checked'] ?? 0;
|
||||
$help = $value['help'] ?? null;
|
||||
?>
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5"><?= $value['title']; ?></label>
|
||||
<label class="container-radio">
|
||||
<input type="radio" name="<?= $value['name']; ?>" <?php if ($checked == 0) { ?>checked<?php } ?> value="0">
|
||||
<span class="checkmark"></span>
|
||||
<?= Translate::get('no'); ?>
|
||||
</label>
|
||||
<label class="container-radio">
|
||||
<input type="radio" name="<?= $value['name']; ?>" <?php if ($checked == 1) { ?>checked<?php } ?> value="1">
|
||||
<span class="checkmark"></span>
|
||||
<fieldset>
|
||||
<label><?= $value['title']; ?></label>
|
||||
<input type="radio" name="<?= $value['name']; ?>" <?php if ($checked == 0) { ?>checked<?php } ?> value="0">
|
||||
<span class="checkmark"></span>
|
||||
<?= Translate::get('no'); ?>
|
||||
|
||||
<input type="radio" name="<?= $value['name']; ?>" <?php if ($checked == 1) { ?>checked<?php } ?> value="1">
|
||||
<span class="checkmark"></span>
|
||||
<?= Translate::get('yes'); ?>
|
||||
</label>
|
||||
<?php if ($help) { ?><div class="mt5 text-sm gray-400"><?= $help; ?></div><?php } ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
<?php } ?>
|
|
@ -1,9 +1,7 @@
|
|||
<div class="mb20 max-w640">
|
||||
<label class="block">
|
||||
<?= Translate::get('blog'); ?>
|
||||
</label>
|
||||
<fieldset>
|
||||
<label><?= Translate::get('blog'); ?></label>
|
||||
<input name="blog_select" id="blog_id">
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
let blog_search = async (props = {}) => {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<div class="mb20 max-w640">
|
||||
<label class="block" for="post_content"><?= Translate::get('for'); ?> TL</label>
|
||||
<fieldset>
|
||||
<label for="post_content"><?= Translate::get('for'); ?> TL</label>
|
||||
<select class="w-100 h30 bg-white br-box-gray" name="content_tl">
|
||||
<?php for ($i = 0; $i <= $user['trust_level']; $i++) { ?>
|
||||
<option <?php if ($data == $i) { ?>selected<?php } ?> value="<?= $i; ?>"><?= $i; ?></option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</div>
|
||||
</fieldset>
|
|
@ -2,12 +2,10 @@
|
|||
// Выбор детей в основной структуре
|
||||
?>
|
||||
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5">
|
||||
<?= $title; ?>
|
||||
</label>
|
||||
<fieldset>
|
||||
<label><?= $title; ?></label>
|
||||
<input name="high_facet_id" id="high_facet_id">
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
var facet_search = async (props = {}) => {
|
||||
|
|
|
@ -2,12 +2,10 @@
|
|||
// Связанные темы
|
||||
?>
|
||||
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5">
|
||||
<?= $title; ?>
|
||||
</label>
|
||||
<fieldset>
|
||||
<label><?= $title; ?></label>
|
||||
<input name="facet_matching[]" id="facet_id_matching">
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
var facet_search = async (props = {}) => {
|
||||
|
|
|
@ -2,12 +2,10 @@
|
|||
// Связанные посты
|
||||
// Related posts
|
||||
?>
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5">
|
||||
<?= $title; ?>
|
||||
</label>
|
||||
<fieldset>
|
||||
<label><?= $title; ?></label>
|
||||
<input name="post_select[]" id="post_id">
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
<div class="mb20 max-w640">
|
||||
<label class="block">
|
||||
<?= Translate::get('section'); ?>
|
||||
</label>
|
||||
<fieldset>
|
||||
<label><?= Translate::get('section'); ?></label>
|
||||
<input name="section_select" id="section_id">
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
let section_search = async (props = {}) => {
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
// $action (edit)
|
||||
?>
|
||||
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5">
|
||||
<fieldset>
|
||||
<label>
|
||||
<?= Translate::get($type); ?> <?php if (!empty($red)) { ?><sup class="red-500">*</sup><?php } ?>
|
||||
</label>
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
|||
<?php } ?>
|
||||
|
||||
<?php if (!empty($help)) { ?><div class="gray text-sm"><?= $help; ?>...</div><?php } ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
var focus_search = async (props = {}) => {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?php if ($uid['trust_level'] > 4) { ?>
|
||||
<div class="mb20 max-w640">
|
||||
<?= Translate::get('author'); ?>
|
||||
<input name='user_id' id="user_id">
|
||||
</div>
|
||||
<fieldset>
|
||||
<label><?= Translate::get('author'); ?></label>
|
||||
<input name='user_id' id="user_id">
|
||||
</fieldset>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
const user_search = async (props = {}) => {
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<div class="br-box-gray bg-blue-100 dark-bg-black dark-br-black gray dark-gray-300 p20 mb15 relative center br-rd5">
|
||||
<box class="bg-blue-100 dark-bg-black gray dark-gray-300 center">
|
||||
<?= Translate::get('not registered'); ?>?
|
||||
<form action="<?= getUrlByName('register'); ?>" class="mt15 mb15 block">
|
||||
<?= sumbit(Translate::get('create account')); ?>
|
||||
</form>
|
||||
<i class="bi bi-emoji-wink absolute right0 mr15 bottom0 mb5 text-3xl gray-400"></i>
|
||||
<a class="mt15 mb0 gray lowercase block text-sm" href="<?= getUrlByName('login'); ?>">
|
||||
<?= Translate::get('sign in'); ?>
|
||||
<?= Translate::get('sign.in'); ?>
|
||||
</a>
|
||||
</div>
|
||||
</box>
|
|
@ -1,6 +1,6 @@
|
|||
<?php if (!empty($related_posts)) { ?>
|
||||
<div class="mb15">
|
||||
<h3 class="uppercase mb5 mt0 font-light text-sm gray"><?= Translate::get('related'); ?></h3>
|
||||
<p>
|
||||
<h3 class="uppercase-box"><?= Translate::get('related'); ?></h3>
|
||||
<?php $num = 0; ?>
|
||||
<?php foreach ($related_posts as $related) { ?>
|
||||
<div class="mb10 flex">
|
||||
|
@ -15,5 +15,5 @@
|
|||
</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</p>
|
||||
<?php } ?>
|
|
@ -4,7 +4,7 @@
|
|||
<?= $lang; ?>...
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="flex flex-row items-center justify-between bg-white br-rd5 br-box-gray p15 mt15">
|
||||
<div class="box-flex bg-white br-box-gray p15">
|
||||
<div class="text-sm">
|
||||
<a class="inline gray-400" title="<?= Translate::get('help'); ?>" href="/info/<?= Config::get('facets.page-one'); ?>">
|
||||
<?= Translate::get('help'); ?>
|
||||
|
|
|
@ -1,29 +1,27 @@
|
|||
<div class="br-box-gray p15 mb15 br-rd5 bg-white text-sm">
|
||||
<form class="" action="<?= getUrlByName('login'); ?>" method="post">
|
||||
<form action="<?= getUrlByName('login'); ?>" method="post">
|
||||
<?php csrf_field(); ?>
|
||||
<div class="mb20">
|
||||
<label for="email" class="block mb5">Email</label>
|
||||
<input type="email" id="email" placeholder="<?= Translate::get('enter'); ?> e-mail" name="email" class="w-100 h30 pl5">
|
||||
</div>
|
||||
<div class="inputs relative mb20">
|
||||
<label for="password" class="block mb5"><?= Translate::get('password'); ?></label>
|
||||
<input type="password" id="password" placeholder="<?= Translate::get('enter your password'); ?>" name="password" class="password w-100 h30 pl5">
|
||||
<span class="showPassword absolute gray-400 right5 text-xl"><i class="bi bi-eye"></i></span>
|
||||
</div>
|
||||
<div class="mb20 mb20 flex">
|
||||
<input type="checkbox" class="left mr5" id="rememberme" name="rememberme" value="1">
|
||||
<label id="rem-text" class="form-check-label" for="rememberme">
|
||||
<span class="gray-600"><?= Translate::get('remember me'); ?></span>
|
||||
<fieldset class="mt0">
|
||||
<label for="email">Email</label>
|
||||
<input type="email" id="email" placeholder="<?= Translate::get('enter'); ?> e-mail" name="email">
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<label for="password"><?= Translate::get('password'); ?></label>
|
||||
<input type="password" id="password" placeholder="<?= Translate::get('enter your password'); ?>" name="password">
|
||||
<span class="showPassword absolute gray-400 right5 mt5 text-lg"><i class="bi bi-eye"></i></span>
|
||||
</fieldset>
|
||||
<fieldset class="flex items-center">
|
||||
<input type="checkbox" id="rememberme" name="rememberme" value="1">
|
||||
<label id="rem-text" class="mb0 ml5 gray-600" for="rememberme">
|
||||
<?= Translate::get('remember me'); ?>
|
||||
</label>
|
||||
</div>
|
||||
<div class="mb20">
|
||||
<?= sumbit(Translate::get('sign in')); ?>
|
||||
</div>
|
||||
<div class="center gray-600">
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<?= sumbit(Translate::get('sign.in')); ?>
|
||||
</fieldset>
|
||||
<fieldset class="gray-600 center">
|
||||
<?= Translate::get('login-use-condition'); ?>
|
||||
</div>
|
||||
<div class="mt15 center">
|
||||
<a class="gray-600" href="<?= getUrlByName('recover'); ?>"><?= Translate::get('forgot your password'); ?>?</a>
|
||||
</div>
|
||||
<a href="<?= getUrlByName('recover'); ?>"><?= Translate::get('forgot your password'); ?>?</a>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
|
@ -1,6 +1,6 @@
|
|||
<?php if ($data['user']['id'] != 1) { ?>
|
||||
<div class="bg-white br-rd5 mb15 br-box-gray p15">
|
||||
<h3 class="uppercase mb5 mt0 font-light text-sm gray"><?= Translate::get('created by'); ?></h3>
|
||||
<h3 class="uppercase-box"><?= Translate::get('created by'); ?></h3>
|
||||
<a class="flex relative pt5 pb5 items-center hidden gray-600" href="/@<?= $data['user']['login']; ?>" title="<?= $data['user']['login']; ?>" >
|
||||
<?= user_avatar_img($data['user']['avatar'], 'max', $data['user']['login'], 'w30 h30 mr10'); ?>
|
||||
<?= $data['user']['login']; ?>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div class="bg-white br-rd5 mb15 br-box-gray p15">
|
||||
<h3 class="uppercase mb5 mt0 font-light text-sm gray"><?= Translate::get($lang); ?></h3>
|
||||
<h3 class="uppercase-box"><?= Translate::get($lang); ?></h3>
|
||||
<?php foreach ($data as $sub) { ?>
|
||||
<a class="flex relative pt5 pb5 items-center hidden gray-600" href="<?= getUrlByName('topic', ['slug' => $sub['facet_slug']]); ?>" title="<?= $sub['facet_title']; ?>">
|
||||
<?= facet_logo_img($sub['facet_img'], 'max', $sub['facet_title'], 'w30 h30 mr10 br-box-gray'); ?>
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
</container>
|
||||
<footer class="w-100 mt15 p15 bg-zinc-800 clear">
|
||||
<div class="col-span-12 max-width grid grid-cols-12 mr-auto">
|
||||
<div class="col-span-3 left mb-none ml10">
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="col-span-2 mb-none"></div>
|
||||
<main class="col-span-8 mb-col-12 bg-white br-rd5 br-box-gray p15 hidden">
|
||||
<h1 class="mt0 mb10 text-2xl center font-normal"><?= Translate::get('authorization'); ?></h1>
|
||||
<form class="max-w300 mb20 block" action="<?= getUrlByName('login'); ?>" method="post">
|
||||
<h1 class="center"><?= Translate::get('authorization'); ?></h1>
|
||||
<form class="max-w300" action="<?= getUrlByName('login'); ?>" method="post">
|
||||
<?php csrf_field(); ?>
|
||||
|
||||
<?= Tpl::import('/_block/form/field-input', [
|
||||
|
@ -14,29 +14,29 @@
|
|||
]
|
||||
]); ?>
|
||||
|
||||
<div class="inputs relative mb20">
|
||||
<fieldset>
|
||||
<label for="password" class="block mb5"><?= Translate::get('password'); ?></label>
|
||||
<input type="password" name="password" class="password w-100 h40 pl5">
|
||||
<span class="showPassword absolute gray-400 right5 bottom5 text-xl"><i class="bi bi-eye"></i></span>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="mb20">
|
||||
<input type="checkbox" class="left mr5" id="rememberme" name="rememberme" value="1">
|
||||
<label class="form-check-label" for="rememberme"><?= Translate::get('remember me'); ?></label>
|
||||
</div>
|
||||
|
||||
<div class="mb20">
|
||||
<?= sumbit(Translate::get('sign in')); ?>
|
||||
<fieldset class="flex items-center">
|
||||
<input type="checkbox" id="rememberme" name="rememberme" value="1">
|
||||
<label for="rememberme" class="mb0 gray-600 ml5"><?= Translate::get('remember me'); ?></label>
|
||||
</fieldset>
|
||||
|
||||
<p>
|
||||
<?= sumbit(Translate::get('sign.in')); ?>
|
||||
<?php if (Config::get('general.invite') == false) { ?>
|
||||
<span class="mr5 ml5 text-sm"><a href="<?= getUrlByName('register'); ?>"><?= Translate::get('sign up'); ?></a></span>
|
||||
<?php } ?>
|
||||
<span class="mr5 ml5 text-sm"><a href="<?= getUrlByName('recover'); ?>"><?= Translate::get('forgot your password'); ?>?</a></span>
|
||||
</div>
|
||||
</p>
|
||||
</form>
|
||||
<?php if (Config::get('general.invite') == 1) { ?>
|
||||
<?= Translate::get('no-invate-txt'); ?>
|
||||
<?php } ?>
|
||||
<div class="pt20 mb5 gray-600"><?= Translate::get('login-use-condition'); ?>.</div>
|
||||
<div class="pt20 mb20 gray-600"><?= Translate::get('info-login'); ?></div>
|
||||
<img class="right" alt="<?= Config::get('meta.name'); ?>" src="<?= Config::get('meta.img_footer_url'); ?>">
|
||||
<p><?= Translate::get('login-use-condition'); ?>.</p>
|
||||
<p><?= Translate::get('info-login'); ?></p>
|
||||
<img class="right" alt="<?= Config::get('meta.name'); ?>" src="<?= Config::get('meta.img_footer_path'); ?>">
|
||||
</main>
|
|
@ -1,23 +1,23 @@
|
|||
<main class="col-span-12 mb-col-12 bg-white br-rd5 br-box-gray pt5 pr15 pb5 pl15">
|
||||
<h1 class="mt0 mb10 text-2xl center font-normal"><?= Translate::get('password recovery'); ?></h1>
|
||||
<main class="col-span-12 mb-col-12 bg-white br-rd5 br-box-gray p15">
|
||||
<h1 class="center"><?= Translate::get('password recovery'); ?></h1>
|
||||
<div class="box wide">
|
||||
<form class="" action="<?= getUrlByName('recover'); ?>/send/pass" method="post">
|
||||
<?php csrf_field(); ?>
|
||||
<div class="mb20">
|
||||
<fieldset>
|
||||
<label class="block" for="password">
|
||||
<?= Translate::get('new password'); ?>
|
||||
</label>
|
||||
<input class="w-100 h30" type="password" name="password" id="password">
|
||||
</div>
|
||||
<div class="mb20">
|
||||
</fieldset>
|
||||
<p>
|
||||
<input type="hidden" name="code" id="code" value="<?= $data['code']; ?>">
|
||||
<input type="hidden" name="user_id" id="user_id" value="<?= $data['id']; ?>">
|
||||
<?= sumbit(Translate::get('reset')); ?>
|
||||
<?php if (Config::get('general.invite') == false) { ?>
|
||||
<span class="mr5 ml5 text-sm"><a href="<?= getUrlByName('register'); ?>"><?= Translate::get('sign up'); ?></a></span>
|
||||
<?php } ?>
|
||||
<span class="mr5 ml5 text-sm"><a href="<?= getUrlByName('login'); ?>"><?= Translate::get('sign in'); ?></a></span>
|
||||
</div>
|
||||
<span class="mr5 ml5 text-sm"><a href="<?= getUrlByName('login'); ?>"><?= Translate::get('sign.in'); ?></a></span>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</main>
|
|
@ -1,6 +1,6 @@
|
|||
<div class="col-span-2 mb-none"></div>
|
||||
<main class="col-span-8 mb-col-12 bg-white br-rd5 br-box-gray pt10 pr15 pb5 pl15">
|
||||
<h1 class="mt0 mb10 text-2xl center font-normal"><?= Translate::get($data['sheet']); ?></h1>
|
||||
<main class="col-span-8 mb-col-12 bg-white br-rd5 br-box-gray p15 hidden">
|
||||
<h1 class="center"><?= Translate::get($data['sheet']); ?></h1>
|
||||
<form class="form max-w300" action="<?= getUrlByName('recover'); ?>/send" method="post">
|
||||
<?php csrf_field(); ?>
|
||||
|
||||
|
@ -17,15 +17,15 @@
|
|||
|
||||
<?= Tpl::import('/_block/captcha'); ?>
|
||||
|
||||
<div class="mb20">
|
||||
<p>
|
||||
<?= sumbit(Translate::get('reset')); ?>
|
||||
<?php if (Config::get('general.invite') == false) { ?>
|
||||
<span class="mr5 ml15 text-sm"><a href="<?= getUrlByName('register'); ?>"><?= Translate::get('sign up'); ?></a></span>
|
||||
<?php } ?>
|
||||
<span class="mr5 ml15 text-sm"><a href="<?= getUrlByName('login'); ?>"><?= Translate::get('sign in'); ?></a></span>
|
||||
</div>
|
||||
<span class="mr5 ml15 text-sm"><a href="<?= getUrlByName('login'); ?>"><?= Translate::get('sign.in'); ?></a></span>
|
||||
</p>
|
||||
</form>
|
||||
<div class="pt20 mb5 gray-600"><?= Translate::get('login-use-condition'); ?>.</div>
|
||||
<div class="pt20 mb20 gray-600"><?= Translate::get('info-recover'); ?></div>
|
||||
<img class="right" alt="<?= Config::get('meta.name'); ?>" src="<?= Config::get('meta.img_footer_url'); ?>">
|
||||
<p><?= Translate::get('login-use-condition'); ?>.</p>
|
||||
<p><?= Translate::get('info-recover'); ?></p>
|
||||
<img class="right" alt="<?= Config::get('meta.name'); ?>" src="<?= Config::get('meta.img_footer_path'); ?>">
|
||||
</main>
|
|
@ -1,6 +1,5 @@
|
|||
<main class="col-span-12 mb-col-12 bg-white br-rd5 br-box-gray pt5 pr15 pb5 pl15">
|
||||
<h1 class="mt0 mb10 text-2xl font-normal"><?= Translate::get('registration by invite'); ?></h1>
|
||||
<div class="form">
|
||||
<main class="col-span-12 mb-col-12 bg-white br-rd5 br-box-gray p15">
|
||||
<h1><?= Translate::get('registration by invite'); ?></h1>
|
||||
<form class="max-w300" action="<?= getUrlByName('register'); ?>/add" method="post">
|
||||
<?php csrf_field(); ?>
|
||||
|
||||
|
@ -36,11 +35,10 @@
|
|||
]
|
||||
]); ?>
|
||||
|
||||
<div class="mb20">
|
||||
<p>
|
||||
<input type="hidden" name="invitation_code" id="invitation_code" value="<?= $data['invate']['invitation_code']; ?>">
|
||||
<input type="hidden" name="invitation_id" id="invitation_id" value="<?= $data['invate']['uid']; ?>">
|
||||
<?= sumbit(Translate::get('sign up')); ?>
|
||||
</div>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</main>
|
|
@ -1,6 +1,6 @@
|
|||
<div class="col-span-2 mb-none"></div>
|
||||
<main class="col-span-8 mb-col-12 bg-white br-rd5 br-box-gray hidden p15">
|
||||
<h1 class="mt0 mb10 text-2xl center font-normal"><?= Translate::get($data['sheet']); ?></h1>
|
||||
<main class="col-span-8 mb-col-12 bg-white br-rd5 br-box-gray p15 hidden">
|
||||
<h1 class="center"><?= Translate::get($data['sheet']); ?></h1>
|
||||
<form class="form max-w300 mb20 block" action="<?= getUrlByName('register'); ?>/add" method="post">
|
||||
<?php csrf_field(); ?>
|
||||
|
||||
|
@ -39,12 +39,12 @@
|
|||
|
||||
<?= Tpl::import('/_block/captcha'); ?>
|
||||
|
||||
<div class="mb20">
|
||||
<p>
|
||||
<?= sumbit(Translate::get('sign up')); ?>
|
||||
<span class="mr5 ml15 text-sm"><a href="<?= getUrlByName('login'); ?>"><?= Translate::get('sign in'); ?></a></span>
|
||||
</div>
|
||||
<span class="mr5 ml15 text-sm"><a href="<?= getUrlByName('login'); ?>"><?= Translate::get('sign.in'); ?></a></span>
|
||||
</p>
|
||||
</form>
|
||||
<div class="pt20 mb5 gray-600"><?= Translate::get('login-use-condition'); ?>.</div>
|
||||
<div class="pt20 mb20 gray-600"><?= Translate::get('info-security'); ?></div>
|
||||
<img class="right" alt="<?= Config::get('meta.name'); ?>" src="<?= Config::get('meta.img_footer_url'); ?>">
|
||||
<p><?= Translate::get('login-use-condition'); ?>.</p>
|
||||
<p><?= Translate::get('info-security'); ?></p>
|
||||
<img class="right" alt="<?= Config::get('meta.name'); ?>" src="<?= Config::get('meta.img_footer_path'); ?>">
|
||||
</main>
|
|
@ -155,7 +155,7 @@
|
|||
|
||||
<?php if (!empty($data['high_arr'])) { ?>
|
||||
<div class="bg-white br-rd5 br-box-gray p15">
|
||||
<h3 class="uppercase mb5 mt0 font-light text-sm gray"><?= Translate::get('parents'); ?></h3>
|
||||
<h3 class="uppercase-box"><?= Translate::get('parents'); ?></h3>
|
||||
<?php foreach ($data['high_arr'] as $high) { ?>
|
||||
<a class="flex relative pt5 pb5 items-center hidden gray-600" href="<?= getUrlByName('topic', ['slug' => $high['facet_slug']]); ?>">
|
||||
<?= facet_logo_img($high['facet_img'], 'max', $high['facet_title'], 'w30 h30 mr10 br-box-gray'); ?>
|
||||
|
@ -167,7 +167,7 @@
|
|||
|
||||
<?php if (!empty($data['low_arr'])) { ?>
|
||||
<div class="bg-white br-rd5 br-box-gray p15">
|
||||
<h3 class="uppercase mb5 mt0 font-light text-sm gray"><?= Translate::get('children'); ?></h3>
|
||||
<h3 class="uppercase-box"><?= Translate::get('children'); ?></h3>
|
||||
<?php foreach ($data['low_arr'] as $sub) { ?>
|
||||
<a class="flex relative pt5 pb5 items-center hidden gray-600" href="<?= getUrlByName('topic', ['slug' => $sub['facet_slug']]); ?>">
|
||||
<?= facet_logo_img($sub['facet_img'], 'max', $sub['facet_title'], 'w30 h30 mr10 br-box-gray'); ?>
|
||||
|
@ -220,7 +220,7 @@
|
|||
|
||||
<?php if (!empty($data['high_matching'])) { ?>
|
||||
<div class="bg-white br-rd5 br-box-gray max-w780 p15 mb15">
|
||||
<h3 class="uppercase mb5 mt0 font-light text-sm gray"><?= Translate::get('bound (parents)'); ?></h3>
|
||||
<h3 class="uppercase-box"><?= Translate::get('bound (parents)'); ?></h3>
|
||||
<?php foreach ($data['high_matching'] as $low_mat) { ?>
|
||||
<a class="flex relative pt5 pb5 items-center hidden gray-600" href="<?= getUrlByName('topic', ['slug' => $low_mat['facet_slug']]); ?>">
|
||||
<?= facet_logo_img($low_mat['facet_img'], 'max', $low_mat['facet_title'], 'w30 h30 mr10 br-box-gray'); ?>
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
<?php if ($user['id'] == 0) { ?>
|
||||
<div class="col-span-12 grid items-center grid-cols-12 mb5">
|
||||
<div class="col-span-12 bg-white br-box-gray br-rd5 p20 center">
|
||||
<h1 class="text-3xl mb-text-xl font-normal mt0 mb5"><?= Config::get('meta.banner_title'); ?></h1>
|
||||
<div class="gray-600 mb5"><?= Config::get('meta.banner_desc'); ?>...</div>
|
||||
</div>
|
||||
</div>
|
||||
<box class="col-span-12 bg-white br-box-gray center">
|
||||
<h1><?= Config::get('meta.banner_title'); ?></h1>
|
||||
<div class="mb5"><?= Config::get('meta.banner_desc'); ?>...</div>
|
||||
</box>
|
||||
<?php } ?>
|
||||
|
||||
<div class="col-span-2 justify-between mb-none">
|
||||
|
@ -19,7 +17,7 @@
|
|||
</div>
|
||||
|
||||
<main class="col-span-7 mb-col-12">
|
||||
<div class="bg-white flex flex-row items-center justify-between br-box-gray br-rd5 p15 mb15">
|
||||
<div class="box-flex bg-white p15">
|
||||
<ul class="flex flex-row list-none m0 p0 center">
|
||||
|
||||
<?= tabs_nav(
|
||||
|
@ -71,10 +69,8 @@
|
|||
<?php } ?>
|
||||
|
||||
<?php if ($user['id'] > 0 && !empty($data['topics_user'])) { ?>
|
||||
<div class="br-box-gray p15 mb15 br-rd5 bg-white text-sm">
|
||||
<h3 class="uppercase lh1 text-sm gray-500 mt5 mb10 font-normal dark-gray-300">
|
||||
<?= Translate::get('reading'); ?>
|
||||
</h3>
|
||||
<box class="br-box-gray bg-white text-sm">
|
||||
<h3 class="uppercase-box"><?= Translate::get('reading'); ?></h3>
|
||||
|
||||
<?php
|
||||
$my = [];
|
||||
|
@ -98,7 +94,7 @@
|
|||
$url = getUrlByName('blog', ['slug' => $topic['facet_slug']]);
|
||||
}
|
||||
?>
|
||||
<div class="flex relative pt5 pb5 items-center justify-between hidden">
|
||||
<div class="bax-flex mb10">
|
||||
<a class="gray-600" href="<?= $url; ?>">
|
||||
<?= facet_logo_img($topic['facet_img'], 'max', $topic['facet_title'], 'w30 h30 mr5'); ?>
|
||||
<span class="ml5 middle dark-gray-300"><?= $topic['facet_title']; ?> <?= $blog; ?></span>
|
||||
|
@ -115,9 +111,9 @@
|
|||
<?= Translate::get('see more'); ?> <i class="bi bi-chevron-double-right middle"></i>
|
||||
</a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</box>
|
||||
<?php } else { ?>
|
||||
<div class="br-box-gray p15 mb15 br-rd5 bg-white text-sm">
|
||||
<box class="br-box-gray bg-white text-sm">
|
||||
<div class="uppercase gray mt5 mb5">
|
||||
<?= Translate::get('topics'); ?>
|
||||
</div>
|
||||
|
@ -127,27 +123,25 @@
|
|||
<span class="ml5"><?= $topic['name']; ?></span>
|
||||
</a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</box>
|
||||
<?php } ?>
|
||||
|
||||
<div class="sticky top70">
|
||||
<?php if (!empty($data['latest_answers'])) { ?>
|
||||
<div class="last-comm br-box-gray p5 pr15 pb5 pl15 bg-white br-rd5">
|
||||
<box class="br-box-gray bg-white">
|
||||
<?php foreach ($data['latest_answers'] as $answer) { ?>
|
||||
<div class="mt15 mr0 mb15 ml0 text-sm">
|
||||
<div class="gray-400">
|
||||
<?= user_avatar_img($answer['avatar'], 'small', $answer['login'], 'w20 h20 br-rd-50 mr5'); ?>
|
||||
<span class="middle lowercase"><?= $answer['answer_date']; ?></span>
|
||||
</div>
|
||||
<a class="black dark-gray-300" href="<?= getUrlByName('post', ['id' => $answer['post_id'], 'slug' => $answer['post_slug']]); ?>#answer_<?= $answer['answer_id']; ?>">
|
||||
<div class="mb15 text-sm gray-400">
|
||||
<?= user_avatar_img($answer['avatar'], 'small', $answer['login'], 'w20 h20 br-rd-50 mr5'); ?>
|
||||
<span class="middle lowercase"><?= $answer['answer_date']; ?></span>
|
||||
<a class="black block dark-gray-300" href="<?= getUrlByName('post', ['id' => $answer['post_id'], 'slug' => $answer['post_slug']]); ?>#answer_<?= $answer['answer_id']; ?>">
|
||||
<?= $answer['answer_content']; ?>...
|
||||
</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</box>
|
||||
<?php } ?>
|
||||
|
||||
<?= Tpl::import('/_block/sidebar/lang', ['lang' => []]); ?>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</container>
|
|
@ -134,7 +134,7 @@
|
|||
'help' => Translate::get('necessarily'),
|
||||
]); ?>
|
||||
|
||||
<?= sumbit(Translate::get('create')); ?>
|
||||
<p><?= sumbit(Translate::get('create')); ?></p>
|
||||
</form>
|
||||
</div>
|
||||
</main>
|
|
@ -157,13 +157,13 @@
|
|||
'help' => Translate::get('necessarily'),
|
||||
]); ?>
|
||||
|
||||
<div class="mb20">
|
||||
<p>
|
||||
<?php if ($post['post_draft'] == 1) { ?>
|
||||
<input type="hidden" name="draft" id="draft" value="1">
|
||||
<?php } ?>
|
||||
<input type="hidden" name="post_id" id="post_id" value="<?= $post['post_id']; ?>">
|
||||
<?= sumbit(Translate::get('edit')); ?>
|
||||
</div>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</main>
|
|
@ -6,13 +6,13 @@
|
|||
<?= Tpl::import('/_block/no-login-screensaver'); ?>
|
||||
<?php } ?>
|
||||
<?php $post_url = getUrlByName('post', ['id' => $post['post_id'], 'slug' => $post['post_slug']]); ?>
|
||||
<div class="br-box-gray bg-white p20 mb15 br-rd5 article_<?= $post['post_id']; ?>">
|
||||
<box class="br-box-gray bg-white article_<?= $post['post_id']; ?>">
|
||||
<?php if ($data['sheet'] == 'subscribed') { ?>
|
||||
<div data-id="<?= $post['post_id']; ?>" data-type="post" class="focus-id text-sm right">
|
||||
<?= Translate::get('unsubscribe'); ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="flex mb15 relative">
|
||||
<div class="flex mb10 relative">
|
||||
<div class="user-card" data-content_id="<?= $post['post_id']; ?>" data-user_id="<?= $post['id']; ?>">
|
||||
<?= user_avatar_img($post['avatar'], 'max', $post['login'], 'w40 h40 br-rd-50 mr5'); ?>
|
||||
<div id="content_<?= $post['post_id']; ?>" class="content_<?= $post['post_id']; ?>"></div>
|
||||
|
@ -30,7 +30,7 @@
|
|||
<div class="flex flex-row flex-auto">
|
||||
<div class="w-auto mr20 mb-mr-5">
|
||||
<a class="black dark-gray-300" href="<?= $post_url; ?>">
|
||||
<h2 class="font-normal text-2xl mt0 mb0">
|
||||
<h2 class="mb0">
|
||||
<?= Tpl::import('/content/post/post-title', ['post' => $post]); ?>
|
||||
</h2>
|
||||
</a>
|
||||
|
@ -80,7 +80,7 @@
|
|||
<?= favorite($user['id'], $post['post_id'], 'post', $post['favorite_tid'], 'ps', ''); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</box>
|
||||
<?php } ?>
|
||||
<?php } else { ?>
|
||||
<?= Tpl::import('/_block/recommended-topics', ['data' => $data]); ?>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<h1 class="mb0 mt5 font-normal text-2xl">
|
||||
<h1 class="mb0">
|
||||
<?= Tpl::import('/content/post/post-title', ['post' => $post]); ?>
|
||||
</h1>
|
||||
<div class="text-sm lowercase flex gray-400">
|
||||
|
@ -96,7 +96,7 @@
|
|||
</div>
|
||||
<?php } ?>
|
||||
<?php if ($post['post_url_domain']) { ?>
|
||||
<h3 class="uppercase mb5 mt0 font-light text-sm gray"><?= Translate::get('source'); ?></h3>
|
||||
<h3 class="uppercase-box"><?= Translate::get('source'); ?></h3>
|
||||
<div class="italic m15 mb15 p10 text-sm bg-gray-100 table gray">
|
||||
<div>
|
||||
<i class="bi bi-link-45deg"></i>
|
||||
|
@ -197,7 +197,7 @@
|
|||
<?= Tpl::import('/_block/editor/editor', [
|
||||
'user' => $user,
|
||||
'height' => '250px',
|
||||
'preview' => 'vertical',
|
||||
'preview' => 'none',
|
||||
]); ?>
|
||||
|
||||
<div class="clear pt5">
|
||||
|
@ -233,9 +233,7 @@
|
|||
|
||||
<?php if (!empty($data['facets'])) { ?>
|
||||
<div class="br-box-gray bg-white br-rd5 mb15 p15">
|
||||
<h3 class="uppercase lh1 text-sm gray-500 mt5 mb10 font-normal dark-gray-300">
|
||||
<?= Translate::get('topics'); ?>
|
||||
</h3>
|
||||
<h3 class="uppercase-box"><?= Translate::get('topics'); ?></h3>
|
||||
<?php foreach ($data['facets'] as $topic) { ?>
|
||||
<div class="mb10">
|
||||
<?= facet_logo_img($topic['facet_img'], 'max', $topic['facet_title'], 'w30 h30 mr10 br-box-gray'); ?>
|
||||
|
@ -270,7 +268,7 @@
|
|||
</div>
|
||||
<?php if ($data['recommend']) { ?>
|
||||
<div class="br-box-gray bg-white br-rd5 mb15 sticky top70 p15">
|
||||
<h3 class="uppercase mb10 mt0 font-light text-sm gray dark-gray-300"><?= Translate::get('recommended'); ?></h3>
|
||||
<h3 class="uppercase-box"><?= Translate::get('recommended'); ?></h3>
|
||||
<?php foreach ($data['recommend'] as $rec_post) { ?>
|
||||
<div class="mb15 hidden flex text-sm">
|
||||
<?php if ($rec_post['post_type'] == 'post') { ?>
|
||||
|
@ -343,5 +341,4 @@
|
|||
}));
|
||||
<?php } ?>
|
||||
</script>
|
||||
</div>
|
||||
<?= Tpl::import('/_block/wide-footer'); ?>
|
|
@ -8,7 +8,7 @@
|
|||
<input class="w-100 h30" type="text" name="invite" id="invite">
|
||||
</div>
|
||||
<div class="mb20">
|
||||
<?= sumbit(Translate::get('sign in')); ?>
|
||||
<?= sumbit(Translate::get('sign.in')); ?>
|
||||
<span class="ml15 text-sm"><a href="<?= getUrlByName('recover'); ?>">
|
||||
<?= Translate::get('forgot your password'); ?>?</a>
|
||||
</span>
|
||||
|
|
|
@ -21,7 +21,7 @@ if ($profile['cover_art'] != 'cover_art.jpeg') {
|
|||
</div>
|
||||
<div class="flex">
|
||||
|
||||
<h1 class="text-2xl font-normal mb-block mt20 ml15 mb5 flex justify-between">
|
||||
<h1 class="mb-block ml15 flex justify-between">
|
||||
<?= $profile['login']; ?>
|
||||
<?php if ($profile['name']) { ?> / <?= $profile['name']; ?><?php } ?>
|
||||
<?php if ($profile['up_count'] > 0) { ?>
|
||||
|
@ -82,6 +82,5 @@ if ($profile['cover_art'] != 'cover_art.jpeg') {
|
|||
<?php } ?>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<div class="col-span-4 justify-between mb-none">
|
||||
|
||||
<div class="br-box-gray bg-white p15 mb15">
|
||||
<box class="br-box-gray bg-white">
|
||||
<blockquote class="ml0 mb10 max-w640 gray">
|
||||
<?= $profile['about']; ?>...
|
||||
</blockquote>
|
||||
|
@ -13,20 +13,18 @@
|
|||
<sup class="ml5"><?= Translate::get('tl' . $profile['trust_level'] . '.title'); ?></sup>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</box>
|
||||
|
||||
<?php if ($data['blogs']) { ?>
|
||||
<div class="br-box-gray bg-white p15 mb15">
|
||||
<h3 class="m0 uppercase gray font-normal text-sm mb15">
|
||||
<?= Translate::get('created by'); ?>
|
||||
</h3>
|
||||
<box class="br-box-gray bg-white">
|
||||
<h3 class="uppercase-box"><?= Translate::get('created by'); ?></h3>
|
||||
<?php foreach ($data['blogs'] as $blog) { ?>
|
||||
<div class="w-100 mb-w-100 mb15 flex flex-row">
|
||||
<a title="<?= $blog['facet_title']; ?>" class="mr10" href="<?= getUrlByName($blog['facet_type'], ['slug' => $blog['facet_slug']]); ?>">
|
||||
<a class="mr10" href="<?= getUrlByName($blog['facet_type'], ['slug' => $blog['facet_slug']]); ?>">
|
||||
<?= facet_logo_img($blog['facet_img'], 'max', $blog['facet_title'], 'w60 h60 br-box-gray br-rd-50'); ?>
|
||||
</a>
|
||||
<div class="ml5 w-100">
|
||||
<a class="black" title="<?= $blog['facet_title']; ?>" href="<?= getUrlByName($blog['facet_type'], ['slug' => $blog['facet_slug']]); ?>">
|
||||
<a class="black" href="<?= getUrlByName($blog['facet_type'], ['slug' => $blog['facet_slug']]); ?>">
|
||||
<?= $blog['facet_title']; ?>
|
||||
</a>
|
||||
<div class="text-sm pr15 mb-pr-0 gray-400">
|
||||
|
@ -43,15 +41,13 @@
|
|||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</box>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($profile['my_post'] != 0) { ?>
|
||||
<?php $post = $data['post']; ?>
|
||||
<div class="br-box-gray bg-white p15 mb15">
|
||||
<h3 class="m0 uppercase gray font-normal text-sm">
|
||||
<?= Translate::get('selected post'); ?>
|
||||
</h3>
|
||||
<box class="br-box-gray bg-white">
|
||||
<h3 class="uppercase-box"><?= Translate::get('selected post'); ?></h3>
|
||||
<div class="mt5">
|
||||
<a class="dark-gray-300" href="<?= getUrlByName('post', ['id' => $post['post_id'], 'slug' => $post['post_slug']]); ?>">
|
||||
<?= $post['post_title']; ?>
|
||||
|
@ -77,42 +73,36 @@
|
|||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</box>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($data['topics']) { ?>
|
||||
<div class="br-box-gray bg-white p15 mb15">
|
||||
<h3 class="uppercase gray m0 font-normal text-sm mb5">
|
||||
<?= Translate::get('is reading'); ?>
|
||||
</h3>
|
||||
<box class="br-box-gray bg-white">
|
||||
<h3 class="uppercase-box"><?= Translate::get('is reading'); ?></h3>
|
||||
<?php foreach ($data['topics'] as $topic) { ?>
|
||||
<div class="mt5 mb5">
|
||||
<a class="flex relative items-center pt5 pb5 hidden gray" href="<?= getUrlByName('topic', ['slug' => $topic['facet_slug']]); ?>" title="<?= $topic['facet_title']; ?>">
|
||||
<a class="flex relative items-center pt5 pb5 hidden gray" href="<?= getUrlByName('topic', ['slug' => $topic['facet_slug']]); ?>">
|
||||
<?= facet_logo_img($topic['facet_img'], 'small', $topic['facet_title'], 'w30 h30 mr10'); ?>
|
||||
<span class="bar-name text-sm"><?= $topic['facet_title']; ?></span>
|
||||
</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</box>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($data['participation'][0]['facet_id'])) { ?>
|
||||
<div class="br-box-gray bg-white p15 mb15">
|
||||
<h3 class="m0 uppercase gray font-normal text-sm mb5">
|
||||
<?= Translate::get('understands'); ?>
|
||||
</h3>
|
||||
<box class="br-box-gray bg-white">
|
||||
<h3 class="uppercase-box"><?= Translate::get('understands'); ?></h3>
|
||||
<?php foreach ($data['participation'] as $part) { ?>
|
||||
<a class="bg-blue-100 bg-hover-green white-hover pt5 pr10 pb5 pl10 mb5 br-rd20 sky-500 inline text-sm" href="<?= getUrlByName('topic', ['slug' => $part['facet_slug']]); ?>">
|
||||
<?= $part['facet_title']; ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</box>
|
||||
<?php } ?>
|
||||
|
||||
<div class="br-box-gray bg-white p15 mb15">
|
||||
<h3 class="m0 uppercase gray font-normal text-sm">
|
||||
<?= Translate::get('contacts'); ?>
|
||||
</h3>
|
||||
<box class="br-box-gray bg-white">
|
||||
<h3 class="uppercase-box"><?= Translate::get('contacts'); ?></h3>
|
||||
<?php foreach (Config::get('fields-profile') as $block) { ?>
|
||||
<?php if ($profile[$block['title']]) { ?>
|
||||
<div class="mt5">
|
||||
|
@ -133,12 +123,10 @@
|
|||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</box>
|
||||
|
||||
<div class="br-box-gray bg-white p15 mb15">
|
||||
<h3 class="m0 uppercase gray font-normal text-sm">
|
||||
<?= Translate::get('badges'); ?>
|
||||
</h3>
|
||||
<box class="br-box-gray bg-white">
|
||||
<h3 class="uppercase-box"><?= Translate::get('badges'); ?></h3>
|
||||
<div class="m0 text-3xl">
|
||||
<i title="<?= Translate::get('medal for registration'); ?>" class="bi bi-gift sky-500"></i>
|
||||
<?php if ($profile['id'] < 50) { ?>
|
||||
|
@ -148,13 +136,11 @@
|
|||
<?= $badge['badge_icon']; ?>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</box>
|
||||
|
||||
<?php if (UserData::checkAdmin()) { ?>
|
||||
<div class="br-box-gray bg-white p15 mb15">
|
||||
<h3 class="m0 uppercase gray font-normal text-sm">
|
||||
<?= Translate::get('admin'); ?>
|
||||
</h3>
|
||||
<box class="br-box-gray bg-white">
|
||||
<h3 class="uppercase-box"><?= Translate::get('admin'); ?></h3>
|
||||
<div class="mt5">
|
||||
<?php if ($profile['trust_level'] != UserData::REGISTERED_ADMIN) { ?>
|
||||
<?php if ($profile['ban_list'] == 1) { ?>
|
||||
|
@ -187,6 +173,6 @@
|
|||
<hr>
|
||||
<span class="gray">id<?= $profile['id']; ?> | <?= $profile['email']; ?></span>
|
||||
</div>
|
||||
</div>
|
||||
</box>
|
||||
<?php } ?>
|
||||
</div>
|
|
@ -20,19 +20,19 @@
|
|||
<form class="max-w640" action="<?= getUrlByName('setting.edit'); ?>" method="post" enctype="multipart/form-data">
|
||||
<?php csrf_field(); ?>
|
||||
|
||||
<div class="mb20">
|
||||
<fieldset>
|
||||
<?= user_avatar_img($data['user']['avatar'], 'small', $data['user']['login'], 'mr5 ml5 ava'); ?>
|
||||
<span class="mr5 ml5">
|
||||
<a title="<?= Translate::get('profile'); ?>" href="/@<?= $user['login']; ?>">
|
||||
<?= $data['user']['login']; ?>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="mb20">
|
||||
<fieldset>
|
||||
<span class="name gray">E-mail:</span>
|
||||
<span class="mr5 ml5"><?= $data['user']['email']; ?></span>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<?= Tpl::import(
|
||||
'/_block/form/field-input',
|
||||
|
@ -65,16 +65,14 @@
|
|||
'user' => $user
|
||||
]); ?>
|
||||
|
||||
<div id="box" class="mb20">
|
||||
<fieldset id="box">
|
||||
<label class="block" for="post_content"><?= Translate::get('color'); ?></label>
|
||||
<input type="color" value="<?= $data['user']['color']; ?>" id="colorPicker">
|
||||
<input type="hidden" name="color" value="<?= $data['user']['color']; ?>" id="color">
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5" for="template">
|
||||
<?= Translate::get('template'); ?>
|
||||
</label>
|
||||
<fieldset class="max-w640">
|
||||
<label for="template"><?= Translate::get('template'); ?></label>
|
||||
<select class="w-100 h30" name="template">
|
||||
<?php foreach (Config::get('general.templates') as $tpl) { ?>
|
||||
<option <?php if ($data['user']['template'] == $tpl) { ?>selected<?php } ?> value="<?= $tpl; ?>">
|
||||
|
@ -82,10 +80,10 @@
|
|||
</option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5" for="post_content"><?= Translate::get('language'); ?></label>
|
||||
<fieldset class="max-w640">
|
||||
<label for="post_content"><?= Translate::get('language'); ?></label>
|
||||
<select class="w-100 h30" name="lang">
|
||||
<?php foreach (Config::get('general.languages') as $lang) { ?>
|
||||
<option <?php if ($data['user']['lang'] == $lang) { ?>selected<?php } ?> value="<?= $lang; ?>">
|
||||
|
@ -93,7 +91,7 @@
|
|||
</option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<h3><?= Translate::get('contacts'); ?></h3>
|
||||
<?php foreach (Config::get('fields-profile') as $block) { ?>
|
||||
|
|
|
@ -2,19 +2,4 @@
|
|||
* Additional styles
|
||||
*
|
||||
* Дополнительные стили
|
||||
*/
|
||||
|
||||
.tags-xs {
|
||||
margin-right: 5px;
|
||||
padding: 2px 6px 2px 6px;
|
||||
border-bottom: 1px solid #bbbbbb;
|
||||
background-color: #ececec;
|
||||
color: #6b3e4a;
|
||||
border-radius: 3px;
|
||||
font-size: $fontSize-xs;
|
||||
}
|
||||
|
||||
.tags-xs:hover {
|
||||
color: #444;
|
||||
background-color: #fff;
|
||||
}
|
||||
*/
|
|
@ -316,4 +316,3 @@ img {
|
|||
.table { display: table; }
|
||||
.inline { display: inline-block; }
|
||||
.list-none { list-style: none; }
|
||||
.lh1 { line-height: 1; }
|
||||
|
|
|
@ -10,7 +10,14 @@
|
|||
|
||||
/* Resources used for Agouti design */
|
||||
@import "basic.scss";
|
||||
@import "inputs.scss";
|
||||
@import "table.scss";
|
||||
@import "button.scss";
|
||||
|
||||
@import "components.scss";
|
||||
@import "dark.scss";
|
||||
@import "media.scss";
|
||||
@import "icons.scss";
|
||||
|
||||
|
||||
@import "../custom.scss";
|
||||
|
|
55
resources/views/default/css/scss/button.scss
Normal file
55
resources/views/default/css/scss/button.scss
Normal file
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
* @button styles
|
||||
*
|
||||
* Кнопки
|
||||
*/
|
||||
|
||||
/* Buttons */
|
||||
.btn {
|
||||
display: inline-block;
|
||||
font-weight: 400;
|
||||
color: #212529;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
background-color: transparent;
|
||||
border: 1px solid transparent;
|
||||
padding: 0.25rem 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
|
||||
.btn-small {
|
||||
padding: 0.15rem 0.35rem;
|
||||
font-size: 0.775rem;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
color: $white;
|
||||
background-color: #0085ee;
|
||||
border-color: #0379d7;
|
||||
}
|
||||
|
||||
.btn-outline-primary {
|
||||
color: #0085ee;
|
||||
background-color: $white;
|
||||
border-color: #0085ee;
|
||||
}
|
||||
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus {
|
||||
color: $white;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.btn-outline-primary:hover,
|
||||
.btn-outline-primary:focus {
|
||||
color: $white;
|
||||
background-color: #0085ee;
|
||||
border-color: #0379d7;
|
||||
}
|
||||
|
||||
.fon-rgba {
|
||||
background-color: rgba(0,0,0,.3);
|
||||
padding: 1px 6px;
|
||||
}
|
|
@ -4,6 +4,55 @@
|
|||
* Компоненты, основанные на базовом стиле Агути
|
||||
*/
|
||||
|
||||
container {
|
||||
display: grid;
|
||||
gap: 1rem;
|
||||
grid-template-columns: repeat(12, minmax(0, 1fr));
|
||||
max-width: 1636px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
box {
|
||||
border-radius: 5px;
|
||||
padding: 15px;
|
||||
margin-bottom: 15px;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.box-flex {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.logo {
|
||||
text-transform: uppercase;
|
||||
font-size: 21px;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5 {
|
||||
font-weight: 400;
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
|
||||
h3.uppercase-box {
|
||||
color: #6b7280;
|
||||
font-size: 0.875rem;
|
||||
text-transform: uppercase;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
code {
|
||||
color: #9b4f5e;
|
||||
background-color: #f5f2f0;
|
||||
|
@ -29,259 +78,6 @@ hr {
|
|||
height: 1px;
|
||||
}
|
||||
|
||||
textarea {
|
||||
width: 100%;
|
||||
font-size: 16px;
|
||||
padding: 1px 6px;
|
||||
border: 1px solid $slate-300;
|
||||
}
|
||||
|
||||
input, select {
|
||||
border: 1px solid $slate-300;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
select { background-color: #fff; }
|
||||
|
||||
input:focus,
|
||||
textarea:focus { border: 1px solid #9ccdf8; }
|
||||
|
||||
::placeholder { color: #919191; }
|
||||
|
||||
.shown_post img { width: 100%; }
|
||||
.post-body.full img:hover { box-shadow: 0 1px 8px 0 rgb(0 0 0 / 20%); }
|
||||
.post-body .post-img img { margin-top: 5px; }
|
||||
|
||||
.post-body.full img {
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.answ-telo p img {
|
||||
max-width: 99%;
|
||||
max-height: 500px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.comment_subtree:target,
|
||||
.comment_subtree.edit,
|
||||
.answers_subtree:target,
|
||||
.answers_subtree.edit {
|
||||
background-clip: content-box;
|
||||
background-color: lightyellow;
|
||||
margin-top: -70px;
|
||||
padding-top: 70px;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-bottom: 1.5rem;
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
table td,
|
||||
table th { font-size: 14px; }
|
||||
|
||||
table tr:nth-of-type(2n) { background-color: #f3f3f6; }
|
||||
table thead th { border-bottom: 2px solid rgba(222, 226, 230, 0.5); }
|
||||
|
||||
td,
|
||||
th { padding: 5px; }
|
||||
|
||||
.dark,
|
||||
.dark.bg-gray-100 {
|
||||
background-color: $neutral-900;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.dark .gray { color: #ccc; }
|
||||
|
||||
.dark .bg-yellow-100,
|
||||
.dark .bg-white {
|
||||
background-color: $zinc-800;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
.dark input,
|
||||
.dark select,
|
||||
.dark textarea,
|
||||
.dark blockquote,
|
||||
.dark table tr:nth-of-type(2n) {
|
||||
background-color: $neutral-900;
|
||||
color: $white;
|
||||
border: 1px solid $black;
|
||||
}
|
||||
|
||||
.dark .dark-bg-black,
|
||||
.dark .answers_subtree:target { background-color: $black; }
|
||||
|
||||
.dark .br-box-gray { border: 1px solid $black; }
|
||||
.dark .dark-br-black { border: 1px solid $neutral-900; }
|
||||
.dark .br-bottom-black { border-bottom: 1px solid $black; }
|
||||
.dark .dark-gray-300 { color: $gray-300; }
|
||||
|
||||
.video-object {
|
||||
width: 640px;
|
||||
height: 360px;
|
||||
}
|
||||
|
||||
.answ-telo .video-object {
|
||||
width: 290px;
|
||||
height: 160px;
|
||||
}
|
||||
|
||||
.home-img,
|
||||
.thumb {
|
||||
width: 260px;
|
||||
height: 130px;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.preview .home-img { display: none; }
|
||||
|
||||
.up_down_btn {
|
||||
bottom: 40px;
|
||||
right: 10px;
|
||||
line-height: 30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.up_down_btn:hover {
|
||||
text-decoration: none;
|
||||
background-color: #e9ebec;
|
||||
}
|
||||
|
||||
.up_down_btn-disabled {
|
||||
cursor: default;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
.btn {
|
||||
display: inline-block;
|
||||
font-weight: 400;
|
||||
color: #212529;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
background-color: transparent;
|
||||
border: 1px solid transparent;
|
||||
padding: 0.25rem 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
|
||||
.btn-small {
|
||||
padding: 0.15rem 0.35rem;
|
||||
font-size: 0.775rem;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
color: $white;
|
||||
background-color: #0085ee;
|
||||
border-color: #0379d7;
|
||||
}
|
||||
|
||||
.btn-outline-primary {
|
||||
color: #0085ee;
|
||||
background-color: $white;
|
||||
border-color: #0085ee;
|
||||
}
|
||||
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus {
|
||||
color: $white;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.btn-outline-primary:hover,
|
||||
.btn-outline-primary:focus {
|
||||
color: $white;
|
||||
background-color: #0085ee;
|
||||
border-color: #0379d7;
|
||||
}
|
||||
|
||||
.fon-rgba {
|
||||
background-color: rgba(0,0,0,.3);
|
||||
padding: 1px 6px;
|
||||
}
|
||||
|
||||
/* Customize the label (the container) */
|
||||
.container-radio {
|
||||
display: block;
|
||||
position: relative;
|
||||
padding-left: 35px;
|
||||
margin-bottom: 12px;
|
||||
cursor: pointer;
|
||||
font-size: 18px;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.container-radio input {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.checkmark {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 25px;
|
||||
width: 25px;
|
||||
background-color: #eee;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.container-radio:hover input ~ .checkmark {
|
||||
background-color: #ccc;
|
||||
}
|
||||
|
||||
.container-radio input:checked ~ .checkmark {
|
||||
background-color: #2196F3;
|
||||
}
|
||||
|
||||
.checkmark:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.container-radio input:checked ~ .checkmark:after {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.container-radio .checkmark:after {
|
||||
top: 9px;
|
||||
left: 9px;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
/* Tags */
|
||||
.tags-look .tagify__dropdown__item {
|
||||
display: inline-block;
|
||||
border-radius: 3px;
|
||||
padding: 0.3em 0.5em;
|
||||
border: 1px solid #ccc;
|
||||
background-color: #f3f3f3;
|
||||
margin: 0.2em;
|
||||
font-size: 0.85em;
|
||||
color: black;
|
||||
transition: 0s;
|
||||
}
|
||||
|
||||
.tags-look .tagify__dropdown__item--active {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.tags-look .tagify__dropdown__item:hover {
|
||||
background-color: lightyellow;
|
||||
border-color: gold;
|
||||
}
|
||||
|
||||
details {
|
||||
border-radius: 0 0 3px 3px;
|
||||
background-color: #f5f5fa;
|
||||
|
@ -315,6 +111,112 @@ a:hover > img { opacity: 0.8; }
|
|||
.underline-hover:hover { text-decoration: underline; }
|
||||
.answ-telo p:first-child {margin-top: $px-five;}
|
||||
|
||||
.shown_post img { width: 100%; }
|
||||
.post-body.full img:hover { box-shadow: 0 1px 8px 0 rgb(0 0 0 / 20%); }
|
||||
.post-body .post-img img { margin-top: 5px; }
|
||||
|
||||
.post-body.full img {
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.answ-telo p img {
|
||||
max-width: 99%;
|
||||
max-height: 500px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.comment_subtree:target,
|
||||
.comment_subtree.edit,
|
||||
.answers_subtree:target,
|
||||
.answers_subtree.edit {
|
||||
background-clip: content-box;
|
||||
background-color: lightyellow;
|
||||
margin-top: -70px;
|
||||
padding-top: 70px;
|
||||
}
|
||||
|
||||
.video-object {
|
||||
width: 640px;
|
||||
height: 360px;
|
||||
}
|
||||
|
||||
.answ-telo .video-object {
|
||||
width: 290px;
|
||||
height: 160px;
|
||||
}
|
||||
|
||||
.home-img,
|
||||
.thumb {
|
||||
width: 260px;
|
||||
height: 130px;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.preview .home-img { display: none; }
|
||||
|
||||
.up_down_btn {
|
||||
bottom: 40px;
|
||||
right: 10px;
|
||||
line-height: 30px;
|
||||
cursor: pointer;
|
||||
background-color: #f3f4f6;
|
||||
text-align: center;
|
||||
position: fixed;
|
||||
z-index: 50;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
color: #374151;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.up_down_btn:hover {
|
||||
text-decoration: none;
|
||||
background-color: #e9ebec;
|
||||
}
|
||||
|
||||
.up_down_btn-disabled {
|
||||
cursor: default;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
/* Tags */
|
||||
.tags-look .tagify__dropdown__item {
|
||||
display: inline-block;
|
||||
border-radius: 3px;
|
||||
padding: 0.3em 0.5em;
|
||||
border: 1px solid #ccc;
|
||||
background-color: #f3f3f3;
|
||||
margin: 0.2em;
|
||||
font-size: 0.85em;
|
||||
color: black;
|
||||
transition: 0s;
|
||||
}
|
||||
|
||||
.tags-look .tagify__dropdown__item--active {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.tags-look .tagify__dropdown__item:hover {
|
||||
background-color: lightyellow;
|
||||
border-color: gold;
|
||||
}
|
||||
|
||||
.tags-xs {
|
||||
margin-right: 5px;
|
||||
padding: 2px 6px 2px 6px;
|
||||
border-bottom: 1px solid #bbbbbb;
|
||||
background-color: #ececec;
|
||||
color: #6b3e4a;
|
||||
border-radius: 3px;
|
||||
font-size: $fontSize-xs;
|
||||
}
|
||||
|
||||
.tags-xs:hover {
|
||||
color: #444;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
/* qa */
|
||||
.tags-sm {
|
||||
margin-right: 5px;
|
||||
|
@ -339,6 +241,8 @@ a:hover > img { opacity: 0.8; }
|
|||
}
|
||||
|
||||
/* Drop-down menu and left nav */
|
||||
menu { padding: 0px; }
|
||||
|
||||
nav > ul > li > a {
|
||||
color: #9ca3af;
|
||||
padding: 3px 10px;
|
||||
|
@ -350,7 +254,8 @@ nav > ul > li > a {
|
|||
ul > li > a span { color: #4b5563; }
|
||||
|
||||
ul > li > a:hover > span,
|
||||
a.sky-500 span { color: #0ea5e9; }
|
||||
ul > li > a:hover > i,
|
||||
a.sky-500 span { color: #0ea5e9; }
|
||||
|
||||
/* Tippy.js - theme: light, */
|
||||
.dark .tippy-box[data-theme~="light"] {
|
||||
|
|
37
resources/views/default/css/scss/dark.scss
Normal file
37
resources/views/default/css/scss/dark.scss
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* @dark styles
|
||||
*
|
||||
* Ночной режим
|
||||
*/
|
||||
|
||||
.dark,
|
||||
.dark.bg-gray-100 {
|
||||
background-color: $neutral-900;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.dark .gray { color: #ccc; }
|
||||
|
||||
.dark .bg-yellow-100,
|
||||
.dark .bg-white {
|
||||
background-color: $zinc-800;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
.dark input,
|
||||
.dark select,
|
||||
.dark textarea,
|
||||
.dark blockquote,
|
||||
.dark table tr:nth-of-type(2n) {
|
||||
background-color: $neutral-900;
|
||||
color: $white;
|
||||
border: 1px solid $black;
|
||||
}
|
||||
|
||||
.dark .dark-bg-black,
|
||||
.dark .answers_subtree:target { background-color: $black; }
|
||||
|
||||
.dark .br-box-gray { border: 1px solid $black; }
|
||||
.dark .dark-br-black { border: 1px solid $neutral-900; }
|
||||
.dark .br-bottom-black { border-bottom: 1px solid $black; }
|
||||
.dark .dark-gray-300 { color: $gray-300; }
|
47
resources/views/default/css/scss/inputs.scss
Normal file
47
resources/views/default/css/scss/inputs.scss
Normal file
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* @form styles
|
||||
*
|
||||
* Стили для форм
|
||||
*/
|
||||
|
||||
textarea {
|
||||
width: 100%;
|
||||
font-size: 16px;
|
||||
padding: 1px 6px;
|
||||
border: 1px solid $slate-300;
|
||||
}
|
||||
|
||||
input, select {
|
||||
border: 1px solid $slate-300;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
fieldset input:not([type=radio]):not([type=checkbox]):not([type=range]) {
|
||||
width: 100%;
|
||||
min-height: 34px;
|
||||
font-size: 16px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
select { background-color: #fff; }
|
||||
|
||||
input:focus,
|
||||
textarea:focus { border: 1px solid #9ccdf8; }
|
||||
|
||||
label {
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
::placeholder { color: #919191; }
|
|
@ -40,6 +40,7 @@
|
|||
.mb-none { display: none; }
|
||||
.mb-block { display: block; }
|
||||
.mb-absolute { position: absolute; }
|
||||
.logo { font-size: 18px; }
|
||||
|
||||
.mb-video-object {
|
||||
width: 280px;
|
||||
|
|
21
resources/views/default/css/scss/table.scss
Normal file
21
resources/views/default/css/scss/table.scss
Normal file
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
* @table styles
|
||||
*
|
||||
* Таблицы
|
||||
*/
|
||||
|
||||
table {
|
||||
margin-bottom: 1.5rem;
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
table td,
|
||||
table th { font-size: 14px; }
|
||||
|
||||
table tr:nth-of-type(2n) { background-color: #f3f3f6; }
|
||||
table thead th { border-bottom: 2px solid rgba(222, 226, 230, 0.5); }
|
||||
|
||||
td,
|
||||
th { padding: 5px; }
|
|
@ -1,4 +1,4 @@
|
|||
<a class="up_down_btn fixed bg-gray-100 none w30 h30 z-50 br-rd3 center gray" title="<?= Translate::get('up'); ?>">↑</a>
|
||||
<a class="up_down_btn none" title="<?= Translate::get('up'); ?>">↑</a>
|
||||
|
||||
<script src="/assets/js/sweetalert/sweetalert2.all.min.js"></script>
|
||||
<script src="/assets/js/tippy/popper.min.js"></script>
|
||||
|
@ -6,7 +6,6 @@
|
|||
<script src="/assets/js/common.js"></script>
|
||||
|
||||
<?php if ($user['id'] > 0) { ?><script src="/assets/js/app.js"></script><?php } ?>
|
||||
|
||||
|
||||
<?= getRequestResources()->getBottomStyles(); ?>
|
||||
<?= getRequestResources()->getBottomScripts(); ?>
|
||||
|
|
|
@ -22,35 +22,32 @@
|
|||
|
||||
<body class="<?= $css; ?><?php if ($dark == 'dark') { ?> dark<?php } ?>">
|
||||
|
||||
<header class="bg-white box-shadow mt0 mb15 <?php if ($type != 'page') { ?>sticky top0<?php } ?> z-30">
|
||||
<div class="col-span-12 mr-auto max-width w-100 pr10 pl10 h50 grid items-center flex justify-between">
|
||||
<header class="bg-white box-shadow <?php if ($type != 'page') { ?>sticky top0<?php } ?> z-30">
|
||||
<div class="box-flex max-width mr-auto pl10 pr10 h50">
|
||||
<div class="flex items-center">
|
||||
<ag-menu data-template="one" class="tippy pl0 pr10 none mb-block">
|
||||
<menu data-template="one" class="tippy pl0 pr10 none mb-block">
|
||||
<div class="relative w-auto">
|
||||
<i class="bi bi-list gray-400 text-xl"></i>
|
||||
</div>
|
||||
</ag-menu>
|
||||
<div id="one" style="display: none;" class="box-shadow2 z-40 bg-white br-rd3">
|
||||
<nav>
|
||||
<?= tabs_nav(
|
||||
'menu',
|
||||
$type,
|
||||
$user,
|
||||
$pages = Config::get('menu.mobile'),
|
||||
); ?>
|
||||
</nav>
|
||||
</menu>
|
||||
<div id="one" style="display: none;" class="box-shadow2 z-40 bg-white br-rd3">
|
||||
<nav>
|
||||
<?= tabs_nav(
|
||||
'menu',
|
||||
$type,
|
||||
$user,
|
||||
$pages = Config::get('menu.mobile'),
|
||||
); ?>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div class="mr20 flex items-center">
|
||||
<a title="<?= Translate::get('home'); ?>" class="text-2xl mb-text-xl sky-500-hover p5 black dark-gray-300 uppercase" href="/">
|
||||
<?= Config::get('meta.name'); ?>
|
||||
</a>
|
||||
</div>
|
||||
<a title="<?= Translate::get('home'); ?>" class="logo dark-gray-300 " href="/">
|
||||
<?= Config::get('meta.name'); ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php if (Request::getUri() != getUrlByName('search')) { ?>
|
||||
<div class="p5 ml30 mr20 relative mb-none w-100">
|
||||
<form class="form" method="post" action="<?= getUrlByName('search'); ?>">
|
||||
<input type="text" autocomplete="off" name="q" id="find" placeholder="<?= Translate::get('to find'); ?>" class="h30 bg-gray-100 p15 br-rd20 gray w-100">
|
||||
<input type="text" autocomplete="off" name="q" id="find" placeholder="<?= Translate::get('to find'); ?>" class="bg-gray-100 br-rd20 pl15 w-100 h30 gray">
|
||||
<input name="token" value="<?= csrf_token(); ?>" type="hidden">
|
||||
<input name="url" value="<?= AG_PATH_FACETS_LOGOS; ?>" type="hidden">
|
||||
</form>
|
||||
|
@ -67,8 +64,8 @@
|
|||
<?= Translate::get('sign up'); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<a class="btn btn-outline-primary ml20" title="<?= Translate::get('sign in'); ?>" href="<?= getUrlByName('login'); ?>">
|
||||
<?= Translate::get('sign in'); ?>
|
||||
<a class="btn btn-outline-primary ml20" title="<?= Translate::get('sign.in'); ?>" href="<?= getUrlByName('login'); ?>">
|
||||
<?= Translate::get('sign.in'); ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
|
@ -94,11 +91,11 @@
|
|||
<?php } ?>
|
||||
</a>
|
||||
|
||||
<ag-menu data-template="two" class="tippy pr10 pl0 ml20 mb-ml-10">
|
||||
<menu data-template="two" class="tippy ml20 mb-ml-10">
|
||||
<div class="relative w-auto">
|
||||
<?= user_avatar_img($user['avatar'], 'small', $user['login'], 'w30 h30 br-rd-50'); ?>
|
||||
</div>
|
||||
</ag-menu>
|
||||
</menu>
|
||||
<div id="two" style="display: none;" class="bg-white br-rd3">
|
||||
<nav class="p0 pr20 m0">
|
||||
<?= tabs_nav(
|
||||
|
@ -115,5 +112,5 @@
|
|||
<?php } ?>
|
||||
</div>
|
||||
</header>
|
||||
<div class="max-width mr-auto grid grid-cols-12 gap-4 mb-gap-05 pr5 pl5">
|
||||
<container>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
<?php if (Config::get('general.captcha')) { ?>
|
||||
<div class="g-recaptcha mb15" data-theme="light" data-size="normal" data-callback="captcha_ready" data-sitekey="<?= Config::get('general.public_key'); ?>"></div>
|
||||
<script async defer src="https://www.google.com/recaptcha/api.js?hl=ru"></script>
|
||||
<?php } ?>
|
|
@ -1,191 +0,0 @@
|
|||
<?php if (!empty($data['answers'])) { ?>
|
||||
<div class="bg-white br-rd5 br-box-gray mt15 mb15 p15">
|
||||
<h2 class="lowercase m0 mb15 text-2xl">
|
||||
<?= num_word($post['amount_content'], Translate::get('num-answer'), true); ?>
|
||||
</h2>
|
||||
<?php $n = 0;
|
||||
foreach ($data['answers'] as $answer) {
|
||||
$n++;
|
||||
$post_url = getUrlByName('post', ['id' => $post['post_id'], 'slug' => $post['post_slug']]);
|
||||
?>
|
||||
|
||||
<div class="block-answer">
|
||||
<?php if ($answer['answer_is_deleted'] == 0) { ?>
|
||||
<?php if ($n != 1) { ?><div class="br-top-dotted mt10 mb10"></div><?php } ?>
|
||||
<ol class="p0 m0 list-none">
|
||||
<li class="answers_subtree" id="answer_<?= $answer['answer_id']; ?>">
|
||||
<div class="answ-telo">
|
||||
<div class="flex text-sm">
|
||||
<a class="gray-600" href="/@<?= $answer['login']; ?>">
|
||||
<?= user_avatar_img($answer['avatar'], 'small', $answer['login'], 'w20 h20'); ?>
|
||||
<span class="mr5 ml5">
|
||||
<?= $answer['login']; ?>
|
||||
</span>
|
||||
</a>
|
||||
<?php if ($post['post_user_id'] == $answer['answer_user_id']) { ?>
|
||||
<span class="sky-500 mr5 ml0"><i class="bi bi-mic text-sm"></i></span>
|
||||
<?php } ?>
|
||||
<span class="mr5 ml5 gray-400 lowercase">
|
||||
<?= lang_date($answer['answer_date']); ?>
|
||||
</span>
|
||||
<?php if (empty($answer['edit'])) { ?>
|
||||
<span class="mr5 ml10 gray-400">
|
||||
(<?= Translate::get('ed'); ?>.)
|
||||
</span>
|
||||
<?php } ?>
|
||||
<a rel="nofollow" class="gray-400 mr5 ml10" href="<?= $post_url; ?>#answer_<?= $answer['answer_id']; ?>"><i class="bi bi-hash"></i></a>
|
||||
<?= Tpl::import('/_block/show-ip', ['ip' => $answer['answer_ip'], 'user' => $user, 'publ' => $answer['answer_published']]); ?>
|
||||
</div>
|
||||
<div class="m0 max-w780">
|
||||
<?= $answer['answer_content'] ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex text-sm">
|
||||
<?= votes($user['id'], $answer, 'answer', 'ps', 'mr5'); ?>
|
||||
|
||||
<?php if ($post['post_closed'] == 0) { ?>
|
||||
<?php if ($post['post_is_deleted'] == 0 || UserData::checkAdmin()) { ?>
|
||||
<a data-post_id="<?= $post['post_id']; ?>" data-answer_id="<?= $answer['answer_id']; ?>" class="add-comment gray-500 mr5 ml10"><?= Translate::get('reply'); ?></a>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (accessСheck($answer, 'answer', $user, 1, 30) === true) { ?>
|
||||
<?php if ($answer['answer_after'] == 0 || UserData::checkAdmin()) { ?>
|
||||
<a class="editansw gray-500 mr10 ml10" href="/answer/edit/<?= $answer['answer_id']; ?>">
|
||||
<?= Translate::get('edit'); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($user['trust_level'] == UserData::REGISTERED_ADMIN) { ?>
|
||||
<a data-type="answer" data-id="<?= $answer['answer_id']; ?>" class="type-action gray-500 ml10 mr5">
|
||||
<i title="<?= Translate::get('remove'); ?>" class="bi bi-trash"></i>
|
||||
</a>
|
||||
<?php } ?>
|
||||
|
||||
<?= favorite($user['id'], $answer['answer_id'], 'answer', $answer['favorite_tid'], 'ps', 'ml5'); ?>
|
||||
|
||||
<?php if ($user['id'] != $answer['answer_user_id'] && $user['trust_level'] > Config::get('trust-levels.tl_stop_report')) { ?>
|
||||
<a data-post_id="<?= $post['post_id']; ?>" data-type="answer" data-content_id="<?= $answer['answer_id']; ?>" class="msg-flag gray-500 ml15">
|
||||
<i title="<?= Translate::get('report'); ?>" class="bi bi-flag"></i>
|
||||
</a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<div id="answer_addentry<?= $answer['answer_id']; ?>" class="none"></div>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<?php } else { ?>
|
||||
|
||||
<?php if ($user['trust_level'] == UserData::REGISTERED_ADMIN) { ?>
|
||||
<ol class="bg-red-200 text-sm pr5 list-none">
|
||||
<li class="comments_subtree" id="comment_<?= $answer['answer_id']; ?>">
|
||||
<span class="comm-deletes nick">
|
||||
<?= $answer['answer_content']; ?>
|
||||
<?= Translate::get('answer'); ?> — <?= $answer['login']; ?>
|
||||
<a data-type="answer" data-id="<?= $answer['answer_id']; ?>" class="type-action right">
|
||||
<span><?= Translate::get('recover'); ?></span>
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
</ol>
|
||||
<?php } else { ?>
|
||||
<div class="gray m5 p5 text-sm">
|
||||
~ <?= sprintf(Translate::get('content.deleted'), Translate::get('comment')); ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<?php foreach ($answer['comments'] as $comment) { ?>
|
||||
|
||||
<?php if ($comment['comment_is_deleted'] == 1) { ?>
|
||||
<?php if (accessСheck($comment, 'comment', $user, 1, 30) === true) { ?>
|
||||
<ol class="bg-red-200 text-sm list-none max-w780 <?php if ($comment['comment_comment_id'] > 0) { ?> ml30<?php } ?>">
|
||||
<li class="pr5" id="comment_<?= $comment['comment_id']; ?>">
|
||||
<span class="comm-deletes gray">
|
||||
<?= Content::text($comment['comment_content'], 'line'); ?>
|
||||
— <?= $comment['login']; ?>
|
||||
<a data-type="comment" data-id="<?= $comment['comment_id']; ?>" class="type-action right text-sm">
|
||||
<?= Translate::get('recover'); ?>
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
</ol>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($comment['comment_is_deleted'] == 0) { ?>
|
||||
<ol class="pl15 pb0 mb0 list-none<?php if ($comment['comment_comment_id'] > 0) { ?> ml30<?php } ?>">
|
||||
<li class="comment_subtree" id="comment_<?= $comment['comment_id']; ?>">
|
||||
<div class="p5">
|
||||
<div class="max-w780">
|
||||
<div class="text-sm flex">
|
||||
<a class="gray-600" href="/@<?= $comment['login']; ?>">
|
||||
<?= user_avatar_img($comment['avatar'], 'small', $comment['login'], 'w20 h20'); ?>
|
||||
<span class="mr5 ml5">
|
||||
<?= $comment['login']; ?>
|
||||
</span>
|
||||
</a>
|
||||
<?php if ($post['post_user_id'] == $comment['comment_user_id']) { ?>
|
||||
<span class="sky-500 mr5"><i class="bi bi-mic text-sm"></i></span>
|
||||
<?php } ?>
|
||||
<span class="mr5 ml5 gray-400 lowercase">
|
||||
<?= lang_date($comment['comment_date']); ?>
|
||||
</span>
|
||||
<?php if ($comment['comment_comment_id'] > 0) { ?>
|
||||
<a class="gray-400 mr10 ml10" rel="nofollow" href="<?= $post_url; ?>#comment_<?= $comment['comment_comment_id']; ?>"><i class="bi bi-arrow-up"></i></a>
|
||||
<?php } else { ?>
|
||||
<a class="gray-400 mr10 ml10" rel="nofollow" href="<?= $post_url; ?>#answer_<?= $comment['comment_answer_id']; ?>"><i class="bi bi-arrow-up"></i></a>
|
||||
<?php } ?>
|
||||
<a class="gray-400 mr5 ml5" rel="nofollow" href="<?= $post_url; ?>#comment_<?= $comment['comment_id']; ?>"><i class="bi bi-hash"></i></a>
|
||||
<?= Tpl::import('/_block/show-ip', ['ip' => $comment['comment_ip'], 'user' => $user, 'publ' => $comment['comment_published']]); ?>
|
||||
</div>
|
||||
<div class="mt5 mb10">
|
||||
<?= Content::text($comment['comment_content'], 'line'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-sm flex">
|
||||
<?= votes($user['id'], $comment, 'comment', 'ps', 'mr5'); ?>
|
||||
|
||||
<?php if ($post['post_closed'] == 0) { ?>
|
||||
<?php if ($post['post_is_deleted'] == 0 || UserData::checkAdmin()) { ?>
|
||||
<a data-post_id="<?= $post['post_id']; ?>" data-answer_id="<?= $answer['answer_id']; ?>" data-comment_id="<?= $comment['comment_id']; ?>" class="add-comment-re gray mr5 ml10">
|
||||
<?= Translate::get('reply'); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (accessСheck($comment, 'comment', $user, 1, 30) === true) { ?>
|
||||
<a data-post_id="<?= $post['post_id']; ?>" data-comment_id="<?= $comment['comment_id']; ?>" class="editcomm gray mr10 ml10">
|
||||
<?= Translate::get('edit'); ?>
|
||||
</a>
|
||||
<a data-type="comment" data-id="<?= $comment['comment_id']; ?>" class="type-action gray mr5 ml5">
|
||||
<?= Translate::get('remove'); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($user['id'] != $comment['comment_user_id'] && $user['trust_level'] > 0) { ?>
|
||||
<a data-post_id="<?= $post['post_id']; ?>" data-type="comment" data-content_id="<?= $comment['comment_id']; ?>" class="msg-flag gray ml15">
|
||||
<i title="<?= Translate::get('report'); ?>" class="bi bi-flag"></i>
|
||||
</a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
<div id="comment_addentry<?= $comment['comment_id']; ?>" class="none"></div>
|
||||
</li>
|
||||
</ol>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<?php if ($post['post_closed'] != 1) { ?>
|
||||
<?php if ($user['id'] > 0) { ?>
|
||||
<?= no_content(Translate::get('no.comments'), 'bi bi-info-lg'); ?>
|
||||
<?php } else { ?>
|
||||
<?= no_content(Translate::get('no-auth-login'), 'bi bi-info-lg'); ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
|
@ -1,11 +0,0 @@
|
|||
<?php if (!empty($data)) { ?>
|
||||
<div class="uppercase mb5 mt5 text-sm"><?= Translate::get('domains'); ?></div>
|
||||
<?php foreach ($data as $domain) { ?>
|
||||
<a class="text-sm gray" href="<?= getUrlByName('domain', ['domain' => $domain['item_url_domain']]); ?>">
|
||||
<i class="bi bi-link-45deg middle"></i> <?= $domain['item_url_domain']; ?>
|
||||
<sup class="text-sm"><?= $domain['item_count']; ?></sup>
|
||||
</a><br>
|
||||
<?php } ?>
|
||||
<?php } else { ?>
|
||||
<p><?= Translate::get('no.content'); ?>...</p>
|
||||
<?php } ?>
|
|
@ -1,75 +0,0 @@
|
|||
<div class="mb10 mt15">
|
||||
<?php if (!empty($title)) { ?><div class="mb5"><?= $title; ?><sup class="red-500">*</sup></div><?php } ?>
|
||||
<div id="ag-redactor" class="editorSection"><?php if (!empty($content)) { ?><?= $content; ?><?php } ?></div>
|
||||
<input type="hidden" name="content" class="text">
|
||||
</div>
|
||||
<?php $lang = $user['lang']; ?>
|
||||
<script src="/assets/js/editor/i18n/<?= $lang; ?>.js" charset="utf-8"></script>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
toastui.Editor.setLanguage(['<?= $lang; ?>'], LANG);
|
||||
|
||||
let dark = document.querySelector('.bg-gray-100.dark');
|
||||
let viewerEl = document.querySelector('.editorSection');
|
||||
let body = viewerEl.innerHTML.trim();
|
||||
body = body.replace(/>/gi, ">");
|
||||
|
||||
if (viewerEl == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
let previewStyle = '<?= $preview; ?>';
|
||||
let height = '<?= $height; ?>';
|
||||
if (window.innerWidth < 721) {
|
||||
previewStyle = 'tab';
|
||||
height = '200px';
|
||||
}
|
||||
|
||||
const editor = new toastui.Editor({
|
||||
el: viewerEl,
|
||||
usageStatistics: false,
|
||||
height: height,
|
||||
initialEditType: '<?= Config::get('editor.initialEditType'); ?>', // wysiwyg | markdown
|
||||
previewStyle: previewStyle,
|
||||
hideModeSwitch: '<?= Config::get('editor.hideModeSwitch'); ?>', // true | false
|
||||
initialValue: body,
|
||||
theme: '<?= Request::getCookie('dayNight'); ?>',
|
||||
language: '<?= $lang; ?>',
|
||||
autofocus: false,
|
||||
toolbarItems: [
|
||||
['heading', 'bold', 'italic', 'strike'],
|
||||
['hr', 'quote'],
|
||||
['ul'],
|
||||
['table', 'image', 'link'],
|
||||
['code', 'codeblock'],
|
||||
],
|
||||
events: {
|
||||
change: function() {
|
||||
let text = editor.getMarkdown();
|
||||
inputelement = document.querySelector('input.text');
|
||||
inputelement.value = text;
|
||||
},
|
||||
},
|
||||
hooks: {
|
||||
addImageBlobHook: function(file, callback) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', file, file.name)
|
||||
let alt_text = document.getElementById("toastuiAltTextInput").value;
|
||||
const ajax = new XMLHttpRequest()
|
||||
ajax.open('POST', '/backend/upload/image', true)
|
||||
ajax.send(formData)
|
||||
ajax.onreadystatechange = function() {
|
||||
if (ajax.readyState === 4) {
|
||||
if ((ajax.status >= 200 && ajax.status < 300) || ajax.status === 304) {
|
||||
callback(ajax.responseText, alt_text);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
editor.getMarkdown();
|
||||
});
|
||||
</script>
|
|
@ -1,5 +0,0 @@
|
|||
<div class="mb20">
|
||||
<label class="block" for="about"><?= $title; ?></label>
|
||||
<textarea type="<?= $type; ?>" rows="4" <?php if (!empty($min)) { ?>minlength="<?= $min; ?>" <?php } ?> <?php if (!empty($max)) { ?>maxlength="<?= $max; ?>" <?php } ?> name="<?= $name; ?>"><?php if (!empty($content)) { ?><?= $content; ?><?php } ?></textarea>
|
||||
<?php if (!empty($help)) { ?><div class="text-sm gray-400"><?= $help; ?></div><?php } ?>
|
||||
</div>
|
|
@ -1,45 +0,0 @@
|
|||
<div class="mt5 mr0 mb5 ml0 justify-betwee">
|
||||
<?php foreach ($facets as $key => $facet) { ?>
|
||||
|
||||
<div class="w-100 mb20 mb-w-100 flex flex-row">
|
||||
<a title="<?= $facet['facet_title']; ?>" class="mr10" href="<?= getUrlByName($facet['facet_type'], ['slug' => $facet['facet_slug']]); ?>">
|
||||
<?= facet_logo_img($facet['facet_img'], 'max', $facet['facet_title'], 'w60 h60 br-box-gray br-rd-50'); ?>
|
||||
</a>
|
||||
<div class="ml5 w-100">
|
||||
|
||||
<?php if ($user['id']) { ?>
|
||||
<?php if ($facet['facet_user_id'] != $user['id']) { ?>
|
||||
<?php if ($facet['signed_facet_id']) { ?>
|
||||
<div data-id="<?= $facet['facet_id']; ?>" data-type="topic" class="focus-id right inline br-rd20 gray-400 center mr15">
|
||||
<sup><?= Translate::get('unsubscribe'); ?></sup>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<div data-id="<?= $facet['facet_id']; ?>" data-type="topic" class="focus-id right inline br-rd20 sky-500 center mr15">
|
||||
<sup><i class="bi bi-plus"></i> <?= Translate::get('read'); ?></sup>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<a class="black" title="<?= $facet['facet_title']; ?>" href="<?= getUrlByName($facet['facet_type'], ['slug' => $facet['facet_slug']]); ?>">
|
||||
<?= $facet['facet_title']; ?>
|
||||
</a>
|
||||
|
||||
<?php if ($user['id'] == $facet['facet_user_id']) { ?>
|
||||
<i class="bi bi-mic sky-500 text-sm"></i>
|
||||
<?php } ?>
|
||||
<div class="text-sm pr15 mb-pr-0 gray-400">
|
||||
<?= $facet['facet_short_description']; ?>
|
||||
<div class="flex mt5 text-sm">
|
||||
<i class="bi bi-journal mr5"></i>
|
||||
<?= $facet['facet_count']; ?>
|
||||
<?php if ($facet['facet_focus_count'] > 0) { ?>
|
||||
<i class="bi bi-people ml15 mr5"></i>
|
||||
<?= $facet['facet_focus_count']; ?>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
|
@ -1,10 +0,0 @@
|
|||
<div class="mb20 max-w640">
|
||||
<label class="block" for="post_content"><?= Translate::get('type'); ?></label>
|
||||
<select class="h40" name="facet_type">
|
||||
<?php foreach (Config::get('facets.facet_type') as $value) { ?>
|
||||
<option <?php if ($value['value'] == $type) { ?>selected<?php } ?> value="<?= $value['value']; ?>">
|
||||
<?= $value['title']; ?>
|
||||
</option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</div>
|
|
@ -1,16 +0,0 @@
|
|||
<?php if ($focus_users) { ?>
|
||||
<div class="text-sm mt20 gray-600">
|
||||
<div class="uppercase inline mr5"><?= Translate::get('reads'); ?>:</div>
|
||||
<?php $n = 0;
|
||||
foreach ($focus_users as $user) {
|
||||
$n++; ?>
|
||||
<a class="-mr-1" href="/@<?= $user['login']; ?>">
|
||||
<?= user_avatar_img($user['avatar'], 'max', $user['login'], 'w30 h30 br-rd-50'); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<?php if ($n > 5) { ?><span class="ml10">...</span><?php } ?>
|
||||
<span class="focus-user gray-600 ml10">
|
||||
<?= $topic_focus_count; ?>
|
||||
</span>
|
||||
</div>
|
||||
<?php } ?>
|
|
@ -1,19 +0,0 @@
|
|||
<?php if (!$user['id']) { ?>
|
||||
<a href="<?= getUrlByName('login'); ?>">
|
||||
<div class="bg-sky-50 sky-500 bg-hover-gray br-sky-100 inline br-rd20 center pt5 pr15 pb5 pl15">
|
||||
+ <?= Translate::get('read'); ?>
|
||||
</div>
|
||||
</a>
|
||||
<?php } else { ?>
|
||||
<?php if ($topic['facet_user_id'] != $user['id']) { ?>
|
||||
<?php if ($topic_signed) { ?>
|
||||
<div data-id="<?= $topic['facet_id']; ?>" data-type="topic" class="focus-id bg-gray-100 gray-400 br-gray-200 inline br-rd20 center pt5 pr15 pb5 pl15">
|
||||
<?= Translate::get('unsubscribe'); ?>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<div data-id="<?= $topic['facet_id']; ?>" data-type="topic" class="focus-id bg-sky-50 sky-500 bg-hover-gray br-sky-100 inline br-rd20 center pt5 pr15 pb5 pl15">
|
||||
+ <?= Translate::get('read'); ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
|
@ -1,40 +0,0 @@
|
|||
<div class="flex flex-row flex-wrap mt15">
|
||||
<?php foreach ($facets as $key => $facet) { ?>
|
||||
<div class="w-50 mb20 mb-w-100 flex flex-row<?php if (($key + 1) % 2 == 0) { ?> pl20 mb-pl-0<?php } ?>">
|
||||
<a title="<?= $facet['facet_title']; ?>" class="mr10" href="<?= getUrlByName($facet['facet_type'], ['slug' => $facet['facet_slug']]); ?>">
|
||||
<?= facet_logo_img($facet['facet_img'], 'max', $facet['facet_title'], 'w50 h50 br-box-gray'); ?>
|
||||
</a>
|
||||
<div class="ml5 w-100">
|
||||
|
||||
<?php if ($user['id']) { ?>
|
||||
<?php if ($facet['facet_user_id'] != $user['id']) { ?>
|
||||
<?php if ($facet['signed_facet_id']) { ?>
|
||||
<div data-id="<?= $facet['facet_id']; ?>" data-type="topic" class="focus-id right inline br-rd20 gray-400 center mr15">
|
||||
<sup><?= Translate::get('unsubscribe'); ?></sup>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<div data-id="<?= $facet['facet_id']; ?>" data-type="topic" class="focus-id right inline br-rd20 sky-500 center mr15">
|
||||
<sup><i class="bi bi-plus"></i> <?= Translate::get('read'); ?></sup>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<a class="black" title="<?= $facet['facet_title']; ?>" href="<?= getUrlByName($facet['facet_type'], ['slug' => $facet['facet_slug']]); ?>">
|
||||
<?= $facet['facet_title']; ?>
|
||||
</a>
|
||||
|
||||
<?php if ($user['id'] == $facet['facet_user_id']) { ?>
|
||||
<i class="bi bi-mic sky-500 text-sm"></i>
|
||||
<?php } ?>
|
||||
<div class="text-sm mt5 pr15 mb-pr-0 gray-400">
|
||||
<?= $facet['facet_short_description']; ?>
|
||||
<sup class="flex justify-center right">
|
||||
<i class="bi bi-journal mr5"></i>
|
||||
<?= $facet['facet_count']; ?>
|
||||
</sup>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
|
@ -1,23 +0,0 @@
|
|||
<div class="cm_addentry max-w780 mt10">
|
||||
<?php if ($user['id'] > 0) { ?>
|
||||
<form id="add_comm" class="new_comment" action="/comment/create" accept-charset="UTF-8" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<textarea rows="5" minlength="6" placeholder="<?= Translate::get('write-something'); ?>..." name="comment" id="comment"></textarea>
|
||||
<div class="mb20">
|
||||
<input type="hidden" name="post_id" id="post_id" value="<?= $data['post_id']; ?>">
|
||||
<input type="hidden" name="answer_id" id="answer_id" value="<?= $data['answer_id']; ?>">
|
||||
<input type="hidden" name="comment_id" id="comment_id" value="<?= $data['comment_id']; ?>">
|
||||
<?= sumbit(Translate::get('comment')); ?>
|
||||
<span id="cancel_comment" class="text-sm inline ml5 gray"><?= Translate::get('cancel'); ?></span>
|
||||
</div>
|
||||
</form>
|
||||
<?php } else { ?>
|
||||
<textarea rows="5" disabled="disabled" class="bg-gray-000" placeholder="<?= Translate::get('no-auth-comm'); ?>." name="content" id="content"></textarea>
|
||||
<div>
|
||||
<input type="hidden" name="post_id" id="post_id" value="<?= $data['post_id']; ?>">
|
||||
<input type="hidden" name="answer_id" id="answer_id" value="<?= $data['answer_id']; ?>">
|
||||
<?= sumbit(Translate::get('comment')); ?>
|
||||
<span id="cancel_comment" class="text-sm inline ml5 gray"><?= Translate::get('cancel'); ?></span>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
|
@ -1,15 +0,0 @@
|
|||
<div class="cm_addentry max-w780 mt10">
|
||||
<?php if ($user['id'] > 0) { ?>
|
||||
<form id="add_comm" class="new_comment" action="/comment/edit" accept-charset="UTF-8" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<textarea rows="5" minlength="6" name="comment" id="comment"><?= $data['comment_content']; ?></textarea>
|
||||
<div class="mt5 mb20 max-w640">
|
||||
<input type="hidden" name="post_id" id="post_id" value="<?= $data['post_id']; ?>">
|
||||
<input type="hidden" name="comment_id" id="comment_id" value="<?= $data['comment_id']; ?>">
|
||||
<?= sumbit(Translate::get('edit')); ?>
|
||||
<span id="cancel_comment" class="text-sm inline ml5 gray"><?= Translate::get('cancel'); ?></span>
|
||||
</div>
|
||||
<div class="v-otsr"></div>
|
||||
</form>
|
||||
<?php } ?>
|
||||
</div>
|
|
@ -1,16 +0,0 @@
|
|||
<?php foreach ($data as $fl) { ?>
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5" for="post_title"><?= $fl['title']; ?>
|
||||
<?php if (!empty($fl['red'])) { ?><sup class="red-500">*</sup><?php } ?>
|
||||
</label>
|
||||
<input class="w-100 h40 pl5"
|
||||
<?php if (!empty($fl['min'])) { ?>minlength="<?= $fl['min']; ?>" <?php } ?>
|
||||
<?php if (!empty($fl['max'])) { ?>maxlength="<?= $fl['max']; ?>" <?php } ?>
|
||||
<?php if (!empty($fl['id'])) { ?>id="<?= $fl['id']; ?>" <?php } ?>
|
||||
type="<?= $fl['type']; ?>"
|
||||
<?php if (!empty($fl['required'])) { ?> required <?php } ?>
|
||||
<?php if (!empty($fl['value'])) { ?>value="<?= $fl['value']; ?>" <?php } ?>
|
||||
name="<?= $fl['name']; ?>">
|
||||
<?php if (!empty($fl['help'])) { ?><div class="text-sm gray-400"><?= $fl['help']; ?></div><?php } ?>
|
||||
</div>
|
||||
<?php } ?>
|
|
@ -1,19 +0,0 @@
|
|||
<?php foreach ($data as $value) {
|
||||
$checked = $value['checked'] ?? 0;
|
||||
$help = $value['help'] ?? null;
|
||||
?>
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5"><?= $value['title']; ?></label>
|
||||
<label class="container-radio">
|
||||
<input type="radio" name="<?= $value['name']; ?>" <?php if ($checked == 0) { ?>checked<?php } ?> value="0">
|
||||
<span class="checkmark"></span>
|
||||
<?= Translate::get('no'); ?>
|
||||
</label>
|
||||
<label class="container-radio">
|
||||
<input type="radio" name="<?= $value['name']; ?>" <?php if ($checked == 1) { ?>checked<?php } ?> value="1">
|
||||
<span class="checkmark"></span>
|
||||
<?= Translate::get('yes'); ?>
|
||||
</label>
|
||||
<?php if ($help) { ?><div class="mt5 text-sm gray-400"><?= $help; ?></div><?php } ?>
|
||||
</div>
|
||||
<?php } ?>
|
|
@ -1,64 +0,0 @@
|
|||
<div class="mb20 max-w640">
|
||||
<label class="block">
|
||||
<?= Translate::get('blog'); ?>
|
||||
</label>
|
||||
<input name="blog_select" id="blog_id">
|
||||
</div>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
let blog_search = async (props = {}) => {
|
||||
const settings = {
|
||||
method: 'POST',
|
||||
mode: 'cors',
|
||||
cache: 'no-cache',
|
||||
credentials: 'same-origin',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
redirect: 'follow',
|
||||
referrerPolicy: 'no-referrer',
|
||||
body: JSON.stringify(props)
|
||||
};
|
||||
try {
|
||||
const fetchResponse = await fetch('/search/blog', settings);
|
||||
return await fetchResponse.json();
|
||||
} catch (e) {
|
||||
return e;
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
|
||||
let search_blog = await blog_search();
|
||||
let input = document.querySelector('#blog_id');
|
||||
let options = {
|
||||
tagTextProp: "facet_title",
|
||||
mode: "select",
|
||||
maxTags: 1,
|
||||
callbacks: {
|
||||
"dropdown:show": async (e) => await blog_search(),
|
||||
},
|
||||
whitelist: search_blog,
|
||||
}
|
||||
|
||||
let tagify = new Tagify(input, options);
|
||||
|
||||
<?php if ($action == 'edit') { ?>
|
||||
<?php if (!empty($data['blog_arr'])) { ?>
|
||||
tagify.addTags(JSON.parse('<?= json_encode($data['blog_arr']) ?>'))
|
||||
<?php } ?>
|
||||
<?php } else { ?>
|
||||
<?php if (!empty($data['facets']['blog'])) { ?>
|
||||
<?php $id = $data['facets']['blog']['facet_id'];
|
||||
$title = $data['facets']['blog']['facet_title'];
|
||||
?>
|
||||
tagify.addTags([{
|
||||
value: '<?= $id; ?>',
|
||||
facet_title: '<?= $title; ?>'
|
||||
}])
|
||||
<?php } else { ?>
|
||||
tagify.addTags([])
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
});
|
||||
</script>
|
|
@ -1,8 +0,0 @@
|
|||
<div class="mb20 max-w640">
|
||||
<label class="block" for="post_content"><?= Translate::get('for'); ?> TL</label>
|
||||
<select class="w-100 h30 bg-white br-box-gray" name="content_tl">
|
||||
<?php for ($i = 0; $i <= $user['trust_level']; $i++) { ?>
|
||||
<option <?php if ($data == $i) { ?>selected<?php } ?> value="<?= $i; ?>"><?= $i; ?></option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</div>
|
|
@ -1,58 +0,0 @@
|
|||
<?
|
||||
// Выбор детей в основной структуре
|
||||
?>
|
||||
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5">
|
||||
<?= $title; ?>
|
||||
</label>
|
||||
<input name="high_facet_id" id="high_facet_id">
|
||||
</div>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
var facet_search = async (props = {}) => {
|
||||
var settings = {
|
||||
method: 'POST',
|
||||
mode: 'cors',
|
||||
cache: 'no-cache',
|
||||
credentials: 'same-origin',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
redirect: 'follow',
|
||||
referrerPolicy: 'no-referrer',
|
||||
body: JSON.stringify(props)
|
||||
};
|
||||
try {
|
||||
const fetchResponse = await fetch('/search/topic', settings);
|
||||
return await fetchResponse.json();
|
||||
} catch (e) {
|
||||
return e;
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
|
||||
var search_facet = await facet_search();
|
||||
var input = document.querySelector('#high_facet_id');
|
||||
var options_post = {
|
||||
tagTextProp: "facet_title",
|
||||
// userInput: false, // <- отключим пользовательский ввод
|
||||
skipInvalid: true, // <- не добавлять повтороно не допускаемые теги
|
||||
enforceWhitelist: true, // <- добавлять только из белого списка
|
||||
maxTags: 10, // <- ограничим выбор фасетов
|
||||
callbacks: {
|
||||
"dropdown:show": async (e) => await facet_search(),
|
||||
},
|
||||
|
||||
whitelist: search_facet,
|
||||
};
|
||||
|
||||
var tagify_post = new Tagify(input, options_post);
|
||||
|
||||
<?php if ($action == 'edit') { ?>
|
||||
tagify_post.addTags(JSON.parse('<?= json_encode($data['low_arr']) ?>'))
|
||||
<?php } ?>
|
||||
|
||||
});
|
||||
</script>
|
|
@ -1,58 +0,0 @@
|
|||
<?
|
||||
// Связанные темы
|
||||
?>
|
||||
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5">
|
||||
<?= $title; ?>
|
||||
</label>
|
||||
<input name="facet_matching[]" id="facet_id_matching">
|
||||
</div>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
var facet_search = async (props = {}) => {
|
||||
var settings = {
|
||||
method: 'POST',
|
||||
mode: 'cors',
|
||||
cache: 'no-cache',
|
||||
credentials: 'same-origin',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
redirect: 'follow',
|
||||
referrerPolicy: 'no-referrer',
|
||||
body: JSON.stringify(props)
|
||||
};
|
||||
try {
|
||||
const fetchResponse = await fetch('/search/topic', settings);
|
||||
return await fetchResponse.json();
|
||||
} catch (e) {
|
||||
return e;
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
|
||||
var search_facet = await facet_search();
|
||||
var input = document.querySelector('#facet_id_matching');
|
||||
var options_post = {
|
||||
tagTextProp: "facet_title",
|
||||
// userInput: false, // <- отключим пользовательский ввод
|
||||
skipInvalid: true, // <- не добавлять повтороно не допускаемые теги
|
||||
enforceWhitelist: true, // <- добавлять только из белого списка
|
||||
maxTags: 3, // <- ограничим выбор фасетов
|
||||
callbacks: {
|
||||
"dropdown:show": async (e) => await facet_search(),
|
||||
},
|
||||
|
||||
whitelist: search_facet,
|
||||
};
|
||||
|
||||
var tagify_post = new Tagify(input, options_post);
|
||||
|
||||
<?php if ($action == 'edit') { ?>
|
||||
tagify_post.addTags(JSON.parse('<?= json_encode($data['low_matching']) ?>'))
|
||||
<?php } ?>
|
||||
|
||||
});
|
||||
</script>
|
|
@ -1,50 +0,0 @@
|
|||
<?
|
||||
// Связанные посты
|
||||
// Related posts
|
||||
?>
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5">
|
||||
<?= $title; ?>
|
||||
</label>
|
||||
<input name="post_select[]" id="post_id">
|
||||
</div>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
var input = document.querySelector('#post_id');
|
||||
let tagify_post = new Tagify(input, {
|
||||
pattern: /.{3,}/,
|
||||
// userInput: false, // <- отключим пользовательский ввод
|
||||
skipInvalid: true, // <- не добавлять повтороно не допускаемые теги
|
||||
enforceWhitelist: true, // <- добавлять только из белого списка
|
||||
tagTextProp: "post_title",
|
||||
<?php if ($action == 'edit') { ?>
|
||||
whitelist: JSON.parse('<?= json_encode($data['post_arr']); ?>'),
|
||||
<?php } ?>
|
||||
maxTags: 3, // <- ограничим выбор фасетов
|
||||
});
|
||||
|
||||
let abortCtrl; // за прерывание вызова
|
||||
tagify_post.on('input', e => {
|
||||
const term = e.detail.value.trim();
|
||||
if (term.length < 3) return;
|
||||
tagify_post.settings.whitelist.length = 0; // сбросим белый список
|
||||
abortCtrl && abortCtrl.abort();
|
||||
abortCtrl = new AbortController();
|
||||
// покажем анимацию загрузки и скроем раскрывающийся список предложений
|
||||
tagify_post.loading(true).dropdown.hide.call(tagify_post);
|
||||
fetch(`/search/post/${encodeURIComponent(term)}`, {signal: abortCtrl.signal})
|
||||
.then(r => r.json())
|
||||
.then(list => {
|
||||
console.log(list);
|
||||
tagify_post.settings.whitelist.splice(0, list.length, ...list); // обновим массив бел. список на месте
|
||||
tagify_post.loading(false).dropdown.show.call(tagify_post, term); // отобразим раскрывающийся список предложений
|
||||
})
|
||||
});
|
||||
|
||||
<?php if ($action == 'edit') { ?>
|
||||
tagify_post.addTags(JSON.parse('<?= json_encode($data['post_arr']); ?>'));
|
||||
<?php } ?>
|
||||
|
||||
});
|
||||
</script>
|
|
@ -1,54 +0,0 @@
|
|||
<div class="mb20 max-w640">
|
||||
<label class="block">
|
||||
<?= Translate::get('section'); ?>
|
||||
</label>
|
||||
<input name="section_select" id="section_id">
|
||||
</div>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
let section_search = async (props = {}) => {
|
||||
const settings = {
|
||||
method: 'POST',
|
||||
mode: 'cors',
|
||||
cache: 'no-cache',
|
||||
credentials: 'same-origin',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
redirect: 'follow',
|
||||
referrerPolicy: 'no-referrer',
|
||||
body: JSON.stringify(props)
|
||||
};
|
||||
try {
|
||||
const fetchResponse = await fetch('/search/section', settings);
|
||||
return await fetchResponse.json();
|
||||
} catch (e) {
|
||||
return e;
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
|
||||
let search_section = await section_search();
|
||||
let input = document.querySelector('#section_id');
|
||||
let options = {
|
||||
tagTextProp: "facet_title",
|
||||
mode: "select",
|
||||
maxTags: 1,
|
||||
callbacks: {
|
||||
"dropdown:show": async (e) => await blog_search(),
|
||||
},
|
||||
whitelist: search_section,
|
||||
}
|
||||
|
||||
let tagify = new Tagify(input, options);
|
||||
|
||||
<?php if ($action == 'edit') { ?>
|
||||
<?php if (!empty($data['section_arr'])) { ?>
|
||||
tagify.addTags(JSON.parse('<?= json_encode($data['section_arr']) ?>'))
|
||||
<?php } ?>
|
||||
<?php } else { ?>
|
||||
tagify.addTags([])
|
||||
<?php } ?>
|
||||
});
|
||||
</script>
|
|
@ -1,86 +0,0 @@
|
|||
<?
|
||||
// $type (topic | blog | user | trust level)
|
||||
// $action (edit)
|
||||
?>
|
||||
|
||||
<div class="mb20 max-w640">
|
||||
<label class="block mb5">
|
||||
<?= Translate::get($type); ?> <?php if (!empty($red)) { ?><sup class="red-500">*</sup><?php } ?>
|
||||
</label>
|
||||
|
||||
<?php if ($action == 'edit' || $action == 'add') { ?>
|
||||
<input name="facet_select[]" id="topic_id" required>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($help)) { ?><div class="gray text-sm"><?= $help; ?>...</div><?php } ?>
|
||||
</div>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
var focus_search = async (props = {}) => {
|
||||
var settings = {
|
||||
method: 'POST',
|
||||
mode: 'cors',
|
||||
cache: 'no-cache',
|
||||
credentials: 'same-origin',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
redirect: 'follow',
|
||||
referrerPolicy: 'no-referrer',
|
||||
body: JSON.stringify(props)
|
||||
};
|
||||
try {
|
||||
const fetchResponse = await fetch('/search/<?= $type; ?>', settings);
|
||||
return await fetchResponse.json();
|
||||
} catch (e) {
|
||||
return e;
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
|
||||
let search = await focus_search();
|
||||
let input = document.querySelector('#topic_id');
|
||||
|
||||
let options = {
|
||||
tagTextProp: "facet_title", // <- чтобы не переопределять title в запросах
|
||||
// userInput: false, // <- отключим пользовательский ввод
|
||||
skipInvalid: true, // <- не добавлять повтороно не допускаемые теги
|
||||
enforceWhitelist: true, // <- добавлять только из белого списка
|
||||
dropdown: {
|
||||
maxItems: 7, // <- максимум показов фасетов
|
||||
classname: "tags-look", // <- пользова. имя класса для этого раскр. списка, чтобы оно могло быть целевым
|
||||
enabled: 0, // <- показывать предложения по фокусировке
|
||||
closeOnSelect: false // <- не скрывайте раскрывающийся список "Предложения" после выбора элемента
|
||||
},
|
||||
maxTags: 3, // <- ограничим выбор фасетов
|
||||
callbacks: {
|
||||
"dropdown:show": async (e) => await focus_search(),
|
||||
},
|
||||
whitelist: search,
|
||||
};
|
||||
|
||||
let tagify = new Tagify(input, options);
|
||||
|
||||
<?php if ($action == 'edit') { ?>
|
||||
// tagify.addTags([{id:'20', value:'Веб-разработка'},{id:'43', value:'Новости и СМИ'},])
|
||||
tagify.addTags(JSON.parse('<?= json_encode($data['topic_arr']) ?>'))
|
||||
<?php } else { ?>
|
||||
<?php if (!empty($data['topic'])) { ?>
|
||||
<?php if ($data['topic']) {
|
||||
$id = $data['topic']['facet_id'];
|
||||
$title = $data['topic']['facet_title'];
|
||||
?>
|
||||
tagify.addTags([{
|
||||
value: '<?= $id; ?>',
|
||||
facet_title: '<?= $title; ?>'
|
||||
}])
|
||||
<?php } else { ?>
|
||||
tagify.addTags([])
|
||||
<?php } ?>
|
||||
<?php } else { ?>
|
||||
tagify.addTags([])
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
});
|
||||
</script>
|
|
@ -1,50 +0,0 @@
|
|||
<?php if ($uid['trust_level'] > 4) { ?>
|
||||
<div class="mb20 max-w640">
|
||||
<?= Translate::get('author'); ?>
|
||||
<input name='user_id' id="user_id">
|
||||
</div>
|
||||
|
||||
<script nonce="<?= $_SERVER['nonce']; ?>">
|
||||
const user_search = async (props = {}) => {
|
||||
const settings = {
|
||||
method: 'POST',
|
||||
mode: 'cors',
|
||||
cache: 'no-cache',
|
||||
credentials: 'same-origin',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
redirect: 'follow',
|
||||
referrerPolicy: 'no-referrer',
|
||||
body: JSON.stringify(props)
|
||||
};
|
||||
try {
|
||||
const fetchResponse = await fetch('/search/user', settings);
|
||||
return await fetchResponse.json();
|
||||
} catch (e) {
|
||||
return e;
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
let search_user = await user_search();
|
||||
let input = document.querySelector('#user_id');
|
||||
let options = {
|
||||
mode: "select",
|
||||
maxTags: 1,
|
||||
enforceWhitelist: true, // <- добавлять только из белого списка
|
||||
callbacks: {
|
||||
"dropdown:show": async (e) => await focus_search(),
|
||||
},
|
||||
whitelist: search_user,
|
||||
};
|
||||
|
||||
tagify = new Tagify(input, options);
|
||||
tagify.addTags([{
|
||||
id: '<?= $user['id']; ?>',
|
||||
value: '<?= $user['login']; ?>'
|
||||
}])
|
||||
|
||||
});
|
||||
</script>
|
||||
<?php } ?>
|
|
@ -1,10 +0,0 @@
|
|||
<div class="br-box-gray bg-blue-100 dark-bg-black dark-br-black gray dark-gray-300 p20 mb15 mt15 relative center br-rd5">
|
||||
<?= Translate::get('not registered'); ?>?
|
||||
<form action="<?= getUrlByName('register'); ?>" class="mt15 mb15 block">
|
||||
<?= sumbit(Translate::get('create account')); ?>
|
||||
</form>
|
||||
<i class="bi bi-emoji-wink absolute right0 mr15 bottom0 mb5 text-3xl gray-400"></i>
|
||||
<a class="mt15 mb0 gray lowercase block text-sm" href="<?= getUrlByName('login'); ?>">
|
||||
<?= Translate::get('sign in'); ?>
|
||||
</a>
|
||||
</div>
|
|
@ -1,150 +0,0 @@
|
|||
<?php if (!empty($data['answers'])) { ?>
|
||||
<div class="bg-white br-rd5 br-box-gray p15">
|
||||
<h2 class="lowercase m0 text-2xl">
|
||||
<?= num_word($post['amount_content'], Translate::get('num-answer'), true); ?>
|
||||
</h2>
|
||||
|
||||
<?php foreach ($data['answers'] as $answer) { ?>
|
||||
<div class="block-answer">
|
||||
<?php if ($answer['answer_is_deleted'] == 0) { ?>
|
||||
<?php if ($user['id'] == $answer['answer_user_id']) { ?> <?php $otvet = 1; ?> <?php } ?>
|
||||
<div class="br-top-dotted mb20"></div>
|
||||
<ol class="p0 m0 list-none">
|
||||
<li class="answers_subtree" id="answer_<?= $answer['answer_id']; ?>">
|
||||
<div class="answ-telo hidden">
|
||||
<div class="br-box-gray w110 br-rd3 right mt10 pt10 ml10 pb10 hidden center">
|
||||
<?= user_avatar_img($answer['avatar'], 'max', $answer['login'], 'br-rd-50 w60 h60'); ?>
|
||||
<div class="text-sm gray-600">
|
||||
<?= lang_date($answer['answer_date']); ?>
|
||||
<?php if (empty($answer['edit'])) { ?>
|
||||
(<?= Translate::get('ed'); ?>.)
|
||||
<?php } ?>
|
||||
<?= Tpl::import('/_block/show-ip', ['ip' => $answer['answer_ip'], 'user' => $user, 'publ' => $answer['answer_published']]); ?>
|
||||
</div>
|
||||
<a class="qa-login" href="/@<?= $answer['login']; ?>"><?= $answer['login']; ?></a>
|
||||
</div>
|
||||
<?= $answer['answer_content'] ?>
|
||||
</div>
|
||||
<div class="flex text-sm">
|
||||
<?= votes($user['id'], $answer, 'answer', 'ps', 'mr5'); ?>
|
||||
|
||||
<?php if ($user['trust_level'] >= Config::get('trust-levels.tl_add_comm_qa')) { ?>
|
||||
<?php if ($post['post_closed'] == 0) { ?>
|
||||
<?php if ($post['post_is_deleted'] == 0 || UserData::checkAdmin()) { ?>
|
||||
<a data-post_id="<?= $post['post_id']; ?>" data-answer_id="<?= $answer['answer_id']; ?>" class="add-comment gray ml10"><?= Translate::get('reply'); ?></a>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (accessСheck($answer, 'answer', $user, 1, 30) === true) { ?>
|
||||
<?php if ($user['id'] == $answer['answer_user_id'] || UserData::checkAdmin()) { ?>
|
||||
<a class="editansw gray ml15 mr5" href="/answer/edit/<?= $answer['answer_id']; ?>">
|
||||
<?= Translate::get('edit'); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (UserData::checkAdmin()) { ?>
|
||||
<a data-type="answer" data-id="<?= $answer['answer_id']; ?>" class="type-action gray ml15 mr5">
|
||||
<i title="<?= Translate::get('remove'); ?>" class="bi bi-trash"></i>
|
||||
</a>
|
||||
<?php } ?>
|
||||
|
||||
<?= favorite($user['id'], $answer['answer_id'], 'answer', $answer['favorite_tid'], 'ps', 'ml5'); ?>
|
||||
|
||||
<?php if ($user['id'] != $answer['answer_user_id'] && $user['trust_level'] > Config::get('trust-levels.tl_stop_report')) { ?>
|
||||
<a data-post_id="<?= $post['post_id']; ?>" data-type="answer" data-content_id="<?= $answer['answer_id']; ?>" class="msg-flag gray ml15">
|
||||
<i title="<?= Translate::get('report'); ?>" class="bi bi-flag"></i>
|
||||
</a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<div id="answer_addentry<?= $answer['answer_id']; ?>" class="none"></div>
|
||||
</li>
|
||||
</ol>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<?php $n = 0;
|
||||
foreach ($answer['comments'] as $comment) {
|
||||
$n++; ?>
|
||||
<?php if ($comment['comment_is_deleted'] == 0) { ?>
|
||||
<div class="br-bottom<?php if ($n > 1) { ?> ml30<?php } ?>"></div>
|
||||
<ol class="max-w780 list-none mb0 mt0">
|
||||
<li class="comment_subtree" id="comment_<?= $comment['comment_id']; ?>">
|
||||
<div class="text-sm pt5 pr5 pb5 pl5">
|
||||
<?= $comment['comment_content'] ?>
|
||||
<span class="gray">
|
||||
— <a class="gray" href="/@<?= $comment['login']; ?>"><?= $comment['login']; ?></a>
|
||||
<span class="lowercase gray">
|
||||
<?= lang_date($comment['comment_date']); ?>
|
||||
</span>
|
||||
<?= Tpl::import('/_block/show-ip', ['ip' => $comment['comment_ip'], 'user' => $user, 'publ' => $comment['comment_published']]); ?>
|
||||
</span>
|
||||
|
||||
<?php if ($user['trust_level'] >= Config::get('trust-levels.tl_add_comm_qa')) { ?>
|
||||
<?php if ($post['post_closed'] == 0) { ?>
|
||||
<?php if ($post['post_is_deleted'] == 0 || UserData::checkAdmin()) { ?>
|
||||
<a data-post_id="<?= $post['post_id']; ?>" data-answer_id="<?= $answer['answer_id']; ?>" data-comment_id="<?= $comment['comment_id']; ?>" class="add-comment-re gray ml5 mr5">
|
||||
<?= Translate::get('reply'); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (accessСheck($comment, 'comment', $user, 1, 30) === true) { ?>
|
||||
<?php if ($user['id'] == $comment['comment_user_id'] || UserData::checkAdmin()) { ?>
|
||||
<a data-post_id="<?= $post['post_id']; ?>" data-comment_id="<?= $comment['comment_id']; ?>" class="editcomm gray ml10 mr5">
|
||||
<i title="<?= Translate::get('edit'); ?>" class="bi bi-pencil-square"></i>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (UserData::checkAdmin()) { ?>
|
||||
<a data-type="comment" data-id="<?= $comment['comment_id']; ?>" class="type-action gray ml10">
|
||||
<i title="<?= Translate::get('remove'); ?>" class="bi bi-trash"></i>
|
||||
</a>
|
||||
<?php } ?>
|
||||
<?php if ($user['id'] != $comment['comment_user_id'] && $user['trust_level'] > 0) { ?>
|
||||
<a data-post_id="<?= $post['post_id']; ?>" data-type="comment" data-content_id="<?= $comment['comment_id']; ?>" class="msg-flag gray ml5">
|
||||
<?= Translate::get('report'); ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<div id="comment_addentry<?= $comment['comment_id']; ?>" class="none"></div>
|
||||
</li>
|
||||
</ol>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<?php if ($post['post_closed'] != 1) { ?>
|
||||
<?= no_content(Translate::get('no.answers'), 'bi bi-info-lg'); ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($otvet)) { ?>
|
||||
<?= no_content(Translate::get('you-question-no'), 'bi bi-info-lg'); ?>
|
||||
<?php } else { ?>
|
||||
<?php if ($user['id'] > 0) { ?>
|
||||
<?php if ($post['post_feature'] == 1 && $post['post_draft'] == 0 && $post['post_closed'] == 0) { ?>
|
||||
|
||||
<form class="mb15" action="<?= getUrlByName('answer.create'); ?>" accept-charset="UTF-8" method="post">
|
||||
<?= csrf_field() ?>
|
||||
<?= Tpl::import('/_block/editor/editor', [
|
||||
'height' => '250px',
|
||||
'preview' => 'tab',
|
||||
'user' => $user,
|
||||
]); ?>
|
||||
|
||||
<div class="clear pt5">
|
||||
<input type="hidden" name="post_id" value="<?= $post['post_id']; ?>">
|
||||
<input type="hidden" name="answer_id" value="0">
|
||||
<?= sumbit(Translate::get('reply')); ?>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
|
@ -1,22 +0,0 @@
|
|||
<?php if (Request::getUri() == '/') { ?>
|
||||
<a class="bg-blue-100 bg-hover-green white-hover flex justify-center pt5 pr10 pb5 pl10 br-rd5 p15 mb15 sky-500 text-sm" href="/topics">
|
||||
<i class="bi bi-lightbulb middle mr5"></i>
|
||||
<?= Translate::get('topic-subscription'); ?>
|
||||
</a>
|
||||
<div class="grid grid-cols-12 gap-4 mb-gap-05 pr10 pl10 justify-between">
|
||||
<?php foreach ($data['topics'] as $topic) { ?>
|
||||
<div class="col-span-6 br-box-gray p10">
|
||||
<div data-id="<?= $topic['facet_id']; ?>" data-type="topic" class="focus-id right inline br-rd20 sky-500 center mr5">
|
||||
<sup><i class="bi bi-plus"></i> <?= Translate::get('read'); ?></sup>
|
||||
</div>
|
||||
<a class="" title="<?= $topic['facet_title']; ?>" href="<?= getUrlByName('topic', ['slug' => $topic['facet_slug']]); ?>">
|
||||
<?= facet_logo_img($topic['facet_img'], 'max', $topic['facet_title'], 'w30 h30 mr5'); ?>
|
||||
<?= $topic['facet_title']; ?>
|
||||
</a>
|
||||
<div class="mt5 text-sm gray-600">
|
||||
<?= $topic['facet_description']; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php } ?>
|
|
@ -1,19 +0,0 @@
|
|||
<?php if (!empty($related_posts)) { ?>
|
||||
<div class="mb15">
|
||||
<h3 class="uppercase mb5 mt0 font-light text-sm gray"><?= Translate::get('related'); ?></h3>
|
||||
<?php $num = 0; ?>
|
||||
<?php foreach ($related_posts as $related) { ?>
|
||||
<div class="mb10 flex">
|
||||
<?php if ($number == 'yes') { ?>
|
||||
<?php $num++; ?>
|
||||
<div class="flex justify-center bg-sky-50 w20 mr5 br-rd-50">
|
||||
<span class="gray-400"><?= $num; ?></span>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<a href="<?= getUrlByName('post', ['id' => $related['id'], 'slug' => $related['post_slug']]); ?>">
|
||||
<?= $related['value']; ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php } ?>
|
|
@ -1,8 +0,0 @@
|
|||
<?php if ($user['trust_level'] == UserData::REGISTERED_ADMIN) { ?>
|
||||
<a class="gray-400 ml10" href="<?= getUrlByName('admin.logip', ['ip' => $ip]); ?>">
|
||||
<?= $ip; ?>
|
||||
</a>
|
||||
<?php if ($publ == 0) { ?>
|
||||
<span class="ml15 red-500 lowercase"><?= Translate::get('audits'); ?></span>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
|
@ -1,25 +0,0 @@
|
|||
<aside class="col-span-3 relative br-rd5 mb-none">
|
||||
<?php if (!empty($lang)) { ?>
|
||||
<div class="bg-white p15 br-box-gray box-shadow-all">
|
||||
<?= $lang; ?>...
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="flex flex-row items-center justify-between bg-white br-rd5 br-box-gray p15 mt15 box-shadow-all">
|
||||
<div class="text-sm">
|
||||
<a class="inline gray-400" title="<?= Translate::get('help'); ?>" href="/info/<?= Config::get('facets.page-one'); ?>">
|
||||
<?= Translate::get('help'); ?>
|
||||
</a>
|
||||
</div>
|
||||
<div class="text-sm">
|
||||
<a rel="nofollow noopener" class="gray-400 right" title="DISCORD" href="https://discord.gg/dw47aNx5nU">
|
||||
<i class="bi bi-discord middle text-xl"></i>
|
||||
</a>
|
||||
<a rel="nofollow noopener" class="gray-400 text-xl right ml15 mr15" title="Vkontakte" href="https://vk.com/agouti">
|
||||
VK
|
||||
</a>
|
||||
<a rel="nofollow noopener" class="gray-400 right" title="GitHub" href="https://github.com/agoutiDev/agouti">
|
||||
<i class="bi bi-github middle text-xl"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
|
@ -1,29 +0,0 @@
|
|||
<div class="br-box-gray p15 mb15 br-rd5 bg-white text-sm">
|
||||
<form class="" action="<?= getUrlByName('login'); ?>" method="post">
|
||||
<?php csrf_field(); ?>
|
||||
<div class="mb20">
|
||||
<label for="email" class="block mb5">Email</label>
|
||||
<input type="email" id="email" placeholder="<?= Translate::get('enter'); ?> e-mail" name="email" class="w-100 h30 pl5">
|
||||
</div>
|
||||
<div class="inputs relative mb20">
|
||||
<label for="password" class="block mb5"><?= Translate::get('password'); ?></label>
|
||||
<input type="password" id="password" placeholder="<?= Translate::get('enter your password'); ?>" name="password" class="password w-100 h30 pl5">
|
||||
<span class="showPassword absolute gray-400 right5 text-xl"><i class="bi bi-eye"></i></span>
|
||||
</div>
|
||||
<div class="mb20 mb20 flex">
|
||||
<input type="checkbox" class="left mr5" id="rememberme" name="rememberme" value="1">
|
||||
<label id="rem-text" class="form-check-label" for="rememberme">
|
||||
<span class="gray-600"><?= Translate::get('remember me'); ?></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="mb20">
|
||||
<?= sumbit(Translate::get('sign in')); ?>
|
||||
</div>
|
||||
<div class="center gray-600">
|
||||
<?= Translate::get('login-use-condition'); ?>
|
||||
</div>
|
||||
<div class="mt15 center">
|
||||
<a class="gray-600" href="<?= getUrlByName('recover'); ?>"><?= Translate::get('forgot your password'); ?>?</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
|
@ -1,30 +0,0 @@
|
|||
<?php if ($data['user']['id'] != 1) { ?>
|
||||
<div class="bg-white br-rd5 mb15 br-box-gray p15">
|
||||
<h3 class="uppercase mb5 mt0 font-light text-sm gray"><?= Translate::get('created by'); ?></h3>
|
||||
<a class="flex relative pt5 pb5 items-center hidden gray-600" href="/@<?= $data['user']['login']; ?>" title="<?= $data['user']['login']; ?>" >
|
||||
<?= user_avatar_img($data['user']['avatar'], 'max', $data['user']['login'], 'w30 h30 mr10'); ?>
|
||||
<?= $data['user']['login']; ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($data['facet']['facet_is_web'] == 1) { ?>
|
||||
<div class="bg-white br-rd5 mb15 br-box-gray box-shadow-all p15">
|
||||
<a class="green-600" href="<?= getUrlByName('web.topic', ['slug' => $data['facet']['facet_slug']]); ?>">
|
||||
<i class="bi bi-link-45deg text-2xl middle"></i>
|
||||
<?= Translate::get('related sites'); ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($data['high_topics'])) { ?>
|
||||
<?= Tpl::import('/_block/sidebar/topic_block', ['data' => $data['high_topics'], 'lang' => 'upper']); ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($data['low_topics'])) { ?>
|
||||
<?= Tpl::import('/_block/sidebar/topic_block', ['data' => $data['low_topics'], 'lang' => 'subtopics']); ?>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($data['low_matching'])) { ?>
|
||||
<?= Tpl::import('/_block/sidebar/topic_block', ['data' => $data['low_matching'], 'lang' => 'related']); ?>
|
||||
<?php } ?>
|
|
@ -1,9 +0,0 @@
|
|||
<div class="bg-white br-rd5 mb15 br-box-gray box-shadow-all p15">
|
||||
<h3 class="uppercase mb5 mt0 font-light text-sm gray"><?= Translate::get($lang); ?></h3>
|
||||
<?php foreach ($data as $sub) { ?>
|
||||
<a class="flex relative pt5 pb5 items-center hidden gray-600" href="<?= getUrlByName('topic', ['slug' => $sub['facet_slug']]); ?>" title="<?= $sub['facet_title']; ?>">
|
||||
<?= facet_logo_img($sub['facet_img'], 'max', $sub['facet_title'], 'w30 h30 mr10 br-box-gray'); ?>
|
||||
<?= $sub['facet_title']; ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
</div>
|
|
@ -1,49 +0,0 @@
|
|||
<footer class="w-100 mt15 p15 bg-zinc-800 clear">
|
||||
<div class="col-span-12 max-width grid grid-cols-12 mr-auto">
|
||||
<div class="col-span-3 left mb-none ml10">
|
||||
<h4 class="mt5 mb5 uppercase font-light white"><?= Translate::get('info'); ?></h4>
|
||||
<a class="table gray-400 gray-hover text-sm mb5" title="<?= Translate::get('all domains'); ?>" href="<?= getUrlByName('web'); ?>">
|
||||
<?= Translate::get('domains'); ?>
|
||||
</a>
|
||||
<a class="table gray-400 gray-hover text-sm mb5" title="<?= Translate::get('topics'); ?>" href="<?= getUrlByName('topics'); ?>">
|
||||
<?= Translate::get('topics'); ?>
|
||||
</a>
|
||||
<a class="table gray-400 gray-hover text-sm" title="<?= Translate::get('users'); ?>" href="<?= getUrlByName('users.all'); ?>">
|
||||
<?= Translate::get('users'); ?>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-span-3 mb-none">
|
||||
<h4 class="mt5 mb5 uppercase font-light white"><?= Translate::get('other'); ?></h4>
|
||||
<a class="table gray-400 gray-hover text-sm mb5" title="<?= Translate::get('all answers'); ?>" href="<?= getUrlByName('answers'); ?>">
|
||||
<?= Translate::get('answers'); ?>
|
||||
</a>
|
||||
<a class="table gray-400 gray-hover text-sm mb5" title="<?= Translate::get('all comments'); ?>" href="<?= getUrlByName('comments'); ?>">
|
||||
<?= Translate::get('comments'); ?>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-span-3">
|
||||
<h4 class="mt5 mb5 uppercase font-light white"><?= Translate::get('help'); ?></h4>
|
||||
<a class="table gray-400 gray-hover text-sm mb5" title="<?= Translate::get('info'); ?>" href="/info/<?= Config::get('facets.page-one'); ?>">
|
||||
<?= Translate::get('info'); ?>
|
||||
</a>
|
||||
<a class="table gray-400 gray-hover text-sm" title="<?= Translate::get('privacy'); ?>" href="/info/<?= Config::get('facets.page-two'); ?>">
|
||||
<?= Translate::get('privacy'); ?>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-span-3 mb-col-12">
|
||||
<h4 class="mt5 mb5 uppercase font-light white"><?= Translate::get('social networks'); ?></h4>
|
||||
<a rel="nofollow noopener" class="gray-400 gray-hover inline mr10" title="DISCORD" href="https://discord.gg/dw47aNx5nU">
|
||||
<i class="bi bi-discord text-2xl"></i>
|
||||
</a>
|
||||
<a rel="nofollow noopener" class="gray-400 gray-hover inline text-2xl" title="Vkontakte" href="https://vk.com/agouti">
|
||||
VK
|
||||
</a>
|
||||
<a rel="nofollow noopener" class="gray-400 gray-hover inline ml10" title="GitHub" href="https://github.com/agoutiDev/agouti">
|
||||
<i class="bi bi-github text-2xl"></i>
|
||||
</a>
|
||||
<div class="text-sm mt5 mb5 gray-400">
|
||||
Agouti © <?= date('Y'); ?> — <?= Translate::get('community'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
|
@ -1,27 +0,0 @@
|
|||
<?php if ($data['writers']) { ?>
|
||||
<div class="bg-white br-rd5 br-box-gray p15">
|
||||
<?php foreach ($data['writers'] as $writer) { ?>
|
||||
<div class="flex br-bottom">
|
||||
<div class="mr15 mt10">
|
||||
<?= $writer['sum']; ?>
|
||||
<span class="block gray lowercase"><?= Translate::get('views'); ?></span>
|
||||
</div>
|
||||
<div class="p15">
|
||||
<?= user_avatar_img($writer['avatar'], 'max', $writer['login'], 'w50 h50'); ?>
|
||||
</div>
|
||||
<div class="mt10">
|
||||
<a href="/@<?= $writer['login']; ?>"><?= $writer['login']; ?></a>
|
||||
<div class="mr13 gray-600 mr15">
|
||||
<?php if ($writer['about']) { ?>
|
||||
<?= $writer['about']; ?>
|
||||
<?php } else { ?>
|
||||
...
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<?= no_content(Translate::get('no'), 'bi bi-info-lg'); ?>
|
||||
<?php } ?>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue