Category
A search input field for selecting a category from the catalog. Data can be searched by category name. Useful for linking related categories or adding category references in custom forms. This field can be combined with a repeater field to configure category lists.
Screenshots
Field render in form:
Field render in field group:
Configuration
-
Settings:
- Name: The label for the field.
- Slug: The unique technical identifier.
- Exclude disabled: Option to exclude disabled categories from the search results.
-
Validation:
- Require: Determines if the field must be filled out.
-
Design:
- Instructions: Text displayed alongside the field providing details about the data needed.
- Width: The width of the field in the form.
- Classes: Custom CSS classes for styling the field.
- ID: Custom ID attribute for the field.
- Text before: Additional text displayed before the field.
- Text after: Additional text displayed after the field.
Return format
- Type: Object (RelationFieldValue) or null
- Object methods:
// Return related entity object
$category = $relationFieldValue->getEntity();
// Return related entity field groups
$fieldGroups = $relationFieldValue->getFieldGroups();
info
The field value returns an object instead of an array to perform lazy loading of sub-values (object, field groups, and presenter for certain entities) and ensure process performance.
Usage
/some-template.tpl
{* Object or Entity and Id *}
{assign var="data" value=$modules.customfieldgroups.data->get($category)}
{assign var="data" value=$modules.customfieldgroups.data->get('category', $category.id)}
{if $data.field_group_slug.field_slug}
<span>{$data.field_group_slug.field_slug->getEntity()->id}</span>
{* Entity related field groups *}
{assign var="entity_field_groups" value=$data.field_group_slug.field_slug->getFieldGroups()}
<span>{entity_field_groups.field_group_slug.field_slug}</span>
{/if}
/SomeClass.php
function someMethod()
{
$dataRetriever = DataRetrieverFacade::getInstance();
$data = $dataRetriever->get($object); // Object
$data = $dataRetriever->get('carrier', $idCarrier); // Entity and id
$categoryData = $data['field_group_slug']['field_slug'];
$categoryObject = $categoryData ? $categoryData->getEntity() : null;
$categoryFieldGroups = $categoryData ? $categoryObject->getFieldGroups() : [];
}
