Custom Fields
---
Joomla Volunteer
- International Joomla community
- Treasurer Joomla Nederland
---
Custom Fields
in Joomla 6
----
🧩 Custom Fields in Joomla 6
- Custom Fields = structured data to
- articles,
- categories,
- contacts,
- users,
- other content types.
- 18 core fields (2 new in Joomla 6)
----
🧩 Custom Field:
- Type: Custom Field type
- Field Group: Organize Fields under Tab
- Category: Where to display
- Access: Display for which User Group
----
### Examples 1/3
- Users (com_users):
- Field Group: Author
- Photo (Media)
- Bio (Editor)
- LinkedIn (Text)
----
### Examples 2/3
- Article:
- Field Groep: Article
- Location (Text)
- Extra images (Subform + Media)
- Links to other articles (SQL)
----
### Examples 3/3
- Category (com_categories):
- Field Group: Category Fields
- Header (Text)
- Subtitle (Text)
---
The 18 Joomla Core
Custom Fields
---
Text
----
### ✏️ Text (text)
- Purpose: Basic single-line text input.
- Example: “Subtitle”, “SKU”, or “Short Code”.
- Key parameters:
- Default Value
- Max Length
- Placeholder Text
---
Text Area
----
### 🧾 Text Area (textarea)
- Purpose: Multi-line text box for longer content.
- Example: “Product Description” or “Summary”.
- Key parameters:
- Rows / Columns: Control input size.
- Filter: Allow raw, safe HTML, or plain text.
- Default Value
---
Editor
----
### 📝 Editor (editor)
- Purpose: Provides a WYSIWYG text editor.
- Example: “Additional Description” + formatting.
- Key parameters:
- Editor Type: Choose default editor (TinyMCE).
- Default Value: Start with pre-filled text.
---
Checkboxes
----
### ☑️ Checkboxes (checkboxes)
- Purpose: Allows multiple options from a list.
- Example: “Available Features” for a product.
- Key parameters:
- Options: Define choices (value and label).
- Default Value: Preselect certain boxes.
---
Radio
----
### 🎚️ Radio (radio)
- Purpose: Choose 1 option from list of radio buttons.
- Example: “Display Sidebar?” — Yes / No.
- Key parameters:
- Options: Define value-label pairs.
- Default Value
---
List
----
### 📋 List (list)
- Purpose: Displays a dropdown for single selection.
- Example: “Difficulty Level”: Easy, Medium, Hard.
- Key parameters:
- Options: Define value/label pairs.
- Default Value
- Multiple: Allow more than one selection (optional).
---
List of Images
----
### 🖼️ List of Images (imagelist)
- Purpose: Shows list of images from a specific folder.
- Example: “Select Icon” or “Choose Banner Image”.
- Key parameters:
- Directory: Image folder path.
- Default Image
---
Media
----
### 🎬 Media (media)
- Purpose: Select media.
- Example: “Product Image” or “Promo Video”.
- Key parameters:
- Directory: File storage path.
- Preview: Show thumbnail in the admin.
- File Types: Limit to certain extensions.
---
User
----
### 👤 User (user)
- Purpose: Links to a Joomla user account.
- Example: “Assigned Author” or “Account Manager”.
- Key parameters:
- Default Value: Preselect current user.
---
User Groups
----
### 👥 User Groups (usergrouplist)
- Purpose: Displays Joomla user groups for selection.
- Example: “Access Level” or “Allowed Roles”.
- Key parameters:
- Multiple: Select more than one group.
- Default Group
---
Integer
----
### 🔢 Integer (integer)
- Purpose: Stores whole numbers only.
- Example: “Stock Quantity” or “Number of Seats”.
- Key parameters:
- Minimum / Maximum Value
- Default Value
- Step: Increment between allowed values.
---
Number
----
### 🔟 Number (number) >= Joomla 6
- Purpose: Numeric field with support for decimals.
- Example: “Price”, “Weight”, or “Percentage”.
- Key parameters:
- Min / Max / Step ???
- Default Value
- Currency Symbol
---
Calendar
----
### 📅 Calendar (calendar)
- Purpose: Lets users pick a date and/or time.
- Example: Add “Event Date” field for event article.
- Key parameters:
- Show Time: Include hours/minutes.
- Format: Control how date appears (d-m-Y).
- Default Value: "today" or fixed date, (YYYY-MM-DD HH:MM:SS) or NOW
---
Colour
----
### 🎨 Colour (color)
- Purpose: Adds a color picker for selecting hex colors.
- Example: “Brand Color” for articles or categories.
- Key parameters:
- Default Value: Set a pre-selected color.
---
URL
----
### 🌐 URL (url)
- Purpose: Store link with optional target.
- Example: “Official Website” or “YouTube Channel”.
- Key parameters:
- Default Value
- Validate URL: Scheme enforces proper format.
---
Note
----
### 🗒️ Note (note) >= Joomla 6
- Purpose: Non-editable note in admin form.
- Example: Explain how to fill out related fields.
- Key parameters:
- Label & Description: The note text.
- Show Label: Optionally hide the title.
- Class: Add CSS styling for emphasis.
---
Subform
----
### 🧩 Subform (subform)
- Purpose: Embed a mini form within a field.
- Example: “Team Members”: name, role, and photo.
- Key parameters:
- Repeatable: Allow multiple sets.
- Layout: Table or stacked display.
- Maximum Rows.
- Fields.
---
SQL
----
### 🧮 SQL (sql)
- Purpose: Dynamic options from db query.
- Example: “Select Category” from custom db table.
- Key parameters:
- Query: SQL statement returning value and text.
- Multiple: Allow selecting more than one record.
- Form Layout: Enhanced Select.
- Connect other articles!
```sql
SELECT id as value, title as text FROM `#__content`
WHERE catid IN(8) AND state = 1 ORDER BY `title` ASC
```
---
The Custom Fields
in Joomla's database
----
🧩 Custom Fields in database
- jos_fields
- jos_fields_categories
- jos_fields_groups
- jos_fields_values
----
## fields
Assign Custom Field Type to Component.View
| id | context | group_id | title | name | label | type |
|----|----------------|----------|---------|----------|----------|-------|
| 1 | com_users.user | 1 | Photo | photo | Photo | media |
| 2 | com_users.user| 1 | Bio | bio | Bio | editor |
| 3 | com_users.user | 1 | LinkedIn | linkedin | LinkedIn | text |
| 4 | com_content.categories | 2 | Header | header | Header | text |
| 5 | com_content.categories | 2 | Subtitle | subtitle | Subtitle | text |
| 6 | com_content.article | 3 | Calendar | calendar | Calendar | calendar |
| 7 | com_content.article | 3 | Checkboxes | checkboxes | Checkboxes | checkboxes |
| 8 | com_content.article | 3 | Colour | colour | Colour | color |
----
## fields_categories
Assign Custom Field to Categories
| field_id | category_id |
|----------|-------------|
| 6 | 8 |
| 7 | 8 |
| 8 | 8 |
No reference = All categories
----
### fields_groups
Assign Custom Field to Group (Tab in editor)
| id | context | title | description | state |
| 1 | com_users.user | Author | | 1 |
| 2 | com_content.categories | Category Fields |
Some extra fields to display at Category Blog page… | 1 |
| 3 | com_content.article | Custom Field |
Joomla’s core Custom Field | 1 |
----
### fields_values
Store Value to Custom Field/Item combo
| field_id |
item_id |
value |
| 1 |
963 |
{"imagefile":"images\/authors\/peter-martin... |
| 2 |
963 |
<p>Peter Martin is a Joomla expert and Linux...</p> |
| 3 |
963 |
https://www.linkedin.com/in/pe7er/ |
| 6 |
1 |
2025-11-15 13:06:46 |
| 7 |
2 |
joomla |
| 7 |
2 |
wordpress |
| 7 |
2 |
drupal |
| 7 |
2 |
frontpage98 |
| 7 |
2 |
html |
---
Tips
----
### 🧠 Pro Tips
- Combine fields with overrides for powerful layouts
- Access: config who can view Custom Field
- Permission: config who can edit etc Custom Field
- YOOtheme Pro:
- Supports Custom Fields
- Location Custom Field: Lat/Lng - Location on Map
- Tassos: Advanced Custom Fields
---
Questions?
----
### Photo Credits
- All images have been AI generated using ChatGPT using my own custom prompts