Widoki i wygląd
Widoki z widoki/ wołacie jako view('<klucz>::nazwa'). Moduł ma wyglądać jak reszta portalu, więc używacie wspólnych elementów, a nie własnego CSS.
Zasady obowiązkowe:
- Każdy ekran modułu dziedziczy
layouts.app, ustawia@section('header', 'Narzędzia')i zaczyna się od@include('tools._naglowek', [...]). Nagłówek daje pasek „Narzędzia › Nazwa”, powrót, zakładki i okno ustawień modułu z sekcją Widoczność i Pomocą. - Tylko klasy
ui-*:ui-page,ui-stack,ui-card,ui-card--flat,ui-field,ui-label,ui-input,ui-textarea,ui-btn,ui-btn--primary,ui-rows,ui-row,ui-empty,ui-badgei inne. Pełny wzornik z przykładami jest na każdej instancji pod/administracja/dev. - Bez własnych hero, wielkich banerów i kolorowych teł. Ekran modułu to narzędzie pracy, nie strona reklamowa.
- Tryb ciemny działa sam, jeśli kolory bierzecie z tokenów
--ui-*(np.var(--ui-ink),var(--ui-line),var(--ui-card)). Nie wpisujcie kolorów na sztywno (#fff,black). Portal przełącza motyw atrybutemdata-themena<html>i podmienia tokeny. - Przycisk „+ Nowy X” idzie do sekcji
narz-akcjejakoui-btn--primary, nigdy jako zakładka. Ustawienia rekordu otwieracie w oknie z auto-zapisem, bez przycisków Zapisz i Anuluj. - Szukajka listy:
ui-search narz-szukaj, stronicowanie:narz-strony. - Alpine.js jest w portalu, możecie używać
x-databez dokładania bibliotek.
Blade
@extends('layouts.app', ['title' => 'Faktury kosztowe'])
@section('header', 'Narzędzia')
@section('narz-akcje') {{-- przyciski po prawej w wierszu linków --}}
<a href="{{ route('faktury_kosztowe.create') }}" class="ui-btn ui-btn--primary ui-btn--sm">Nowa faktura</a>
@endsection
@section('content')
<div class="ui-page ui-page--szeroka ui-stack">
@include('tools._naglowek', ['nazwa' => 'Faktury kosztowe', 'klucz' => 'faktury_kosztowe'])
<div class="ui-card ui-card--flat">...</div>
</div>
@endsectionParametry tools._naglowek:
| Parametr | Co robi |
|---|---|
nazwa | Nazwa modułu w pasku. |
klucz | Klucz modułu (włącza okno ustawień, Widoczność i przypięcie do menu). |
pod | Podtytuł pod nazwą. |
badge | Odznaka obok nazwy. |
pigulki | Zakładki ekranu: lista linków. |
wroc, wrocLabel | Adres i napis linku powrotu. |
rekord | Nazwa otwartego rekordu (np. tytuł faktury) w pasku. |
ustawieniaStart, ustawieniaOtworz | Która sekcja okna ustawień otwiera się pierwsza i czy okno ma się otworzyć od razu. |
Sekcje, które możecie wypełnić w widoku: narz-akcje (przyciski po prawej), narz-ust-nav i narz-ust-sekcje (własne sekcje okna ustawień modułu), narz-pomoc (treść Pomocy w oknie).
Wspólne elementy portalu (opis parametrów jest w komentarzu na górze każdego pliku):
| Element | Do czego |
|---|---|
tools._naglowek | Pasek modułu, zakładki, okno ustawień z Widocznością i Pomocą. |
klasy ui-* | Karty, przyciski, pola, tabele, zakładki, okna. Wzornik: /administracja/dev. |
partials._edytor-tresci | Edytor WYSIWYG. Obrazy idą na route('narzedzia.obraz') i wracają jako /strony-pliki/<losowa nazwa>. |
App\Support\CzystyHtml | Czyszczenie HTML z edytora białą listą, zanim trafi do bazy. |
partials._tresc-style | Style treści z edytora przy wyświetlaniu. |
partials._adres-publiczny | Wiersz „Adres” z krótkim adresem /<adres> i kopiowaniem linku. |
App\Support\AdresyPubliczne | losowy(), zajety($adres, $rekord) dla krótkich adresów (razem z hakiem modeleAdresow). |
partials._widocznosc + trait App\Models\Concerns\WidocznoscJakCzat | Kto widzi rekord: wszyscy, zalogowani albo wybrane osoby i grupy. |
partials._wyglad-i-menu | Wygląd rekordu (cały ekran albo w portalu) i przypięcie do menu. |
partials._pliki | Panel plików jak w czacie i projekcie. |
partials._ikona-ust | Ikona zębatki ustawień. |
trait Spatie\Activitylog\Traits\LogsActivity | Dziennik zmian rekordu. |
Nie kopiujcie tych plików do modułu. Gdy portal je poprawi, moduł dostanie poprawkę sam.
Ostatnia zmiana dokumentacji: 29.09.2026. Pytania: m@redai.pl.