Comunitix

Description

Most clubs and associations already have a website — and still maintain their calendar twice:
once in their management software, once on the site. Sooner or later one of them is wrong.

This plugin removes the cause rather than the symptom. It connects your existing WordPress
site to your Comunitix association management:

  • News — the posts your association has published.
  • Dates — the upcoming public entries from the association calendar.
  • Events — approved events, with registration status and a registration link.

You can embed them with blocks in the block editor, with shortcodes in classic themes
and page builders such as Elementor, or with a widget in the sidebar.

Note: the plugin’s own interface is currently in German, matching its primary audience.
Translations are welcome via translate.wordpress.org.

You decide which direction

The plugin can work in both directions — but never in both at once for the same thing. Two
systems allowed to change the same object produce two truths.

  • Display (default): content is fetched at display time and not copied. One truth,
    immediately up to date.
  • Create real posts (optional): for associations that need their own detail pages that
    search engines can find. Comunitix then leads; such posts are locked in the WordPress
    editor and carry a notice, so nobody invests work that the next sync overwrites.
  • Import dates from WordPress (optional): if you maintain your calendar with “The Events
    Calendar” and want to keep doing so, let Comunitix fetch the dates from there.

Sign in with a Comunitix account (optional)

Members can sign in to your website with their Comunitix credentials — which lets you set up
protected areas without anyone needing a second password.

No member data is copied in the process. WordPress creates an account on first sign-in,
for exactly the person signing in. Someone who never visits your website has no account there.

The sign-in itself is handled by the established “OpenID Connect Generic” plugin; this plugin
only contributes the mapping from Comunitix roles to WordPress roles. The WordPress
administrator role is never granted, and no existing rights are taken away from anyone.

Contact form (optional)

The shortcode [comunitix-kontakt] provides a form whose submissions land in the inbox of
your association management instead of an email account. Spam protection without a captcha
and without third parties: a hidden field, a minimum time on page, and a WordPress nonce.

Styling

The plugin ships as little CSS of its own as possible: semantic markup with clear class names
and a minimal base layout (spacing and arrangement only, no colours or fonts), which can be
switched off in the settings.

Resilience

Responses are cached as a WordPress transient (default: 15 minutes). If your association
management is unreachable for a moment, the page shows the last known state instead of an
error. For visitors that is always the better answer.

External services

This plugin connects to Comunitix, an association and community management system.
Without that connection the plugin has no function — it exists solely as a connector to this
service.

You choose the address yourself. Comunitix can run as a hosted service at comunitix.de or
on a server of your choosing; the plugin only ever contacts the address you enter in the
settings.

When data is transmitted, and which

  • When fetching content (on page views, throttled by the cache): the website key, this
    site’s host name and the plugin version are sent. No visitor data is sent — no name, no
    IP address, no cookies, no tracking. The request is made from this site’s server.
  • When setting up with a pairing code (once, triggered by you): the pairing code and this
    site’s host name are sent.
  • When the contact form is submitted (only if you use it): the details entered by the
    sender — name, email address, optionally phone number, subject and message — as well as the
    wording of the consent they agreed to.
  • When signing in with a Comunitix account (only if you use it): the sign-in runs in the
    browser of the person signing in, between them and Comunitix; this plugin only maps the
    role afterwards.

Received and displayed is exclusively content your association has published: post text
and images, calendar dates, events, and the association’s basic details.

Provider and terms

Provider of the hosted service: Comunitix — https://comunitix.de
Terms of use: https://comunitix.de/agb
Privacy policy: https://comunitix.de/datenschutz

If you run Comunitix yourself, your own terms apply and you are the recipient of the data.

Under Tools Privacy the plugin supplies suggested wording you can adopt into your
privacy policy.

Blocks

This plugin provides 3 blocks.

  • News
  • Termine
  • Veranstaltungen

Installation

Quick setup (recommended)

  1. Install and activate the plugin.
  2. In your association management, under Association Options WordPress, generate a
    pairing code — eight characters, valid for fifteen minutes.
  3. In WordPress, under Settings Comunitix Quick setup, enter the address of your
    association management and the code, then Pair now. The plugin fetches the key and the
    connection secret by itself.
  4. Embed content — block, shortcode or widget.

Manual setup

If you prefer entering things yourself, create a key in your association management under
Association Options Website keys and enter the address and the key under Settings
Comunitix
. The key is shown in plain text exactly once — copy it immediately. Then use
Test connection: if the association name and logo appear, everything is in order.

FAQ

Do I need a Comunitix account?

Yes. The plugin displays content from a Comunitix association management system; without
access to one it has no function.

Which data does the plugin transmit?

For displaying content: your website key, this site’s host name and the plugin version — and
no visitor data. If you additionally use the contact form or the sign-in, that changes
deliberately; exactly what flows when is documented in full under “External services”.

Are images loaded from a foreign server?

When only displaying, yes: post images and the association logo are loaded directly from your
association management — that is, from the same source you uploaded them to. If you let the
plugin create real WordPress posts, the images move into your own media library and are
served from your own server.

Can someone with the website key see our member data?

No. A website key can only read, and only what your association has published. Internal
calendar entries, member data and finances are not reachable this way.

The contact form does not change that: in addition to the key it requires a cryptographic
signature made with the connection secret. The key alone writes nothing.

What do I do if the key is lost?

In your association management, choose Reissue (the old key becomes invalid immediately,
approvals remain) or Revoke (access ends, the site shows no more content). Both take
effect at once, without involving your web host.

Why do I see an error message as an editor, but my visitors do not?

By design. Errors and cache notices are visible only to signed-in editors. A visitor should
see an association’s website, not a technical message.

Why can I not edit a post created by Comunitix?

Because the next sync would overwrite it. Comunitix leads for this content; the lock prevents
anyone from investing work that would be lost. Such content is edited in the association
management.

Can people register for events through the website?

For events with open guest registration a Register link appears. It leads into your
association management; the plugin itself does not accept event registrations.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Comunitix” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Comunitix” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

2.1.1

  • The settings page no longer prints its JavaScript inline. Script and stylesheet are
    registered with wp_enqueue_script / wp_enqueue_style and are loaded on the plugin’s own
    options screen only; nonces, the AJAX address and the translated strings are handed over
    with wp_localize_script.
  • No change in behaviour: pairing and connection test work exactly as before.

2.1.0

  • Security review before submission. The open ping endpoint now reveals the WordPress and
    PHP versions only to an authenticated association management. A server’s PHP version is not
    something a website should hand out to everyone — unlike the WordPress version, it is not
    published anywhere.
  • No change to the interface itself: all fields remain present, they are simply empty when
    unauthenticated. Existing integrations continue to work unchanged.
  • The readme is now in English, as required for the plugin directory.
  • Translation loading is left to WordPress (load_plugin_textdomain is no longer needed since
    WordPress 4.6).

2.0.0

  • Setup by pairing code: type eight characters instead of copying an address and a key.
  • Immediate updates — Comunitix reports changes instead of the site waiting for the cache to
    expire (signed calls with a time window and a one-time value).
  • Content optionally as real WordPress posts and as a dedicated post type, including images in
    your own media library. Locked in the editor, with a reason given.
  • Optionally import dates from “The Events Calendar” — with protection against an imported
    date flowing back and multiplying.
  • Sign-in with a Comunitix account via “OpenID Connect Generic”, without copying member data.
    The administrator role is never granted.
  • Contact form [comunitix-kontakt] whose submissions land in the association management
    inbox. Spam protection without a captcha and without third parties.
  • Privacy policy wording extended to cover the contact form and the sign-in.

1.0.0

  • First release: blocks, shortcodes and a widget for news, dates and events.
  • Connection test with association name and logo.
  • Caching as a transient, falling back to the last known state.
  • Structured data (schema.org/Event).