Aller au contenu principal

Répéteur

Un champ de type repeater permet aux utilisateurs de créer un ensemble de champs qui peuvent être dupliqués plusieurs fois dans un formulaire. Il est particulièrement utile dans les scénarios où plusieurs entrées de données similaires sont nécessaires, telles que des variations de produit ou plusieurs coordonnées. Le champ repeater prend également en charge une interface de glisser-déposer pour trier les entrées répétées, offrant un moyen flexible et intuitif de gérer les données.

Captures d'écran

Affichage du champ dans le formulaire :

aperçu du champ

Affichage du champ dans un groupe de champs :

aperçu du champ

Configuration

  • Paramètres :

    • Nom : L'étiquette du champ.
    • Slug : L'identifiant technique unique.
    • Champs : Les champs individuels inclus dans chaque répétition du repeater.
  • Validation :

    • Obligatoire : Détermine si au moins un ensemble de champs doit être rempli.
    • Nombre minimum d'éléments : Nombre minimum de répétitions requises.
    • Nombre maximum d'éléments : Nombre maximum de répétitions autorisées.
  • Design :

    • Instructions : Texte affiché à côté du champ fournissant des détails sur les données nécessaires.
    • Largeur : La largeur du champ dans le formulaire.
    • Classes : Classes CSS personnalisées pour le style du champ.
    • ID : Attribut ID personnalisé pour le champ.
    • Texte avant : Texte supplémentaire affiché avant le champ.
    • Texte après : Texte supplémentaire affiché après le champ.

Format de retour

  • Type : array
  • Valeur :
    [
    [
    'sub_field_slug_one' => 'Valeur du premier élément',
    'sub_field_slug_two' => 'Valeur du premier élément',
    ],
    [
    'sub_field_slug_one' => 'Valeur du deuxième élément',
    'sub_field_slug_two' => 'Valeur du deuxième élément',
    ],
    ]

Utilisation

/some-template.tpl
{* Object or Entity and Id *}
{assign var="data" value=$modules.customfieldgroups.data->get($product)}
{assign var="data" value=$modules.customfieldgroups.data->get('product', $product.id)}

{foreach from=$data.field_group_slug.field_slug item=row}
<div>
<span>{$row.field_slug_txt}</span>

{if $row.field_slug_img}
<img src="{$row.field_slug_img.url}"
alt="{$row.field_slug_img.name}"
>
{/if}
</div>
{/foreach}
/SomeClass.php
function someMethod()
{
$dataRetriever = DataRetrieverFacade::getInstance();

$data = $dataRetriever->get($object); // Object
$data = $dataRetriever->get('product', $idProduct); // Entity and id

$elements = $data['field_group_slug']['field_group_slug'];

foreach($elements as $element) {
$value = $element['field_slug'];
..
}
}