mirror of
https://github.com/openvk/openvk
synced 2024-12-23 09:01:15 +03:00
cdc130ecc2
Sorry I wanted to sleep then
311 lines
16 KiB
XML
311 lines
16 KiB
XML
{var instance_name = OPENVK_ROOT_CONF['openvk']['appearance']['name']}
|
|
|
|
<html n:if="!isset($parentModule) || substr($parentModule, 0, 21) === 'libchandler:absolute.'">
|
|
<head>
|
|
<title>
|
|
{ifset title}{include title} - {/ifset}{$instance_name}
|
|
</title>
|
|
<meta charset="utf-8" />
|
|
<link rel="shortcut icon" href="/assets/packages/static/openvk/img/icon.ico" />
|
|
<meta name="application-name" content="{$instance_name}" />
|
|
<meta n:ifset="$csrfToken" name="csrf" value="{$csrfToken}" />
|
|
<script src="/language/{php echo getLanguage()}.js" crossorigin="anonymous"></script>
|
|
{script "js/node_modules/jquery/dist/jquery.min.js"}
|
|
{script "js/node_modules/umbrellajs/umbrella.min.js"}
|
|
{script "js/l10n.js"}
|
|
{script "js/openvk.cls.js"}
|
|
|
|
{ifset $thisUser}
|
|
{if $thisUser->getNsfwTolerance() < 2}
|
|
{css "css/nsfw-posts.css"}
|
|
{/if}
|
|
|
|
{if $theme !== null}
|
|
{if $theme->inheritDefault()}
|
|
{css "css/style.css"}
|
|
{css "css/dialog.css"}
|
|
{css "css/notifications.css"}
|
|
{if $isXmas}
|
|
{css "css/xmas.css"}
|
|
{/if}
|
|
{/if}
|
|
|
|
<link rel="stylesheet" href="/themepack/{$theme->getId()}/{$theme->getVersion()}/stylesheet/styles.css" />
|
|
{if $isXmas}
|
|
<link rel="stylesheet" href="/themepack/{$theme->getId()}/{$theme->getVersion()}/resource/xmas.css" />
|
|
{/if}
|
|
{else}
|
|
{css "css/style.css"}
|
|
{css "css/dialog.css"}
|
|
{css "css/notifications.css"}
|
|
{if $isXmas}
|
|
{css "css/xmas.css"}
|
|
{/if}
|
|
{/if}
|
|
|
|
{if $thisUser->getStyleAvatar() == 1}
|
|
{css "css/avatar.1.css"}
|
|
{/if}
|
|
{if $thisUser->getStyleAvatar() == 2}
|
|
{css "css/avatar.2.css"}
|
|
{/if}
|
|
|
|
|
|
{if $thisUser->hasMicroblogEnabled() == 1}
|
|
{css "css/microblog.css"}
|
|
{/if}
|
|
{else}
|
|
{css "css/style.css"}
|
|
{css "css/dialog.css"}
|
|
{css "css/nsfw-posts.css"}
|
|
{css "css/notifications.css"}
|
|
|
|
{if $isXmas}
|
|
{css "css/xmas.css"}
|
|
{/if}
|
|
{/ifset}
|
|
|
|
{ifset headIncludes}{include headIncludes}{/ifset}
|
|
</head>
|
|
<body>
|
|
<div id="sudo-banner" n:if="isset($thisUser) && $userTainted">
|
|
<p>
|
|
Вы вошли как <b>{$thisUser->getCanonicalName()}</b>. Пожалуйста, уважайте
|
|
право на тайну переписки других людей и не злоупотребляйте подменой пользователя.
|
|
Нажмите <a href="/setSID/unset?hash={rawurlencode($csrfToken)}">здесь</a>, чтобы выйти.
|
|
</p>
|
|
</div>
|
|
|
|
<div n:if="OPENVK_ROOT_CONF['openvk']['preferences']['bellsAndWhistles']['testLabel']" id="test-label">FOR TESTING PURPOSES ONLY</div>
|
|
<div class="notifications_global_wrap"></div>
|
|
<div class="dimmer"></div>
|
|
<div class="toTop">
|
|
⬆ Вверх
|
|
</div>
|
|
|
|
<div class="layout">
|
|
<div id="xhead" class="dm"></div>
|
|
<div class="page_header {if $instance_name != OPENVK_DEFAULT_INSTANCE_NAME}page_custom_header{/if}">
|
|
<a href="/" class="home_button {if $instance_name != OPENVK_DEFAULT_INSTANCE_NAME}home_button_custom{/if}" title="{$instance_name}">{$instance_name}</a>
|
|
<div n:if="isset($thisUser) ? !$thisUser->isBanned() : true" class="header_navigation">
|
|
{ifset $thisUser}
|
|
<div class="link">
|
|
<a href="/">{_"header_home"}</a>
|
|
</div>
|
|
<div class="link">
|
|
<a href="/search?type=groups">{_"header_groups"}</a>
|
|
</div>
|
|
<div class="link">
|
|
<a href="/donate">{_"header_donate"}</a>
|
|
</div>
|
|
<div class="link">
|
|
<a href="/search">{_"header_search"}</a>
|
|
</div>
|
|
<div class="link">
|
|
<a href="/support">
|
|
{_"header_help"}
|
|
<b n:if="$ticketAnsweredCount > 0">({$ticketAnsweredCount})</b>
|
|
</a>
|
|
</div>
|
|
<div class="link">
|
|
<a href="/logout?hash={urlencode($csrfToken)}">{_"header_log_out"}</a>
|
|
</div>
|
|
<div class="link">
|
|
<form action="/search" method="get">
|
|
<input type="search" name="query" placeholder="{_"header_search"}" style="height: 20px;background: url('/assets/packages/static/openvk/img/search_icon.png') no-repeat 3px 4px; background-color: #fff; padding-left: 18px;width: 120px;" />
|
|
</form>
|
|
</div>
|
|
|
|
|
|
{else}
|
|
<div class="link">
|
|
<a href="/login">{_"header_login"}</a>
|
|
</div>
|
|
<div n:if="OPENVK_ROOT_CONF['openvk']['preferences']['registration']['enable']" class="link">
|
|
<a href="/reg">{_"header_registration"}</a>
|
|
</div>
|
|
<div class="link">
|
|
<a href="/support">{_"header_help"}</a>
|
|
</div>
|
|
{/ifset}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="sidebar">
|
|
<div class="navigation">
|
|
{ifset $thisUser}
|
|
{if !$thisUser->isBanned()}
|
|
<a href="/edit" class="link edit-button">{_"edit_button"}</a>
|
|
<a href="{$thisUser->getURL()}" class="link">{_"my_page"}</a>
|
|
<a href="/friends{$thisUser->getId()}" class="link">{_"my_friends"}
|
|
{if $thisUser->getFollowersCount() > 0}
|
|
<object type="internal/link">
|
|
<a href="/friends{$thisUser->getId()}?act=incoming">
|
|
(<b>{$thisUser->getFollowersCount()}</b>)
|
|
</a>
|
|
</object>
|
|
{/if}</a>
|
|
<a n:if="$thisUser->getLeftMenuItemStatus('photos')" href="/albums{$thisUser->getId()}" class="link">{_"my_photos"}</a>
|
|
<a n:if="$thisUser->getLeftMenuItemStatus('videos')" href="/videos{$thisUser->getId()}" class="link">{_"my_videos"}</a>
|
|
<a n:if="$thisUser->getLeftMenuItemStatus('messages')" href="/im" class="link">{_"my_messages"}
|
|
{if $thisUser->getUnreadMessagesCount() > 0}
|
|
<object type="internal/link">
|
|
(<b>{$thisUser->getUnreadMessagesCount()}</b>)
|
|
</object>
|
|
|
|
{/if}
|
|
</a>
|
|
<a n:if="$thisUser->getLeftMenuItemStatus('notes')" href="/notes{$thisUser->getId()}" class="link">{_"my_notes"}</a>
|
|
<a n:if="$thisUser->getLeftMenuItemStatus('groups')" href="/groups{$thisUser->getId()}" class="link">{_"my_groups"}</a>
|
|
<a n:if="$thisUser->getLeftMenuItemStatus('news')" href="/feed" class="link">{_"my_feed"}</a>
|
|
<a href="/notifications" class="link">{_my_feedback}
|
|
{if $thisUser->getNotificationsCount() > 0}
|
|
(<b>{$thisUser->getNotificationsCount()}</b>)
|
|
{/if}
|
|
</a>
|
|
<a href="/settings" class="link">{_"my_settings"}</a>
|
|
{var canAccessAdminPanel = $thisUser->getChandlerUser()->can("access")->model("admin")->whichBelongsTo(NULL)}
|
|
{var canAccessHelpdesk = $thisUser->getChandlerUser()->can("write")->model('openvk\Web\Models\Entities\TicketReply')->whichBelongsTo(0)}
|
|
{var menuLinksAvaiable = sizeof(OPENVK_ROOT_CONF['openvk']['preferences']['menu']['links']) > 0}
|
|
<div n:if="$canAccessAdminPanel || $canAccessHelpdesk || $menuLinksAvaiable" class="menu_divider"></div>
|
|
{if $canAccessAdminPanel}
|
|
<a href="/admin" class="link">Админ-панель</a>
|
|
{/if}
|
|
{if $canAccessHelpdesk}
|
|
<a href="/support/tickets" class="link">Helpdesk
|
|
{if $helpdeskTicketNotAnsweredCount > 0}
|
|
(<b>{$helpdeskTicketNotAnsweredCount}</b>)
|
|
{/if}
|
|
</a>
|
|
{/if}
|
|
<a
|
|
n:foreach="OPENVK_ROOT_CONF['openvk']['preferences']['menu']['links'] as $menuItem"
|
|
href="{$menuItem['url']}"
|
|
target="_blank"
|
|
class="link">{$menuItem["name"]}</a>
|
|
<div id="_groupListPinnedGroups">
|
|
<div n:if="$thisUser->getPinnedClubCount() > 0" class="menu_divider"></div>
|
|
<a
|
|
n:foreach="$thisUser->getPinnedClubs() as $club"
|
|
href="{$club->getURL()}"
|
|
class="link group_link">{$club->getName()}</a>
|
|
|
|
</div>
|
|
<a
|
|
n:if="OPENVK_ROOT_CONF['openvk']['preferences']['adPoster']['enable']"
|
|
href="{php echo OPENVK_ROOT_CONF['openvk']['preferences']['adPoster']['link']}" >
|
|
<img
|
|
src="{php echo OPENVK_ROOT_CONF['openvk']['preferences']['adPoster']['src']}"
|
|
alt="{php echo OPENVK_ROOT_CONF['openvk']['preferences']['adPoster']['caption']}"
|
|
class="psa-poster"
|
|
style="max-width: 100%; margin-top: 50px;" />
|
|
</a>
|
|
{else}
|
|
<a href="/support" class="link">Поддержка</a>
|
|
<a href="/logout" class="link">Выйти</a>
|
|
{/if}
|
|
{else}
|
|
<form id="fastLogin" action="/login" method="POST" enctype="multipart/form-data">
|
|
<label for="login"><span>{_"email"}:</span></label>
|
|
<input id="login" type="text" name="login" required />
|
|
<label for="password"><span>{_"password"}:</span></label>
|
|
<input id="password" type="password" name="password" required />
|
|
<input type="hidden" name="jReturnTo" value="{$_SERVER['REQUEST_URI']}" />
|
|
<input type="hidden" name="hash" value="{$csrfToken}" />
|
|
<input type="submit" value="{_'log_in'}" class="button" style="display: inline-block;" />
|
|
<a n:if="OPENVK_ROOT_CONF['openvk']['preferences']['registration']['enable']" href="/reg" class="button" style="display: inline-block;" >{_registration}</a><br><br>
|
|
<a href="/restore.pl">{_"forgot_password"}</a>
|
|
</form>
|
|
{/ifset}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="page_body">
|
|
<div id="wrapH">
|
|
<div id="wrapHI">
|
|
<div n:ifcontent class="page_yellowheader">
|
|
{include header}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{ifset wrap}
|
|
{ifset $flashMessage}
|
|
<div class="msg msg_{$flashMessage->type}">
|
|
<b>{$flashMessage->title}</b><br/>
|
|
{$flashMessage->msg|noescape}
|
|
</div>
|
|
{/ifset}
|
|
|
|
{include wrap}
|
|
{else}
|
|
<div class="wrap2">
|
|
<div class="wrap1">
|
|
<div id="auth" class="page-wrap">
|
|
<div class="page_content">
|
|
{ifset $flashMessage}
|
|
<div class="msg msg_{$flashMessage->type}">
|
|
<b>{$flashMessage->title}</b><br/>
|
|
{$flashMessage->msg|noescape}
|
|
</div>
|
|
{/ifset}
|
|
|
|
{include content}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{/ifset}
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="page_footer">
|
|
{var dbVersion = \Chandler\Database\DatabaseConnection::i()->getConnection()->getPdo()->getAttribute(\PDO::ATTR_SERVER_VERSION)}
|
|
|
|
<div class="navigation_footer">
|
|
<a href="/blog" class="link">{_footer_blog}</a>
|
|
<a href="/support" class="link">{_footer_help}</a>
|
|
<a href="/dev" target="_blank" class="link">{_footer_developers}</a>
|
|
<a href="/language" class="link">{_footer_choose_language}</a>
|
|
<a href="/privacy" class="link">{_footer_privacy}</a>
|
|
</div>
|
|
<p>OpenVK <a href="/about:openvk">{php echo OPENVK_VERSION}</a> | PHP: {phpversion()} | DB: {$dbVersion}</p>
|
|
<p n:ifcontent="ifcontent">
|
|
{php echo OPENVK_ROOT_CONF["openvk"]["appearance"]["motd"]}
|
|
</p>
|
|
</div>
|
|
|
|
{script "js/node_modules/msgpack-lite/dist/msgpack.min.js"}
|
|
{script "js/node_modules/soundjs/lib/soundjs.min.js"}
|
|
{script "js/node_modules/ky/umd.js"}
|
|
{script "js/messagebox.js"}
|
|
{script "js/notifications.js"}
|
|
{script "js/scroll.js"}
|
|
{script "js/al_wall.js"}
|
|
{script "js/al_api.js"}
|
|
|
|
{ifset $thisUser}
|
|
{script "js/al_notifs.js"}
|
|
{/ifset}
|
|
|
|
<script src="https://unpkg.com/fartscroll@1.0.0/fartscroll.js"></script>
|
|
<script n:if="OPENVK_ROOT_CONF['openvk']['preferences']['bellsAndWhistles']['fartscroll']">
|
|
fartscroll(400);
|
|
</script>
|
|
|
|
<script n:if="OPENVK_ROOT_CONF['openvk']['telemetry']['plausible']['enable']"
|
|
async defer data-domain="{php echo OPENVK_ROOT_CONF['openvk']['telemetry']['plausible']['domain']}"
|
|
src="{php echo OPENVK_ROOT_CONF['openvk']['telemetry']['plausible']['server']}js/plausible.js"></script>
|
|
|
|
{ifset bodyScripts}
|
|
{include bodyScripts}
|
|
{/ifset}
|
|
</body>
|
|
</html>
|
|
|
|
{if isset($parentModule) && substr($parentModule, 0, 21) !== 'libchandler:absolute.'}
|
|
<!-- INCLUDING TEMPLATE FROM PARENTMODULE: {$parentModule} -->
|
|
|
|
{include content}
|
|
{/if}
|