Startseite und Heroes - Hero-Slideshow (11 Motive inkl. Febrü) mit Infokarte, Laufzeit-Linie, größeren Klickflächen, Goldrahmen und mobiler Karte unter dem Bild; Zeile über der Überschrift, neue Vertrauenspunkte - Hero-Stil auf Marken, Über uns und Kontakt übertragen, Breadcrumb entfernt - Gründer-Leiste, Vision-Box auf Ocker, Showroom-Display in Box mit „Größer ansehen“/Vollbild - Akzentfarbe #a8741f, größere Serif-Überschriften in der Interior-Welt - Marken: Bildpause mit Zitat; Vereine aktualisiert und verlinkt Inhalte - Lektorat aller angezeigten Texte, /about-Korrekturen, Rechtstexte (DDG, TDDDG, Hosting Hetzner) - Ablauf Maßanfertigung überall einheitlich, Magazin-Beitrag neu, alte Beiträge offline, deutsches Datum/Lesezeit, FAQ Projektausstattung, Otterpohl - Referenzen-Seite per CMS-Schalter ausblendbar CMS und Technik - Tote Sektionen, Felder, Seiten und Komponenten entfernt und archiviert (dev/2026-08-28/archiv-*) - Entwurf /entwurf, Farb-Schalter und /welcome entfernt; Test-Routen nur noch lokal - Seitenbaum-Beschreibungen geprüft, fehlende CMS-Felder ergänzt, Markenliste aus „Kernmarken“ - Admin-Bildvorschauen repariert, verwendete Bilder in die Mediathek übernommen - Seeder für das Deployment siehe dev/2026-08-28/entwicklungsplan.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
77 lines
2.5 KiB
PHP
77 lines
2.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Livewire\Web\Components\Sections\DisplayFeed;
|
|
use App\Models\Setting;
|
|
use App\Models\User;
|
|
use Database\Seeders\ReferencesPageSwitchSeeder;
|
|
use Livewire\Livewire;
|
|
use Livewire\Volt\Volt;
|
|
|
|
/**
|
|
* Referenzen im CMS aus- und einblenden (06.10.2026).
|
|
*/
|
|
function referencesSwitch(bool $enabled): void
|
|
{
|
|
Setting::query()->updateOrCreate(
|
|
['group' => 'pages', 'key' => 'referenzen_enabled'],
|
|
['value' => $enabled ? '1' : '0', 'type' => 'boolean'],
|
|
);
|
|
}
|
|
|
|
it('shows the page and the menu item while the switch is on or unset', function () {
|
|
$this->get('/referenzen')->assertSuccessful();
|
|
$this->get('/')->assertSuccessful()->assertSee('href="/referenzen"', false);
|
|
|
|
referencesSwitch(true);
|
|
|
|
$this->get('/referenzen')->assertSuccessful();
|
|
});
|
|
|
|
it('hides the page, the menu item and the feed button while the switch is off', function () {
|
|
referencesSwitch(false);
|
|
|
|
$this->get('/referenzen')->assertNotFound();
|
|
$this->get('/')->assertSuccessful()->assertDontSee('href="/referenzen"', false);
|
|
$this->get('/marken')->assertSuccessful()->assertDontSee('href="/referenzen"', false);
|
|
|
|
Livewire::test(DisplayFeed::class)->assertSet('showLink', false);
|
|
});
|
|
|
|
it('keeps the feed button when it points somewhere else', function () {
|
|
referencesSwitch(false);
|
|
|
|
\FluxCms\Core\Models\CmsContent::create(['group' => 'referenzen', 'key' => 'display_feed', 'type' => 'json', 'order' => 0, 'value' => [
|
|
'de' => ['title' => 'Aus den Stores', 'link_text' => 'Zum Showroom', 'link_url' => '/contact'],
|
|
]]);
|
|
|
|
Livewire::test(DisplayFeed::class)->assertSet('showLink', true);
|
|
});
|
|
|
|
it('switches the page from the references module in the CMS', function () {
|
|
$this->actingAs(User::factory()->create());
|
|
|
|
Volt::test('admin.cms.references-index')
|
|
->assertSet('pageEnabled', true)
|
|
->set('pageEnabled', false);
|
|
|
|
expect(references_page_enabled())->toBeFalse();
|
|
$this->get('/referenzen')->assertNotFound();
|
|
|
|
Volt::test('admin.cms.references-index')
|
|
->assertSet('pageEnabled', false)
|
|
->set('pageEnabled', true);
|
|
|
|
expect(references_page_enabled())->toBeTrue();
|
|
});
|
|
|
|
it('switches the page off on deployment but respects a choice made in the CMS', function () {
|
|
$this->seed(ReferencesPageSwitchSeeder::class);
|
|
expect(references_page_enabled())->toBeFalse();
|
|
|
|
referencesSwitch(true);
|
|
$this->seed(ReferencesPageSwitchSeeder::class);
|
|
|
|
expect(references_page_enabled())->toBeTrue();
|
|
});
|