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');
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc