Files
dockersyshome/resources/views/admin/settings/index.blade.php
T
marco 38295e7e88 feat(cms): implement complete SysSiteCMS content management system
Initial implementation of the HomeSysPanel CMS built with Laravel 13.0.
Includes complete admin panel, content management, user authentication,
modular architecture for products/services/chatbot, and marketing tools.

Key features:
- User authentication with email verification and password reset
- Role-based access control (Admin/User with granular permissions)
- Content management (pages, news, FAQ, downloads, galleries, banners)
- Contact management system with subjects and responses
- Marketing tools (email campaigns, visitor analytics, social sharing)
- Modular architecture (Products, Services, Chatbot modules)
- AI Chatbot integration with OpenRouter.ai and LlamaCpp support
- Visitor tracking with geolocation
- SEO optimization with meta tags and Open Graph
- Responsive design with Bootstrap 5
- Dark mode support
- Maintenance mode
- Feature request system
2026-09-07 19:06:53 -03:00

208 lines
14 KiB
PHP
Executable File

@extends('layouts.admin')
@section('title', 'Configurações do Site')
@section('content')
<div class="d-sm-flex align-items-center justify-content-between mb-4">
<h1 class="h3 mb-0 text-gray-800">Configurações Gerais</h1>
</div>
@if(session('success'))
<div class="alert alert-success border-0 shadow-sm mb-4">{{ session('success') }}</div>
@endif
<form action="{{ route('admin.settings.update') }}" method="POST">
@csrf
<!-- Nav Tabs -->
<ul class="nav nav-tabs mb-4" id="settingsTabs" role="tablist">
<li class="nav-item">
<a class="nav-link active font-weight-bold" id="company-tab" data-toggle="tab" href="#company" role="tab"><i class="bi bi-building me-1"></i> Dados da Empresa</a>
</li>
<li class="nav-item">
<a class="nav-link font-weight-bold" id="seo-tab" data-toggle="tab" href="#seo" role="tab"><i class="bi bi-globe me-1"></i> SEO Global</a>
</li>
<li class="nav-item">
<a class="nav-link font-weight-bold" id="scripts-tab" data-toggle="tab" href="#scripts" role="tab"><i class="bi bi-code-slash me-1"></i> Scripts e Integrações</a>
</li>
<li class="nav-item">
<a class="nav-link font-weight-bold" id="marketing-settings-tab" data-toggle="tab" href="#marketing-settings" role="tab"><i class="bi bi-megaphone me-1"></i> Marketing</a>
</li>
</ul>
<!-- Tab Content -->
<div class="tab-content" id="settingsTabsContent">
<!-- Aba Dados da Empresa -->
<div class="tab-pane fade show active" id="company" role="tabpanel">
<div class="row">
<div class="col-lg-12">
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">Informações Institucionais</h6>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="form-group mb-3">
<label class="font-weight-bold">Nome da Empresa</label>
<input type="text" name="company_name" class="form-control" value="{{ \App\Models\Setting::get('company_name', 'Syspanel') }}">
</div>
<div class="form-group mb-3">
<label class="font-weight-bold">Slogan da Empresa</label>
<input type="text" name="company_slogan" class="form-control" value="{{ \App\Models\Setting::get('company_slogan', 'Sua parceira em tecnologia e manutenção de informática.') }}">
<small class="text-muted">Aparece no rodapé e em outros locais</small>
</div>
<div class="form-group mb-3">
<label class="font-weight-bold">CNPJ</label>
<input type="text" name="company_cnpj" class="form-control" value="{{ \App\Models\Setting::get('company_cnpj') }}" placeholder="00.000.000/0000-00">
</div>
<div class="form-group mb-3">
<label class="font-weight-bold">E-mail de Contato Principal</label>
<input type="email" name="company_email" class="form-control" value="{{ \App\Models\Setting::get('company_email') }}">
</div>
<div class="form-group mb-3">
<label class="font-weight-bold">Telefone / WhatsApp</label>
<input type="text" name="company_phone" class="form-control" value="{{ \App\Models\Setting::get('company_phone') }}">
</div>
</div>
<div class="col-md-6">
<div class="form-group mb-3">
<label class="font-weight-bold">Endereço Completo</label>
<textarea name="company_address" class="form-control" rows="2">{{ \App\Models\Setting::get('company_address') }}</textarea>
</div>
<div class="form-group mb-3">
<label class="font-weight-bold">Horário de Atendimento</label>
<input type="text" name="company_hours" class="form-control" value="{{ \App\Models\Setting::get('company_hours') }}" placeholder="Seg a Sex: 08h às 18h">
</div>
<hr>
<h6 class="font-weight-bold text-dark mb-3">Redes Sociais (Links completos)</h6>
<div class="form-group mb-2">
<div class="input-group">
<div class="input-group-prepend"><span class="input-group-text"><i class="bi bi-instagram"></i></span></div>
<input type="text" name="company_instagram" class="form-control" value="{{ \App\Models\Setting::get('company_instagram') }}" placeholder="https://instagram.com/perfil">
</div>
</div>
<div class="form-group mb-2">
<div class="input-group">
<div class="input-group-prepend"><span class="input-group-text"><i class="bi bi-facebook"></i></span></div>
<input type="text" name="company_facebook" class="form-control" value="{{ \App\Models\Setting::get('company_facebook') }}" placeholder="https://facebook.com/perfil">
</div>
</div>
<div class="form-group mb-0">
<div class="input-group">
<div class="input-group-prepend"><span class="input-group-text"><i class="bi bi-linkedin"></i></span></div>
<input type="text" name="company_linkedin" class="form-control" value="{{ \App\Models\Setting::get('company_linkedin') }}" placeholder="https://linkedin.com/company/perfil">
</div>
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col-12">
<h6 class="font-weight-bold text-dark mb-3"><i class="bi bi-geo-alt me-1"></i> Mapa de Localização</h6>
<div class="form-group mb-0">
<label class="font-weight-bold">Iframe do Google Maps</label>
<textarea name="company_map_iframe" class="form-control" rows="4" placeholder="Cole aqui o código iframe do Google Maps...">{{ \App\Models\Setting::get('company_map_iframe') }}</textarea>
<small class="text-muted">Vá no Google Maps, compartilhe o local e selecione "Incorporar mapa" para obter o código iframe. Aparece na página de Contato.</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Aba SEO Global -->
<div class="tab-pane fade" id="seo" role="tabpanel">
<div class="row">
<div class="col-lg-12">
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">Configurações de Buscadores</h6>
</div>
<div class="card-body">
<div class="form-group mb-3">
<label class="font-weight-bold">Título do Site (Sufixo)</label>
<input type="text" name="seo_title_suffix" class="form-control" value="{{ \App\Models\Setting::get('seo_title_suffix', ' - Syspanel') }}">
<small class="text-muted">Ex: "Início - Syspanel"</small>
</div>
<div class="form-group mb-3">
<label class="font-weight-bold">Descrição Meta Padrão</label>
<textarea name="seo_description_default" class="form-control" rows="3">{{ \App\Models\Setting::get('seo_description_default') }}</textarea>
</div>
<div class="form-group mb-0">
<label class="font-weight-bold">Imagem OG Padrão (URL)</label>
<input type="text" name="seo_og_image_default" class="form-control" value="{{ \App\Models\Setting::get('seo_og_image_default') }}">
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Aba Scripts -->
<div class="tab-pane fade" id="scripts" role="tabpanel">
<div class="row">
<div class="col-lg-12">
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">Integrações e Código</h6>
</div>
<div class="card-body">
<div class="form-group mb-3">
<label class="font-weight-bold">Google Analytics (Tag ID)</label>
<input type="text" name="scripts_google_analytics" class="form-control" value="{{ \App\Models\Setting::get('scripts_google_analytics') }}" placeholder="G-XXXXXXXXXX">
</div>
<div class="form-group mb-0">
<label class="font-weight-bold">Scripts Adicionais no &lt;head&gt;</label>
<textarea name="scripts_head_custom" class="form-control" rows="6" placeholder="Ex: Meta-tags de verificação, CSS customizado">{{ \App\Models\Setting::get('scripts_head_custom') }}</textarea>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Aba Marketing -->
<div class="tab-pane fade" id="marketing-settings" role="tabpanel">
<div class="row">
<div class="col-lg-12">
<div class="card shadow mb-4 border-left-warning">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-warning">Textos de Divulgação (WhatsApp / Redes Sociais)</h6>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="form-group mb-4">
<label class="font-weight-bold text-success"><i class="bi bi-whatsapp me-1"></i> Texto para Produtos</label>
<textarea name="marketing_product_text" class="form-control" rows="4">{{ \App\Models\Setting::get('marketing_product_text', 'Confira este produto incrível: {name} por apenas R$ {price}. Veja mais detalhes aqui: {link}') }}</textarea>
<small class="text-muted">Use as tags: <strong>{name}</strong> para o nome, <strong>{price}</strong> para o preço e <strong>{link}</strong> para a URL do produto.</small>
</div>
</div>
<div class="col-md-6">
<div class="form-group mb-4">
<label class="font-weight-bold text-primary"><i class="bi bi-bell me-1"></i> Texto para Serviços</label>
<textarea name="marketing_service_text" class="form-control" rows="4">{{ \App\Models\Setting::get('marketing_service_text', 'Precisa de {name}? Nós podemos te ajudar! Confira nossos serviços aqui: {link}') }}</textarea>
<small class="text-muted">Use as tags: <strong>{name}</strong> para o nome e <strong>{link}</strong> para a URL da página de serviços.</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card shadow mb-4">
<div class="card-body text-right">
<button type="submit" class="btn btn-primary px-5 py-2 fw-bold">
<i class="bi bi-floppy me-1"></i> Salvar Todas as Configurações
</button>
</div>
</div>
</form>
@endsection