Files
CodePress/guide/nl/admin-beheerder/content-beheer.md
T
E.Noorlander 06beef43d7 v2.6.3 (Lyra): Content multi-type handling, getAllPages() structuur, . verberg-prefix
- Content bestanden met dezelfde naam maar ander type (md/php/html) worden
  correct geserveerd: URL met extensie opent dat bestand, URL zonder extensie
  valt terug op md > php > html (resolveContentByType helper)
- Admin content editor accepteert bestanden met dezelfde naam (ander type);
  preview-knop linkt per extensie
- Frontend navigatie/directory listing/search tonen elk bestandstype apart
- getAllPages() array structuur gewijzigd naar list van
  ['path','title','type'] met type 'md'/'php'/'html'/'folder'
- Verberg-prefix logica: _ is geen verberg-prefix meer, alleen . (en -);
  admin toont wél alle . bestanden/mappen
- ContentAPI getPage()/pageExists() respecteren expliciete extensie
- Handleiding content-api.md (NL+EN) herschreven
- File-tree unificatie: _file-tree.twig + _editor-styles.twig includes
- Versie verhoogd naar 2.6.3
2026-08-20 16:45:53 +00:00

5.4 KiB

Content beheer

CodePress gebruikt een boom weergave (/admin/content) voor content-beheer: een bestandsbrowser zijbalk + CodeMirror editor, uniform met de plugin- en thema-editors. De oude lijst/tabel weergave is verwijderd.

Content editor

Bestandsbrowser zijbalk

  • Toont de geneste bestandsboom van content/
  • Verborgen mappen (.bak, .git) en dotfiles worden overgeslagen
  • Klik op een bestand om het te openen in de CodeMirror editor
  • Mappen die het actieve bestand bevatten zijn automatisch uitgeklapt
  • Per map staan actie-knoppen: nieuw bestand, nieuwe map, hernoemen, verwijderen

Bewerkbare bestandstypen

.md (Markdown), .php (PHP), .html (HTML) — consistent met de bestaande content-edit pagina.

Alle types ondersteunen --- frontmatter (layout, created, edited, plugins). De CMS parseMetadata() haalt de frontmatter eruit vóór verwerking. Bij PHP bestanden wordt de frontmatter uit de output verwijderd.

PHP content bestanden

PHP bestanden kunnen op twee manieren content leveren:

  1. Echo (output buffering): alles wat echod of outside <?php staat wordt als content gebruikt
  2. Return (callback stijl): return '<h1>Hallo</h1>'; — de geretourneerde string wordt als content gebruikt

In PHP bestanden is de ContentAPI beschikbaar via $api:

<?php
$menu = $api->getMenu();
$pages = $api->getAllPages();
$config = $api->getConfig('site_title');
return '<h1>' . htmlspecialchars($config) . '</h1>';

Frontend URL's en bestandsnamen

De CMS zoekt bestanden in volgorde: .md.php.html. Als bestanden dezelfde naam hebben (bijv. test.md en test.php), opent /nl/test altijd test.md. Om een specifiek bestandstype te openen, voeg de extensie toe aan de URL:

  • /nl/test → opent test.md (of .php / .html als .md niet bestaat)
  • /nl/test.php → opent test.php (expliciete extensie)
  • /nl/test.html → opent test.html (expliciete extensie)

De preview link in de editor gebruikt automatisch de extensie voor niet-.md bestanden.

Image-grootte instellen (Markdown)

In de markdown editor-toolbar staat een "Afbeelding grootte" knop (expand-icoon):

  1. Selecteer een afbeelding in de editor in markdown formaat ![alt](url)
  2. Klik op de "Afbeelding grootte" knop
  3. Vul breedte en/of hoogte in (px of %, leeg = niet instellen)
  4. De {:width=... height=...} syntax wordt aan de afbeelding toegevoegd of vervangen

Voorbeeld:

![logo](/content/_images/logo.png){:width="200" height="100"}

Bestaande {:width=...} waarden worden in de prompts getoond. De grootte-attributen worden in de frontend als width/height HTML-attributen op de <img> tag gezet.

Images in content

Images in content/ worden via de /-media/ endpoint geserveerd (content/ staat buiten de webroot). De markdown syntax ![alt](url) met lokale URLs (relatief zoals image.jpg, of absoluut zoals /content/_images/image.jpg) wordt automatisch herschreven naar /-media/.... Externe URLs (https://...) worden ongewijzigd gelaten.

Nieuw bestand aanmaken

  • Klik op Nieuw bestand (bovenaan of per map in de zijbalk)
  • Geef een pad op binnen content (bijv. nl.pagina of blog/nl.post)
  • Kies het bestandstype (Markdown/PHP/HTML)
  • Submappen worden automatisch aangemaakt
  • Frontmatter met layout, created, edited wordt automatisch gegenereerd

Bestand uploaden

  • Klik op Upload om bestanden naar content/ te uploaden
  • Toegestaan: afbeeldingen, video, audio, PDF, ZIP, office docs, CSS, SCSS, JS, JSON, HTML, MD
  • Path-traversal bescherming: doelmap moet binnen content/ blijven

Bestand verplaatsen / verwijderen

  • In de bestandsboom heeft elk bestand een verplaats-knop (pijlen-icoon) en een verwijder-knop (prullenbak)
  • Verplaatsen: kies een doelmap uit de dropdown met alle mappen in content
  • Verwijderen: met bevestiging

Mappen beheer

  • Nieuwe map: per map in de zijbalk of bovenaan
  • Map hernoemen: potlood-icoon per map
  • Map verwijderen: prullenbak-icoon per map (alleen lege mappen)

Layout selectie

Op de editor-pagina kun je de layout kiezen uit de layouts gedefinieerd in theme.json (template mapping). De geselecteerde layout wordt opgeslagen in de frontmatter layout: key.

Plugins op pagina's

  • Alleen actieve content plugins (uit plugin.json met type: "content") verschijnen in de plugin multiselect; system plugins (zoals Statistics/Logs/Dashboard) zijn uitgesloten
  • Kies via de multiselect welke plugins op de pagina draaien (gebruik Ctrl/Cmd+klik voor meerdere)
  • De plugin selectie wordt opgeslagen in de frontmatter plugins: key

Backup integratie

Bovenaan de content-editor staat een Backup knop die naar de backup-pagina (/admin/content-backup) leidt voor ZIP backup/restore en (indien beschikbaar) git versiebeheer. Git integratie in de editor-zijbalk is verwijderd; git wordt later een systeem plugin.

Frontmatter

De editor toont de Aangemaakt en Bewerkt timestamps (read-only, automatisch bijgewerkt bij elke opslag). De edited: waarde wordt bij elke save vernieuwd.

---
layout: left_sidebar
created: 2026-08-19 10:30:25
edited: 2026-08-20 14:22:01
plugins: HTMLBlock, Navigation
---

# Pagina titel

Content...

Frontmatter

De editor werkt de frontmatter live bij bij wijzigingen van layout of plugin selectie:

---
layout: left_sidebar
created: 2026-08-19 10:30:25
edited: 2026-08-20 14:22:01
plugins: HTMLBlock, Navigation
---

# Pagina titel

Content...