Модуль позволяет безопасно вставлять PHP блоки в новостях DLE-21.
В модуле вставляешь PHP код, а вновость его Тег для статьи - [php-block=example] .
Снизу модуля видно на каких страницах вставлены - Теги для статьи и их можно включить или выключить,
и так через него можно вставлять всё что хочется. Файлы движка DLE не изменяет.
Простая установка через админку DLE-21 - Управление плагинами - Загрузить плагин.
В модуле вставляешь PHP код, а вновость его Тег для статьи - [php-block=example] .
Снизу модуля видно на каких страницах вставлены - Теги для статьи и их можно включить или выключить,
и так через него можно вставлять всё что хочется. Файлы движка DLE не изменяет.
PHP:
date_default_timezone_set('Europe/Kyiv');
$time = date('H:i:s');
$today = date('d.m.Y');
$year = date('Y');
$php = PHP_VERSION;
$memory = ini_get('memory_limit');
$upload = ini_get('upload_max_filesize');
$server = $_SERVER['SERVER_SOFTWARE'] ?? 'Неизвестно';
$host = $_SERVER['HTTP_HOST'] ?? 'localhost';
$extensions = [
'PDO MySQL' => extension_loaded('pdo_mysql'),
'cURL' => extension_loaded('curl'),
'GD' => extension_loaded('gd'),
'mbstring' => extension_loaded('mbstring'),
'OpenSSL' => extension_loaded('openssl'),
'JSON' => extension_loaded('json'),
'OPcache' => extension_loaded('Zend OPcache')
];
$passed = count(array_filter($extensions));
$total = count($extensions);
$percentage = round($passed / $total * 100);
echo '<style>
.dle-dashboard {
--bg: #10172b;
--card: #1c2741;
--border: rgba(255,255,255,.09);
--muted: #a9b6d2;
--green: #39e5b3;
font-family: system-ui, Arial, sans-serif;
color: #fff;
background:
radial-gradient(circle at top left, #30235c, transparent 42%),
radial-gradient(circle at bottom right, #104c5a, transparent 42%),
var(--bg);
padding: 35px;
border-radius: 24px;
line-height: 1.5;
}
.dle-dashboard * { box-sizing: border-box; }
.dle-dashboard .header {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
gap: 12px;
align-items: center;
margin-bottom: 28px;
}
.dle-dashboard .brand {
font-size: 25px;
font-weight: 800;
}
.dle-dashboard .brand span { color: #ab97ff; }
.dle-dashboard .status {
background: #123e37;
color: #4af3bb;
border: 1px solid #286e5e;
border-radius: 30px;
padding: 7px 15px;
font-size: 13px;
}
.dle-dashboard .hero {
background: linear-gradient(125deg,#5143a5,#192e54 75%);
padding: 40px;
border: 1px solid var(--border);
border-radius: 22px;
margin-bottom: 22px;
}
.dle-dashboard .hero h1 {
font-size: clamp(28px,4vw,44px);
line-height: 1.2;
margin: 0 0 15px;
color: #fff;
}
.dle-dashboard .hero p {
color: #d2daf4;
max-width: 650px;
margin: 0;
}
.dle-dashboard .grid {
display: grid;
grid-template-columns: repeat(3,minmax(0,1fr));
gap: 16px;
}
.dle-dashboard .card {
background: rgba(30,42,70,.93);
border: 1px solid var(--border);
border-radius: 18px;
padding: 23px;
min-width: 0;
transition: transform .25s, border-color .25s;
}
.dle-dashboard .card:hover {
transform: translateY(-4px);
border-color: #7865e7;
}
.dle-dashboard .label {
color: var(--muted);
font-size: 13px;
margin-bottom: 12px;
}
.dle-dashboard .value {
font-size: clamp(19px,2.8vw,29px);
font-weight: 800;
overflow-wrap: anywhere;
font-variant-numeric: tabular-nums;
}
.dle-dashboard .detail {
color: var(--muted);
margin-top: 8px;
font-size: 12px;
}
.dle-dashboard h2 {
font-size: 23px;
color: #fff;
margin: 32px 0 16px;
}
.dle-dashboard .checks {
display: grid;
grid-template-columns: repeat(3,minmax(0,1fr));
gap: 12px;
}
.dle-dashboard .check {
background: rgba(255,255,255,.055);
border: 1px solid var(--border);
border-radius: 12px;
padding: 14px;
display: flex;
justify-content: space-between;
gap: 10px;
}
.dle-dashboard .ok { color: #39e5b3; font-weight: bold; }
.dle-dashboard .bad { color: #ff8796; font-weight: bold; }
.dle-dashboard .progress {
height: 9px;
background: #34405d;
border-radius: 20px;
overflow: hidden;
margin-top: 17px;
}
.dle-dashboard .progress-fill {
height: 100%;
background: linear-gradient(90deg,#8070ff,#39e5b3);
border-radius: inherit;
}
.dle-dashboard .btn {
display: inline-block;
background: linear-gradient(110deg,#7f64ff,#319dd8);
color: #fff;
border: 0;
border-radius: 12px;
padding: 12px 22px;
font: inherit;
font-weight: 700;
cursor: pointer;
margin: 10px 10px 0 0;
transition: filter .2s;
}
.dle-dashboard .btn:hover { filter: brightness(1.2); }
.dle-dashboard .result {
margin-top: 14px;
color: #65f0c1;
min-height: 24px;
}
.dle-dashboard .footer {
text-align: center;
color: var(--muted);
font-size: 12px;
margin-top: 35px;
}
@media(max-width:800px) {
.dle-dashboard .grid {
grid-template-columns: repeat(2,minmax(0,1fr));
}
.dle-dashboard .checks {
grid-template-columns: repeat(2,minmax(0,1fr));
}
}
@media(max-width:540px) {
.dle-dashboard { padding: 18px; }
.dle-dashboard .hero { padding: 25px; }
.dle-dashboard .grid,
.dle-dashboard .checks {
grid-template-columns: 1fr;
}
}
</style>';
echo '<div class="dle-dashboard" id="dle-test-panel">';
echo '<div class="header">
<div class="brand">◆ DLE <span>Control Center</span></div>
<div class="status">● PHP работает</div>
</div>';
echo '<div class="hero">
<h1>🚀 Добро пожаловать!</h1>
<p>Современная тестовая панель DataLife Engine.
Здесь можно проверить сервер, PHP, расширения,
JavaScript и оформление сайта.</p>
</div>';
echo '<div class="grid">';
echo '<div class="card">
<div class="label">🕒 Время Киева</div>
<div class="value" id="dle-clock">' . htmlspecialchars($time, ENT_QUOTES, 'UTF-8') . '</div>
<div class="detail" id="dle-date">' . htmlspecialchars($today, ENT_QUOTES, 'UTF-8') . '</div>
</div>';
echo '<div class="card">
<div class="label">⚡ Версия PHP</div>
<div class="value">' . htmlspecialchars($php, ENT_QUOTES, 'UTF-8') . '</div>
<div class="detail">Установленная версия</div>
</div>';
echo '<div class="card">
<div class="label">🌐 Домен сайта</div>
<div class="value">' . htmlspecialchars($host, ENT_QUOTES, 'UTF-8') . '</div>
<div class="detail">Адрес текущего сайта</div>
</div>';
echo '<div class="card">
<div class="label">🖥 Веб-сервер</div>
<div class="value">' . htmlspecialchars($server, ENT_QUOTES, 'UTF-8') . '</div>
<div class="detail">Программное обеспечение</div>
</div>';
echo '<div class="card">
<div class="label">💾 Лимит памяти</div>
<div class="value">' . htmlspecialchars((string)$memory, ENT_QUOTES, 'UTF-8') . '</div>
<div class="detail">Максимальная память PHP</div>
</div>';
echo '<div class="card">
<div class="label">📤 Загрузка файлов</div>
<div class="value">' . htmlspecialchars((string)$upload, ENT_QUOTES, 'UTF-8') . '</div>
<div class="detail">Максимальный размер файла</div>
</div>';
echo '</div>';
echo '<h2>🔍 Диагностика расширений</h2>';
echo '<div class="card">
<div class="label">Успешно пройдено проверок</div>
<div class="value">' . $passed . ' из ' . $total . '</div>
<div class="progress">
<div class="progress-fill" style="width:' . $percentage . '%"></div>
</div>
</div>';
echo '<div class="checks" style="margin-top:16px;">';
foreach ($extensions as $name => $enabled) {
$statusClass = $enabled ? 'ok' : 'bad';
$statusText = $enabled ? '✓ OK' : '✕ Нет';
echo '<div class="check">
<span>' . htmlspecialchars($name, ENT_QUOTES, 'UTF-8') . '</span>
<span class="' . $statusClass . '">' . $statusText . '</span>
</div>';
}
echo '</div>';
echo '<h2>🧪 Интерактивные тесты</h2>';
echo '<div class="card">
<div style="font-size:19px;font-weight:750;">
🎉 Панель успешно загружена!
</div>
<p style="color:#a9b6d2;">
Нажми на кнопки и проверь работу JavaScript
и обновление часов.
</p>
<button class="btn" type="button" id="dle-js-test">
⚡ Проверить JavaScript
</button>
<button class="btn" type="button" id="dle-time-test">
🕒 Показать время
</button>
<div class="result" id="dle-result" aria-live="polite"></div>
</div>';
echo '<div class="footer">
DLE Control Center · PHP ' . htmlspecialchars($php, ENT_QUOTES, 'UTF-8') . ' · ' . $year . '
</div>';
echo '</div>';
echo '<script>
(function () {
var panel = document.getElementById("dle-test-panel");
if (!panel) return;
var clock = panel.querySelector("#dle-clock");
var date = panel.querySelector("#dle-date");
var result = panel.querySelector("#dle-result");
var startingTime = ' . json_encode(
date('Y-m-d\TH:i:sP'),
JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT
) . ';
var initialTime = new Date(startingTime).getTime();
var startedAt = Date.now();
function updateClock() {
var now = new Date(initialTime + Date.now() - startedAt);
clock.textContent = new Intl.DateTimeFormat("ru-RU", {
timeZone: "Europe/Kyiv",
hour: "2-digit",
minute: "2-digit",
second: "2-digit",
hour12: false
}).format(now);
date.textContent = new Intl.DateTimeFormat("ru-RU", {
timeZone: "Europe/Kyiv",
day: "2-digit",
month: "2-digit",
year: "numeric"
}).format(now);
}
updateClock();
var timer = setInterval(function () {
if (!document.body.contains(panel)) {
clearInterval(timer);
return;
}
updateClock();
}, 1000);
panel.querySelector("#dle-js-test").addEventListener("click", function () {
result.textContent = "✅ JavaScript работает отлично!";
});
panel.querySelector("#dle-time-test").addEventListener("click", function () {
updateClock();
result.textContent = "🕒 Текущее время: " + clock.textContent;
});
})();
</script>';
Простая установка через админку DLE-21 - Управление плагинами - Загрузить плагин.
Вложения
Последнее редактирование:



