mirror of
https://github.com/openvk/openvk
synced 2024-09-21 08:36:17 +03:00
Namely, brief statistics, a list of administrators (the administrator can be hidden from the list using a new right), a list of the 10 most popular groups and rules
128 lines
3.5 KiB
PHP
128 lines
3.5 KiB
PHP
<?php declare(strict_types=1);
|
|
namespace openvk\Web\Presenters;
|
|
use openvk\Web\Themes\Themepacks;
|
|
use openvk\Web\Models\Repositories\{Users, Managers, Clubs, Posts};
|
|
use openvk\Web\Util\Localizator;
|
|
use Chandler\Session\Session;
|
|
|
|
final class AboutPresenter extends OpenVKPresenter
|
|
{
|
|
protected $banTolerant = true;
|
|
|
|
function renderIndex(): void
|
|
{
|
|
if(!is_null($this->user)) {
|
|
header("HTTP/1.1 302 Found");
|
|
header("Location: /id" . $this->user->id);
|
|
exit;
|
|
}
|
|
|
|
if($_SERVER['REQUEST_URI'] == "/id0") {
|
|
header("HTTP/1.1 302 Found");
|
|
header("Location: /");
|
|
exit;
|
|
}
|
|
|
|
$this->template->stats = (new Users)->getStatistics();
|
|
}
|
|
|
|
function renderRules(): void
|
|
{
|
|
$this->pass("openvk!Support->knowledgeBaseArticle", "rules");
|
|
}
|
|
|
|
function renderHelp(): void
|
|
{}
|
|
|
|
function renderBB(): void
|
|
{}
|
|
|
|
function renderInvite(): void
|
|
{
|
|
$this->assertUserLoggedIn();
|
|
}
|
|
|
|
function renderDonate(): void
|
|
{
|
|
$this->pass("openvk!Support->knowledgeBaseArticle", "donate");
|
|
}
|
|
|
|
function renderPrivacy(): void
|
|
{
|
|
$this->pass("openvk!Support->knowledgeBaseArticle", "privacy");
|
|
}
|
|
|
|
function renderVersion(): void
|
|
{
|
|
$this->template->themes = Themepacks::i()->getAllThemes();
|
|
$this->template->languages = getLanguages();
|
|
}
|
|
|
|
function renderAboutInstance(): void
|
|
{
|
|
$this->template->usersStats = (new Users)->getStatistics();
|
|
$this->template->clubsCount = (new Clubs)->getCount();
|
|
$this->template->postsCount = (new Posts)->getCount();
|
|
$this->template->popularClubs = (new Clubs)->getPopularClubs();
|
|
$this->template->admins = iterator_to_array((new Users)->getInstanceAdmins());
|
|
}
|
|
|
|
function renderLanguage(): void
|
|
{
|
|
$this->template->languages = getLanguages();
|
|
|
|
if(!is_null($_GET['lg'])){
|
|
$this->assertNoCSRF();
|
|
setLanguage($_GET['lg']);
|
|
}
|
|
}
|
|
|
|
function renderExportJSLanguage($lg = NULL): void
|
|
{
|
|
$localizer = Localizator::i();
|
|
$lang = $lg;
|
|
if(is_null($lg))
|
|
$this->throwError(404, "Not found", "Language is not found");
|
|
header("Content-Type: application/javascript");
|
|
echo "window.lang = " . json_encode($localizer->export($lang)) . ";"; // привет хардкод :DDD
|
|
exit;
|
|
}
|
|
|
|
function renderSandbox(): void
|
|
{
|
|
$this->template->languages = getLanguages();
|
|
}
|
|
|
|
function renderRobotsTxt(): void
|
|
{
|
|
$text = "# robots.txt file for openvk\n"
|
|
. "#\n"
|
|
. "# this includes only those links that are not in any way\n"
|
|
. "# covered from unauthorized persons (for example, due to\n"
|
|
. "# lack of rights to access the admin panel)\n\n"
|
|
. "User-Agent: *\n"
|
|
. "Disallow: /rpc\n"
|
|
. "Disallow: /language\n"
|
|
. "Disallow: /badbrowser.php\n"
|
|
. "Disallow: /logout\n"
|
|
. "Disallow: /away.php\n"
|
|
. "Disallow: /im?\n"
|
|
. "Disallow: *query=\n"
|
|
. "Disallow: *?lg=\n"
|
|
. "Disallow: *hash=\n"
|
|
. "Disallow: *?jReturnTo=\n"
|
|
. "Disallow: /method/*\n"
|
|
. "Disallow: /token*";
|
|
header("Content-Type: text/plain");
|
|
exit($text);
|
|
}
|
|
|
|
function renderHumansTxt(): void
|
|
{
|
|
// :D
|
|
|
|
header("HTTP/1.1 302 Found");
|
|
header("Location: https://github.com/openvk/openvk#readme");
|
|
exit;
|
|
}
|
|
}
|