mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-06-28 00:24:23 +00:00
e69d8457d8
Admin panel design changed
109 lines
6.2 KiB
Smarty
109 lines
6.2 KiB
Smarty
<?php
|
|
|
|
#################################################################################
|
|
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
|
## --------------------------------------------------------------------------- ##
|
|
## Filename : editPassword.tpl ##
|
|
## Type : Admin Panel Frontend ##
|
|
## --------------------------------------------------------------------------- ##
|
|
## Developed by : Dzoki (Original) ##
|
|
## Refactored by : Shadow ##
|
|
## Redesign by : Shadow ##
|
|
## --------------------------------------------------------------------------- ##
|
|
## Contact : cata7007@gmail.com ##
|
|
## Project : TravianZ ##
|
|
## GitHub : https://github.com/Shadowss/TravianZ ##
|
|
## --------------------------------------------------------------------------- ##
|
|
## License : TravianZ Project ##
|
|
## Copyright : TravianZ (c) 2010-2025. All rights reserved. ##
|
|
## --------------------------------------------------------------------------- ##
|
|
#################################################################################
|
|
|
|
if(isset($_GET['uid'])) {
|
|
$uid = (int)$_GET['uid'];
|
|
$user = mysqli_fetch_assoc(mysqli_query($GLOBALS["link"], "SELECT id, username, email FROM ".TB_PREFIX."users WHERE id = $uid"));
|
|
if(!$user){ include("404.tpl"); return; }
|
|
?>
|
|
<style>
|
|
.pw-wrap{max-width:600px;margin:0 auto;font-family:Verdana,Arial;}
|
|
.pw-head{background:linear-gradient(135deg,#66CCFF,#66CCCC);color:#fff;border-radius:6px;padding:16px 20px;margin-bottom:14px;display:flex;align-items:center;gap:12px;}
|
|
.pw-head .icon{font-size:28px;background:rgba(255,255,255,.15);width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
|
|
.pw-head h2{margin:0;font-size:18px;}
|
|
.pw-head h2 a{color:#fff;text-decoration:none;}
|
|
.pw-head .sub{font-size:12px;opacity:.85;margin-top:2px;}
|
|
|
|
.card{background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.05);overflow:hidden;}
|
|
.card .body{padding:20px;}
|
|
.warning{background:#fef2f2;border:1px solid #fecaca;border-radius:5px;padding:10px 12px;font-size:12px;color:#991b1b;margin-bottom:16px;display:flex;gap:8px;align-items:flex-start;}
|
|
|
|
.form-group{margin-bottom:16px;}
|
|
.form-group label{display:block;font-size:12px;font-weight:600;color:#374151;margin-bottom:6px;}
|
|
.input-wrap{position:relative;display:flex;align-items:center;}
|
|
.input-wrap input{width:100%;padding:10px 40px 10px 12px;border:1px solid #d1d5db;border-radius:5px;font-size:14px;font-family:monospace;box-sizing:border-box;}
|
|
.input-wrap input:focus{border-color:#dc2626;outline:none;box-shadow:0 0 0 3px rgba(220,38,38,.15);}
|
|
.toggle-eye{position:absolute;right:8px;background:none;border:none;cursor:pointer;font-size:18px;color:#6b7280;padding:4px;}
|
|
.btn-gen{background:#f3f4f6;border:1px solid #d1d5db;color:#374151;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer;margin-top:6px;}
|
|
.btn-gen:hover{background:#e5e7eb;}
|
|
|
|
.actions{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:14px;border-top:1px solid #e5e7eb;}
|
|
.btn-back{background:#f3f4f6;border:1px solid #d1d5db;color:#16a34a;padding:9px 18px;border-radius:5px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:6px;}
|
|
.btn-back:hover{background:#e5e7eb;}
|
|
.btn-save{background:linear-gradient(#dc2626,#b91c1c);border:1px solid #991b1b;color:#fff;padding:9px 20px;border-radius:5px;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 1px 2px rgba(0,0,0,.1);}
|
|
.btn-save:hover{filter:brightness(1.05);}
|
|
</style>
|
|
<script>
|
|
function togglePw(){
|
|
const i = document.getElementById('newpw');
|
|
i.type = i.type === 'password' ? 'text' : 'password';
|
|
}
|
|
function genPw(){
|
|
const chars = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789!@#';
|
|
let pw = '';
|
|
for(let i=0;i<12;i++) pw += chars.charAt(Math.floor(Math.random()*chars.length));
|
|
document.getElementById('newpw').value = pw;
|
|
document.getElementById('newpw').type = 'text';
|
|
}
|
|
</script>
|
|
|
|
<div class="pw-wrap">
|
|
<div class="pw-head">
|
|
<div class="icon">🔐</div>
|
|
<div>
|
|
<h2>Change Password: <a href="admin.php?p=player&uid=<?php echo $user['id'];?>"><?php echo htmlspecialchars($user['username']);?></a></h2>
|
|
<div class="sub">UID: <?php echo $uid; ?> • <?php echo htmlspecialchars($user['email']); ?></div>
|
|
</div>
|
|
</div>
|
|
|
|
<form action="../GameEngine/Admin/Mods/editPassword.php" method="POST">
|
|
<input type="hidden" name="admid" value="<?php echo $_SESSION['id']; ?>">
|
|
<input type="hidden" name="uid" value="<?php echo $uid; ?>">
|
|
|
|
<div class="card">
|
|
<div class="body">
|
|
<div class="warning">
|
|
<span>⚠️</span>
|
|
<div><b>WARNING:</b> The password is changed instantly. The player will be logged out. No automatic email is sent.</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="newpw">New Password</label>
|
|
<div class="input-wrap">
|
|
<input type="text" id="newpw" name="newpw" value="" placeholder="Introdu parola nouă" autocomplete="new-password" required>
|
|
<button type="button" class="toggle-eye" onclick="togglePw()" title="Show/Hide">👁️</button>
|
|
</div>
|
|
<button type="button" class="btn-gen" onclick="genPw()">🎲 Generate secure password</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="actions">
|
|
<a href="admin.php?p=player&uid=<?php echo $uid;?>" class="btn-back">← Back</a>
|
|
<button type="submit" class="btn-save">🔐 Change Password</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<?php
|
|
} else {
|
|
include("404.tpl");
|
|
}
|
|
?> |