diff --git a/Admin/Templates/home.tpl b/Admin/Templates/home.tpl
index ad414d45..b2c430b7 100644
--- a/Admin/Templates/home.tpl
+++ b/Admin/Templates/home.tpl
@@ -1,9 +1,8 @@
dblink->query("SHOW TABLES LIKE '".TB_PREFIX."artefacts'")->num_ro
}
$arteStatus = $arteCount > 0 ? "Launched ($arteCount) - ".date('d.m.Y',$arteDate) : "Not launched";
-// PLANS din artefacts type=11
$plans = 0; $plansDate = null;
if($database->dblink->query("SHOW TABLES LIKE '".TB_PREFIX."artefacts'")->num_rows){
$p = $database->query("SELECT COUNT(*) as c, MIN(conquered) as d FROM ".TB_PREFIX."artefacts WHERE type=11")->fetch_assoc();
@@ -56,26 +54,114 @@ $plansStatus = $plans > 0 ? "Launched ($plans) - ".($plansDate ? date('d.m.Y',$p
$role = $_SESSION['access'] == ADMIN ? 'Administrator' : 'MultiHunter';
?>
@@ -83,7 +169,6 @@ $role = $_SESSION['access'] == ADMIN ? 'Administrator' : 'MultiHunter';
WELCOME TO CONTROL PANEL
Hello — Server Time
-
Total Players
+ active 24h
@@ -91,11 +176,10 @@ $role = $_SESSION['access'] == ADMIN ? 'Administrator' : 'MultiHunter';
Gold in Game
with Plus active
-
-
PHP / MySQL
dblink->server_info; ?>
-
+
+
PHP / MySQL
dblink->server_info; ?>
+
-
Server Timeline
@@ -121,21 +205,23 @@ $role = $_SESSION['access'] == ADMIN ? 'Administrator' : 'MultiHunter';
}
?>
-
+
-
- Credits: Akakori & Elmar — Fixed by Dzoki — Reworked by aggenkeech — Dashboard v2.1 by Shadow
-
+
+
⚡ ADMIN PANEL 100% REBUILT BY Shadow
+
Dashboard v5.0 • TravianZ 2025 • Full code, design & optimization
+
Based on: Akakori & Elmar | Fixed by: Dzoki | Reworked by: aggenkeech
+
\ No newline at end of file
diff --git a/Admin/Templates/login.tpl b/Admin/Templates/login.tpl
index 0f1aafab..8829beb1 100644
--- a/Admin/Templates/login.tpl
+++ b/Admin/Templates/login.tpl
@@ -1,5 +1,4 @@
img[src*="Travian"], img[src*="admin.gif"]{display:none !important}
.tribes{display:flex;justify-content:center;gap:24px;margin-top:24px;opacity:.6}
.tribe-icon{width:36px;height:36px;border-radius:50%;background:rgba(30,41,59,.8);display:flex;align-items:center;justify-content:center;font-size:18px;border:1px solid rgba(148,163,184,.2)}
-/* CREDIT SHADOW - ELEGANT */
-.credits{margin-top:22px;text-align:center;font-size:11px;color:#64748b;letter-spacing:.4px;opacity:.9}
-.credits .shadow{color:#38bdf8;font-weight:700;text-shadow:0 0 12px rgba(56,189,248,.45)}
-.credits a{color:#7dd3fc;text-decoration:none;border-bottom:1px solid rgba(125,211,252,.25);padding-bottom:1px;transition:all .2s}
-.credits a:hover{color:#fff;border-bottom-color:#38bdf8;text-shadow:0 0 10px rgba(56,189,248,.7)}
+/* === FOOTER SHADOW - pentru login === */
+.credits{
+ margin-top:24px !important;
+ text-align:center !important;
+ background:rgba(15,23,42,.85) !important;
+ backdrop-filter:blur(16px) !important;
+ border:1px solid rgba(239,68,68,.35) !important;
+ border-radius:14px !important;
+ padding:16px !important;
+ box-shadow:0 10px 30px rgba(0,0,0,.5), 0 0 20px rgba(239,68,68,.15) !important;
+}
+.credits .shadow-main{
+ font-size:15px !important;
+ font-weight:800 !important;
+ color:#fff !important;
+ letter-spacing:.3px !important;
+ margin-bottom:4px !important;
+}
+.credits .shadow-main span{
+ color:#ef4444 !important;
+ font-size:18px !important;
+ font-weight:900 !important;
+ text-shadow:0 0 10px rgba(239,68,68,.7) !important;
+}
+.credits .shadow-sub{
+ font-size:11px !important;
+ color:#cbd5e1 !important;
+ margin-bottom:6px !important;
+}
+.credits .shadow-old{
+ font-size:10px !important;
+ color:#64748b !important;
+ border-top:1px solid rgba(148,163,184,.12) !important;
+ padding-top:6px !important;
+ margin-top:6px !important;
+}
+
+/* === NOU: EROARE LOGIN === */
+.login-error{
+ background:rgba(220,38,38,.12);
+ border:1px solid rgba(220,38,38,.35);
+ border-left:3px solid #ef4444;
+ color:#fecaca;
+ padding:12px 16px;
+ border-radius:12px;
+ margin-bottom:18px;
+ font-size:13px;
+ display:flex;
+ align-items:center;
+ gap:10px;
+ backdrop-filter:blur(12px);
+ animation:tzShake .4s ease;
+ box-shadow:0 8px 20px rgba(0,0,0,.4);
+}
+.login-error::before{content:"⚠️";font-size:16px;filter:drop-shadow(0 0 6px rgba(239,68,68,.5))}
+.login-error strong{color:#fff;font-weight:600}
+@keyframes tzShake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-3px)}40%,80%{transform:translateX(3px)}}
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/Admin/admin.php b/Admin/admin.php
index 24342043..33ed821c 100644
--- a/Admin/admin.php
+++ b/Admin/admin.php
@@ -293,7 +293,7 @@ if (!empty($_GET['p'])) {
$subpage = 'Edit Village ('.$village['name'].' » '.($user['username'] ?? '?').')';
} else {
$subpage = 'Edit Village (ID '.$did.' not found)';
- $village = null; // important, ca să nu crape template-ul mai jos
+ $village = null;
}
} else {
$subpage = 'Edit Village (no village)';
@@ -399,22 +399,23 @@ body{margin:0;font-family:Verdana,Arial,sans-serif}
.tz-user{font-size:12px}
.tz-logout{margin-left:10px;background:#ef4444;color:#fff;padding:5px 11px;border-radius:6px;text-decoration:none;font-size:11px;font-weight:bold}
-/* LOGIN = header NEGRU */
body.login{background:#0f172a;color:#e2e8f0}
body.login #ltop1{background:#0b1220 !important;background-image:none !important}
body.login .tz-topbar{color:#fff !important}
body.login .tz-brand h1{color:#fff !important}
body.login .tz-brand .tz-sub{color:#94a3b8 !important}
-/* APP = header ALB */
-body.app{background:#eef2f7;color:#1f2937}
-body.app #ltop1{background:#ffffff !important;background-image:none !important;border-bottom:1px solid #e5e7eb !important}
-body.app .tz-topbar{color:#1f2937 !important}
-body.app .tz-brand h1{color:#111827 !important}
-body.app .tz-brand .tz-sub{color:#6b7280 !important}
-body.app .tz-user{color:#4b5563}
-body.app #lleft{background:#ffffff!important;border-right:1px solid #e5e7eb}
-body.app #lmid1{background:#ffffff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 2px rgba(0,0,0,.04);margin:16px;padding:20px!important}
+body.app{background:#0f172a;color:#e2e8f0}
+body.app #ltop1{background:#0b1220 !important;background-image:none !important;border-bottom:3px solid #f59e0b !important}
+body.app .tz-topbar{color:#fff !important}
+body.app .tz-brand h1{color:#fff !important}
+body.app .tz-brand .tz-sub{color:#94a3b8 !important}
+body.app .tz-user{color:#cbd5e1}
+
+body.app #lleft{background:transparent!important;border-right:none !important;padding:0 12px;}
+body.app #lleft .center-img{margin-top:20px;margin-bottom:12px}
+
+body.app #menu{background:#ffffff;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.3);margin-top:0;}
body.app #menu>li>a{display:block;padding:10px 16px;color:#374151!important;font-weight:600;font-size:12px;border-left:3px solid transparent;text-decoration:none}
body.app #menu>li>a:hover,body.app #menu>li>a.active{background:#f3f4f6;border-left-color:#f59e0b;color:#111827!important}
body.app #menu li.sub ul{background:#f9fafb}
@@ -422,7 +423,13 @@ body.app #menu li.sub ul li a{display:block;padding:8px 16px 8px 34px;font-size:
body.app #menu li.sub ul li a:hover{color:#d97706!important}
body.app #menu li a{background:#ffffff !important;color:#374151 !important;border-bottom:1px solid #f3f4f6 !important}
body.app #menu li a:hover{background:#f9fafb !important}
-body.app #lleft{box-shadow:none !important}
+
+body.app #lmid1{background:#ffffff !important;margin:16px !important;padding:24px !important;border-radius:12px !important;box-shadow:0 2px 8px rgba(0,0,0,.15) !important;border:1px solid #e5e7eb !important;}
+body.app #lmid3{color:#696969 !important;}
+body.app #lmid3 h1,body.app #lmid3 h2,body.app #lmid3 h3,body.app #lmid3 h4,body.app #lmid3 b,body.app #lmid3 strong{color:#696969 !important;font-weight:700 !important;}
+body.app #lmid3 p,body.app #lmid3 span,body.app #lmid3 div,body.app #lmid3 td,body.app #lmid3 th,body.app #lmid3 li,body.app #lmid3 font{color:#696969 !important;font-weight:500 !important;}
+body.app #lmid3 [style*="color:"]{color:#696969 !important;}
+body.app #lmid3 a{color:#15803d !important;font-weight:600 !important;}
@@ -527,10 +534,10 @@ body.app #lleft{box-shadow:none !important}
CheckLogin()){ ?>
getUserField($_SESSION['id'], 'username', 0);
- $adminAccess = $database->getUserField($_SESSION['id'], 'access', 0);
- $rank = $adminAccess == 9 ? 'Admin' : ($adminAccess == 8 ? 'MH' : 'User');
- ?>
+ $adminName = $database->getUserField($_SESSION['id'], 'username', 0);
+ $adminAccess = $database->getUserField($_SESSION['id'], 'access', 0);
+ $rank = $adminAccess == 9 ? 'Admin' : ($adminAccess == 8 ? 'MH' : 'User');
+ ?>
Logged:
=$adminName?> (=$rank?>)
Logout
@@ -539,20 +546,16 @@ body.app #lleft{box-shadow:none !important}
-
+
+
-
-
-
-
+
+
+
+
CheckLogin())
{
diff --git a/Admin/img/travianz_admin_logo.png b/Admin/img/travianz_admin_logo.png
new file mode 100644
index 00000000..9a598595
Binary files /dev/null and b/Admin/img/travianz_admin_logo.png differ