Вход Регистрация
Файл: upload/pages/admin/module/modules.php
Строк: 186
<?php
require_once ($_SERVER['DOCUMENT_ROOT'] . '/core/core.php');

if (
$users_perms['edit_modules'] != 1) {
    
RedirectToPage('/');
    exit();
}

$type $_GET['type'] ?? $route['type'] ?? null;

if (!
$type) {
    die(
"Тип модулей не указан");
}

echo 
'<div class="home_us tematic">';

$breadcrumbsArray = [
    [
'/''Главная'],
    [
'/admin''Админ панель'],
];

if (
$type && isset($PLTitles[$type])) {
    
$title $PLTitles[$type];
    
$breadcrumbsArray[] = ['/admin/plugins''Модули'];
    
$breadcrumbsArray[] = ['#'$title];
} else {
    
$title 'Модули';
    
$breadcrumbsArray[] = ['#'$title];
}

$breadcrumbs generateBreadcrumbs($breadcrumbsArray);

echo 
$breadcrumbs['html'];
echo 
'<script type="application/ld+json">' $breadcrumbs['json_ld'] . '</script>';

echo 
'<div class="head_box section-header">
<div class="box_title">' 
$title '</div>
</div>'
;

echo 
'<div class="side_in_count">';

include (
$_SERVER['DOCUMENT_ROOT'] . '/core/elements/sidebars/panel.php');

echo 
'<div class="info_box arb">
<div class="node-info_box adm">
<a class="btn button" data-bs-toggle="modal" data-bs-target="#upload-plug" style="display: flex;">Добавить модуль</a>
</div>'
;

$reverseMap array_flip($PLDirMap);
$dbType $reverseMap[$type] ?? 'other';
$plugin dbquery("SELECT * FROM `plugins` WHERE `type` = ? ORDER BY `name`", [$dbType]);

echo 
'<div class="modal fade" id="del-plug" tabindex="-1" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title">Удаление модуля</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal"><i class="fas fa-xmark"></i></button>
      </div>
      <div class="modal-body">
        <span>Вы уверены, что хотите удалить модуль <span id="del-plug-text"></span>?</span>
      </div>
      <div class="modal-footer">
        <a id="del-plug-btn" class="btn button" href="#" style="float: right; margin-left: 5px;">Удалить</a>
      </div>
    </div>
  </div>
</div>

<div class="modal fade" id="upload-plug" tabindex="-1" aria-hidden="true">
  <div class="modal-dialog">
    <form class="modal-content" action="' 
homeLink() . '/admin/plugins/upload" method="post" enctype="multipart/form-data">
      <div class="modal-header">
        <h5 class="modal-title">Загрузка модуля</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal"><i class="fas fa-xmark"></i></button>
      </div>
      <div class="modal-body">
        <input type="file" name="module" accept=".zip" required>
      </div>
      <div class="modal-footer">
        <input type="submit" value="Загрузить" style="float: right; margin-left: 5px;">
      </div>
    </form>
  </div>
</div>
'
;

if (
DataNumRows($plugin) == 0) {
    echo 
'<div class="error plug_empty">Модулей нет</div>';
} else {
    while (
$plug FetchAssoc($plugin)) {
        
        
// Пропускаем только реально отсутствующие модули
        
if ($plug['missing']) {
            continue;
        }
        
        
// Мета‑информация из module.php (есть всегда, если missing = 0)
        
$info $PLUGINS[$plug['id']] ?? null;
        if (!
$info) {
            
// модуль есть в БД, но не загружен — показываем как "битый"
            
echo '<div class="plug_error">
            <div class="err_plugin">Ошибка: module.php модуля ' 
. ($plug['name'] ?? '-') . ' не загружен или поврежден</div>';
            echo 
'<a class="but_link-plug delete" data-bs-toggle="modal" data-bs-target="#del-plug" data-id="' $plug['id'] . '" data-name="' chars($plug['name']) . '">
            <i class="fas fa-trash"></i>
            </a>
            </div>'
;
            continue;
        }
        
        
$dir $PLDirMap[$info['type']] ?? 'other';
        
        echo 
'<div class="user_info-work-box box-admin">
        <div class="user_in_ava box-adm">
        <div class="flex_adm-users">'
;
        
        
// Иконка
        
echo '<div class="plugin_icon">';
        if (!empty(
$info['icon'])) {
            echo 
'<img src="' homeLink() . '/core/plugins/' $dir '/' . ($info['id'] ?? null) . '/' . ($info['icon'] ?? null) . '" onerror="this.src='' . homeLink() . '/core/templates/' . $theme . '/images/admin/non-plugin.png'">';
        } else {
            echo 
'<img src="' homeLink() . '/core/templates/' $theme '/images/admin/non-plugin.png">';
        }
        echo 
'</div>';
        
        
// Название + статус
        
echo '<div class="user_name_work box">
        <div class="flex_st-name_plugin">'
;
        
        
// Статус (вкл/выкл)
        
echo $plug['status'] ? '<span class="pl_status on"></span>' '<span class="pl_status off"></span>';
        
        echo 
'<div class="name_plugin">' . ($plug['name'] ?? '-') . '</div>
        </div>'
;
        
        
// Описание
        
echo '<div class="desc_plugin">' . ($info['description'] ?? 'Описание отсутствует') . '</div>';
        
        echo 
'<div class="plugin_flex_bot">';
        
        
// Версия
        
if (!empty($info['version'])) {
            echo 
'<div class="version_plugin">version ' $info['version'] . '</div>';
        }
        
        echo 
'<a class="plug_min-link" href="' homeLink() . '/core/plugins/' $dir '/' . ($info['id'] ?? null) . '/doc">Информация</a>';
        echo 
'</div>';
        
        echo 
'</div>';
        echo 
'</div>';
        
        
// Кнопки управления
        
echo '<div class="flex-link-adm">';
        
        if (
$plug['status']) {
            echo 
'<a class="but_link-plug on" href="' homeLink() . '/admin/plugins/disable?id=' . ($plug['id'] ?? '') . '">
            <i class="fas fa-circle-check"></i>
            </a>'
;
        } else {
            echo 
'<a class="but_link-plug off" href="' homeLink() . '/admin/plugins/enable?id=' . ($plug['id'] ?? '') . '">
            <i class="far fa-circle"></i>
            </a>'
;
        }
        
        echo 
'<a class="but_link-plug delete" data-bs-toggle="modal" data-bs-target="#del-plug" data-id="' . ($plug['id'] ?? '') . '" data-name="' chars($plug['name'] ?? '') . '">
        <i class="fas fa-trash"></i>
        </a>'
;
        
        echo 
'<a class="but_link-plug edit" href="' homeLink() . '/admin/plugins/' $type '/' . ($info['id'] ?? '') . '/settings">
        <i class="fas fa-edit"></i>
        </a>
        </div>'
;
        
        echo 
'</div>
        </div>'
;
    }
}

echo 
'</div>';
echo 
'</div>';
echo 
'</div>';

$page_html ob_get_clean();
require_once (
$_SERVER['DOCUMENT_ROOT'] . '/layout.php');
?>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const modal = document.getElementById('del-plug');

    modal.addEventListener('show.bs.modal', function (event) {
        const button = event.relatedTarget;

        const id = button.getAttribute('data-id');
        const name = button.getAttribute('data-name');

        document.getElementById('del-plug-text').innerHTML =
            "" + name + "";

        document.getElementById('del-plug-btn').href =
            "<?= homeLink() ?>/admin/plugins/delete?id=" + id;
    });
});
</script>
Онлайн: 1
Реклама