File "edit-footer.php"
Full path: /home/u525140468/domains/productsizer.com/public_html/admin/edit-footer.php
File
size: 12.21 B (12.21 KB bytes)
MIME-type: text/html
Charset: utf-8
Download Open Edit Advanced Editor Back
<!DOCTYPE html>
<html lang="en">
<head>
<title>Footer Menu Editor</title>
<?php include "data/styles.php"?>
<style>
@keyframes fade-in {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in { animation: fade-in 0.6s ease-out both; }
</style>
</head>
<body class="bg-gray-100 min-h-screen">
<div class="max-w-4xl mx-auto p-6">
<div class="bg-white rounded-lg shadow-lg p-6 animate-fade-in">
<div class="flex items-center gap-3 mb-6">
<i data-lucide="panel-bottom" class="w-6 h-6 text-blue-600"></i>
<h1 class="text-2xl font-bold text-gray-800">Edit Footer Menu</h1>
</div>
<?php
require_once '../config.php';
// Load footer menus with a fallback
$footer_menus = [];
if (file_exists('../inc/data.footer.php')) {
$footer_menus = include '../inc/data.footer.php';
}
// Ensure footer_menus is an array with default structure
$footer_menus = array_merge([
'company' => ['title' => 'Company', 'items' => []],
'support' => ['title' => 'Support', 'items' => []],
'legal' => ['title' => 'Legal', 'items' => []]
], is_array($footer_menus) ? $footer_menus : []);
$success = false;
$error = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$company_items = $_POST['company']['items'] ?? [];
$support_items = $_POST['support']['items'] ?? [];
$legal_items = $_POST['legal']['items'] ?? [];
$menu_data = [
'company' => [
'title' => $_POST['company']['title'] ?? 'Company',
'items' => array_filter($company_items, fn($item) => !empty($item['title']) && !empty($item['url']))
],
'support' => [
'title' => $_POST['support']['title'] ?? 'Support',
'items' => array_filter($support_items, fn($item) => !empty($item['title']) && !empty($item['url']))
],
'legal' => [
'title' => $_POST['legal']['title'] ?? 'Legal',
'items' => array_filter($legal_items, fn($item) => !empty($item['title']) && !empty($item['url']))
]
];
// Beautify the array output
$content = "<?php\nreturn [\n";
foreach ($menu_data as $section => $data) {
$content .= " '$section' => [\n";
$content .= " 'title' => '" . addslashes($data['title']) . "',\n";
$content .= " 'items' => [\n";
foreach ($data['items'] as $item) {
$content .= " ['title' => '" . addslashes($item['title']) . "', 'url' => '" . addslashes($item['url']) . "'],\n";
}
$content .= " ],\n";
$content .= " ],\n";
}
$content .= "];\n";
if (file_put_contents('../inc/data.footer.php', $content)) {
$success = true;
$footer_menus = $menu_data; // Update local variable after save
} else {
$error = 'Failed to save menu data. Check file permissions.';
}
}
?>
<?php if ($success): ?>
<div class="mb-6 p-4 bg-green-100 text-green-700 rounded-md flex items-center gap-2">
<i data-lucide="check-circle" class="w-5 h-5"></i>
Menu saved successfully!
</div>
<?php endif; ?>
<?php if ($error): ?>
<div class="mb-6 p-4 bg-red-100 text-red-700 rounded-md flex items-center gap-2">
<i data-lucide="alert-circle" class="w-5 h-5"></i>
<?php echo htmlspecialchars($error); ?>
</div>
<?php endif; ?>
<form method="POST" class="space-y-6">
<!-- Company Section -->
<div class="border-t pt-4">
<div class="flex items-center gap-4 mb-4">
<label class="block text-sm mb-2 font-medium text-gray-400">Section Title:</label>
<input type="text" name="company[title]" value="<?php echo htmlspecialchars($footer_menus['company']['title']); ?>" placeholder="Company Title" class="flex-1 p-2 border rounded-md focus:ring-2 focus:ring-blue-500">
</div>
<div id="company-items" class="space-y-4">
<?php foreach ($footer_menus['company']['items'] as $index => $item): ?>
<div class="flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4 menu-item">
<input type="text" name="company[items][<?php echo $index; ?>][title]" value="<?php echo htmlspecialchars($item['title'] ?? ''); ?>" placeholder="Menu Title" class="flex-1 p-2 border rounded-md focus:ring-2 focus:ring-blue-500">
<input type="text" name="company[items][<?php echo $index; ?>][url]" value="<?php echo htmlspecialchars($item['url'] ?? ''); ?>" placeholder="Menu URL" class="flex-1 p-2 border rounded-md focus:ring-2 focus:ring-blue-500 text-blue-700 font-sans">
<button type="button" onclick="this.parentElement.remove()" class="p-2 text-red-600 hover:text-red-800">
<i data-lucide="trash-2" class="w-5 h-5"></i>
</button>
</div>
<?php endforeach; ?>
</div>
<button type="button" onclick="addMenuItem('company')" class="mt-4 inline-flex items-center gap-2 px-4 py-2 text-sm bg-blue-100 text-blue-700 rounded-md hover:bg-blue-200">
<i data-lucide="plus" class="w-5 h-5"></i> Add Company Item
</button>
</div>
<!-- Support Section -->
<div class="border-t pt-4">
<div class="flex items-center gap-4 mb-4">
<label class="block text-sm mb-2 font-medium text-gray-400">Section Title:</label>
<input type="text" name="support[title]" value="<?php echo htmlspecialchars($footer_menus['support']['title']); ?>" placeholder="Support Title" class="flex-1 p-2 border rounded-md focus:ring-2 focus:ring-blue-500">
</div>
<div id="support-items" class="space-y-4">
<?php foreach ($footer_menus['support']['items'] as $index => $item): ?>
<div class="flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4 menu-item">
<input type="text" name="support[items][<?php echo $index; ?>][title]" value="<?php echo htmlspecialchars($item['title'] ?? ''); ?>" placeholder="Menu Title" class="flex-1 p-2 border rounded-md focus:ring-2 focus:ring-blue-500">
<input type="text" name="support[items][<?php echo $index; ?>][url]" value="<?php echo htmlspecialchars($item['url'] ?? ''); ?>" placeholder="Menu URL" class="flex-1 p-2 border rounded-md focus:ring-2 focus:ring-blue-500 text-blue-700 font-sans">
<button type="button" onclick="this.parentElement.remove()" class="p-2 text-red-600 hover:text-red-800">
<i data-lucide="trash-2" class="w-5 h-5"></i>
</button>
</div>
<?php endforeach; ?>
</div>
<button type="button" onclick="addMenuItem('support')" class="mt-4 inline-flex items-center gap-2 px-4 py-2 text-sm bg-blue-100 text-blue-700 rounded-md hover:bg-blue-200">
<i data-lucide="plus" class="w-5 h-5"></i> Add Support Item
</button>
</div>
<!-- Legal Section -->
<div class="border-t pt-4">
<div class="flex items-center gap-4 mb-4">
<label class="block text-sm mb-2 font-medium text-gray-400">Section Title:</label>
<input type="text" name="legal[title]" value="<?php echo htmlspecialchars($footer_menus['legal']['title']); ?>" placeholder="Legal Title" class="flex-1 p-2 border rounded-md focus:ring-2 focus:ring-blue-500">
</div>
<div id="legal-items" class="space-y-4">
<?php foreach ($footer_menus['legal']['items'] as $index => $item): ?>
<div class="flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4 menu-item">
<input type="text" name="legal[items][<?php echo $index; ?>][title]" value="<?php echo htmlspecialchars($item['title'] ?? ''); ?>" placeholder="Menu Title" class="flex-1 p-2 border rounded-md focus:ring-2 focus:ring-blue-500">
<input type="text" name="legal[items][<?php echo $index; ?>][url]" value="<?php echo htmlspecialchars($item['url'] ?? ''); ?>" placeholder="Menu URL" class="flex-1 p-2 border rounded-md focus:ring-2 focus:ring-blue-500 text-blue-700 font-sans">
<button type="button" onclick="this.parentElement.remove()" class="p-2 text-red-600 hover:text-red-800">
<i data-lucide="trash-2" class="w-5 h-5"></i>
</button>
</div>
<?php endforeach; ?>
</div>
<button type="button" onclick="addMenuItem('legal')" class="mt-4 inline-flex items-center gap-2 px-4 py-2 text-sm bg-blue-100 text-blue-700 rounded-md hover:bg-blue-200">
<i data-lucide="plus" class="w-5 h-5"></i> Add Legal Item
</button>
</div>
<div class="flex justify-end">
<button type="submit" class="bg-blue-600 text-white px-6 py-2 shadow rounded-xl hover:bg-blue-700 flex items-center justify-center gap-2 transition-transform w-full sm:w-auto">
<i data-lucide="save" class="w-5 h-5"></i> Save Menu
</button> </div>
</form>
</div>
</div>
<script>
let companyIndex = <?php echo count($footer_menus['company']['items']); ?>;
let supportIndex = <?php echo count($footer_menus['support']['items']); ?>;
let legalIndex = <?php echo count($footer_menus['legal']['items']); ?>;
function addMenuItem(section) {
const container = document.getElementById(`${section}-items`);
const index = section === 'company' ? companyIndex++ : section === 'support' ? supportIndex++ : legalIndex++;
const div = document.createElement('div');
div.className = 'flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4 menu-item animate-fade-in';
div.innerHTML = `
<input type="text" name="${section}[items][${index}][title]" placeholder="Menu Title" class="flex-1 p-2 border rounded-md focus:ring-2 focus:ring-blue-500">
<input type="text" name="${section}[items][${index}][url]" placeholder="Menu URL" class="flex-1 p-2 border rounded-md focus:ring-2 focus:ring-blue-500 text-blue-700 font-sans">
<button type="button" onclick="this.parentElement.remove()" class="p-2 text-red-600 hover:text-red-800">
<i data-lucide="trash-2" class="w-5 h-5"></i>
</button>
`;
container.appendChild(div);
lucide.createIcons();
}
lucide.createIcons();
</script>
</body>
</html>