# CodePress CMS Handleiding
## Overzicht
CodePress CMS is een lichtgewicht, file-based content management systeem gebouwd met PHP. Werkt zonder database.
## Functies
### 🏠 Navigatie
- Tab-style navigatie met Bootstrap styling
- Dropdown menus voor mappen en sub-mappen
- Home knop met icoon
- Automatische menu generatie
- Responsive design
- Breadcrumb navigatie
- Active state marking
### 📄 Content Types
- **Markdown (.md)** - CommonMark ondersteuning
- **PHP (.php)** - Dynamische content
- **HTML (.html)** - Statische HTML pagina's
- **Directory listings** - Automatische directory overzichten
- **Language-specific content** - `nl.` en `en.` prefix
### 🔍 Zoekfunctionaliteit
- Volledige tekst zoek door alle content
- Resultaten met snippets en highlighting
- Directe navigatie naar gevonden pagina's
- SEO-vriendelijke zoekresultaten
- Search URL: `?search=zoekterm`
### 🧭 Configuratie
- **JSON configuratie** in `config.json`
- Dynamische homepage instelling
- SEO instellingen (description, keywords)
- Author informatie met links
- Thema configuratie met kleuren
- Language settings
- Feature toggles
### 🎨 Layout & Design
- Flexbox layout voor responsive structuur
- Fixed header met logo en zoekfunctie
- Breadcrumb navigatie
- Fixed footer met file info en links
- Bootstrap 5 styling
- Mustache templates
- Semantic HTML5 structuur
- **Dynamic layouts** met YAML frontmatter
- **Sidebar support** met plugin integratie
## Installatie
1. Upload bestanden naar webserver
2. Stel permissies in voor webserver
3. Configureer `config.json` indien nodig
4. Toegang tot website via browser
## Configuratie
### Basis Configuratie (`config.json`)
\`\`\`json
{
"site_title": "CodePress",
"content_dir": "content",
"templates_dir": "engine/templates",
"default_page": "auto",
"language": {
"default": "nl",
"available": ["nl", "en"]
},
"theme": {
"header_color": "#0a369d",
"header_font_color": "#ffffff",
"navigation_color": "#2754b4",
"navigation_font_color": "#ffffff",
"sidebar_background": "#f8f9fa",
"sidebar_border": "#dee2e6"
},
"author": {
"name": "E. Noorlander",
"website": "https://noorlander.info"
},
"seo": {
"description": "CodePress CMS - Lightweight file-based content management system",
"keywords": "cms, php, content management, file-based"
},
"features": {
"auto_link_pages": true,
"search_enabled": true,
"breadcrumbs_enabled": true
}
}
\`\`\`
## Content Structuur
### Bestandsstructuur
\`\`\`
content/
├── map1/
│ ├── submap1/
│ │ ├── pagina1.md
│ │ └── pagina2.php
│ └── pagina3.html
├── map2/
│ └── pagina4.md
├── homepage.md
└── index.html
\`\`\`
### Bestandsnamen
- Gebruik lowercase bestandsnamen
- Geen spaties - gebruik `-` of `_`
- Logische extensies - `.md`, `.php`, `.html`
- Unieke namen - geen duplicaten
- Language prefixes - `nl.bestand.md` en `en.bestand.md`
## Templates
### Template Variabelen
#### Site Info
- `site_title` - Website titel
- `author_name` - Auteur naam
- `author_website` - Auteur website
- `author_git` - Git repository link
#### Page Info
- `page_title` - Pagina titel
- `content` - Content (HTML)
- `file_info` - Bestandsinformatie
- `is_homepage` - Boolean: is dit de homepage?
#### Navigation
- `menu` - Navigatie menu
- `breadcrumb` - Breadcrumb navigatie
- `homepage` - Homepage link
#### Theme
- `header_color` - Header achtergrondkleur
- `header_font_color` - Header tekstkleur
- `navigation_color` - Navigatie achtergrondkleur
- `navigation_font_color` - Navigatie tekstkleur
#### Language
- `current_lang` - Huidige taal (nl/en)
- `current_lang_upper` - Huidige taal (NL/EN)
- `t_*` - Vertaalde strings
## URL Structuur
### Basis URLs
- **Home**: `/` of `?page=home`
- **Pagina**: `?page=map/pagina`
- **Zoeken**: `?search=zoekterm`
- **Handleiding**: `?guide`
- **Language**: `?lang=nl` of `?lang=en`
## SEO Optimalisatie
### Meta Tags
De CMS voegt automatisch meta tags toe:
\`\`\`html
\`\`\`
## 🔌 Plugin Systeem
### Plugin Structuur
\`\`\`
plugins/
├── README.md
├── HTMLBlock/
│ ├── HTMLBlock.php
│ └── README.md
└── MQTTTracker/
├── MQTTTracker.php
├── config.json
└── README.md
\`\`\`
### Plugin Development
- **API toegang** via `CMSAPI` class
- **Sidebar content** met `getSidebarContent()`
- **Metadata toegang** uit YAML frontmatter
- **Configuratie** via JSON bestanden
### Beschikbare Plugins
- **HTMLBlock** - Custom HTML blokken in sidebar
- **MQTTTracker** - Real-time analytics en tracking
## 🎯 Template Systeem
### Layout Opties
Gebruik YAML frontmatter om layout te selecteren:
\`\`\`yaml
---
title: Mijn Pagina
layout: sidebar-content
---
\`\`\`
### Beschikbare Layouts
- `sidebar-content` - Sidebar links, content rechts (standaard)
- `content` - Alleen content (volle breedte)
- `sidebar` - Alleen sidebar
- `content-sidebar` - Content links, sidebar rechts
- `content-sidebar-reverse` - Content rechts, sidebar links
### Meta Data
\`\`\`yaml
---
title: Pagina Titel
layout: content-sidebar
description: Pagina beschrijving
author: Auteur Naam
date: 2025-11-26
---
\`\`\`
## 📊 Analytics & Tracking
### MQTT Tracker
- Real-time page tracking
- Session management
- Business Intelligence data
- Privacy aware (GDPR compliant)
- MQTT integration voor dashboards
## Veelgestelde Vragen
### Hoe stel ik de homepage in?
1. **Automatisch**: Laat de CMS het eerste bestand kiezen
2. **Handmatig**: Stel `"default_page": "pagina-naam"` in `config.json`
### Hoe werkt de navigatie?
- **Mappen** worden dropdown menus
- **Bestanden** worden directe links
- **Sub-mappen** worden geneste dropdowns
### Hoe voeg ik nieuwe content toe?
1. Upload bestanden naar de `content/` map
2. Organiseer in logische mappen
3. Gebruik juiste bestandsnamen en extensies
## Troubleshooting
### Pagina niet gevonden (404)
1. Controleer bestandsnaam en pad
2. Controleer bestandsextensie (.md, .php, .html)
3. Controleer permissies van bestanden
### Navigatie niet bijgewerkt
1. Herlaad de pagina
2. Controleer content map structuur
3. Controleer bestandsnamen (geen spaties)
## Ondersteuning
Voor technische ondersteuning:
- **GitHub**: https://git.noorlander.info/E.Noorlander/CodePress.git
- **Website**: https://noorlander.info
- **Issues**: Rapporteer problemen via GitHub issues
## Licentie
CodePress CMS is open-source software.