Skip to content

foerbsnavi/CMF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Content Management Frame

Minimalistisches, dateibasiertes CMS fuer schnelle, saubere HTML-Webseiten.

Kein Framework. Keine Datenbank. Keine Build-Tools.

Nur: PHP, JSON, HTML5, wenig CSS, optional JavaScript.


Eigenschaften

  • Dateibasiert – Inhalte als JSON, keine Datenbank
  • Sauberes HTML5 Rendering
  • Blockbasiertes Content-System (heading, text, image, list, buttons, columns, html, blog_overview)
  • Automatische Navigation aus veroeffentlichten Seiten
  • REST-API fuer externe Tools und KI
  • Media-Upload mit automatischer Pfadvergabe
  • Theme-Konfiguration ueber JSON (Farben, Schriften, Abstaende)
  • Custom CSS fuer wiederverwendbare Klassen
  • Header/Footer als globale Inhalte
  • Blog mit eigenem Admin-Bereich und API
  • Export/Import (einzelne Seiten oder komplette Webseite)

Architektur

project/
  app/
    core/       Bootstrap, Router, Renderer, Auth, ApiAuth, PageSchema, Theme, Storage, Sanitizer, Sitemap, Slug, Csrf
    admin/      PagesController, BlogController, MediaController, SettingsController, ThemeController, UsersController, PartialsController, UpdateController
    api/        PagesController, BlogController, MediaController, GlobalsController
    views/      admin/layout.php
  config/
    site.json, styles.json, users.json, login_attempts.json
  content/
    pages.json          Seitenindex
    pages/<id>.json     Seiteninhalt (meta + content.blocks)
    blog.json           Blogindex
    blog/<id>.json      Bloginhalt
    globals/            header.json, footer.json
  public/
    index.php, admin.php, api.php, .htaccess
    assets/css/         base.css, theme.css (auto-generiert), custom.css, admin.css
    assets/fonts/       FontName-Schnitt.ttf (10 Familien, je 3 Schnitte)
    assets/js/          site.js
    media/YYYY/MM/      Uploads
    files/              Downloads (cmf_latest.zip, README_KI.md)
  version.json

Datenstruktur

Seitenindex (content/pages.json): Array mit id, slug, title, status, nav-Objekt, Zeitstempel.

Seiteninhalt (content/pages/<id>.json):

{
  "meta": { "title": "Seitentitel", "description": "Kurzbeschreibung" },
  "content": { "blocks": [{ "id": "h1_start", "type": "heading", "data": { "level": 1, "text": "Titel" } }] }
}

Blog: Gleiche Struktur. Index in content/blog.json mit slug, categories, posts-Array.


Navigation

Automatisch aus veroeffentlichten Seiten erzeugt. Sortiert nach nav.order. Untermenues ueber nav.parent (Seiten-ID). nav.show steuert Sichtbarkeit.


Theme

Design ueber config/styles.json: Container, Abstaende, Radien, Farben, Schriftgroessen, Fonts. Beim Speichern wird theme.css automatisch generiert. Eigene Klassen in custom.css.


Admin Backend

Login: /admin.php. Bereiche: Seiten, Blog, Header/Footer, Theme, Media, Benutzer, Einstellungen.


Sicherheit

CSRF-Schutz, Passwort-Hashes, API-Token-Hash, HTML-Sanitizing fuer Textbloecke.


API

Einstiegspunkt: /api.php mit Bearer-Token-Authentifizierung.

Vollstaendige API-Referenz: README_KI.md


Philosophie

Inhalte zuerst. Struktur vor Design. Technik statt CMS-Overhead.