Kirby CMS

Aufbau von src/

Root-Dateien

  • index.php — Einstiegspunkt; bootet Kirby. Alle Requests werden via .htaccess hierher gerouted.
  • .htaccess — Apache Rewrite-Regeln (Pretty URLs).
  • composer.json — definiert Kirby als Dependency.
  • kirby/ — der Kirby-Core (NICHT anfassen, wird via Composer aktualisiert).
  • media/ — automatisch generierte Thumbnails & Asset-URLs (cache, kann gelöscht werden).

content/ — die Inhalte (Dateibasiert, keine DB)
Jeder Ordner = eine Seite, jede .txt = deren Felder. URL-Struktur entspricht Ordnerstruktur.

  • home/ — Startseite (home.txt enthält die Felder)
  • error/ — 404-Seite
  • site.txt — globale Site-Felder (Titel etc.)
  • Bilder/PDFs einfach in den Ordner legen → werden zu Page-Files.

site/ — Logik & Darstellung (dein Code lebt hier)

  • blueprints/ — YAML-Definitionen: was im Panel angezeigt wird (Felder, Sections, Layout). pages/article.yml definiert z.B. den Seitentyp article.
  • templates/ — PHP-Files, gerendert pro Seitentyp. article.php rendert Seiten mit Template article. Ohne Template → default.php.
  • snippets/ — Wiederverwendbare PHP-Fragmente (Header, Footer, Komponenten), via <?= snippet('header') ?>.
  • controllers/ (anlegbar) — Logik vor dem Template; gibt Variablen ans Template.
  • models/ (anlegbar) — Page-Klassen mit Custom-Methoden.
  • config/ (anlegbar) — config.php für Routing, Plugins, Optionen.
  • plugins/ (anlegbar) — eigene/3rd-party Plugins.
  • accounts/ — Panel-User (Login-Daten, generiert).
  • sessions/ + cache/ — Runtime, ignorierbar.

Verknüpfung Blueprint ↔ Template ↔ Content
Eine Page hat ein Feld template: article in der .txt → Kirby sucht site/blueprints/pages/article.yml fürs Panel und site/templates/article.php zum Rendern.

Typischer Workflow für eine neue Seite „About“

  1. site/blueprints/pages/about.yml — Felder definieren
  2. site/templates/about.php — HTML-Output
  3. Im Panel die Seite „about“ anlegen → erzeugt content/about/about.txt