protected function ScheduledPublishWidget::addEntries in Scheduled Publish 8.3
Adds existing entries to the widget.
1 call to ScheduledPublishWidget::addEntries()
- ScheduledPublishWidget::formElement in src/
Plugin/ Field/ FieldWidget/ ScheduledPublishWidget.php - Returns the form for a single field widget.
File
- src/
Plugin/ Field/ FieldWidget/ ScheduledPublishWidget.php, line 176
Class
- ScheduledPublishWidget
- Plugin implementation of the 'scheduled_publish_widget' widget.
Namespace
Drupal\scheduled_publish\Plugin\Field\FieldWidgetCode
protected function addEntries(&$element, FormStateInterface $form_state, $parents, $field_name, $wrapper) {
$entries = $form_state
->get([
'scheduled_publish',
$field_name,
]);
$element['entries'] = [
'#type' => 'container',
'#attributes' => [
'class' => 'scheduled-publish-entries',
],
];
foreach ($entries as $key => $value) {
// First check to see if this entry should be displayed as a form.
if (!empty($value['form'])) {
// Add the appropriate form.
$element['entries'][$key]['form'] = [
'#type' => 'container',
'#attributes' => [
'class' => 'scheduled-publish-entry-form',
],
'#parents' => array_merge($parents, [
'entries',
$key,
'form',
]),
'#wrapper_attributes' => [
'colspan' => 4,
],
];
if ($value['form'] == 'edit') {
$this
->buildEditForm($element['entries'][$key]['form'], $wrapper, $field_name, $value, $form_state);
}
elseif ($value['form'] == 'remove') {
$this
->buildRemoveForm($element['entries'][$key]['form'], $wrapper, $field_name, $value);
}
}
else {
$element['entries'][$key] = [
'#type' => 'container',
'#attributes' => [
'class' => 'scheduled-publish-entry',
],
'date' => [
'#type' => 'html_tag',
'#tag' => 'div',
'#value' => $value['date_display'],
],
'state' => [
'#type' => 'html_tag',
'#tag' => 'div',
'#value' => $value['state_display'],
'#attributes' => [
'class' => 'scheduled-publish-entry-state',
],
],
'actions' => [
'#type' => 'container',
'#attributes' => [
'class' => 'scheduled-publish-entry-actions',
],
'edit' => [
'#type' => 'button',
'#value' => $this
->t('Edit'),
'#name' => 'sp-' . $field_name . '-entry-edit-' . $key,
'#limit_validation_errors' => [],
'#ajax' => [
'callback' => [
get_called_class(),
'getElement',
],
'wrapper' => $wrapper,
],
'#sp_id' => $field_name,
'#sp_row_delta' => $key,
],
'remove' => [
'#type' => 'button',
'#value' => $this
->t('Remove'),
'#name' => 'sp-' . $field_name . '-entry-remove-' . $key,
'#limit_validation_errors' => [],
'#ajax' => [
'callback' => [
get_called_class(),
'getElement',
],
'wrapper' => $wrapper,
],
'#sp_id' => $field_name,
'#sp_row_delta' => $key,
],
],
];
}
}
}