function paragraphs_sets_field_widget_third_party_settings_form in Paragraphs Sets 8.2
Implements hook_field_widget_third_party_settings_form().
File
- ./
paragraphs_sets.module, line 81 - Main functions of paragraphs_sets.module.
Code
function paragraphs_sets_field_widget_third_party_settings_form(WidgetInterface $plugin, FieldDefinitionInterface $field_definition, $form_mode, $form, FormStateInterface $form_state) {
if ($plugin instanceof ParagraphsWidget) {
$settings = $plugin
->getThirdPartySettings('paragraphs_sets');
$element['paragraphs_sets'] = [
'#type' => 'fieldgroup',
'#title' => t('Paragraphs Sets'),
'#attributes' => [
'class' => [
'fieldgroup',
'form-composite',
],
],
];
$element['paragraphs_sets']['use_paragraphs_sets'] = [
'#type' => 'checkbox',
'#title' => t('Enable Paragraphs Sets'),
'#default_value' => isset($settings['paragraphs_sets']['use_paragraphs_sets']) ? $settings['paragraphs_sets']['use_paragraphs_sets'] : '',
];
$paragraph_field = $field_definition
->getName();
$field_allowed_paragraphs_types = $plugin
->getAllowedTypes($field_definition);
$cardinality = $field_definition
->getFieldStorageDefinition()
->getCardinality();
$sets_options = ParagraphsSets::getSetsOptions(array_keys($field_allowed_paragraphs_types), $cardinality);
$element['paragraphs_sets']['sets_allowed'] = [
'#type' => 'checkboxes',
'#title' => t('Limit sets to'),
'#description' => t('Leave unchecked to show all. Sets not shown here are not available due to field restrictions on cardinality or Paragraph types.'),
'#options' => $sets_options,
'#default_value' => isset($settings['paragraphs_sets']['sets_allowed']) ? $settings['paragraphs_sets']['sets_allowed'] : [],
'#states' => [
'visible' => [
":input[name='fields[{$paragraph_field}][settings_edit_form][third_party_settings][paragraphs_sets][paragraphs_sets][use_paragraphs_sets]']" => [
'checked' => TRUE,
],
],
],
];
$element['paragraphs_sets']['default_set'] = [
'#type' => 'select',
'#title' => t('Default set'),
'#description' => t('Choose a default set. The "Default paragraph type" setting above must be set to "- None -".'),
'#options' => array_merge([
PARAGRAPHS_SETS_DEFAULT_EMPTY_VALUE => t("- None -"),
], $sets_options),
'#default_value' => isset($settings['paragraphs_sets']['default_set']) ? $settings['paragraphs_sets']['default_set'] : '',
'#states' => [
'visible' => [
":input[name='fields[{$paragraph_field}][settings_edit_form][third_party_settings][paragraphs_sets][paragraphs_sets][use_paragraphs_sets]']" => [
'checked' => TRUE,
],
],
'enabled' => [
":input[name='fields[{$paragraph_field}][settings_edit_form][settings][default_paragraph_type]']" => [
'value' => '_none',
],
],
],
];
return $element;
}
}