manuxi / sulu-association-contact-bundle
Sulu bundle for managing association/membership properties on contacts.
Package info
github.com/manuxi/SuluAssociationContactBundle
Type:symfony-bundle
pkg:composer/manuxi/sulu-association-contact-bundle
Requires
- php: ^8.2
- sulu/sulu: ^3.0
- symfony/config: ^7.0
- symfony/dependency-injection: ^7.0
- symfony/framework-bundle: ^7.0
- symfony/http-foundation: ^7.0
- symfony/http-kernel: ^7.0
- symfony/security-core: ^7.0
- symfony/translation: ^7.0
Requires (Dev)
- phpunit/phpunit: ^11.0
- symfony/browser-kit: ^7.0
- symfony/console: ^7.0
- symfony/phpunit-bridge: ^7.0
README
The SuluAssociationContactBundle extends Sulu CMS with association and membership management for contacts.
It adds an extra tab to the contact edit form in the Sulu admin with fields like member status, membership dates, display preferences and more.
Features
Membership Management
- Member Status - 11 configurable statuses: active, passive, honorary, supporting, founding, youth, board, probationary, external, dormant, guest
- Display Control - Configure if and how members appear on the website (no display, first name only, full name)
- Dates - Member-since date, suspended-since date
- Notes - Rich text notes on membership
Additional Data
- Name Additions - Prefix and suffix for member names
- Annotations & Motivation - Rich text fields for personal notes
- Deceased Tracking - Mark deceased members with date
Settings
- Toggle Controls - Header, hero and breadcrumb display toggles
- Page References - Configurable overview pages per member status for breadcrumbs
Integration
- Sulu Admin Tab - Seamless integration into the contact edit form
- Admin List Columns - Member status, dates and display type searchable and filterable in the contact list
- Activity Logging - Contact data changes tracked via Sulu's activity system
- Twig Extensions - Access member status and settings in templates
Prerequisites
- PHP 8.2 or higher
- Sulu CMS 3.0 or higher
- Symfony 7.0 or higher
Installation
Step 1: Install the package
composer require manuxi/sulu-association-contact-bundle
If you are not using Symfony Flex, add the bundle to config/bundles.php:
return [ //... Manuxi\SuluAssociationContactBundle\SuluAssociationContactBundle::class => ['all' => true], ];
Step 2: Configure routes
Add to config/routes/sulu_association_contact_admin.yaml:
SuluAssociationContactBundle: resource: '@SuluAssociationContactBundle/Resources/config/routes_admin.yaml'
Step 3: Update the database
# Check what will be created php bin/console doctrine:schema:update --dump-sql # Execute migration php bin/console doctrine:schema:update --force
Make sure you only process this bundle's schema updates!
Step 4: Grant permissions
- Go to Sulu Admin > Settings > User Roles
- Find the appropriate role
- Enable permissions for "Contacts / settings"
- Reload the page
Documentation
- Settings - Configuration options
- Website Controller - Example controller and templates for the frontend
Configuration
No additional configuration required. The bundle registers all necessary services, forms and routes automatically.
Contributing
Contributions are welcome! Please create issues or pull requests.
License
This bundle is licensed under the MIT License. See LICENSE.
Credits
Created and maintained by manuxi.
Thanks to the Sulu team for the great CMS and fantastic support!
