Initial import

This commit is contained in:
Admin Nasledstvo
2026-05-01 20:52:04 +03:00
commit ac168868ee
10028 changed files with 2337954 additions and 0 deletions
@@ -0,0 +1,117 @@
<?php
namespace app\services\navigation;
class NavigationAdminGlobal extends NavigationBase
{
public static function top()
{
$bl['index'] = ['Начало', 'dashboard'];
//$bl['nomenclature-register'] = ['Номенклатури', 'nomenclatures'];
//$bl['nomenclature'] = ['Номенклатури', 'categories'];
$bl['web-portal'] = ['Публичен портал', 'expositions'];
$bl['products'] = ['Дигитален магазин', 'subscriptions'];
$bl['tour'] = ['Туристическа информация', 'tour-objects'];
$bl['mobile-app'] = ['Мобилно приложение', 'become-an-explorer-objects'];
$bl['user'] = ['Потребители', 'admin-global'];
$bl['orders'] = ['Поръчки', 'subscriptions'];
return self::stringButtons($bl, 'top');
}
public static function left()
{
$bl['index'] = [
['Начално табло', 'dashboard'],
['Ръководство на потребителя', 'guide-cms'],
['Ръководство портал', 'guide-portal'],
['Въпроси и отговори', 'qa-cms'],
['Въпроси и отговори портал', 'qa-portal'],
['Хронология', 'history'],
['Помощна информация', 'help'],
['Запитвания', 'inquiries'],
['За проекта (текст и лога)', 'about-project'],
['divider', 'Външни връзки'],
['Мрежа знания', 'knowledge-network', 'https://im1.nasledstvo.bg/?option=oauthredirect&app_name=keycloak'],
['Център знания', 'online-education', 'https://el.nasledstvo.bg/index.php/apps/sociallogin/custom_oidc/keycloak'],
['Практическа общност', 'practical-network', 'https://im.nasledstvo.bg/?option=oauthredirect&app_name=Nasledstvo.bg'],
['Е-обучение', 'e-learning', 'https://ed.nasledstvo.bg/auth/oidc/']
];
$bl['web-portal'] = [
['Експозиции', 'expositions'],
//['Обекти cms', 'objects'],
['Обекти', 'objects-register'],
['Колекции', 'collections'],
['Е-библиотека', 'e-library'],
['Проекти', 'projects'],
['Новини', 'news'],
['Събития', 'events'],
['Кампании', 'campaigns'],
['divider'],
['Страници', 'pages'],
['Навигация', 'navigation'],
['Тематични зони', 'positions'],
//['Членсто в Наследство.БГ', 'join-to-us'],
['Слайдер', 'slider'],
['Статични преводи', 'tslist'],
['SEO управление', 'seo']
];
$bl['tour'] = [
['Туристически обекти', 'tour-objects']
];
$bl['mobile-app'] = [
['Стани изследовател обекти', 'become-an-explorer-objects'],
['Потребители', 'users']
];
$bl['nomenclature'] = [
['Категории', 'categories'],
['Общи номенклатури', 'common-fields'],
['Видове обекти', 'object-templates'],
['Колекции на обекти', 'collections']
];
$bl['nomenclature-register'] = [
['Номенклатури', 'nomenclatures'],
];
$bl['products'] = [
['Абонаменти', 'subscriptions'],
['Колекции', 'paid-collections'],
['Публикации', 'paid-publications']
];
$bl['user'] = [
//['Управление на глобален администратор', 'admin-global'],
['Управление администратори публичен портал', 'admin-global'],
['Управление на потребител на партньор', 'partner'],
['Управление на партньори', 'partner-org'],
//['Управление на потребители от регистъра', 'register'],
['Управление на права', 'rights'],
['Управление на роли / групи', 'roles'],
['divider'],
['Управление на потребители публичен портал', 'public']
];
$bl['orders'] = [
['Абонаменти', 'subscriptions'],
['Резервации', 'reservations'],
['Колекции', 'products-collections'],
['Публикации', 'products-publications']
];
return self::stringButtons($bl, 'left');
}
}
@@ -0,0 +1,53 @@
<?php
namespace app\services\navigation;
define('URI', explode('?', $_SERVER['REQUEST_URI'])[0]);
class NavigationBase
{
protected static function stringButtons($bl, $navType)
{
$uri_parts = explode('/', URI);
$uriType = $uri_parts[1] ?? null;
$uriTab = $uri_parts[2] ?? null;
$uriPage = $uri_parts[3] ?? null;
$prepareHtml = '';
if ($uriType && $uriTab && $uriPage) {
if ($navType == 'top') {
foreach ($bl as $tab => $data) {
if (!empty($data[2])) {
$prepareHtml .= '<a target="_blank" href="' . $data[2] . '">' . $data[0] . '</a>';
} else {
$s = $tab == $uriTab ? 'class="selected"' : '';
$b = '/' . $uriType . '/' . $tab . '/' . $data[1] . '/';
$prepareHtml .= '<a ' . $s . ' href="' . $b . '">' . $data[0] . '</a>';
}
}
} else {
if (isset($bl[$uriTab])) {
foreach ($bl[$uriTab] as $data) {
if (isset($data[0])) {
if ($data[0] == 'divider') {
if(!empty($data[1])) {
$prepareHtml .= '<div class="divider-title">'.$data[1].'</div>';
}
$prepareHtml .= '<div class="divider"></div>';
} else {
if (!empty($data[2])) {
$prepareHtml .= '<a href="' . $data[2] . '" target="_blank">' . $data[0] . '</a>';
} else {
$s = $data[1] == $uriPage ? 'class="selected"' : '';
$b = '/' . $uri_parts[1] . '/' . $uriTab . '/' . $data[1] . '/';
$prepareHtml .= '<a ' . $s . ' href="' . $b . '">' . $data[0] . '</a>';
}
}
}
}
}
}
}
return $prepareHtml;
}
}
@@ -0,0 +1,52 @@
<?php
namespace app\services\navigation;
use app\models\UserPartner;
use app\services\Auth;
use app\widgets\services\UserRight;
class NavigationPartner extends NavigationBase
{
public static function top()
{
$bl['index'] = ['Начало', 'dashboard'];
$bl['website'] = ['Публичен портал', 'expositions'];
$bl['knowledge-network'] = ['Мрежа знания', 'knowledge-network', 'https://im1.nasledstvo.bg/?option=oauthredirect&app_name=keycloak'];
$bl['online-education'] = ['Център знания', 'online-education', 'https://el.nasledstvo.bg/index.php/apps/sociallogin/custom_oidc/keycloak'];
$bl['practical-network'] = ['Практическа общност', 'practical-network', 'https://im.nasledstvo.bg/?option=oauthredirect&app_name=Nasledstvo.bg'];
$bl['e-learning'] = ['Е-обучение', 'e-learning', 'https://ed.nasledstvo.bg/auth/oidc/'];
return self::stringButtons($bl, 'top');
}
public static function left()
{
$user = \Yii::$app->controller->partner;
$bl['index'] = [
['Начално табло', 'dashboard'],
['Ръководство на потребителя', 'guide-cms'],
['Въпроси и отговори', 'qa-cms'],
];
$bl['website'] = [
['Експозиции', 'expositions'],
['Колекции', 'collections'],
['Е-библиотека', 'e-library'],
['Обекти', 'objects'],
['Проекти', 'projects'],
['Страници', 'pages'],
['Новини', 'news'],
['Събития', 'events'],
['Кампании', 'campaigns'],
['Данни на партньор', 'partner-data']
];
if(UserRight::isAdmin()) {
$bl['website'][] = ['Потребители партньор', 'users'];
if(Auth::userPartner() && Auth::userPartner()->role_id == 1) {
$bl['website'][] = ['Потребители публичен портал', 'public'];
}
}
return self::stringButtons($bl, 'left');
}
}