- CSS 71%
- PHP 29%
| assets | ||
| QUICKSTART.md | ||
| README.md | ||
Callbook Manager WordPress Plugin
Ein vollständiges WordPress-Plugin zur Verwaltung von Packet Radio Callbook-Einträgen mit Admin-Backend und öffentlicher Suchfunktion.
✨ Features
- 🔐 Admin-Backend: Vollständige CRUD-Verwaltung
- 🔍 Öffentliche Suche: Frontend-Suchformular via Shortcode
- 📊 Filterung: Nach Land und Bundesland
- 📱 Responsive Design: Funktioniert auf allen Geräten
- 💾 Import/Export: JSON-Datenimport/-export
- 🎨 WordPress-konform: Nutzt WordPress-Standards
- 🔒 Sicher: Nonce-Verifizierung, SQL-Injection-Schutz
📦 Installation
Dateistruktur
Erstellen Sie folgende Ordnerstruktur in Ihrem WordPress-Plugin-Verzeichnis (wp-content/plugins/callbook-manager/):
callbook-manager/
├── callbook-manager.php (Haupt-Plugin-Datei)
├── README.md
├── assets/
│ ├── css/
│ │ ├── admin.css
│ │ └── frontend.css
│ └── js/
│ ├── admin.js
│ └── frontend.js
└── templates/
├── admin-page.php
├── import-page.php
└── search-form.php
Schritt-für-Schritt Installation
-
Ordner erstellen:
- Erstellen Sie den Ordner
callbook-managerinwp-content/plugins/
- Erstellen Sie den Ordner
-
Dateien hochladen:
- Laden Sie alle bereitgestellten Dateien in die entsprechenden Ordner hoch
-
Plugin aktivieren:
- Gehen Sie zu WordPress Admin → Plugins
- Aktivieren Sie "Callbook Manager"
-
Datenbank wird automatisch erstellt:
- Bei Aktivierung wird die Tabelle
wp_callbookautomatisch angelegt
- Bei Aktivierung wird die Tabelle
🗄️ Daten importieren
Option 1: SQL-Import (Empfohlen für Initialdaten)
- Öffnen Sie phpMyAdmin
- Wählen Sie Ihre WordPress-Datenbank
- Klicken Sie auf "SQL"
- Kopieren Sie die INSERT-Statements aus Ihrer
callbook.sqlDatei - Führen Sie den SQL-Code aus
Option 2: JSON-Import
- Gehen Sie zu Callbook → Import/Export
- Bereiten Sie eine JSON-Datei vor:
[
{
"prcall": "DHE100",
"name": "Julian",
"qth": "Herxheim",
"locator": "JN49CD",
"land": "Deutschland",
"email": "example@example.com"
}
]
- Laden Sie die Datei hoch und klicken Sie auf "Importieren"
🎯 Verwendung
Admin-Bereich
Callbook-Verwaltung:
- Gehen Sie zu Callbook → Alle Einträge
- Hier können Sie:
- 🔍 Einträge durchsuchen
- ➕ Neue Einträge hinzufügen
- ✏️ Einträge bearbeiten
- 🗑️ Einträge löschen
- 📊 Nach Spalten sortieren
- 📄 Durch Seiten navigieren
Funktionen:
- Suche: Durchsucht alle Felder (Rufzeichen, Name, QTH, etc.)
- Sortierung: Klicken Sie auf Spaltenüberschriften
- Pagination: 20 Einträge pro Seite
- Modal-Editor: Komfortables Bearbeiten aller Felder
Frontend-Integration
Fügen Sie das Suchformular auf jeder Seite/Beitrag ein mit dem Shortcode:
[callbook_search]
Beispiel:
- Erstellen Sie eine neue Seite "Callbook Suche"
- Fügen Sie den Shortcode
[callbook_search]in den Inhalt ein - Veröffentlichen Sie die Seite
Frontend-Funktionen:
- ⚡ Echtzeit-Suche: Suche während der Eingabe
- 🎯 Filter: Nach Land und Bundesland filtern
- 📄 Pagination: Navigation durch Ergebnisse
- 🔍 Detail-Ansicht: Modal mit vollständigen Informationen
- 📱 Mobilfreundlich: Optimiert für Smartphones
Suchfunktionen:
- Suche nach Rufzeichen, Name, QTH, Locator, Email
- Mindestens 2 Zeichen für Suche erforderlich
- Automatische Vorschläge bei der Eingabe
- Klick auf "Details anzeigen" für vollständige Informationen
🛠️ Technische Details
Datenbank-Tabelle
Tabellenname: wp_callbook
Felder:
id- Auto-Increment IDprcall- Rufzeichen (Pflichtfeld)name- Nameqth- QTH (Standort)locator- Locatormybbs- BBSroute- Routeemail- Emailwebsite- Websiteprmail- PR-Mailbundesland- Bundeslandland- Landbemerkung- Bemerkungregdatum- Registrierungsdatumlastupdate- Automatischer Timestamp
AJAX-Endpunkte
Das Plugin verwendet folgende AJAX-Actions:
callbook_get_entries- Einträge abrufencallbook_save_entry- Eintrag speichern/aktualisierencallbook_delete_entry- Eintrag löschen
Sicherheit
- ✅ Nonce-Verifizierung bei allen AJAX-Requests
- ✅ Capability-Checks (nur Administratoren)
- ✅ Daten-Sanitization
- ✅ SQL-Injection-Schutz durch wpdb prepare()
- ✅ XSS-Schutz durch esc_* Funktionen
📝 Anpassungen
Einträge pro Seite ändern
In callbook-manager.php, Zeile ~90:
$per_page = 20; // Auf gewünschte Zahl ändern
Zusätzliche Felder hinzufügen
- Tabelle erweitern in
activate()Funktion - Feld in
admin-page.phpTemplate hinzufügen - Sanitization in
ajax_save_entry()ergänzen
Styling anpassen
Bearbeiten Sie assets/css/admin.css für Admin-Bereich
Bearbeiten Sie assets/css/frontend.css für Frontend
🔧 Troubleshooting
Problem: Tabelle wird nicht erstellt
- Lösung: Deaktivieren und reaktivieren Sie das Plugin
Problem: AJAX funktioniert nicht
- Lösung: Prüfen Sie Browser-Konsole auf JavaScript-Fehler
- Stellen Sie sicher, dass jQuery geladen wird
Problem: Import schlägt fehl
- Lösung: Prüfen Sie JSON-Format
- Stellen Sie sicher, dass Datei UTF-8 kodiert ist
📄 Lizenz
GPL v2 or later
👨💻 Support
Bei Fragen oder Problemen:
- Prüfen Sie die Browser-Konsole auf Fehler
- Aktivieren Sie WordPress Debug-Modus
- Prüfen Sie PHP-Error-Logs
🔄 Updates
Version 1.0.0
- Initiale Version
- CRUD-Funktionalität
- Import/Export
- Frontend-Suche (Shortcode)
- Responsive Design
📋 TODO / Zukünftige Features
- CSV-Import
- Erweiterte Suchfilter
- Karten-Integration (Locator auf Karte anzeigen)
- QSL-Karten-Verwaltung
- Statistiken Dashboard
- REST API Endpunkte