You are here

public function AssignOwnerNode::buildConfigurationForm in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/node/src/Plugin/Action/AssignOwnerNode.php \Drupal\node\Plugin\Action\AssignOwnerNode::buildConfigurationForm()
  2. 9 core/modules/node/src/Plugin/Action/AssignOwnerNode.php \Drupal\node\Plugin\Action\AssignOwnerNode::buildConfigurationForm()

File

core/modules/node/src/Plugin/Action/AssignOwnerNode.php, line 78

Class

AssignOwnerNode
Assigns ownership of a node to a user.

Namespace

Drupal\node\Plugin\Action

Code

public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
  $description = t('The username of the user to which you would like to assign ownership.');
  $count = $this->connection
    ->query("SELECT COUNT(*) FROM {users}")
    ->fetchField();

  // Use dropdown for fewer than 200 users; textbox for more than that.
  if (intval($count) < 200) {
    $options = [];
    $result = $this->connection
      ->query("SELECT [uid], [name] FROM {users_field_data} WHERE [uid] > 0 AND [default_langcode] = 1 ORDER BY [name]");
    foreach ($result as $data) {
      $options[$data->uid] = $data->name;
    }
    $form['owner_uid'] = [
      '#type' => 'select',
      '#title' => t('Username'),
      '#default_value' => $this->configuration['owner_uid'],
      '#options' => $options,
      '#description' => $description,
    ];
  }
  else {
    $form['owner_uid'] = [
      '#type' => 'entity_autocomplete',
      '#title' => t('Username'),
      '#target_type' => 'user',
      '#selection_settings' => [
        'include_anonymous' => FALSE,
      ],
      '#default_value' => User::load($this->configuration['owner_uid']),
      // Validation is done in static::validateConfigurationForm().
      '#validate_reference' => FALSE,
      '#size' => '6',
      '#maxlength' => '60',
      '#description' => $description,
    ];
  }
  return $form;
}