https://github.com/joomlalabs/profiles
Joomla!LABS Profiles administrative component for managing profiles, categories, and fields, with support for editing, publishing, and record versioning.
https://github.com/joomlalabs/profiles
joomla joomla-component joomla-plugin profile profiles user user-directory
Last synced: 23 days ago
JSON representation
Joomla!LABS Profiles administrative component for managing profiles, categories, and fields, with support for editing, publishing, and record versioning.
- Host: GitHub
- URL: https://github.com/joomlalabs/profiles
- Owner: JoomlaLABS
- License: gpl-2.0
- Created: 2026-05-01T08:37:53.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-09T11:27:39.000Z (25 days ago)
- Last Synced: 2026-05-09T13:29:34.356Z (25 days ago)
- Topics: joomla, joomla-component, joomla-plugin, profile, profiles, user, user-directory
- Language: PHP
- Homepage: https://joomlalabs.com/en/extensions/profiles
- Size: 123 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Profiles for Joomla!




[](LICENSE)
[]()
[]()
## 📖 Description
Profiles for Joomla! is a Joomla 6 extension suite for managing person and organization profiles with category-driven policies, native custom fields support, public directory pages, and optional automation plugins.
It provides a standalone profile domain separate from `com_users`, while still supporting optional user linkage, action logging, privacy integration, and auto-profile creation workflows.
## 🖼️ Screenshots
## ✨ Features
### 🧩 Profile Domain Model
- Standalone profile records independent from `com_users`
- Category-driven profile types for people and legal entities
- `display_name` generation controlled by category patterns
- Per-category user-link policy support
- Native Joomla publication states and ACL-aware access
### 🏗️ Joomla Integration
- Native `com_fields` support with WAF-safe context `com_joomlalabs_profiles.record`
- Administrator CRUD with filters, search tools, modal selectors, and version history
- Action Log plugin integration
- Privacy plugin integration
- Optional user plugin for automatic profile creation and synchronization
### 🌐 Frontend Experience
- Public directory menu type with filtering and category-aware navigation
- Public single profile menu type
- SEF routing for directory and profile pages with nested category segments
- Breadcrumb support aligned to Joomla menu context
- Menu-driven profile layout selection (`default`, `cards`, `tabs`)
### 🛠️ Technical Highlights
- Joomla 6.0+ architecture
- PSR-4 namespacing and service provider wiring
- PHP 8.1+ compatible codebase
- Ant build pipeline for package generation
- Package postflight enabling recommended plugins automatically
## 📋 Requirements
| Software | Minimum | Recommended |
|---|---:|---:|
| Joomla! | 6.0.0 | 6.0+ |
| PHP | 8.1+ | 8.2 or 8.3 |
| Database | MySQL 8 / MariaDB 10.5+ | MariaDB 10.5+ |
Joomla configuration:
- Custom Fields component enabled
- Action Log recommended
- Privacy tools recommended
- Search Tools enabled in administrator UI
## 📦 Installation
### Download & Install
1. Download the latest release package from [GitHub Releases](https://github.com/JoomlaLABS/profiles/releases)
2. In Joomla Administrator, go to System → Extensions → Install
3. Upload the package ZIP generated from this repository
4. After installation, verify that the package enabled the recommended plugins
5. Review component options and category configuration
### Initial Configuration
1. Create or review the categories used as profile types
2. Configure `display_name_pattern` and user-link policies per category
3. Review installed custom field groups and baseline fields
4. Create a `Directory` menu item to expose the public listing
5. Optionally create `Single Profile` menu items for curated profile pages
For detailed installation and development setup instructions, see [INSTALLATION.md](INSTALLATION.md).
## 💡 Usage
### Directory Menu Type
Use the directory menu type when you want a browsable public index of profiles.
Typical flow:
1. Create a menu item of type `Directory`
2. Choose the root category for navigation
3. Configure whether subcategories and filters are shown
4. Choose the profile layout used when opening a profile from the directory
### Single Profile Menu Type
Use the single profile menu type when you want a direct menu item for one published profile.
Typical flow:
1. Create a menu item of type `Single Profile`
2. Select a published profile from the modal selector
3. Choose the preferred frontend layout
4. Publish the menu item
### Auto-Profile Plugin
If enabled, the user plugin can automatically create or update profile records in response to Joomla user events, depending on category rules and plugin configuration.
## 🎨 Feature Showcase
### Category-Driven Policies
The component uses category metadata to control business rules instead of hardcoding profile types in PHP.
Examples:
- Person: `display_name_pattern = {first-name} {last-name}`
- Legal Entity: `display_name_pattern = {company-name}`
- User linking can be optional or required, single or multiple, per category
### Frontend Navigation
The frontend combines Joomla menu context with extension-aware routing:
- Directory pages use category-rooted navigation
- Profile detail pages support SEF URLs with nested category segments
- Breadcrumbs add category context only when browsing from a directory menu item
- Single profile menu items avoid duplicating the current profile in the pathway
### Package Composition
The distribution package contains:
- Component: `com_joomlalabs_profiles`
- Plugin: `plg_user_joomlalabs_profiles_autoprofile`
- Plugin: `plg_privacy_joomlalabs_profiles`
- Plugin: `plg_actionlog_joomlalabs_profiles`
## 💝 Donate
If you find this project useful, consider supporting its development:
[](https://github.com/sponsors/JoomlaLABS)
[](https://buymeacoffee.com/razzo)
[](https://www.paypal.com/donate/?hosted_button_id=4SRPUJWYMG3GL)
Your support helps maintain and improve this project!
---
**Made with ❤️ for the Joomla! Community**
**⭐ If this project helped you, please consider giving it a star! ⭐**