=== ChurchTools Integration ===
Donate link: https://sv-schoenaich.de/spenden/
Tags: ChurchTools, Integration, Grouphomepage
Requires at least: 6.5
Tested up to: 6.7.2
Requires PHP: 8.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Direkte integration einer Churchtools Installation in Wordpress ohne iFrames etc.

== Description ==

Die direkte Integration deiner ChurchTools Installation in Wordpress hat einige Vorteile:
* besseres responsive Design
* schnellere Ladezeiten
* anpassbares Layout

Die Integration findet mittels Gutenberg Blocks statt. Derzeit zur Verfügung stehen
* Gruppenhomepage
* Newsletter (Gruppenanmeldung)
* Countdown (aus CT Kalender)
* EventMetaData (für SEO)
* Terminliste aus Kalender (aus CT Kalender)

## Instalationshinweise
Zur Nutzung des Plugins ist ein ChurchTools-Benutzer nötig. Ich empfehle das anlegen eines eigenen API-Benutzers, der ausschließlich die für das Plugin nötigen Rechte zugewiesen bekommt.
Eine Anleitung, wie das aussehen könnte, kann <a href="https://plugins.sv-schoenaich.de/storage/package-assets/screenshots/sb-churchtools-grouphomepage-setupApiUser.pdf" target="_blank">hier</a> heruntergeladen werden.


== Screenshots ==

## Newsletter Modul
<img src="https://plugins.sv-schoenaich.de/storage/package-assets/screenshots/sb-churchtools-grouphomepage-screenshot-1.png" alt="Screenshot 1" style="max-width: 100%" />
<img src="https://plugins.sv-schoenaich.de/storage/package-assets/screenshots/sb-churchtools-grouphomepage-screenshot-2.png" alt="Screenshot 2" style="max-width: 100%" />
<img src="https://plugins.sv-schoenaich.de/storage/package-assets/screenshots/sb-churchtools-grouphomepage-screenshot-3.png" alt="Screenshot 3" style="max-width: 100%" />
<img src="https://plugins.sv-schoenaich.de/storage/package-assets/screenshots/sb-churchtools-grouphomepage-screenshot-4.png" alt="Screenshot 4" style="max-width: 100%" />
<img src="https://plugins.sv-schoenaich.de/storage/package-assets/screenshots/sb-churchtools-grouphomepage-screenshot-5.png" alt="Screenshot 5" style="max-width: 100%" />
<img src="https://plugins.sv-schoenaich.de/storage/package-assets/screenshots/sb-churchtools-grouphomepage-screenshot-6.png" alt="Screenshot 6" style="max-width: 100%" />
<img src="https://plugins.sv-schoenaich.de/storage/package-assets/screenshots/sb-churchtools-grouphomepage-screenshot-7.png" alt="Screenshot 7" style="max-width: 100%" />


== Grouphomepage ==
Termine können aus einer beliebigen iCal Ressource direkt ausgelesen und auf der Homepage dargestellt werden. Damit dies funktioniert, muss
1. Muss der API-Nutzer im Backend konfiguriert sein und Zugriff auf den gewünschten Kalender haben
2. Im ChurchTools-Beschreibungstext einer Gruppe muss die iCal-URL in der nachfolgenden Syntax eingebettet sein:
* Zuerst kommt der Kalender (als öffentlicher iCal-Link, Security-Hash oder ChurchTools-Kalender-ID)
* Optional können weitere Filter-Parameter angegeben werden, die jweils mit zwei Dollar-Zeichen von einander abgetrennt sind (s.u.)
* Der ganze Suchausdruck wird in Wiki-Syntax für Links gekapselt.

Beispiele:
> \!\[\](24$$filterTitle=SOS$$)
> \!\[\](https://teambb.church.tools/?q=churchcal/ical&security=SL0ebEN8Z0VAvF8PPy8tPZcOxnuWCDnk&id=24$$maxEvents=3$$filterDesc=test$$)

Jeweils von zwei $$-Zeichen getrennt können verschiedene Parameter eingesetzt werden, um die Darstellung der Termine zu beeinflussen. Parameter haben immer die selbe Syntax: $$<variablenname>=<wert>$$. Diese Variablennamen sind möglich:
* maxEvents=<zahl>
* filterTitle=<regulärer Ausdruck>
* filterDesc=<regulärer Ausdruck>
* maxDate=<Y-m-d>
* removeDesc=TRUE
* removeBrackets=TRUE

Hier zwei weitere Beispiele:
> \!\[\](https://teambb.church.tools/?q=churchcal/ical&security=ycKlZvLYNQUD3juE2dKUo1wrCSzeYeOa&id=213)
> \!\[\](https://teambb.church.tools/?q=churchcal/ical&security=ycKlZvLYNQUD3juE2dKUo1wrCSzeYeOa&id=213$$maxEvents=1$$removeDesc=true$$)


== Newsletter ==

# Setup
Beim Einrichten der Newsletter-Verknüpfung, müssen einige Dinge zuvor konfiguriert / beachtet werden.

## 1. API-Nutzer in ChurchTools anlegen
* Personenliste sehen (view)
* Sicherheitslefel Personendaten für Vorname, Nachname und E-Mail (security level person) - vermutlich Level 1
* Darf Personen erstellen (create person)
* All Gruppenzuordnungen der sichtbaren Personen editieren (edit groups=
* Alle Personen des jeweiligen Bereichs sichtbar machen (view alldata) - alle Bereiche anhaken, die verwendet werden sollen
* Einzelne Gruppen inkl. der enthaltenen Personen einsehen (die jeweiligen Newsletter-Gruppen auswählen)

## 2. Die Zugangsdaten (Benutzername, Passwort) des API-Nutzers in den Einstellungen im Wordpress Backend speichern

## 3. Gruppentyp auswählen und speichern

## 4. Gruppenrollen konfigurieren und speichern
damit Wordpress weiß
* welche ChurchTools Gruppenrollen wie interpretiert werden sollen
* welche ChurchTools Gruppenrollen beim Abonieren / Abbestellen eines Newsletters verwendet werden sollen

## 5. Wordpress muss in der Lage sein, Verifizierungs-Emails zu versenden. Dies muss ggf. konfiguriert werden.

## 6. Newsletter-Block im Gutenberg-Editor hinzufügen.

== Frequently Asked Questions ==

= Es gibt noch keine FAQs =

Kommen aber, wenn sich die Fragen häufen ...

== Changelog ==

= 2.0.23-27 =
* Fix: Gruppenhomepage (Bildüberlauf, Übersetzung)
* Change: Minimum Stabilität auf PHP 8.3 erhöht (ältere Versionen könnten trotzdem noch funktionieren, werden aber nicht mehr getestet)
* Neu: Appointmentlist (lange Beschreibungstexte einklappen)
* Neu - Neue Ansicht mit Bild für AppointmentList-Blöcke
* Fix - Deutsche Sprachpakete wieder korrekt eingebunden
* Neu - Einen Button "Settings" direkt im Plugin-Listing anzeigen
* Neu - Weitere Übersetzungen hinzugefügt
* Fix - Appointmentlist: Titel konnte bei einem Layout nicht mehr aktiviert werden
* Fix - Appointmentlist: Abstände und Schriftgrößen angepasst
* Fix - Appointmentlist: Empty-Domain-Label blendet Links aus
* Feature: Gruppenhomepage Links um direkt zum Anmelde-Modal zu kommen


= 2.0.22 =
* Fix - Serverside Rendering hatte einen Bug
* Countdown Hintergrund- und Fordergrundfarben funktionieren wieder
* Installationsanleitung als PDF zur Beschreibung hinzugefügt
* Mehr Darstellungsmöglichkeiten bei Terminlisten
* Optimierte API-Aufrufe durch Caching

= 2.0.20 =
* Fix - Stabilere Berechnung des Countdowns bei allen möglichen Kombinationen angezeigter Einheiten

= 2.0.19 =
* Fix - Sprachdateien aktualisiert

= 2.0.18 =
* Fix - Grouphomepage DetailPage Bild auf voller Größe anzeigen
* Fix - AppointmentList - es wurde der falsche Monat angezeigt

= 2.0.17 =
* Rewrite - Countdown Modul komplett auf React umgeschrieben
* Neu - Appointment Lists
* Rewrite - Newsletter Modul auf VueJS 3 aktualisiert
* Rewrite - Grouphomepage Modul nativ auf React geschrieben, um den ChurchTools Overhead loszuwerden => wesentlich kleinere Dateien und schnellere Ladezeiten
* Gruppenanmeldung direkt über ein eigenes Formular starten
* Halbierung der Plugin-Größe
* Update - NPM und Composer Packages


= 1.1.59-62 =
* Update - Border-Sytle im Newslettermodul
* Feature - HTML-Anchor für Newslettermodul
* Feature - Autofocus für Newslettermodul
* Update - Optimierung des Newslettermoduls für mobile Endgeräte
* Update - Übersetzungen verbessert
* Fix - Countdown Farbe

= 1.1.58 =
* Fix - Datenschutzlink im Newslettermodul korrigiert
* Update - Neue ChurchTools API inklusive Gruppen-Mitgliedschafts-Status übernommen im Newslettermodul

= 1.1.57 =
* Feature - zeige mehrtägige Kalendertermine als All-Day-Events an

= 1.1.56 =
* Feature - zeige mögliche Warteliste
* Fix - Verstecke Details, wenn es keine gibt in Gruppen-DetailPage-Ansicht

= 1.1.55 =
* Feature - zeige Link zur ChurchTools Anmeldung bei öffentlichen Gruppen
* Feature - zeige exakten AgeGroups-String, wenn nur eine AgeGroup ausgewählt wurde

= 1.1.54 =
* Feature - zeige "keine Gruppen verfügbar", wenn keine angezeigt werden können
* Fix - Logge Fehlermeldung bei Kalender-Problemen im Backend
* Update - VueJs und Dependencies
* Fix - Darstellung von ganztägigen Ereignissen

= 1.1.12 =
* Feature - Gruppenhomepage: Events bekommen SEO-Tags für Google (https://schema.org/Event)
* Feature - Gruppenhomepage: Personen bekommen SEO-Tags für Google (https://schema.org/Person)

= 1.1.11 =
* Bugfix - Gruppenhomepage: Bilder in Gruppenhompeage auf ganzer Breite darstellen, auch bei breiter Darstellung

= 1.1.10 =
* Feature - Gruppenhomepage: Suchleiste kann ausgeblendet werden
* Feature: Screenshots und Banner zur Plugin-Beschreibung hinzugefügt
* Feature: Plugin-Größe um die Hälfte reduziert

= 1.1.9 =
* Bugfix - Gruppenhomepage: Schriftgröße bei Listen gleich groß wie in Beschreibungen

= 1.1.8 =
* Feature - Gruppenhomepage: Treffenderer Text beim Laden von Gruppenhomepages
* Feature - Gruppenhomepage: Gruppenkategorie in Details anzeigen, wenn vorhanden
* Feature - Gruppenhomepage: Breitere Darstellung, wenn möglich
* Bugfix - Gruppenhomepage: Verstecke Altersgruppen, wenn keine vorhanden

= 1.1.5 =
* Feature - Gruppenhomepage: Weitere Filtermöglichkeiten für iCal Kalender

= 1.1.3 =
* Bugfix - Gruppenhomepage: Zeige verknüpfte Kalender nicht Frontend an
* Bugfix - Gruppenhomepage: Zeige Enddatum von Veranstaltungen richtig an
* Feature - Newsletter: Registriere neue Benutzer in ChurchTools

= 1.1 =
* Newsletter Gutenberg hinzugefügt
* Beschreibung und Changelog aus Readme.txt hinzugefügt
* Termine über mehrere Tage in der Grouphomepage anzeigen
* Links in den iCal Terminen in der Gruppenhomepage aktivieren
