Custom Fields
JoomLeague 6.2 integrates with Joomla's native Custom Fields system. Use it to store installation-specific information without changing the JoomLeague database schema or maintaining template overrides for every additional value.
For scoring, participant, lineup, standings and catalog behavior, use the versioned contract described in Sport Types & Profiles instead.
Custom Fields are suitable for information such as a federation identifier, kit sponsor, venue surface, accessibility note, preferred foot, broadcast channel or a project-specific public notice. Core competition data such as participants, scores, programme dates, positions and statistics must remain in their dedicated JoomLeague records.
Supported contexts
Every field belongs to one context. A field created for one context is not shown on records from another context.
| Context shown in Joomla | Internal context | Administrator form | Public output |
|---|---|---|---|
| Project | com_joomleague.project |
Project | Project detail |
| Club | com_joomleague.club |
Club | Club detail |
| Team | com_joomleague.team |
Team | Team detail |
| Person | com_joomleague.person |
Person | Person detail |
| Venue | com_joomleague.venue |
Venue | Venue detail |
| Programme item | com_joomleague.match |
Programme item | Event Report |
The Programme item context is intentionally sport-neutral. It can describe a football match, race, fight, heat, game or another profile-defined contest. Its public Custom Fields are rendered on Event Report, not on every compact programme/results row.
JoomLeague does not currently expose native Custom Fields for competitions, seasons, sport types, stages, rounds, project entries or catalog definitions.
Open the field manager
- Sign in to the Joomla administrator interface.
- Open Components → JoomLeague → Custom Fields.
- Select the required JoomLeague context from the context selector before creating or filtering fields.
The component menu opens the Project context initially. This is only the starting filter; it does not mean that fields are limited to projects.
You can also open Joomla's native field manager and choose a JoomLeague context there. JoomLeague deliberately uses the standard Joomla field, field-group, category, language, access and permission interfaces.
Create a field group
Field groups are optional but recommended. Each published group becomes a separate tab on the corresponding JoomLeague administrator edit form.
- In the field manager, open Field Groups.
- Confirm that the required JoomLeague context is selected.
- Choose New.
- Enter a clear group title, for example
Federation,FacilitiesorBroadcast. - Optionally enter a description. JoomLeague displays it at the top of the generated form tab.
- Configure status, access and language, then save the group.
Do not reuse the same purpose across several vaguely named groups. A small number of stable groups keeps record forms readable and makes access rules easier to review.
Create a field
- Return to Fields and keep the correct JoomLeague context selected.
- Choose New.
- Enter the field title. Joomla uses it as the administrator label and, when configured, as the public label.
- Select a native Joomla field type appropriate for the value.
- Assign the field group that should provide its form tab.
- Configure whether the field is required, its default value, filtering, display behavior, access level and language.
- Publish and save the field.
Prefer structured native field types over free text:
| Requirement | Recommended field type |
|---|---|
| Yes/No value | Radio buttons with explicit Yes and No options |
| One value from a controlled set | List |
| Several values from a controlled set | Checkboxes or List with multiple selection |
| Date | Calendar |
| Whole number | Integer |
| Decimal measurement | Number |
| Website or external resource | URL |
| Image or document | Media |
| Longer formatted content | Editor |
| Short unconstrained value | Text |
For coded values, keep option values stable and use human-readable option labels. Changing a stored option value later can make existing records appear empty even though their old value is still stored.
Enter values on JoomLeague records
After the field and its group are published:
- Open the matching JoomLeague record.
- Open the tab named after the field group. Ungrouped fields use the default Custom Fields group.
- Enter the value and save the record with the normal Joomla toolbar.
The fields participate in the same form submission as the core record. Joomla performs the configured field validation and stores the values in its native Custom Fields tables. JoomLeague does not copy them into a component-specific JSON column or a parallel custom-field table.
If a newly created field does not appear, verify all of the following:
- the selected context matches the record type;
- the field and its group are published;
- the field's access level includes the current administrator;
- the field language matches the administrator language or is set to All;
- the field is assigned to the intended group;
- Joomla and browser caches have been cleared after structural changes.
Public display
Published values are rendered by Joomla's standard fields.render layout on
the corresponding public detail page. JoomLeague supplies the record and
context; Joomla applies the field's display settings.
A field is not public merely because it exists. Public output depends on:
- the JoomLeague record being published and accessible;
- the Custom Field and its group being published;
- the visitor matching the field's access level;
- the field language matching the active site language or being set to All;
- the field's automatic display option allowing output;
- the record containing a value, unless the chosen field behavior renders a default.
Use Access for visibility boundaries. Do not put confidential medical, disciplinary, personal contact or internal administration data into a field that can be rendered publicly. Setting a field to a restricted Joomla viewing level is safer than hiding it with CSS or a template override.
Multilingual fields
Joomla treats field definitions and field values separately from JoomLeague's sport-profile language keys.
- Use Language: All when one field definition and value are valid in every language, for example an external federation ID.
- Create language-specific fields when the value itself must differ by language, for example a public venue note.
- Translate list option labels consistently while keeping their stored values stable.
- Test the public detail under every assigned menu language and access level.
Changing the active sport profile does not translate or recreate Joomla Custom Fields. They belong to the site configuration and selected entity context, not to a bundled sport profile version.
Access and permissions
Creation and administration of field definitions follow Joomla's native
com_fields permissions. Editing a JoomLeague record still requires permission
for that record and component context. Field access controls who can see the
rendered value; it does not grant permission to edit the underlying project,
club, team, person, venue or programme item.
Recommended practice:
- allow only trusted administrators to create or change field definitions;
- use Joomla user groups and viewing access levels for restricted values;
- review required fields before enabling them on an installation with existing records;
- test with a non-Super-User account instead of assuming inherited permissions;
- keep personally sensitive values out of public entity contexts.
Practical examples
Venue surface
- Context: Venue
- Group: Facilities
- Type: List
- Options: Natural grass, Artificial turf, Indoor, Clay, Asphalt
- Public display: After title or automatic display according to the site design
This is preferable to adding a football-only pitch_surface column because
the same context also supports courts, tracks, halls and race venues.
Federation team identifier
- Context: Team
- Group: Federation
- Type: Text
- Access: Special if it is for administrators only
- Language: All
Use the core External code field when it already represents the same source identifier. Create a Custom Field only when the installation needs an additional independent identifier.
Broadcast link for one programme item
- Context: Programme item
- Group: Broadcast
- Type: URL
- Access: Public
- Automatic display: Enabled
The link appears on Event Report for that item. It does not alter the item status, result contract or calendar export.
Data lifecycle, export and migration
Custom Field definitions and values are stored in Joomla core tables. They are not sport-profile defaults and are not created by synchronizing bundled profile JSON files.
Before moving a site, back up the complete Joomla database, not only the
#__joomleague_* tables. A JoomLeague-only SQL table export cannot contain
Joomla-owned field definitions and values. Verify Custom Fields separately
after restoring or migrating a site.
The legacy converter focuses on the canonical JoomLeague domain model. Do not assume that third-party or old-version extra fields automatically map to new Joomla Custom Fields unless the migration report explicitly confirms that mapping.
Troubleshooting checklist
The field is missing from the edit form
Check context, publication, group, language and administrator access. Confirm that you opened one of the six supported edit forms rather than a competition, season, stage or project-entry form.
The field is visible in administration but not on the site
Check the record's Published and Access values, the field and group status, automatic display setting, active language, visitor access level and whether a value was saved. Programme item fields appear on Event Report.
The field appears under the wrong tab
Edit the field and assign the intended Field Group in the same context. Groups with similar names in different contexts are separate Joomla records.
Existing records cannot be saved after adding a field
The new field is probably required without a usable default. Temporarily make it optional, populate existing records, then enable the requirement after testing the complete edit workflow.
Values disappeared after changing list options
Restore the previous stored option values or migrate existing field values to the new codes. Changing only the visible label is safe; changing the option value changes the data contract.
For the surrounding record fields, see Club, Team, Person & Venue Forms. For public destinations, see Public Directories & Detail Pages and Site Views.