View Categories

Campi ripetibili

Questo è un campo ripetibile:

        'card_items' => [
            'type' => 'repeatable',
            'title' => Text::_('Card anteprima'),
            'attr'  => [
                'addon_image' => [
                    'type' => 'media',
                    'title' => Text::_('Immagine di sfondo card'),
                ],

                'subtitle' => [
                    'type'  => 'text',
                    'title' => Text::_('Sottotitolo card'),
                ],

                'addon_title' => [
                    'type'  => 'text',
                    'title' => Text::_('Titolo card'),
                ],

                'addon_text' => [
                    'type'  => 'editor',
                    'title' => Text::_('Testo card'),
                ],

                'addon_link' => [
                    'type'  => 'link',
                    'link_popup' => true,
                    'title' => Text::_('URL card'),
                    'mediaType' => 'attachment'
                ],

            ],
        ],

Questi campi permettono di inserire più elementi di uno stesso tipo e con i stessi campi, come nell’esempio sotto.

Per creare un campo ripetibile serve:

'card_items' => [
'type' => 'repeatable',
'title' => Text::_('Card anteprima'),
'attr' => [
  • Specificare un nome unico del campo ripetibile, proprio come per gli altri campi;
  • Specificare che è un campo ripetibile utilizzando ‘type’ => ‘repeatable’;
  • ‘attr’, che contiene gli input da riempire per ogni campo ripetibile.

Stampare i valori dei campi ripetibili #

Essendo i campi ripetibili dentro un array, non possono essere stampati nel site.php come campi normali ma devono essere ciclati con un foreach.

Usando come esempio i campi ripetibili visti prima, ecco il foreach per stamparli:

foreach ($settings->card_items as $card) {...}

card_items (il nome unico del campo ripetibile) contiene l’array. Dentro il foreach i valori dei singoli campi possono poi essere stampati in questo modo:

$card->subtitle
$card->addon_title
$card->addon_text

quindi utilizzando il nome unico dell’input all’interno del campo ripetibile.

Torna in alto