No description
  • PHP 56.7%
  • JavaScript 25.5%
  • CSS 14.6%
  • Shell 3.2%
Find a file
2026-01-12 13:36:29 +01:00
assets import Projekt 2026-01-11 22:06:41 +01:00
data import Projekt 2026-01-11 22:06:41 +01:00
includes import Projekt 2026-01-11 22:06:41 +01:00
templates import Projekt 2026-01-11 22:06:41 +01:00
build.sh import Projekt 2026-01-11 22:06:41 +01:00
CHANGELOG.md import Projekt 2026-01-11 22:06:41 +01:00
INSTALLATION.md neuer Versuch 2026-01-11 22:22:36 +01:00
pr-callbook.php import Projekt 2026-01-11 22:06:41 +01:00
PROJEKT-ÜBERSICHT.md neuer Versuch 2026-01-11 22:22:36 +01:00
QUICKSTART.md import Projekt 2026-01-11 22:06:41 +01:00
README.md neuer Versuch 2026-01-11 22:22:36 +01:00
readme.txt import Projekt 2026-01-11 22:06:41 +01:00
TOKEN-SETUP.md Erweiterung für den ersten Versuch 2026-01-11 22:31:58 +01:00
WORKFLOW-ANLEITUNG.md neuer Versuch 2026-01-11 22:22:36 +01:00
WORKFLOW-KURZANLEITUNG.md neuer Versuch 2026-01-11 22:22:36 +01:00
WORKFLOW-VARIANTEN.md Erweiterung für den ersten Versuch 2026-01-11 22:31:58 +01:00

PR-Callbook WordPress Plugin

Ein WordPress-Plugin zur Verwaltung eines Packet Radio Callbooks mit automatischen Updates von Forgejo.

Features

Für Administratoren

  • Modal-basierte Bearbeitung: Komfortable Verwaltung aller Einträge über ein modernes Modal-Interface
  • Suchfunktion: Schnelle Suche nach PR-Call, Name, QTH oder Locator
  • Pagination: Übersichtliche Darstellung großer Datenmengen
  • CRUD-Operationen: Erstellen, Lesen, Aktualisieren und Löschen von Einträgen

Für Besucher

  • Responsive Tabelle: Übersichtliche Darstellung aller Callbook-Einträge
  • Detail-Modal: Klick auf eine Zeile öffnet mehrspaltige Detail-Ansicht
  • Suchfunktion: Filtern der Einträge in Echtzeit
  • Mobile-optimiert: Vollständig responsive für alle Bildschirmgrößen

Automatische Updates

  • Forgejo-Integration: Automatische Update-Erkennung von Ihrem Forgejo-Server
  • Versionsverwaltung: Automatische Versionierung über Labels in Pull Requests
  • Changelog: Automatisch generierter Changelog aus PR-Beschreibungen
  • Ein-Klick-Updates: Updates direkt aus dem WordPress-Admin-Bereich

Installation

Voraussetzungen

  • WordPress 5.8 oder höher
  • PHP 7.4 oder höher
  • MySQL/MariaDB Datenbank

Manuelle Installation

  1. Plugin-ZIP herunterladen
  2. In WordPress: Plugins → Installieren → Plugin hochladen
  3. ZIP-Datei auswählen und installieren
  4. Plugin aktivieren

Installation via WP-CLI

wp plugin install pr-callbook-1.0.0.zip --activate

Konfiguration

Forgejo-Repository einrichten

  1. Im WordPress-Admin: PR-Callbook → Updates
  2. Repository-URL eingeben:
    https://your-forgejo-server.com/username/pr-callbook
    
  3. API-URL eingeben:
    https://your-forgejo-server.com/api/v1/repos/username/pr-callbook
    
  4. Speichern

Frontend einbinden

Fügen Sie den Shortcode in eine Seite oder einen Beitrag ein:

[pr_callbook]

Optional mit Parameter für Einträge pro Seite:

[pr_callbook per_page="30"]

Entwicklung

Projektstruktur

pr-callbook/
├── .forgejo/
│   └── workflows/
│       └── version-and-release.yml    # Automatisierungs-Workflow
├── assets/
│   ├── css/
│   │   ├── admin.css                  # Admin-Styles
│   │   └── frontend.css               # Frontend-Styles
│   └── js/
│       ├── admin.js                   # Admin-JavaScript
│       └── frontend.js                # Frontend-JavaScript
├── data/
│   └── callbook.sql                   # Initiale Daten
├── includes/
│   └── class-updater.php              # Update-Checker
├── templates/
│   ├── admin-page.php                 # Admin-Template
│   └── frontend.php                   # Frontend-Template
├── pr-callbook.php                    # Haupt-Plugin-Datei
├── README.md                          # Diese Datei
└── CHANGELOG.md                       # Versionshistorie

Automatische Versionierung

Das Plugin verwendet einen manuellen Workflow für Releases:

Release erstellen:

  1. Änderungen committen und pushen

    git add .
    git commit -m "fix: Bug behoben"
    git push
    
  2. In Forgejo: Actions → Build and Release → Run workflow

  3. Workflow macht automatisch:

    • Patch-Version erhöhen (+0.0.1)
    • Dateien aktualisieren (pr-callbook.php, readme.txt, CHANGELOG.md)
    • Git-Tag erstellen
    • Release mit ZIP-Datei erstellen
    • WordPress erkennt Update

Beispiel-Ablauf:

# 1. Änderungen machen
vim assets/js/frontend.js
git add .
git commit -m "fix: Suchfunktion verbessert"
git push

# 2. In Forgejo Web-UI:
#    Actions → Workflows → "Build and Release" → Run workflow

# 3. Nach ~2 Minuten:
#    ✅ Release v1.0.1 erstellt
#    ✅ WordPress zeigt Update an

Siehe WORKFLOW-ANLEITUNG.md für Details.

Changelog-Format

Das Plugin generiert automatisch einen Changelog aus:

  • PR-Titel
  • PR-Beschreibung
  • Commit-Messages seit dem letzten Release

Beispiel CHANGELOG.md:

# Changelog

## Version 1.1.0

### Add advanced search functionality

Implementiert erweiterte Suchfunktion mit Filtern für:
- Bundesland
- Land
- Locator-Bereich

### Commits
- Add search filters to admin interface
- Implement backend search logic
- Update frontend search UI
- Add tests for search functionality

---

## Version 1.0.0

Initial release

Datenbankstruktur

CREATE TABLE wp_callbook (
  id int(11) NOT NULL AUTO_INCREMENT,
  prcall varchar(25) NOT NULL,
  name varchar(23) DEFAULT NULL,
  qth varchar(27) DEFAULT NULL,
  locator varchar(13) DEFAULT NULL,
  mybbs varchar(27) DEFAULT NULL,
  route varchar(81) DEFAULT NULL,
  email varchar(30) DEFAULT NULL,
  website varchar(33) DEFAULT NULL,
  prmail varchar(36) DEFAULT NULL,
  bundesland varchar(22) DEFAULT NULL,
  land varchar(14) DEFAULT NULL,
  bemerkung varchar(112) DEFAULT NULL,
  regdatum varchar(16) NOT NULL,
  lastupdate datetime DEFAULT NULL,
  PRIMARY KEY (id)
);

API Endpoints

Das Plugin stellt folgende AJAX-Endpoints bereit:

Admin (nur für eingeloggte Admins):

  • pr_callbook_get_entry - Einzelnen Eintrag laden
  • pr_callbook_save_entry - Eintrag speichern
  • pr_callbook_delete_entry - Eintrag löschen

Öffentlich:

  • pr_callbook_get_entries - Einträge mit Pagination laden
  • pr_callbook_get_entry - Einzelnen Eintrag für Detail-Ansicht laden

Sicherheit

  • Alle AJAX-Aufrufe sind durch WordPress-Nonces geschützt
  • Admin-Funktionen nur für Benutzer mit manage_options Berechtigung
  • Alle Eingaben werden sanitized
  • SQL-Injection-Schutz durch prepared statements
  • XSS-Schutz durch Escaping aller Ausgaben

Anpassungen

Styling anpassen

Überschreiben Sie die CSS-Klassen in Ihrem Theme:

/* Frontend */
.pr-callbook-frontend { }
.pr-callbook-table { }
.pr-modal { }

/* Admin */
.pr-callbook-admin { }
.pr-callbook-modal { }

JavaScript-Events

Das Plugin feuert folgende Events:

// Nach dem Laden von Einträgen
document.dispatchEvent(new CustomEvent('prCallbookEntriesLoaded', { 
    detail: { entries: [...] } 
}));

// Nach dem Öffnen des Detail-Modals
document.dispatchEvent(new CustomEvent('prCallbookDetailOpened', { 
    detail: { entry: {...} } 
}));

Fehlersuche

Updates werden nicht erkannt

  1. Prüfen Sie die Repository-URLs in PR-Callbook → Updates
  2. Klicken Sie auf "Cache leeren"
  3. Prüfen Sie die Forgejo-API-Erreichbarkeit
  4. Prüfen Sie die Browser-Konsole auf Fehler

Datenbank-Probleme

# WordPress-Datenbank reparieren
wp db repair

# Plugin neu installieren
wp plugin deactivate pr-callbook
wp plugin activate pr-callbook

Debugging aktivieren

In wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Logs finden Sie in wp-content/debug.log

Mitwirken

Beiträge sind willkommen! Bitte:

  1. Forken Sie das Repository
  2. Erstellen Sie einen Feature-Branch
  3. Committen Sie Ihre Änderungen
  4. Pushen Sie zum Branch
  5. Erstellen Sie einen Pull Request mit entsprechendem Label

Support

  • Issues: Forgejo Issues
  • Dokumentation: Diese README
  • Community: [Ihr Community-Link]

Lizenz

GPL v2 oder später

Credits

Entwickelt für die Packet Radio Community

Changelog

Siehe CHANGELOG.md für detaillierte Versionshistorie.

Roadmap

  • Export-Funktion (CSV, PDF)
  • Import-Funktion
  • Erweiterte Suchfilter
  • Karten-Integration (Locator-Anzeige)
  • QRZ.com Integration
  • Multi-Language Support
  • REST API
  • Statistiken und Diagramme

Technische Details

Browser-Support

  • Chrome/Edge (aktuelle Version)
  • Firefox (aktuelle Version)
  • Safari (aktuelle Version)
  • Mobile Browser (iOS Safari, Chrome Mobile)

Performance

  • Lazy Loading von Einträgen
  • AJAX-basierte Pagination
  • Gecachte API-Anfragen (12 Stunden)
  • Optimierte Datenbankabfragen

Barrierefreiheit

  • Semantisches HTML
  • Keyboard-Navigation
  • ARIA-Labels
  • Responsive Design