first commit
This commit is contained in:
164
admin/main.php
Normal file
164
admin/main.php
Normal file
@@ -0,0 +1,164 @@
|
||||
<?php
|
||||
|
||||
use KupShop\AdminBundle\AdminList\FiltersStorage;
|
||||
use KupShop\KupShopBundle\Util\Compat\ServiceContainer;
|
||||
|
||||
$main_class = 'Main';
|
||||
|
||||
class Main extends Frame
|
||||
{
|
||||
use FiltersStorage;
|
||||
|
||||
protected $template = 'main.tpl';
|
||||
|
||||
protected $menu = [];
|
||||
|
||||
public function get_vars()
|
||||
{
|
||||
$vars = parent::get_vars();
|
||||
|
||||
$dbcfg = Settings::getDefault();
|
||||
|
||||
$pageVars['title'] = 'Admin | '.$dbcfg['index_title'];
|
||||
|
||||
$menuCls = new AdminBarMenu();
|
||||
$menu = $menuCls->getMenu();
|
||||
|
||||
$pageVars['menu'] = $this->getMenu($menu);
|
||||
$pageVars['object'] = $this;
|
||||
|
||||
$pageVars['left'] = $this->decodeUrl(getVal('l', null, ''));
|
||||
$pageVars['right'] = $this->decodeUrl(getVal('r', null, 'launch.php?s=board.php'));
|
||||
|
||||
global $cfg;
|
||||
$links = [];
|
||||
|
||||
$domain = substr($cfg['Addr']['print'], 0, -1);
|
||||
$domain = substr($domain, strrpos($domain, '.', -5) + 1);
|
||||
|
||||
$links['email'] = 'https://mail.wpj.cz/';
|
||||
$links['mailadmin'] = "http://mailadmin.{$domain}";
|
||||
|
||||
if ($domain == 'kupshop.cz') {
|
||||
$domain = substr($cfg['Addr']['print'], 0, -1);
|
||||
}
|
||||
|
||||
$hash = md5(date('Y-m-d').'wpj_wpj');
|
||||
$hash = base64_encode(json_encode(['url' => $domain, 'hash' => $hash]));
|
||||
|
||||
$links['klient'] = "http://klient.wpj.cz/list/{$hash}";
|
||||
|
||||
$vars['links'] = $links;
|
||||
|
||||
$pageVars['filters'] = $this->getFiltersFavorite();
|
||||
|
||||
$vars['body'] = $pageVars;
|
||||
|
||||
return $vars;
|
||||
}
|
||||
|
||||
public function decodeUrl($url)
|
||||
{
|
||||
if (substr($url, 0, 2) != 's:') {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$url = str_replace(':', '=', $url);
|
||||
$url = str_replace('|', '&', $url);
|
||||
|
||||
return "launch.php?{$url}";
|
||||
}
|
||||
|
||||
public function encodeUrl($url)
|
||||
{
|
||||
if ($url === null) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (substr($url, 0, 2) != 's=') {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$url = str_replace('=', ':', $url);
|
||||
$url = str_replace('&', '|', $url);
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
public function getMenu(&$menu, $level = 0)
|
||||
{
|
||||
foreach ($menu as &$item) {
|
||||
if (!is_array($item)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isset($item['submenu'])) {
|
||||
$item['level'] = $level;
|
||||
$this->getMenu($item['submenu'], $level + 1);
|
||||
|
||||
$visible = UserRights::hasRights($item['name']);
|
||||
if (!$visible) {
|
||||
$item['visible'] = false;
|
||||
continue;
|
||||
}
|
||||
$item['superadmin'] = UserRights::isOnlySuperadmin($item['name']);
|
||||
|
||||
// Pokud je nejaka polozka v submenu prvku true, zobrazuji prvek
|
||||
foreach ($item['submenu'] as $submenu_item) {
|
||||
$submenu_item['superadmin'] = UserRights::isOnlySuperadmin($submenu_item['name'] ?? null);
|
||||
if (isset($submenu_item['visible'])) {
|
||||
if ($submenu_item['visible'] == true) {
|
||||
$item['visible'] = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$visible = UserRights::hasRights($item['name']);
|
||||
if ($visible) {
|
||||
$menu['visible'] = true;
|
||||
$item['visible'] = true;
|
||||
} else {
|
||||
$item['visible'] = false;
|
||||
}
|
||||
$item['superadmin'] = UserRights::isOnlySuperadmin($item['name']);
|
||||
}
|
||||
}
|
||||
|
||||
return $menu;
|
||||
}
|
||||
|
||||
private function checkDomain()
|
||||
{
|
||||
if (isBeta()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$fallback = true;
|
||||
$request = \KupShop\KupShopBundle\Util\Compat\SymfonyBridge::getCurrentRequest();
|
||||
$domainContext = ServiceContainer::getService(\KupShop\KupShopBundle\Context\DomainContext::class);
|
||||
|
||||
// https is missing so add it and redirect
|
||||
if ($request->getScheme() != 'https') {
|
||||
redirect('https://'.$request->getHost().$request->getRequestUri());
|
||||
}
|
||||
|
||||
if (array_search($request->getHost(), $domainContext->getSupported()) !== false) {
|
||||
return;
|
||||
}
|
||||
|
||||
$wwwHost = 'www.'.$request->getHost();
|
||||
if (array_search($wwwHost, $domainContext->getSupported()) !== false) {
|
||||
// www is missing so add it and redirect
|
||||
$url = 'https://'.$wwwHost.$request->getRequestUri();
|
||||
$fallback = false;
|
||||
redirect($url);
|
||||
}
|
||||
|
||||
// fallback
|
||||
if ($fallback) {
|
||||
$url = "https://{$domainContext->getActiveId()}{$request->getRequestUri()}";
|
||||
redirect($url);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user