🚀 Hostinger Optimized
🖥️ Server: LiteSpeed
💻 System: Linux s20058.bom1.stableserver.net 5.14.0-611.55.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 15:19:29 EDT 2026 x86_64
👤 User: skhata (1324)
🐘 PHP: 8.4.20
🚫 Disabled: ✨ NONE

💻 Terminal

📁 /home/skhata/chandrasons.com/public
$

📄 settings.php

📁 Path: /home/skhata/excellenteducation.com.np/admin/settings.php
📊 Size: 12.21 KB
🔒 Perm: 0644
📝 MIME: text/x-php
<?php
require_once __DIR__ . '/../includes/auth.php';
require_login();
$pageTitle = 'General Settings';

if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrf_verify()) {
    $action = $_POST['action'] ?? 'save_settings';

    if ($action === 'save_settings') {
        $fields = ['site_name','tagline','address','phone','whatsapp_number','email','facebook_url','instagram_url',
                   'youtube_url','linkedin_url','google_map_embed','footer_text','copyright_text',
                   'meta_title','meta_description','meta_keywords'];
        $values = [];
        foreach ($fields as $f) $values[$f] = trim($_POST[$f] ?? '');

        $s = get_settings();
        $values['logo_full'] = handle_image_upload('logo_full', 'general', $s['logo_full'] ?? null);
        $values['logo_icon'] = handle_image_upload('logo_icon', 'general', $s['logo_icon'] ?? null);
        $values['favicon']   = handle_image_upload('favicon', 'general', $s['favicon'] ?? null);
        $values['og_image']  = handle_image_upload('og_image', 'general', $s['og_image'] ?? null);

        $set = implode(', ', array_map(fn($f) => "$f = :$f", array_keys($values)));
        $stmt = db()->prepare("UPDATE settings SET $set WHERE id = 1");
        $stmt->execute($values);

        flash_set('success', 'Settings updated successfully.');
        redirect('settings.php');
    }

    if ($action === 'add_branch') {
        $stmt = db()->prepare('INSERT INTO branch_offices (label, address, sort_order) VALUES (?, ?, (SELECT n FROM (SELECT COALESCE(MAX(sort_order),0)+1 n FROM branch_offices) t))');
        $stmt->execute([trim($_POST['label'] ?? ''), trim($_POST['branch_address'] ?? '')]);
        flash_set('success', 'Branch office added.');
        redirect('settings.php');
    }

    if ($action === 'delete_branch') {
        $stmt = db()->prepare('DELETE FROM branch_offices WHERE id = ?');
        $stmt->execute([(int) ($_POST['id'] ?? 0)]);
        flash_set('success', 'Branch office removed.');
        redirect('settings.php');
    }
}

$s = get_settings();
$branches = db()->query('SELECT * FROM branch_offices ORDER BY sort_order')->fetchAll();

require __DIR__ . '/partials/header.php';
require __DIR__ . '/partials/sidebar.php';
require __DIR__ . '/partials/topbar.php';
?>

<form method="post" enctype="multipart/form-data" class="space-y-6">
  <?= csrf_field() ?>
  <input type="hidden" name="action" value="save_settings">

  <div class="bg-white rounded-2xl shadow-sm p-6">
    <h2 class="font-heading font-bold text-lg mb-5"><i class="fa-solid fa-building text-brand-red mr-2"></i>Company Info</h2>
    <div class="grid md:grid-cols-2 gap-5">
      <div>
        <label class="block text-sm font-medium mb-1.5">Site / Company Name</label>
        <input type="text" name="site_name" value="<?= e($s['site_name'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green">
      </div>
      <div>
        <label class="block text-sm font-medium mb-1.5">Tagline</label>
        <input type="text" name="tagline" value="<?= e($s['tagline'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green">
      </div>
      <div class="md:col-span-2">
        <label class="block text-sm font-medium mb-1.5">Address (Head Office)</label>
        <input type="text" name="address" value="<?= e($s['address'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green">
      </div>
      <div>
        <label class="block text-sm font-medium mb-1.5">Phone</label>
        <input type="text" name="phone" value="<?= e($s['phone'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green">
      </div>
      <div>
        <label class="block text-sm font-medium mb-1.5">WhatsApp Number (digits only, with country code)</label>
        <input type="text" name="whatsapp_number" value="<?= e($s['whatsapp_number'] ?? '') ?>" placeholder="9779800000000" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green">
      </div>
      <div class="md:col-span-2">
        <label class="block text-sm font-medium mb-1.5">Email</label>
        <input type="email" name="email" value="<?= e($s['email'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green">
      </div>
    </div>
  </div>

  <div class="bg-white rounded-2xl shadow-sm p-6">
    <h2 class="font-heading font-bold text-lg mb-5"><i class="fa-solid fa-share-nodes text-brand-green mr-2"></i>Social Media Links</h2>
    <div class="grid md:grid-cols-2 gap-5">
      <div><label class="block text-sm font-medium mb-1.5"><i class="fa-brands fa-facebook mr-1"></i> Facebook URL</label>
        <input type="text" name="facebook_url" value="<?= e($s['facebook_url'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green"></div>
      <div><label class="block text-sm font-medium mb-1.5"><i class="fa-brands fa-instagram mr-1"></i> Instagram URL</label>
        <input type="text" name="instagram_url" value="<?= e($s['instagram_url'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green"></div>
      <div><label class="block text-sm font-medium mb-1.5"><i class="fa-brands fa-youtube mr-1"></i> YouTube URL</label>
        <input type="text" name="youtube_url" value="<?= e($s['youtube_url'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green"></div>
      <div><label class="block text-sm font-medium mb-1.5"><i class="fa-brands fa-linkedin mr-1"></i> LinkedIn URL</label>
        <input type="text" name="linkedin_url" value="<?= e($s['linkedin_url'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green"></div>
    </div>
  </div>

  <div class="bg-white rounded-2xl shadow-sm p-6">
    <h2 class="font-heading font-bold text-lg mb-5"><i class="fa-solid fa-map-location-dot text-brand-gold mr-2"></i>Google Map</h2>
    <label class="block text-sm font-medium mb-1.5">Google Map Embed URL (from Google Maps &rarr; Share &rarr; Embed a map &rarr; copy the src="..." URL)</label>
    <textarea name="google_map_embed" rows="2" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green" placeholder="https://www.google.com/maps?q=...&output=embed"><?= e($s['google_map_embed'] ?? '') ?></textarea>
  </div>

  <div class="bg-white rounded-2xl shadow-sm p-6">
    <h2 class="font-heading font-bold text-lg mb-5"><i class="fa-solid fa-image text-brand-red mr-2"></i>Logo &amp; Favicon</h2>
    <div class="grid md:grid-cols-3 gap-5">
      <div>
        <label class="block text-sm font-medium mb-1.5">Full Logo (with text)</label>
        <img src="<?= e(resolve_image($s['logo_full'] ?? '')) ?>" class="h-12 mb-2 bg-gray-100 rounded p-1">
        <input type="file" name="logo_full" accept="image/*" class="w-full text-sm">
      </div>
      <div>
        <label class="block text-sm font-medium mb-1.5">Icon Logo (mark only)</label>
        <img src="<?= e(resolve_image($s['logo_icon'] ?? '')) ?>" class="h-12 mb-2 bg-gray-100 rounded p-1">
        <input type="file" name="logo_icon" accept="image/*" class="w-full text-sm">
      </div>
      <div>
        <label class="block text-sm font-medium mb-1.5">Favicon</label>
        <img src="<?= e(resolve_image($s['favicon'] ?? '')) ?>" class="h-12 w-12 object-cover mb-2 bg-gray-100 rounded p-1">
        <input type="file" name="favicon" accept="image/*" class="w-full text-sm">
      </div>
    </div>
  </div>

  <div class="bg-white rounded-2xl shadow-sm p-6">
    <h2 class="font-heading font-bold text-lg mb-5"><i class="fa-solid fa-shoe-prints text-brand-green mr-2"></i>Footer</h2>
    <div class="grid gap-5">
      <div>
        <label class="block text-sm font-medium mb-1.5">Footer Description</label>
        <textarea name="footer_text" rows="2" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green"><?= e($s['footer_text'] ?? '') ?></textarea>
      </div>
      <div>
        <label class="block text-sm font-medium mb-1.5">Copyright Text</label>
        <input type="text" name="copyright_text" value="<?= e($s['copyright_text'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green">
      </div>
    </div>
  </div>

  <div class="bg-white rounded-2xl shadow-sm p-6">
    <h2 class="font-heading font-bold text-lg mb-5"><i class="fa-solid fa-magnifying-glass text-brand-gold mr-2"></i>Default SEO</h2>
    <div class="grid gap-5">
      <div>
        <label class="block text-sm font-medium mb-1.5">Default Meta Title</label>
        <input type="text" name="meta_title" value="<?= e($s['meta_title'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green">
      </div>
      <div>
        <label class="block text-sm font-medium mb-1.5">Default Meta Description</label>
        <textarea name="meta_description" rows="2" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green"><?= e($s['meta_description'] ?? '') ?></textarea>
      </div>
      <div>
        <label class="block text-sm font-medium mb-1.5">Default Meta Keywords (comma separated)</label>
        <input type="text" name="meta_keywords" value="<?= e($s['meta_keywords'] ?? '') ?>" class="w-full rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green">
      </div>
      <div>
        <label class="block text-sm font-medium mb-1.5">Default Social Share Image (OG Image)</label>
        <img src="<?= e(resolve_image($s['og_image'] ?? '')) ?>" class="h-16 mb-2 bg-gray-100 rounded p-1">
        <input type="file" name="og_image" accept="image/*" class="w-full text-sm">
      </div>
    </div>
  </div>

  <button type="submit" class="bg-gradient-to-r from-brand-red to-brand-green text-white font-semibold px-8 py-3 rounded-xl hover:brightness-110 transition">
    <i class="fa-solid fa-floppy-disk mr-2"></i>Save All Settings
  </button>
</form>

<div class="bg-white rounded-2xl shadow-sm p-6 mt-8">
  <h2 class="font-heading font-bold text-lg mb-5"><i class="fa-solid fa-code-branch text-brand-red mr-2"></i>Branch Offices</h2>
  <div class="space-y-3 mb-6">
    <?php foreach ($branches as $b): ?>
    <div class="flex items-center justify-between bg-gray-50 rounded-xl px-4 py-3">
      <div><p class="font-semibold text-sm"><?= e($b['label']) ?></p><p class="text-xs text-gray-500"><?= e($b['address']) ?></p></div>
      <form method="post" onsubmit="return confirm('Remove this branch office?');">
        <?= csrf_field() ?>
        <input type="hidden" name="action" value="delete_branch">
        <input type="hidden" name="id" value="<?= (int) $b['id'] ?>">
        <button type="submit" class="text-brand-red hover:text-red-700"><i class="fa-solid fa-trash"></i></button>
      </form>
    </div>
    <?php endforeach; ?>
    <?php if (!$branches): ?><p class="text-gray-400 text-sm">No branch offices added yet.</p><?php endif; ?>
  </div>
  <form method="post" class="grid sm:grid-cols-3 gap-3">
    <?= csrf_field() ?>
    <input type="hidden" name="action" value="add_branch">
    <input type="text" name="label" placeholder="Branch Label (e.g. Pokhara)" required class="rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green">
    <input type="text" name="branch_address" placeholder="Full Address" required class="rounded-xl border border-gray-300 px-4 py-2.5 text-sm focus:outline-none focus:ring-2 focus:ring-brand-green sm:col-span-1">
    <button type="submit" class="bg-brand-black text-white text-sm font-semibold rounded-xl hover:brightness-110">Add Branch Office</button>
  </form>
</div>

<?php require __DIR__ . '/partials/footer.php'; ?>
← Back📥 Raw✏️ Edit🔒 Chmod
✨ File Manager Magic ✨