@extends('layouts.app') @section('title', 'Website CMS') @section('nav_website', 'bg-teal-50 text-teal-700 font-semibold') @section('content')
{{-- Header --}}

Website Content

Manage what guests see on the public-facing website.

@if(auth()->user()->canWebsiteAny())
@foreach(\App\Models\WebsiteContent::LOCALES as $code => $name) @if($code !== 'en') Translate to {{ $name }} @endif @endforeach
@endif History Site Health Preview Site
@if(session('success'))
{{ session('success') }}
@endif @if($errors->any())
{{ $errors->first() }}
@endif {{-- Maintenance Mode Toggle --}}
Website Maintenance Mode @if($maintenanceOn) ON — Guests see maintenance page @else LIVE @endif

{{ $maintenanceOn ? 'Public website is hidden. Logged-in staff can still browse normally.' : 'Public website is visible to all visitors.' }}

@csrf
{{-- Tabs --}} @php $u = auth()->user(); $tabAreas = [ 'homepage' => 'content', 'about' => 'content', 'contact' => 'content', 'social' => 'content', 'gallery' => 'content', 'rooms' => 'content', 'policies' => 'content', 'appearance' => 'content', 'booking' => 'booking', 'payment' => 'booking', 'promo' => 'booking', 'seo' => 'seo', ]; $tabLabels = [ 'homepage' => 'Homepage', 'about' => 'About', 'contact' => 'Contact', 'social' => 'Social & Chat', 'gallery' => 'Gallery', 'rooms' => 'Room Photos', 'appearance' => 'Appearance', 'booking' => 'Booking Settings', 'payment' => 'How to Pay', 'promo' => 'Promo Bar', 'seo' => 'SEO', 'policies' => 'Policies', ]; $firstTab = collect($tabLabels)->keys()->first(fn ($k) => $u->canWebsite($tabAreas[$k])) ?? 'homepage'; @endphp
@foreach($tabLabels as $key => $label) @if($u->canWebsite($tabAreas[$key])) @endif @endforeach
{{-- ── HOMEPAGE ─────────────────────────────────── --}}
@csrf
{{-- Hero Slider --}}

Hero Slider

The rotating homepage banner is managed as individual slides — add, remove, reorder or hide any number.

Manage Slides
{{-- About snippet --}}

About Snippet (Homepage)

{{-- Amenities --}}

Amenities Section

{{-- ── ABOUT ─────────────────────────────────── --}}
@csrf
{{-- ── CONTACT ─────────────────────────────────── --}}
@csrf
{{-- ── SOCIAL & CHAT ───────────────────────────── --}}
@csrf

Social Media Links

Shown as icons in the website footer. Leave blank to hide.

Floating Chat Button

A tap-to-chat button in the bottom-right corner of every page.

The phone number under the Contact tab is used for the "Call" option automatically.

{{-- ── GALLERY ─────────────────────────────────── --}}
{{-- Upload form --}}

Upload Gallery Photo

@csrf
{{-- Gallery grid --}} @if($galleryPhotos->count())

Drag photos to reorder — the first is used as the gallery cover.

@foreach($galleryPhotos as $photo)
{{ $photo->caption }} @if($photo->caption)
{{ $photo->caption }}
@endif
@csrf @method('DELETE')
@endforeach
@else
No gallery photos yet. Upload one above.
@endif
{{-- ── ROOM PHOTOS ─────────────────────────────── --}}
@foreach($roomTypes as $roomType) @php $typeRoomNos = \App\Models\Room::where('type', $roomType)->pluck('no')->all(); $typePhotos = collect($typeRoomNos)->flatMap(fn($no) => $roomPhotos->get($no, collect())->all()); $firstRoomNo = $typeRoomNos[0] ?? null; @endphp

{{ $roomType }}

{{ $typePhotos->count() }} photo{{ $typePhotos->count() !== 1 ? 's' : '' }}
{{-- Upload for first room of this type --}} @if($firstRoomNo)
@csrf
@endif {{-- Photos grid --}} @if($typePhotos->count())
@foreach($typePhotos as $photo)
@csrf @method('DELETE')
@endforeach
@else

No photos yet for this room type.

@endif
@endforeach
{{-- ── BOOKING SETTINGS ─────────────────────────── --}}
@csrf

Enable Online Booking

Allow guests to submit booking requests from the website.

Codes are validated against your Rate Plans. Leave blank to hide the hint.

{{-- ── HOW TO PAY ──────────────────────────────── --}}
@csrf

Shown on the public /how-to-pay page and linked from the booking confirmation. Leave a channel blank to hide it.

@foreach([ ['label' => 'GCash', 'fields' => [['gcash_name','Account Name'],['gcash_number','Number']], 'qr' => 'gcash_qr'], ['label' => 'Maya', 'fields' => [['maya_name','Account Name'],['maya_number','Number']], 'qr' => 'maya_qr'], ] as $ch)

{{ $ch['label'] }}

@foreach($ch['fields'] as [$name, $lbl])
@endforeach
@endforeach {{-- Bank transfer --}}

Bank Transfer

e.g. "Send your deposit within 24 hours and message us the reference number to confirm your booking."

{{-- ── PROMO BAR ───────────────────────────────── --}}
@csrf

Show Announcement Bar

A slim banner across the top of every public page.

Leave empty for no timer. The timer auto-hides once it reaches zero.

{{-- ── SEO ─────────────────────────────────── --}}
@csrf

Recommended: 50–70 characters.

Recommended: 120–160 characters.

{{-- ── POLICIES ────────────────────────────────── --}}
@csrf

Shown on the public /policies page. Leave a field blank to hide that section.

@foreach([ ['senior_pwd', 'Senior Citizen & PWD Discounts', 'e.g. Senior Citizens and PWDs enjoy a 20% discount and VAT exemption per RA 9994 / RA 10754. Present a valid ID upon check-in.'], ['check_in_out', 'Check-in & Check-out', 'e.g. Check-in from 2:00 PM, check-out until 12:00 NN. Early check-in / late check-out subject to availability and fees.'], ['cancellation', 'Cancellation Policy', 'e.g. Free cancellation up to 48 hours before check-in.'], ['house_rules', 'House Rules', 'e.g. No smoking inside rooms. Valid ID required. Quiet hours 10 PM to 7 AM.'], ] as [$pkey, $plabel, $pph])
@endforeach
{{-- ── APPEARANCE ──────────────────────────────── --}}
@csrf {{-- Hotel Logo --}}

Hotel Logo

Upload a logo to replace the icon and hotel name in your public website's header and footer. A vertical (stacked) logo works best; a transparent PNG is recommended. Leave empty to keep the icon + name.

{{-- current / live preview --}} @error('logo')

{{ $message }}

@enderror @if($siteLogo) @endif

Website Accent Color

Sets the main color used across your public website — buttons, links, prices, and highlights. Your staff back-office stays teal.

@foreach($accentPalette as $slug => $preset) @endforeach
{{-- Live preview --}}

Preview

This is how a highlighted section, button, and link look on your site.

Book Now View rooms → ₱1,499
{{-- /x-data tabs --}}
{{-- Unsaved-changes guard: per-tab dirty tracking + beforeunload + cross-form save warning --}} {{-- Drag-to-reorder for gallery & room photos (persists sort_order; first = cover) --}} @endsection