degov-8.x-2.0/modules/degov_scheduled_updates/degov_scheduled_updates.module
modules/degov_scheduled_updates/degov_scheduled_updates.module
<?php
/**
* Set scheduled updates form item into advanced group.
*
* @param $element
* @param \Drupal\Core\Form\FormStateInterface $form_state
* @param $context
*/
function degov_scheduled_updates_field_widget_form_alter(&$element, \Drupal\Core\Form\FormStateInterface $form_state, $context) {
// Add a css class to widget form elements for all fields of type mytype.
/** @var \Drupal\Core\Field\FieldDefinitionInterface $field_definition */
$field_definition = $context['items']->getFieldDefinition();
if ($field_definition->getType() == 'entity_reference') {
$item_definition = $field_definition->getItemDefinition();
if ($item_definition->getSetting('target_type') == 'scheduled_update') {
if (!isset($element['#prefix'])) {
$element['#prefix'] = '';
}
if (!isset($element['#suffix'])) {
$element['#suffix'] = '';
}
$ajax_attributes = '';
$ajax_wrapper_attributes = '';
$user_input = $form_state->getUserInput();
if (!empty($user_input['_triggering_element_name'])) {
if (strpos($user_input['_triggering_element_name'], $element['#ief_id']) !== FALSE) {
$element['#attached']['library'][] = 'degov_scheduled_updates/ief';
$ajax_attributes = ' aria-expanded="true" aria-pressed="true"';
$ajax_wrapper_attributes = ' open=""';
}
}
$element['#group'] = 'advanced';
$element['#prefix'] .= '<details' . $ajax_wrapper_attributes . '><summary id="scheduled-updates"' . $ajax_attributes . '>' . $element['#field_title'] . '</summary>';
$element['#field_title'] = '';
$element['#title'] = '';
$element['#suffix'] = '</details>' . $element['#suffix'];
}
}
}
/**
* @param array $entity_types
*/
function degov_scheduled_updates_entity_type_build(array &$entity_types) {
/** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
// Add a form for a custom node form without overriding the default
// node form. To override the default node form, use hook_entity_type_alter().
$entity_types['scheduled_update']->setListBuilderClass('Drupal\degov_scheduled_updates\ScheduledUpdatesListBuilder');
}
