Skip to content

Releases: wirsindcgks/churchtools-plugin

v1.20.1

Choose a tag to compare

@github-actions github-actions released this 08 Sep 12:06

Fixed

  • Eine leere Antwort von ChurchTools löschte die ganze Raumauswahl. Die Raumliste wird bei jedem Abgleich neu aus der API-Antwort aufgebaut – kam sie einmal leer zurück, war die Liste leer, und der nächste, wieder vollständige Abgleich brachte die Räume unangehakt zurück. Der Haken steht nirgends sonst; wer es nicht bemerkte, sah es erst Tage später an fehlenden Ortsangaben im Frontend. Jetzt gilt hier dieselbe Regel wie bei den Kalendern: Verschwinden alle Räume auf einmal, bleibt die gespeicherte Liste stehen, und der Knopf „Räume von ChurchTools laden" sagt, dass nichts kam. Verschwindet ein einzelner, fällt er weiterhin aus der Liste – von hier aus sind ein gelöschter Raum und eine zurückgezogene Freigabe nicht zu unterscheiden.
  • Kannte die Instanz keine Ressourcentypen, blieb die Raumliste leer, statt wie vorgesehen alle Ressourcen zu zeigen. Die Ersatzregel „findet sich kein Raumtyp, gelten alle Typen" bildete ihre Liste aus derselben leeren Antwort und erlaubte deshalb nichts – der zweite Weg in denselben Verlust.

Full Changelog: v1.20.0...v1.20.1

v1.20.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 10:17

Changed

  • Der Design-Tab ist in vier Bereiche aufgeteilt – „Stil", „Kachel", „Detailansicht" und „Listen", umschaltbar über eine Reiterreihe unter den Haupt-Reitern. Bisher standen alle vier untereinander auf einer Seite: dreizehn Felder auf gut fünf Bildschirmhöhen, das Fünffache des nächstgrößten Tabs. Jeder Bereich ist jetzt für sich so lang wie ein gewöhnlicher Tab und bringt seine Vorschau daneben mit; gespeichert wird je Bereich, die Einstellungen der übrigen bleiben dabei unangetastet.
  • Die beiden „Reihenfolge"-Felder heißen jetzt nach ihrem Ort – „Reihenfolge auf der Kachel" und „Reihenfolge in der Detailansicht". Vorher trugen beide denselben Namen, einmal für die Kachel und einmal für die Detailansicht, und im Fließtext einer langen Seite war nicht zu sehen, welches welches ist.
  • Die Vorschau der Detailansicht zeigt jetzt auch die Rahmung – bei „Popup" das Schließen-Kreuz oben rechts, bei „Eigene Seite" den Zurück-Button oben links. Inhalt und Reihenfolge gelten weiterhin für beide gleichermaßen; sichtbar unterscheiden sie sich nur im Fenster darum, und das steht jetzt auch so in der Vorschau.
  • Die Stil-Vorlagen stehen quer, eine je Zeile: Miniatur links, Name und Beschreibung rechts. Die Miniaturen sind dabei kleiner geworden – die richtige Vorschau steht daneben, die Miniatur muss die Vorlage nur unterscheidbar machen.

Fixed

  • „Keine – Kacheln bleiben unklickbar" ließ sich ohne Neuladen nicht mehr zurücknehmen. Die Wahl blendet den Aufbau der Detailansicht aus, weil es dann keine gibt – ausgeblendet wurde aber der ganze Block, und in dem stehen die drei Auswahlknöpfe selbst. Wer versehentlich „Keine" wählte, hatte danach nichts mehr vor sich, womit er zurückschalten konnte. Jetzt bleibt die Auswahl stehen, und nur der Aufbau darunter verschwindet.

Full Changelog: v1.19.0...v1.20.0

v1.19.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 05:56

Added

  • Eine ganze Terminserie lässt sich in einem Zug in den Kalender übernehmen. Gehört ein Termin zu einer Serie, fragt der „Importieren"-Button nach dem Klick, was in die Datei soll: „Nur dieser Termin" oder „Alle N Termine". Bei einem Einzeltermin gibt es nichts zu fragen, dort lädt ein Klick die Datei sofort wie bisher. Die Zahl steht mit Absicht in der Beschriftung: Gezählt wird über den Basistermin aus ChurchTools, und ein dort einzeln nachbearbeitetes Datum zählt als eigener – „ganze Serie" verspräche also mehr, als sich halten lässt, eine Zahl dagegen ist gegen die Liste daneben prüfbar. Gezählt werden die künftigen Termine, die synchronisiert sind (siehe Sync-Zeitraum). Auch die Seriendatei aktualisiert bei einem zweiten Herunterladen die vorhandenen Einträge, statt neue anzulegen – Termin für Termin.
  • Die Rückfrage klappt als Karte über dem Knopf auf, nicht neben ihm: Der Knopf bleibt an seiner Stelle, die Zeile wächst nicht, und im Popup entsteht kein zweiter Scrollbereich. Sie schließt sich bei einem Klick daneben und mit Escape; ohne JavaScript bleibt sie über denselben Knopf bedienbar, mit dem sie geöffnet wurde.

Full Changelog: v1.18.0...v1.19.0

v1.18.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 20:14

Added

  • Ein „Importieren"-Button in Popup und eigener Terminseite – standardmäßig aus, einzuschalten im Design-Tab unter „Aufbau der Detailansicht", mit eigenem Häkchen und eigener Position in derselben Drag&Drop-Liste. Er legt den Termin als Kalenderdatei (.ics) ab, die Handy, Outlook und Thunderbird direkt öffnen; mit übernommen werden Titel, Untertitel, Zeit, Ort, Beschreibung, Kalendername und Bild. Die Datei ist eine Momentaufnahme: Ändert sich der Termin später in ChurchTools oder fällt er aus, erfährt der bereits eingetragene Kalender davon nichts. Wer sie erneut herunterlädt, aktualisiert damit aber seinen vorhandenen Eintrag, statt einen zweiten anzulegen – dafür sorgen eine über die Zeit stabile Kennung und ein mitwachsender Änderungszähler. Bei einer Terminserie enthält die Datei den einen Termin, dessen Seite geöffnet ist, nicht die ganze Serie.
  • Teilen- und Importieren-Button stehen als Paar nebeneinander, in einer eigenen Zeile unter der Beschreibung – im Popup rechtsbündig, auf der eigenen Terminseite an der linken Textkante, wo auch Titel und Eckdaten beginnen.

Fixed

  • Das Popup ließ sich erst beim zweiten Wischen bis ans Ende scrollen. Fenster und Inhalt hatten beide eine Höhenbegrenzung, der Inhalt rechnete seine aber ohne den eigenen Innenabstand – er wurde damit 58 Pixel höher als das Fenster, das ihn hält, und es lagen zwei Scrollbereiche ineinander. Jetzt begrenzt das Fenster die Höhe, und der Inhalt füllt sie.

Changed

  • Im Backend heißen Bedienelemente durchgehend „Button" statt „Knopf" – in den Einstellungen des Design-Tabs, in den Beschreibungstexten und in der Plugin-Beschreibung. Betrifft nur Beschriftungen, keine gespeicherten Werte.

Full Changelog: v1.17.3...v1.18.0

v1.17.3

Choose a tag to compare

@github-actions github-actions released this 07 Sep 15:25

Added

  • Die Plugin-Beschreibung steht jetzt im Backend, hinter Plugins → ChurchTools Events → Details: neben dem Changelog auch Beschreibung, Installation, die vollständige Shortcode-Referenz mit allen Optionen, die FAQ und der Datenschutz-Abschnitt – je ein eigener Reiter. Wer eine Option nachschlagen will, muss dafür nicht mehr ins Repository.

Fixed

  • Eine Behauptung, die nie gestimmt hat. README und Changelog schrieben, WordPress zeige die readme.txt in der Plugin-Detailansicht an. Das tut es nur bei Plugins von wordpress.org – hier kommen die Metadaten aus update.json, und die trug bis 1.17.2 ausschließlich den Changelog: Die Referenz aller Shortcode-Optionen und der FAQ-Teil waren im Backend nirgends zu lesen, obwohl die Doku genau dorthin verwies. Aufgefallen ist das beim Nachstellen eines echten Updates auf der Testinstallation. Statt die Sätze zu streichen, liefert bin/make-update-json.php die Abschnitte jetzt mit – die Doku hatte recht, das Plugin hielt sich nur nicht daran.

Full Changelog: v1.17.2...v1.17.3

v1.17.2

Choose a tag to compare

@github-actions github-actions released this 07 Sep 15:09

Changed

  • Der „Teilen"-Knopf steht jetzt auch in der Doku, wo man ihn sucht: mit zwei Bildern im README (Popup und eigene Terminseite, letztere mit der Meldung „Link kopiert") und einem eigenen Abschnitt in der readme.txt, den WordPress unter Plugins → Details anzeigt – Standardzustand, wo er eingeschaltet wird, was er auf dem Telefon und was am Rechner tut. In 1.17.0 stand er nur als ein Stichpunkt in der Feature-Liste; wer ihn im Design-Tab nicht zufällig fand, erfuhr nicht, dass es ihn gibt.
  • Eine seit 1.9.0 veraltete Beschreibung berichtigt. Der Eventfinder fragt „Welche Angebote sprechen dich an?"; README und readme.txt beschrieben ihn an fünf Stellen noch mit seiner alten Überschrift „Du suchst …", und auch das Bild im README zeigte sie noch. Am Plugin selbst ändert sich mit dieser Version nichts.

Fixed

  • Der Screenshot-Generator lief nicht mehr (bin/demo-screenshots.php): wp_json_encode() stand inzwischen doppelt – im Test-Bootstrap und im Skript selbst –, was PHP hart abbricht, und den Demo-Argumenten fehlte der Schlüssel design_class, den die Templates seither lesen. Genau deshalb waren die Bilder im README alt: Der Weg, sie aufzufrischen, war verschüttet, und gemerkt hat es niemand, weil ein Bild nicht rot wird.
  • Ein Test hält die Doku künftig fest (tests/Release/DocumentationLabelsTest.php): Jede Beschriftung, die README oder readme.txt in Anführungszeichen zitieren, muss es im Plugin auch geben. Genau der Fall oben – ein umformulierter Text im Plugin, eine Doku, die stehen bleibt – bricht damit den Testlauf, statt jahrelang unbemerkt zu bleiben.

Full Changelog: v1.17.1...v1.17.2

v1.17.1

Choose a tag to compare

@github-actions github-actions released this 07 Sep 09:22

Fixed

  • Lange Terminnamen liefen aus ihrer Spalte. Auf der eigenen Terminseite steht der Name in der linken Spalte, also auf halber Seitenbreite – ein langes deutsches Kompositum wie „Kinderferienprogramm" passte dort nicht hinein und ragte über den Rand hinaus, bis es am Bild daneben klebte (gemessen: 51 Pixel über die Spalte, 7 Pixel Überlappung). Der Name wird jetzt nach den Regeln der Seitensprache getrennt, statt am Stück stehen zu bleiben. Gilt für alle drei Stellen, an denen ein Terminname erscheint – Kachel, große Kachel der Ansicht „Nächster Termin" und Detailansicht –, an den beiden ersten vorsorglich: Dort ging es sich bisher knapp aus, bei einem etwas längeren Namen nicht mehr.

Full Changelog: v1.17.0...v1.17.1

v1.17.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 08:46

Added

  • Ein „Teilen"-Knopf in Popup und eigener Terminseite – standardmäßig aus, einzuschalten im Design-Tab unter „Aufbau der Detailansicht". Auf dem Telefon öffnet er das Teilen-Menü des Geräts, mit WhatsApp, Signal, Mail und allem, was dort ohnehin installiert ist; am Rechner legt er die Adresse des Termins in die Zwischenablage und meldet „Link kopiert". Es gibt dafür kein Drittanbieter-Skript und kein Zählpixel: Solange niemand den Knopf drückt, wird nichts an ein Netzwerk gemeldet. Die Voraussetzung dafür stand schon – jeder Termin hat seit 1.5.0 eine eigene Adresse und seit 1.16.0 einen eigenen Kopf mit Vorschaubild, ein geteilter Link zeigt also Bild und Titel des Termins.
  • Der Knopf ist im Design-Tab frei platzierbar wie jedes andere Feld der Detailansicht – er steht als „Teilen-Knopf" in derselben Drag&Drop-Liste und lässt sich auch dorthin ziehen, während er noch ausgeschaltet ist. Die Kacheln bekommen ihn nicht: Er gehört zum geöffneten Termin, nicht in eine Liste.

Fixed

  • Die Termin-Sitemap leitete auf sich selbst um. Auf Seiten mit sprechenden Permalinks – deren Struktur endet üblicherweise auf einem Schrägstrich – hielt WordPress auch /churchtools-termine-sitemap.xml für eine Adresse, der einer fehlt, und schickte sie per 301 auf …-sitemap.xml/. Die Datei kam danach an, Suchmaschinen folgen einer Weiterleitung; unsauber war, dass die in der robots.txt angekündigte Adresse nicht die war, die antwortet. Die Sitemap wird jetzt ausgeliefert, bevor WordPress zum Umleiten kommt.
  • Ein veraltetes Formular setzte die Reihenfolge der Detailansicht auf den Standard zurück. Wer den Design-Tab in einem Browser-Tab offen hatte, der noch von vor einem Update stammte – oder eine zwischengespeicherte Fassung der Seite vor sich –, verlor beim Speichern einer ganz anderen Einstellung seine eingestellte Anordnung, weil die abgeschickte Liste den Feldbestand der neueren Fassung nicht kannte. Sie wird jetzt vor der Prüfung ergänzt statt verworfen. Betraf auch die Umstellung von „Eckdaten" auf Datum/Uhrzeit/Ort aus einer früheren Version.

Full Changelog: v1.16.0...v1.17.0

v1.16.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 20:35

Added

  • Jeder Termin hat jetzt eine Adresse, der auch eine Suchmaschine folgen kann. In der Voreinstellung „Popup" war der Titel einer Kachel ein Knopf, und ein Knopf hat kein Ziel: Der Detailinhalt lag daneben in einem <template>, dessen Inhalt kein Browser rendert und keine Suchmaschine liest. Die Termine hatten längst eine eigene Adresse – nur führte kein Verweis dorthin, und niemandem fiel das auf, weil das Popup ja aufging. Jetzt ist der Auslöser in beiden Klickarten ein Verweis auf die Terminseite; im Popup-Betrieb fängt das Skript den Klick ab und öffnet wie bisher den Dialog. Sichtbar ändert sich dadurch nichts – außer dass Mittelklick und „In neuem Tab öffnen" jetzt tun, was sie überall sonst tun.
  • Strukturierte Daten unter jeder Terminliste und auf jeder Terminseite (schema.org/Event als JSON-LD). Der sichtbare Teil einer Kachel ist für einen Menschen eindeutig und für eine Maschine nicht: „Sa, 6. September 2026" und „19:30–22:00" sind Text, aus dem niemand zuverlässig einen Zeitpunkt mit Zeitzone gewinnt. Der Block sagt Beginn und Ende mit Zeitzonenversatz, Ort, Bild, Beschreibung und Adresse des Termins – die Voraussetzung dafür, dass eine Suchmaschine einen Termin als Termin behandelt statt als Absatz. Ganztägige Termine tragen nur das Datum, abgesagte kommen gar nicht erst in der Tabelle an.
  • Eine Termin-Sitemap unter /churchtools-termine-sitemap.xml, in der robots.txt angekündigt. Sie beantwortet ein Problem, das man dem Frontend nicht ansieht: Eine Liste zeigt ihr erstes Zeitfenster, alles Weitere kommt über „Weitere Termine laden" – einen Knopf, der nachlädt, und ein Crawler klickt nicht. Auf der Referenzinstanz stehen damit 118 statt eine Handvoll Termine zur Auffindung bereit. Eine eigene Datei statt der WordPress-Sitemap, weil Yoast und Rank Math wp-sitemap.xml abschalten und ein dort eingehängter Anbieter ausgerechnet auf diesen Seiten stillläge. Bei der Klickart „Nichts" bleibt sie leer – wer Termine bewusst nicht verlinkt, soll sie nicht über eine Datei angeboten bekommen.
  • Terminseiten bekommen ihren eigenen Kopf: Seitentitel, Kurzbeschreibung, Vorschaubild, Open-Graph-Angaben und Canonical. Der Grund ist die Bauart – ein Termin hat keinen eigenen Beitrag, und alles, was WordPress in den Kopf schreibt, holt es aus dem Beitrag, hier also aus der Elternseite. Geteilte Termine sahen deshalb alle gleich aus, und die Kurzbeschreibung war die der Terminliste. Sie beginnt jetzt mit Datum, Uhrzeit und Ort – genau das, was eine Suchmaschine sonst als Letztes abschneidet.
  • Verträglichkeit mit Yoast SEO und Rank Math. Beide setzen Titel und Canonical selbst und hätten die eigenen Angaben überschrieben – im Fall des Canonical mit der Adresse der Terminliste, was einer Suchmaschine sagt „diese Seite ist nur eine Kopie jener". Das Plugin reicht den Termin jetzt in deren Filter. Für andere SEO-Plugins (SEOPress, AIOSEO, The SEO Framework) gilt: Sie werden erkannt, damit nichts doppelt im Kopf steht, ihre Werte bleiben aber die der Elternseite; die strukturierten Daten und die Sitemap sind davon unberührt.

Changed

  • Das Bild auf der Terminseite trägt den Termintitel als Bildbeschreibung, sofern es das eigene Bild des Termins ist. Dort ist der Flyer der Inhalt und nicht die Verzierung, und er ist das, was die Bildersuche zu diesem Termin findet. Das Standardbild eines Kalenders bleibt ohne Beschreibung – es zeigt nicht diesen Termin, es steht nur da, wo keiner ist.

Notes

  • Die Kachelbilder in Liste und Raster bleiben ohne Bildbeschreibung: Dort steht der Titel als Text daneben, und eine Wiederholung desselben Wortlauts wäre für einen Screenreader eine zweite Stimme derselben Angabe.
  • Überschriftenebenen in den Kacheln (<h3> statt <span>) sind bewusst nicht angefasst: Der Nutzen wäre gering, seit die strukturierten Daten die maschinenlesbare Auskunft übernehmen, und das Risiko liegt in fremden Themes, deren Überschriften-Stile das Kachellayout verschieben.
  • Die Rewrite-Regel der Sitemap kommt über einen angehobenen Versionsstempel in die Regeln (REWRITE_VERSION), es ist also keine Neuaktivierung nötig – beim ersten Seitenaufruf nach dem Update steht die Adresse.

Full Changelog: v1.15.0...v1.16.0

v1.15.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 21:03

Changed

  • Der Eventfinder ist überarbeitet, und der Anlass war eine Messung. Auf einem 375 Pixel breiten Schirm brachen die zwölf Kategorien der Referenzinstanz auf sechs Zeilen und die vier Zeiträume auf drei: Der Eventfinder war 525 Pixel hoch und damit 65 % des Bildschirms, bevor ein einziger Termin zu sehen war. Jetzt sind es 187 Pixel, und die erste Kachel steht auf dem ersten Bildschirm.
  • Umbruch oder Schieben entscheidet das Ergebnis, nicht die Fensterbreite. Würde eine Knopfreihe auf drei Zeilen anwachsen, wird sie stattdessen zu einer einzeiligen Leiste, die sich seitlich schieben lässt. Eine feste Schwelle wie „unter 782 Pixel“ ging daran vorbei: Mit vier Kategorien bricht auf einem Handy gar nichts um, mit zwanzig auf einem breiten Schirm sehr wohl. Dass rechts und links mehr kommt, sagen ein Verlauf am Rand und ein Pfeil in jede Richtung – der Pfeil ist zugleich der Weg dorthin für alle, die nicht wischen. Seine Ecken folgen der Einstellung „Rund/Eckig“ aus dem Design-Reiter.
  • Bleibt es beim Umbruch, wird ein einzelner Knopf in der letzten Zeile vermieden. Die Reihe wird dann schrittweise schmaler gemacht, bis mindestens drei nebeneinander stehen – ein einzelner Knopf unter einer vollen Zeile sieht angehängt aus. Gemessen an der Referenzinstanz: drei bis sechs in der letzten Zeile über alle üblichen Breiten. Beobachtet wird dafür die Breite der Leiste selbst und nicht nur die des Fensters, damit auch eine einklappende Seitenspalte oder ein Baukasten-Raster die Aufteilung nachzieht.
  • Die Zeitraum-Knöpfe bleiben immer einzeilig. Vier Zeiträume sind eine geschlossene Skala von „Jederzeit“ bis „Diesen Monat“; beim Umbruch zerfällt sie in zwei Hälften, die wie zwei verschiedene Fragen aussehen.
  • Wording: Über den Kategorien steht jetzt die Frage „Welche Angebote sprechen dich an?“ statt „Du suchst …“, und die Abschnittsüberschrift „Thema“ ist weggefallen – die Knöpfe tragen ihre Auskunft selbst. „Zeitraum“ bleibt: Ohne sie hätten die Zeiträume keine Zuordnung und sähen wie eine zweite Reihe Kategorien aus.

Fixed

  • Ein Termin, dessen Bild sich nicht aus ChurchTools laden ließ, zeigte ein kaputtes Bild. Das Plugin hat in diesem Fall die ChurchTools-Adresse ersatzweise ausgeliefert. Das kann nicht funktionieren: Der Import lädt mit download_url(), also ohne Anmeldung und damit genau so, wie es auch der Browser eines Besuchers täte – was der Import nicht laden konnte, kann der Besucher erst recht nicht (auf der Referenzinstanz antwortet eine solche Adresse mit HTTP 401). Der Rückfall lieferte also ein garantiert kaputtes Bild und verhinderte obendrein das Standardbild des Kalenders, weil das Feld ja belegt war. Ohne importierten Anhang bleibt es jetzt leer, und die Kachel zeigt Standardbild oder Kalenderfarbe.

Full Changelog: v1.14.0...v1.15.0