name mode size
.idea 040000
config 040000
contao 040000
public 040000
src 040000
tests 040000
tools 040000
.editorconfig 100644 348B
.gitignore 100644 142B
LICENSE 100644 7.65kB
README.md 100644 2.11kB
composer.json 100644 2.03kB
ecs.php 100644 880B
phpstan.neon 100644 541B
phpunit.xml.dist 100644 560B
README.md
# Contao Memberfiles Bundle A Contao bundle for managing secure member-specific file downloads with automatic file assignment and email notifications. ## Features - **Automatic File Import**: Files are automatically imported from source folders and assigned to members based on filename patterns - **Secure Downloads**: Files are stored in member-specific directories and accessible only to the respective member - **Email Notifications**: Members receive email notifications when new files are added - **Flexible Configuration**: Multiple configurations with different source folders and filename patterns - **Backend Integration**: Full Contao backend integration for managing member files - **Frontend Module**: Content element for displaying member files in the frontend ## Requirements - PHP 7.4 or 8.0+ - Contao 4.13+ - Symfony 5.4+ - Notification Center 1.7+ ## Installation Install the bundle via Composer: ```bash composer require vonrotenberg/contao-memberfiles-bundle ``` ## Configuration 1. Create a configuration in the backend (Memberfiles Configuration) 2. Define: - Source folder (where files are uploaded) - Target folder (where files are stored) - Regular expression to extract member identifier from filename - Member fields to match against - Optional: Email notification settings ## File Naming Convention Files must follow a naming pattern that includes member identifiers. For example: - `invoice_12345_document.pdf` (where 12345 is the member ID) - `report_smith_john.pdf` (where smith/john match member fields) The regular expression in the configuration extracts these identifiers. ## Cron Jobs The bundle includes two cron jobs: - **Import Job** (runs every minute): Imports new files from source folders - **Notification Job** (runs every 10 minutes): Sends email notifications for new files ## Testing Run code quality checks before releasing: ```bash composer ecs composer phpstan composer unit-tests ``` Or run all checks at once: ```bash composer all ``` ## License This bundle is proprietary software. All rights reserved. (c) vonRotenberg