Search by

lindesbs / member-addon

lindesbs

Contao Member Addon - ContentElements für Member-Darstellung

Package info

codeberg.org/lindesbs/member-addon.git

Issues

Type:contao-bundle

pkg:composer/lindesbs/member-addon

Statistics

Installs: 6

Dependents: 0

Suggesters: 0

0.5.2 2026-10-13 12:15 UTC

This package is auto-updated.

Last update: 2026-10-13 10:19:42 UTC


README

Dieses Bundle erweitert Contao um ContentElements zur Darstellung von Member-Daten im Frontend.

Voraussetzungen

  • PHP ^8.2
  • Contao ^5.5 (getestet mit 5.7)

Installation

composer require lindesbs/member-addon
vendor/bin/contao-console contao:migrate

Für die lokale Entwicklung als Path-Repository in der composer.json des Projekts:

"repositories": {
    "member-addon": {
        "type": "path",
        "url": "entwicklung/lindesbs/member-addon",
        "options": {"symlink": true}
    }
}

Features

  • Single Member Element: Zeigt einen einzelnen Mitarbeiter an
  • Multi Member Element: Zeigt mehrere Mitarbeiter in einem Grid an (Reihenfolge wie im Backend sortiert)
  • Erweiterte Member-Felder: Position, Abteilung, Arbeitsbereiche, geschäftliche Kontaktdaten, Fotos
  • Konfigurierbare Feldanzeige: Auswahl, welche Daten angezeigt werden (sensible Felder wie Passwort, Login usw. sind ausgeschlossen)
  • Bildgrößen-Integration: Fotos werden über das Contao Image Studio mit der gewählten Bildgröße ausgegeben
  • Nur aktive Mitglieder: Deaktivierte Mitglieder sowie Mitglieder außerhalb von Start/Stop werden nicht angezeigt
  • Caching: Member-Daten werden gecacht und beim Speichern, Löschen oder Deaktivieren eines Mitglieds automatisch invalidiert

Neue Member-Felder

Das Bundle erweitert die Tabelle tl_member um folgende Felder:

  • position - Position/Titel
  • department - Abteilung
  • workAreas - Arbeitsbereiche (Textarea)
  • phone_business - Geschäftliche Telefonnummer
  • email_business - Geschäftliche E-Mail
  • memberPhotos - Mitarbeiterfotos (Mehrfachauswahl, das erste Foto wird angezeigt)

ContentElements

Single Member (single_member)

  • Mitarbeiter auswählen
  • Anzuzeigende Felder wählen
  • Bildgröße für das Foto festlegen
  • Absolute Pfade verwenden (optional): Bild-URLs werden absolut ausgegeben, z. B. für API- oder E-Mail-Nutzung
  • Standard-CSS einbinden (optional)

Multi Member (multi_member)

  • Mehrere Mitarbeiter auswählen und sortieren
  • Anzuzeigende Felder wählen (gilt für alle)
  • Bildgröße, absolute Pfade und Standard-CSS wie oben

Templates

Die Templates sind Twig-Templates und können wie gewohnt überschrieben oder als Variante angelegt werden:

  • content_element/single_member.html.twig
  • content_element/multi_member.html.twig
  • component/_member_card.html.twig - Darstellung einer einzelnen Karte (Blöcke member_photo, member_info, member_contact)

Im Template steht pro Mitglied ein MemberTemplateService zur Verfügung:

{% if member.has('position') %}{{ member.get('position') }}{% endif %}
{% if member.figure %}{% with {figure: member.figure} %}{{ block('figure_component') }}{% endwith %}{% endif %}

Styling

Das mitgelieferte Stylesheet (bundles/lindesbsmemberaddon/css/member-addon.min.css) wird nur eingebunden, wenn im Element „Standard-CSS einbinden“ aktiviert ist. Details zu den CSS-Variablen siehe src/Resources/public/css/README.md.

CSS-Klassen:

  • .single-member / .members-grid - Container für ein bzw. mehrere Mitglieder
  • .member-card - Basis-Container für ein Mitglied
  • .member-photo - Foto-Container
  • .member-info - Informations-Container
  • .member-name, .member-company, .member-position, .member-department
  • .member-work-areas - Arbeitsbereiche
  • .member-address - Adresse (.member-street, .member-location, .member-country)
  • .member-contact - Kontaktdaten (.member-phone, .member-mobile, .member-email, …)
  • .member-empty-state - Hinweis, wenn kein (aktives) Mitglied ausgewählt ist

Entwicklung

composer install
vendor/bin/phpunit
vendor/bin/phpstan analyse