lindesbs / member-addon
Contao Member Addon - ContentElements für Member-Darstellung
Package info
codeberg.org/lindesbs/member-addon.git
Type:contao-bundle
pkg:composer/lindesbs/member-addon
Requires
- php: ^8.2
- contao/core-bundle: ^5.5
- doctrine/dbal: ^3.6 || ^4.0
- psr/log: ^1.1 || ^2.0 || ^3.0
- symfony/cache-contracts: ^3.0
- symfony/config: ^6.4 || ^7.0
- symfony/dependency-injection: ^6.4 || ^7.0
- symfony/filesystem: ^6.4 || ^7.0
- symfony/http-foundation: ^6.4 || ^7.0
- symfony/http-kernel: ^6.4 || ^7.0
- symfony/security-bundle: ^6.4 || ^7.0
Requires (Dev)
- contao/manager-plugin: ^2.0
- phpstan/phpstan: ^2.0
- phpstan/phpstan-symfony: ^2.0
- phpunit/phpunit: ^10.0 || ^11.0
- symfony/cache: ^6.4 || ^7.0
Suggests
None
Provides
None
Conflicts
- contao/manager-plugin: <2.0 || >=3.0
Replaces
None
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/Titeldepartment- AbteilungworkAreas- Arbeitsbereiche (Textarea)phone_business- Geschäftliche Telefonnummeremail_business- Geschäftliche E-MailmemberPhotos- 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.twigcontent_element/multi_member.html.twigcomponent/_member_card.html.twig- Darstellung einer einzelnen Karte (Blöckemember_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