No description
  • CSS 71%
  • PHP 29%
Find a file
2026-01-11 17:04:21 +01:00
assets assets/css/frontend.css hinzugefügt 2026-01-11 17:04:21 +01:00
QUICKSTART.md QUICKSTART.md hinzugefügt 2026-01-11 16:44:33 +01:00
README.md README.md aktualisiert 2026-01-11 16:43:40 +01:00

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

  1. Ordner erstellen:

    • Erstellen Sie den Ordner callbook-manager in wp-content/plugins/
  2. Dateien hochladen:

    • Laden Sie alle bereitgestellten Dateien in die entsprechenden Ordner hoch
  3. Plugin aktivieren:

    • Gehen Sie zu WordPress Admin → Plugins
    • Aktivieren Sie "Callbook Manager"
  4. Datenbank wird automatisch erstellt:

    • Bei Aktivierung wird die Tabelle wp_callbook automatisch angelegt

🗄️ Daten importieren

Option 1: SQL-Import (Empfohlen für Initialdaten)

  1. Öffnen Sie phpMyAdmin
  2. Wählen Sie Ihre WordPress-Datenbank
  3. Klicken Sie auf "SQL"
  4. Kopieren Sie die INSERT-Statements aus Ihrer callbook.sql Datei
  5. Führen Sie den SQL-Code aus

Option 2: JSON-Import

  1. Gehen Sie zu Callbook → Import/Export
  2. Bereiten Sie eine JSON-Datei vor:
[
  {
    "prcall": "DHE100",
    "name": "Julian",
    "qth": "Herxheim",
    "locator": "JN49CD",
    "land": "Deutschland",
    "email": "example@example.com"
  }
]
  1. 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:

  1. Erstellen Sie eine neue Seite "Callbook Suche"
  2. Fügen Sie den Shortcode [callbook_search] in den Inhalt ein
  3. 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 ID
  • prcall - Rufzeichen (Pflichtfeld)
  • name - Name
  • qth - QTH (Standort)
  • locator - Locator
  • mybbs - BBS
  • route - Route
  • email - Email
  • website - Website
  • prmail - PR-Mail
  • bundesland - Bundesland
  • land - Land
  • bemerkung - Bemerkung
  • regdatum - Registrierungsdatum
  • lastupdate - Automatischer Timestamp

AJAX-Endpunkte

Das Plugin verwendet folgende AJAX-Actions:

  • callbook_get_entries - Einträge abrufen
  • callbook_save_entry - Eintrag speichern/aktualisieren
  • callbook_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

  1. Tabelle erweitern in activate() Funktion
  2. Feld in admin-page.php Template hinzufügen
  3. 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:

  1. Prüfen Sie die Browser-Konsole auf Fehler
  2. Aktivieren Sie WordPress Debug-Modus
  3. 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