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,57 @@
<?php
/**
* @var $guide_type
*/
if (!empty($_FILES) && !empty($_GET['upload'])) {
if ($_FILES['upload-cms-guide']['error'] !== UPLOAD_ERR_OK) {
// Handle the error
switch ($_FILES['upload-cms-guide']['error']) {
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
echo "The uploaded file exceeds the maximum file size.";
break;
case UPLOAD_ERR_PARTIAL:
echo "The uploaded file was only partially uploaded.";
break;
case UPLOAD_ERR_NO_FILE:
echo "No file was uploaded.";
break;
case UPLOAD_ERR_NO_TMP_DIR:
echo "Missing a temporary folder.";
break;
case UPLOAD_ERR_CANT_WRITE:
echo "Failed to write file to disk.";
break;
case UPLOAD_ERR_EXTENSION:
echo "A PHP extension stopped the file upload.";
break;
default:
echo "An unknown error occurred.";
break;
}
}
echo json_encode($_FILES);
if (!empty($_FILES['upload-cms-guide'])) {
$file = $_FILES['upload-cms-guide'];
$type = $file['type'];
$file_size = $file['size'];
//if (!$type == 'application/pdf') {
// echo json_encode(['error' => 'Качения файл не е pdf']);
//}
$file_size_mb = round($file_size / 1048576, 2);
//if ($file_size_mb > 20) {
// echo json_encode(['error' => 'Качения файл не е по-голям от 20 МБ']);
//}
$lg = $_GET['lg'] ?? 'bg';
$path = $_SERVER['DOCUMENT_ROOT'] . '/_public/guides/'. $guide_type . '-' . $lg . '.pdf';
move_uploaded_file($file["tmp_name"], $path);
$_SESSION['flash'] = [];
$_SESSION['flash']['success'] = true;
$_SESSION['flash']['msg'] = 'Файла е качен успешно';
echo json_encode(['success' => 1]);
}
exit;
}
@@ -0,0 +1,57 @@
<?php
/**
* @var $guide_type
*/
if (!empty($_FILES) && !empty($_GET['upload'])) {
if ($_FILES['upload-cms-qa']['error'] !== UPLOAD_ERR_OK) {
// Handle the error
switch ($_FILES['upload-cms-qa']['error']) {
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
echo "The uploaded file exceeds the maximum file size.";
break;
case UPLOAD_ERR_PARTIAL:
echo "The uploaded file was only partially uploaded.";
break;
case UPLOAD_ERR_NO_FILE:
echo "No file was uploaded.";
break;
case UPLOAD_ERR_NO_TMP_DIR:
echo "Missing a temporary folder.";
break;
case UPLOAD_ERR_CANT_WRITE:
echo "Failed to write file to disk.";
break;
case UPLOAD_ERR_EXTENSION:
echo "A PHP extension stopped the file upload.";
break;
default:
echo "An unknown error occurred.";
break;
}
}
echo json_encode($_FILES);
if (!empty($_FILES['upload-cms-qa'])) {
$file = $_FILES['upload-cms-qa'];
$type = $file['type'];
$file_size = $file['size'];
//if (!$type == 'application/pdf') {
// echo json_encode(['error' => 'Качения файл не е pdf']);
//}
$file_size_mb = round($file_size / 1048576, 2);
//if ($file_size_mb > 20) {
// echo json_encode(['error' => 'Качения файл не е по-голям от 20 МБ']);
//}
$lg = $_GET['lg'] ?? 'bg';
$path = $_SERVER['DOCUMENT_ROOT'] . '/_public/guides/'. $guide_type . '-' . $lg . '.pdf';
move_uploaded_file($file["tmp_name"], $path);
$_SESSION['flash'] = [];
$_SESSION['flash']['success'] = true;
$_SESSION['flash']['msg'] = 'Файла е качен успешно';
echo json_encode(['success' => 1]);
}
exit;
}
@@ -0,0 +1,30 @@
<?php
use app\models\AboutProject;
use app\widgets\FormWidget;
use app\widgets\services\Includes;
$_GET['id'] = 1;
$_GET['o'] = 'w';
FormWidget::widget([
'top' => [
'title' => 'Нова помощна информация',
'title_edit' => 'За проекта',
'data' => [
'index/dashboard' => 'Начало',
'index/help' => 'Помощна информация',
],
],
'tabs' => $tabs ?? [],
'writeView' => "index/tabs/main/about_project_w",
'model' => AboutProject::class,
'validation' => function ($p) {
return null;
},
'postService' => function ($p, AboutProject $model) {
$model->setPostDataToModel();
$model->save();
Yii::$app->flash('success', isset($_GET['id']) ? 'Данните са записани успешно' : 'Данните са създадени успешно');
$model->redirectTo('index/about-project');
}
]);
@@ -0,0 +1,60 @@
<?php
use app\widgets\services\Includes;
Includes::top('Начално табло');
$users_count = \app\models\UserPublic::find()->count();
$register_objects = \app\models\RegisterObjects::find()->where(['lib_type' => 1])->count();
$collections = \app\models\register\Collections::find()->where(['deleted' => 0])->count();
$expositions = \app\models\Expositions::find()->count();
$publications = \app\models\RegisterObjects::find()->where(['lib_type' => 2])->count();
$lg = !empty($_COOKIE['cookie_lg']) ? '/'.$_COOKIE['cookie_lg'].'/' : '';
?>
<div class="flex">
<div class="dashboard-info-cm">
<div class="label">Брой публични потребители</div>
<div class="count"><?= $users_count ?></div>
</div>
<div class="dashboard-info-cm">
<div class="label">Брой обекти</div>
<div class="count"><?= $register_objects ?></div>
</div>
<div class="dashboard-info-cm">
<div class="label">Брой колекции</div>
<div class="count"><?= $collections ?></div>
</div>
<div class="dashboard-info-cm">
<div class="label">Брой експозиции</div>
<div class="count"><?= $expositions ?></div>
</div>
<div class="dashboard-info-cm">
<div class="label">Брой научни публикации</div>
<div class="count"><?= $publications ?></div>
</div>
</div>
<div class="p5 top30">
<div class="flex flex-wrap">
<div class="dashboard-plate">
<div class="title">Публичен портал</div>
<a target="_blank" class="button" href="<?= Yii::$app->params['portal'] . $lg ?>">Влизане в Публичен портал</a>
</div>
<div class="dashboard-plate">
<div class="title">Дигитален магазин</div>
<a class="button" href="/admin-global/products/subscriptions/">Влизане в Дигитален магазин</a>
</div>
<div class="dashboard-plate">
<div class="title">Потребители</div>
<a class="button" href="/admin-global/user/public/">Влизане в Потребители</a>
</div>
<div class="dashboard-plate">
<div class="title">
Табло на вътрешен портал
</div>
<a target="_blank" class="button" href="<?= Yii::$app->params['register'] ?>">Вход</a>
</div>
</div>
</div>
@@ -0,0 +1,97 @@
<?php
echo $this->render('_upload_file_guide', ['guide_type' => 'cms-guide']);
$lg = $_GET['lg'] ?? 'bg';
?>
<div class="flex top">
<div class="top-title">Ръководство на потребителя</div>
<div class="breadcrumb p10">
<a href="/admin-global/index/dashboard">Начало</a>
<span>Ръководство на потребителя</span>
</div>
</div>
<div class="inner-content p10">
<div class="action-buttons" style="border-bottom: 4px solid #f1f1f1; padding-bottom: 10px">
<a href="?lg=bg" class="btn-ib btn-default ct guide-link <?= $lg == 'bg' ? 'selected' : '' ?>"><i
class="lg lg-bg"></i> Български</a>
<a href="?lg=en" class="btn-ib btn-default ct guide-link <?= $lg == 'en' ? 'selected' : '' ?>"><i
class="lg lg-en"></i> Английски</a>
<div onclick="uploadDocument(this)" class="btn-ib btn-default"><i class="la la-file-pdf"></i> Качи документ<span
id="progress"></span></div>
</div>
<div class="top10">
<?php if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/_public/guides/cms-guide-' . $lg . '.pdf')): ?>
<iframe src="<?= Yii::$app->params['cms'] . '/_public/guides/cms-guide-' . $lg . '.pdf?time='. time() ?>"
style="height: calc(100vh - 200px); width: 100%; border: 0"></iframe>
<?php endif; ?>
</div>
</div>
<style>
.guide-link {
border: 1px solid #cccccc !important;
}
.guide-link.selected {
background: var(--base-background-ultra-bright-clear) !important;
}
.modalImg {
height: auto !important;
max-height: none !important;
}
.modalImg img {
height: auto !important;
width: 100% !important;
display: block;
}
</style>
<script>
window.onscroll = function () {
const ab = one('.action-buttons');
if (ab) {
if (window.pageYOffset > ab.offsetTop) {
ab.addClass('buttons-top')
} else {
ab.removeClass('buttons-top')
}
}
}
function openZoomImg(src) {
modal.modalPreview(src)
}
function uploadDocument(btn) {
const process = document.querySelector('#progress')
const fileInput = document.createElement('input')
fileInput.type = 'file';
fileInput.name = 'upload-cms-guide'
//fileInput.accept = '.pdf'
fileInput.addEventListener('change', () => {
btn.classList.add('disabled')
const file = fileInput.files[0];
const formData = new FormData();
formData.append('upload-cms-guide', file);
const xhr = new XMLHttpRequest()
xhr.upload.addEventListener('progress', (event) => {
const percentComplete = event.loaded / event.total * 100;
process.innerHTML = ` ${parseInt(percentComplete)}%`
if (percentComplete === 100) {
setTimeout(function () {
process.innerHTML = ''
btn.classList.add('disabled')
window.location.reload()
}, 2000)
}
});
xhr.open('POST', '?upload=true&lg=<?= $lg ?>');
xhr.send(formData);
})
fileInput.click()
}
</script>
@@ -0,0 +1,97 @@
<?php
echo $this->render('_upload_file_guide', ['guide_type' => 'portal-guide']);
$lg = $_GET['lg'] ?? 'bg';
?>
<div class="flex top">
<div class="top-title">Ръководство на публичен портал</div>
<div class="breadcrumb p10">
<a href="/admin-global/index/dashboard">Начало</a>
<span>Ръководство на публичен портал</span>
</div>
</div>
<div class="inner-content p10">
<div class="action-buttons" style="border-bottom: 4px solid #f1f1f1; padding-bottom: 10px">
<a href="?lg=bg" class="btn-ib btn-default ct guide-link <?= $lg == 'bg' ? 'selected' : '' ?>"><i
class="lg lg-bg"></i> Български</a>
<a href="?lg=en" class="btn-ib btn-default ct guide-link <?= $lg == 'en' ? 'selected' : '' ?>"><i
class="lg lg-en"></i> Английски</a>
<div onclick="uploadDocument(this)" class="btn-ib btn-default"><i class="la la-file-pdf"></i> Качи документ<span
id="progress"></span></div>
</div>
<div class="top10">
<?php if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/_public/guides/portal-guide-' . $lg . '.pdf')): ?>
<iframe src="<?= Yii::$app->params['cms'] . '/_public/guides/portal-guide-' . $lg . '.pdf?time='. time() ?>"
style="height: calc(100vh - 200px); width: 100%; border: 0"></iframe>
<?php endif; ?>
</div>
</div>
<style>
.guide-link {
border: 1px solid #cccccc !important;
}
.guide-link.selected {
background: var(--base-background-ultra-bright-clear) !important;
}
.modalImg {
height: auto !important;
max-height: none !important;
}
.modalImg img {
height: auto !important;
width: 100% !important;
display: block;
}
</style>
<script>
window.onscroll = function () {
const ab = one('.action-buttons');
if (ab) {
if (window.pageYOffset > ab.offsetTop) {
ab.addClass('buttons-top')
} else {
ab.removeClass('buttons-top')
}
}
}
function openZoomImg(src) {
modal.modalPreview(src)
}
function uploadDocument(btn) {
const process = document.querySelector('#progress')
const fileInput = document.createElement('input')
fileInput.type = 'file';
fileInput.name = 'upload-cms-guide'
//fileInput.accept = '.pdf'
fileInput.addEventListener('change', () => {
btn.classList.add('disabled')
const file = fileInput.files[0];
const formData = new FormData();
formData.append('upload-cms-guide', file);
const xhr = new XMLHttpRequest()
xhr.upload.addEventListener('progress', (event) => {
const percentComplete = event.loaded / event.total * 100;
process.innerHTML = ` ${parseInt(percentComplete)}%`
if (percentComplete === 100) {
setTimeout(function () {
process.innerHTML = ''
btn.classList.add('disabled')
window.location.reload()
}, 2000)
}
});
xhr.open('POST', '?upload=true&lg=<?= $lg ?>');
xhr.send(formData);
})
fileInput.click()
}
</script>
@@ -0,0 +1,147 @@
<?php if($_SERVER['REQUEST_METHOD'] != 'POST'): ?>
<style>
.help-logic {
padding: 20px 0 0 10px
}
.help-logic p {
font-size: 12px;
font-style: italic;
color: var(--base-background-super-dark);
width: 500px;
display: block;
}
.help-key-btn {
height: 35px;
background: #FFFFFF;
border: 1px solid var(--base-background-dark);
color: var(--base-background-dark);
cursor: pointer;
}
.help-key-btn.inactive {
background: darkmagenta;
color: #FFFFFF;
border: 1px solid darkmagenta;
}
.help-key-btn:hover {
background: var(--base-background-ultra-bright-clear);
color: var(--base-background-super-dark);
}
.help-key-btn.inactive:hover {
color: darkmagenta;
}
</style>
<div class="help-logic">
<?php if (empty($_SESSION['help_keys'])): ?>
<button onclick="helpKeys('active')" class="help-key-btn active">Активирай показване на ключовете за помощна
информация
</button>
<p><i class="la la-info-circle"></i> При активиране на "показване на ключовете за помощна информация" ще
покажете текстов ключ, който ще се намира
до всяко поле за въвеждане във формите за създаване или редакция на цялата система.</p>
<?php else: ?>
<button onclick="helpKeys('inactive')" class="help-key-btn inactive">Деактивирай показване на ключовете за
помощна информация
</button>
<p><i class="la la-info-circle"></i> При деактивиране на "показване на ключовете за помощна информация" ще
скриете текстовия ключ, който се намира до всяко поле за въвеждане във формите за създаване или редакция на
цялата система.</p>
<?php endif; ?>
</div>
<?php endif; ?>
<?php
use app\models\Help;
use app\widgets\FormWidget;
use app\widgets\services\Includes;
use app\widgets\TableWidget;
$tab = $_GET['tab'] ?? 'main';
$_GET['tab'] = $tab;
$filter = Yii::$app->getFilterData('and');
$filter[0] = 'and';
TableWidget::widget([
'top' => [
'title' => 'Помощна информация',
'data' => [
'index/dashboard' => 'Начало',
]
],
'filter' => [
[
'title' => ['Заглавие на помощна информация', 'c4'],
'key' => ['Ключ', 'c4'],
],
],
'actions' => [
//'new' => 'Добавяне',
'edit' => 'Редакция на помощна информация',
'delete' => 'Изтриване на помощна информация'
],
'th' => [
'№' => 'c0 text-right',
'Ключ' => '',
'Заглавие на помощна информация' => '',
],
'model' => Help::class,
'data' => Help::find()->where(Yii::$app->getFilterData('or'))->loop([
'id',
function (Help $model) {
return '<a href="' . Yii::$app->setQueryString(['o' => 'w', 'id' => $model->id]) . '">' . $model->key . '</a>';
},
'title'
], $_GET['p'] ?? 1, 50)
]);
FormWidget::widget([
'top' => [
'title' => 'Нова помощна информация',
'title_edit' => 'Редакция помощна информация',
'data' => [
'index/dashboard' => 'Начало',
'index/help' => 'Помощна информация',
],
],
'tabs' => $tabs ?? [],
'writeView' => "index/tabs/" . Includes::tab($tab) . "/help_w",
'model' => Help::class,
'validation' => function ($p) use ($tab) {
if (empty($p->{'key'}))
return ["key" => 'Ключът е задължителен'];
if (empty($p->{'title'}))
return ["title" => 'Моля, въведете заглавие на помощната информация'];
if (empty($p->{'text'}))
return ["text" => 'Моля, попълнете текста'];
return null;
},
'postService' => function ($p, Help $model) use ($tab) {
$model->setPostDataToModel();
$model->save();
Yii::$app->flash('success', isset($_GET['id']) ? 'Данните са записани успешно' : 'Данните са създадени успешно');
$model->smartRedirect();
}
]);
?>
<?php if($_SERVER['REQUEST_METHOD'] != 'POST'): ?>
<script>
function helpKeys(action) {
request({
url: '/admin-global/help-keys-remote/prepare-help/?help_keys=' + action,
done: () => {
window.location.reload()
}
})
}
</script>
<?php endif; ?>
@@ -0,0 +1,58 @@
<?php
use app\models\History;
use app\models\Subscriptions;
use app\models\TourObjects;
use app\widgets\FormWidget;
use app\widgets\services\Includes;
use app\widgets\TableWidget;
$tab = $_GET['tab'] ?? 'main';
$_GET['tab'] = $tab;
$filter = Yii::$app->getFilterData('and');
$filter[0] = 'and';
TableWidget::widget([
'top' => [
'title' => 'Хронология',
'data' => [
'index/dashboard' => 'Начало',
]
],
//'filter' => [
// [
// 'name' => ['Име на туристическия обект', 'c4'],
// ],
//],
'actions' => [],
'th' => [
'№' => 'c0 text-right',
'Потребител' => '',
'Действие' => '',
'Какво' => '',
'Дата и час' => '',
],
'model' => History::class,
'data' => History::find()->where(Yii::$app->getFilterData('and'))->orderBy(['date_time' => SORT_DESC])->loop([
'id',
'user',
function (History $h) {
switch ($h->action) {
case 1:
return '<span style="color: cornflowerblue; font-weight: bold"><i class="la la-plus-circle"></i> Въвеждане</span>';
case 2:
return '<span style="color: #228827; font-weight: bold"><i class="la la-pencil-square-o"></i> Редакция</span>';
}
},
function(History $h) {
return $h->table_name.' ID:'.$h->history_id;
},
function (History $h) {
return $h->formatDate($h->date_time, 'd.m.Y H:i');
}
], $_GET['p'] ?? 1, 50)
]);
@@ -0,0 +1,74 @@
<?php
use app\widgets\FormWidget;
use app\widgets\services\Includes;
use app\widgets\TableWidget;
use app\models\Inquiries;
$tab = $_GET['tab'] ?? 'main';
$_GET['tab'] = $tab;
$filter = Yii::$app->getFilterData('and');
$filter[0] = 'and';
TableWidget::widget([
'top' => [
'title' => 'Запитвания',
'data' => [
'index/dashboard' => 'Начало',
]
],
'filter' => [
[
'name' => ['Име', 'c4'],
'email' => ['Ел. поща', 'c4'],
],
],
'actions' => [
'delete' => 'Изтриване на помощна информация'
],
'th' => [
'№' => 'c0 text-right',
'Име' => 'c1',
'Ел. поща' => 'c2',
'Действие' => 'c2',
'Какво не е наред' => '',
'Дата' => 'c0'
],
'model' => Inquiries ::class,
'data' => Inquiries::find()->where(Yii::$app->getFilterData('or'))->orderBy(['date_time' => SORT_DESC])->loop([
'id',
'name',
'email',
'operation',
'error',
function (Inquiries $i) {
if ($i->date_time)
return '<div class="ct">'.date('d.m.Y H:i ч.', strtotime($i->date_time)).'</div>';
}
], $_GET['p'] ?? 1, 50)
]);
FormWidget::widget([
'top' => [
'title' => '',
'title_edit' => 'Преглед запитване',
'data' => [
'index/dashboard' => 'Начало',
'index/inquiries' => 'Запитвания',
],
],
'tabs' => $tabs ?? [],
'writeView' => "index/tabs/" . Includes::tab($tab) . "/inquiries_w",
'model' => Inquiries::class,
'validation' => function ($p) use ($tab) {
return null;
},
'postService' => function ($p, Inquiries $model) use ($tab) {
$model->setPostDataToModel();
$model->save();
Yii::$app->flash('success', isset($_GET['id']) ? 'Данните са записани успешно' : 'Данните са създадени успешно');
$model->smartRedirect();
}
]);
@@ -0,0 +1,97 @@
<?php
echo $this->render('_upload_file_qa', ['guide_type' => 'cms-qa']);
$lg = $_GET['lg'] ?? 'bg';
?>
<div class="flex top">
<div class="top-title">Въпроси и отговори</div>
<div class="breadcrumb p10">
<a href="/admin-global/index/dashboard">Начало</a>
<span>Въпроси и отговори</span>
</div>
</div>
<div class="inner-content p10">
<div class="action-buttons" style="border-bottom: 4px solid #f1f1f1; padding-bottom: 10px">
<a href="?lg=bg" class="btn-ib btn-default ct guide-link <?= $lg == 'bg' ? 'selected' : '' ?>"><i
class="lg lg-bg"></i> Български</a>
<a href="?lg=en" class="btn-ib btn-default ct guide-link <?= $lg == 'en' ? 'selected' : '' ?>"><i
class="lg lg-en"></i> Английски</a>
<div onclick="uploadDocument(this)" class="btn-ib btn-default"><i class="la la-file-pdf"></i> Качи документ<span
id="progress"></span></div>
</div>
<div class="top10">
<?php if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/_public/guides/cms-qa-' . $lg . '.pdf')): ?>
<iframe src="<?= Yii::$app->params['cms'] . '/_public/guides/cms-qa-' . $lg . '.pdf?time='. time() ?>"
style="height: calc(100vh - 200px); width: 100%; border: 0"></iframe>
<?php endif; ?>
</div>
</div>
<style>
.guide-link {
border: 1px solid #cccccc !important;
}
.guide-link.selected {
background: var(--base-background-ultra-bright-clear) !important;
}
.modalImg {
height: auto !important;
max-height: none !important;
}
.modalImg img {
height: auto !important;
width: 100% !important;
display: block;
}
</style>
<script>
window.onscroll = function () {
const ab = one('.action-buttons');
if (ab) {
if (window.pageYOffset > ab.offsetTop) {
ab.addClass('buttons-top')
} else {
ab.removeClass('buttons-top')
}
}
}
function openZoomImg(src) {
modal.modalPreview(src)
}
function uploadDocument(btn) {
const process = document.querySelector('#progress')
const fileInput = document.createElement('input')
fileInput.type = 'file';
fileInput.name = 'upload-cms-qa'
//fileInput.accept = '.pdf'
fileInput.addEventListener('change', () => {
btn.classList.add('disabled')
const file = fileInput.files[0];
const formData = new FormData();
formData.append('upload-cms-qa', file);
const xhr = new XMLHttpRequest()
xhr.upload.addEventListener('progress', (event) => {
const percentComplete = event.loaded / event.total * 100;
process.innerHTML = ` ${parseInt(percentComplete)}%`
if (percentComplete === 100) {
setTimeout(function () {
process.innerHTML = ''
btn.classList.add('disabled')
window.location.reload()
}, 2000)
}
});
xhr.open('POST', '?upload=true&lg=<?= $lg ?>');
xhr.send(formData);
})
fileInput.click()
}
</script>
@@ -0,0 +1,97 @@
<?php
echo $this->render('_upload_file_qa', ['guide_type' => 'portal-qa']);
$lg = $_GET['lg'] ?? 'bg';
?>
<div class="flex top">
<div class="top-title">Въпроси и отговори портал</div>
<div class="breadcrumb p10">
<a href="/admin-global/index/dashboard">Начало</a>
<span>Въпроси и отговори портал</span>
</div>
</div>
<div class="inner-content p10">
<div class="action-buttons" style="border-bottom: 4px solid #f1f1f1; padding-bottom: 10px">
<a href="?lg=bg" class="btn-ib btn-default ct guide-link <?= $lg == 'bg' ? 'selected' : '' ?>"><i
class="lg lg-bg"></i> Български</a>
<a href="?lg=en" class="btn-ib btn-default ct guide-link <?= $lg == 'en' ? 'selected' : '' ?>"><i
class="lg lg-en"></i> Английски</a>
<div onclick="uploadDocument(this)" class="btn-ib btn-default"><i class="la la-file-pdf"></i> Качи документ<span
id="progress"></span></div>
</div>
<div class="top10">
<?php if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/_public/guides/portal-qa-' . $lg . '.pdf')): ?>
<iframe src="<?= Yii::$app->params['cms'] . '/_public/guides/portal-qa-' . $lg . '.pdf?time='. time() ?>"
style="height: calc(100vh - 200px); width: 100%; border: 0"></iframe>
<?php endif; ?>
</div>
</div>
<style>
.guide-link {
border: 1px solid #cccccc !important;
}
.guide-link.selected {
background: var(--base-background-ultra-bright-clear) !important;
}
.modalImg {
height: auto !important;
max-height: none !important;
}
.modalImg img {
height: auto !important;
width: 100% !important;
display: block;
}
</style>
<script>
window.onscroll = function () {
const ab = one('.action-buttons');
if (ab) {
if (window.pageYOffset > ab.offsetTop) {
ab.addClass('buttons-top')
} else {
ab.removeClass('buttons-top')
}
}
}
function openZoomImg(src) {
modal.modalPreview(src)
}
function uploadDocument(btn) {
const process = document.querySelector('#progress')
const fileInput = document.createElement('input')
fileInput.type = 'file';
fileInput.name = 'upload-cms-qa'
//fileInput.accept = '.pdf'
fileInput.addEventListener('change', () => {
btn.classList.add('disabled')
const file = fileInput.files[0];
const formData = new FormData();
formData.append('upload-cms-qa', file);
const xhr = new XMLHttpRequest()
xhr.upload.addEventListener('progress', (event) => {
const percentComplete = event.loaded / event.total * 100;
process.innerHTML = ` ${parseInt(percentComplete)}%`
if (percentComplete === 100) {
setTimeout(function () {
process.innerHTML = ''
btn.classList.add('disabled')
window.location.reload()
}, 2000)
}
});
xhr.open('POST', '?upload=true&lg=<?= $lg ?>');
xhr.send(formData);
})
fileInput.click()
}
</script>
@@ -0,0 +1,62 @@
<?php
/** @var \app\models\AboutProject $model */
use app\widgets\FileWidget;
use app\widgets\services\Includes;
$media_key = $model->getMediaKey();
?>
<div class="inner-content p10">
<form autocomplete="off">
<div class="row c9 top15">
<label>Лога български език</label>
<?= FileWidget::widget([
'media_type' => 'image',
'object_key' => 'about_project_logos',
'media_key' => $media_key,
'files' => $model->getFiles('thumb'),
'actions' => [
'add' => 'Добавяне на изображения',
'edit' => 'Редакция на изображение',
'delete' => 'Премахване на изображения'
],
'resolutions' => ['3:1'],
'max_file_size' => 2,
'error_message' => 'Файловете по-големи от 2МБ, не бяха добавени'
]) ?>
</div>
<div class="row c9 top15">
<label>Лога английски език</label>
<?= FileWidget::widget([
'media_type' => 'image',
'object_key' => 'about_project_logos_en',
'media_key' => $media_key,
'files' => $model->getFiles('thumb'),
'actions' => [
'add' => 'Добавяне на изображения',
'edit' => 'Редакция на изображение',
'delete' => 'Премахване на изображения'
],
'resolutions' => ['3:1'],
'max_file_size' => 2,
'error_message' => 'Файловете по-големи от 2МБ, не бяха добавени'
]) ?>
</div>
<div class="c10 row top15">
<label>Текст BG</label>
<textarea name="text_bg" placeholder="Въведи текст BG"><?= $model->text_bg ?></textarea>
</div>
<div class="c10 row top15">
<label>Текст EN</label>
<textarea name="text_en" placeholder="Въведи текст EN"><?= $model->text_en ?></textarea>
</div>
<div class="row c9 top15 flex">
<button id="save" class="btn btn-default">
<i class="la la-save"></i> Актуализация
</button>
</div>
</form>
</div>
<script src="/_public/assets/js/order.js"></script>
<script src="/_public/assets/js/file-img.js"></script>
<script src="/_public/plugins/cropperJs/cropper.min.js"></script>
@@ -0,0 +1,54 @@
<?php
use app\widgets\services\Includes;
/**
* @var \app\models\Help $model
*/
?>
<div class="inner-content p10">
<?php if ($model->id): ?>
<div class="btn btn-default" style="width: 280px; text-align: center"
onclick="deleteHelpInfo(this)" data-id="<?= $model->id ?>">
<i
class="la la-trash"></i> Изтрий помощната информация
</div>
<?php endif; ?>
<form autocomplete="off">
<div class="c10 row top15">
<label>Ключ на помощната информация</label>
<input readonly name="key" placeholder="Полето се въвежда автоматично" value="<?= $model->key ?>"/>
</div>
<div class="c10 row top15">
<label>Заглавие на помощната информация</label>
<input name="title" placeholder="Въведи заглавие на помощната информация" value="<?= $model->title ?>"/>
</div>
<div class="c10 row top15">
<label>Текст</label>
<textarea class="ckEditor" name="text"
placeholder="Въведи текст на помощната информация"><?= $model->text ?></textarea>
</div>
<div class="row c9 top15 flex">
<?= Includes::formButtons('index/help') ?>
</div>
</form>
</div>
<script>
function deleteHelpInfo(e) {
let id = e.dataset.id
modal.confirm('Сигурни ли сте, че искате да изтриете помощната информация', () => {
request({
url: '/admin-global/help-keys-remote/delete-help/',
post: {id},
done: r => {
if (r.url_to) {
window.location.href = r.url_to
}
}
})
})
}
</script>