function AssignOwnerNode::buildConfigurationForm

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

Overrides PluginFormInterface::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_setttings' => [
                '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;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.