Add email templates, page layouts, and shop themes (template system)
Deploy to Production (witstore.wende.it) / deploy (push) Successful in 7s
Deploy to Production (witstore.wende.it) / deploy (push) Successful in 7s
- E-Mail-Templates: DB-gespeicherte HTML-Templates mit {{placeholder}}-System,
Admin-UI zum Bearbeiten von Betreff und Body, alle 4 Mailables aktualisiert
- Seiten-Layouts: 4 Layouts für CMS-Seiten (Standard, Sidebar, Volle Breite, Landing),
Layout-Auswahl im Admin-Formular
- Shop-Themes: 5 Farbthemen via CSS-Variablen, Picker in Einstellungen
- Deployment: EmailTemplateSeeder wird automatisch beim Deploy ausgeführt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\EmailTemplate;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class EmailTemplateController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$templates = EmailTemplate::orderBy('label')->get();
|
||||
return view('admin.email-templates.index', compact('templates'));
|
||||
}
|
||||
|
||||
public function edit(EmailTemplate $emailTemplate)
|
||||
{
|
||||
return view('admin.email-templates.edit', ['template' => $emailTemplate]);
|
||||
}
|
||||
|
||||
public function update(Request $request, EmailTemplate $emailTemplate)
|
||||
{
|
||||
$request->validate([
|
||||
'subject' => 'required|string|max:255',
|
||||
'body' => 'required|string',
|
||||
]);
|
||||
|
||||
$emailTemplate->update([
|
||||
'subject' => $request->input('subject'),
|
||||
'body' => $request->input('body'),
|
||||
]);
|
||||
|
||||
return back()->with('success', 'E-Mail-Template gespeichert.');
|
||||
}
|
||||
}
|
||||
@@ -59,11 +59,13 @@ class PageController extends Controller
|
||||
'show_in_footer' => 'boolean',
|
||||
'show_in_nav' => 'boolean',
|
||||
'nav_sort' => 'integer|min:0',
|
||||
'layout' => 'nullable|in:default,sidebar,full,landing',
|
||||
]);
|
||||
$data['slug'] = $data['slug'] ? Str::slug($data['slug']) : Str::slug($data['title']);
|
||||
$data['published'] = $request->boolean('published');
|
||||
$data['show_in_footer'] = $request->boolean('show_in_footer');
|
||||
$data['show_in_nav'] = $request->boolean('show_in_nav');
|
||||
$data['layout'] = $request->input('layout', 'default');
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ class SettingsController extends Controller
|
||||
'bank_name','bank_iban','bank_bic','invoice_payment_days',
|
||||
'smtp_host','smtp_port','smtp_user','smtp_password','smtp_from_name','smtp_from_email',
|
||||
'cookie_consent','google_analytics','require_customer_approval',
|
||||
'theme_name',
|
||||
];
|
||||
|
||||
public function index()
|
||||
|
||||
Reference in New Issue
Block a user