You are here

class MachineName in Drupal 10

Same name in this branch
  1. 10 core/lib/Drupal/Core/Render/Element/MachineName.php \Drupal\Core\Render\Element\MachineName
  2. 10 core/modules/views/src/Plugin/views/field/MachineName.php \Drupal\views\Plugin\views\field\MachineName
  3. 10 core/modules/migrate/src/Plugin/migrate/process/MachineName.php \Drupal\migrate\Plugin\migrate\process\MachineName
Same name and namespace in other branches
  1. 8 core/modules/views/src/Plugin/views/field/MachineName.php \Drupal\views\Plugin\views\field\MachineName
  2. 9 core/modules/views/src/Plugin/views/field/MachineName.php \Drupal\views\Plugin\views\field\MachineName

Field handler which allows to show machine name content as human name.

Definition items:

  • options callback: The function to call in order to generate the value options. If omitted, the options 'Yes' and 'No' will be used.
  • options arguments: An array of arguments to pass to the options callback.

Plugin annotation

@ViewsField("machine_name");

Hierarchy

  • class \Drupal\views\Plugin\views\field\MachineName extends \Drupal\views\Plugin\views\field\FieldPluginBase

Expanded class hierarchy of MachineName

File

core/modules/views/src/Plugin/views/field/MachineName.php, line 18

Namespace

Drupal\views\Plugin\views\field
View source
class MachineName extends FieldPluginBase {

  /**
   * Stores the available options.
   *
   * @var array
   */
  protected $valueOptions;
  public function getValueOptions() {
    if (isset($this->valueOptions)) {
      return;
    }
    if (isset($this->definition['options callback']) && is_callable($this->definition['options callback'])) {
      if (isset($this->definition['options arguments']) && is_array($this->definition['options arguments'])) {
        $this->valueOptions = call_user_func_array($this->definition['options callback'], $this->definition['options arguments']);
      }
      else {
        $this->valueOptions = call_user_func($this->definition['options callback']);
      }
    }
    else {
      $this->valueOptions = [];
    }
  }

  /**
   * {@inheritdoc}
   */
  protected function defineOptions() {
    $options = parent::defineOptions();
    $options['machine_name'] = [
      'default' => FALSE,
    ];
    return $options;
  }

  /**
   * {@inheritdoc}
   */
  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    parent::buildOptionsForm($form, $form_state);
    $form['machine_name'] = [
      '#title' => $this
        ->t('Output machine name'),
      '#description' => $this
        ->t('Display field as machine name.'),
      '#type' => 'checkbox',
      '#default_value' => !empty($this->options['machine_name']),
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function preRender(&$values) {
    $this
      ->getValueOptions();
  }

  /**
   * {@inheritdoc}
   */
  public function render(ResultRow $values) {
    $value = $values->{$this->field_alias};
    if (!empty($this->options['machine_name']) || !isset($this->valueOptions[$value])) {
      $result = $this
        ->sanitizeValue($value);
    }
    else {
      $result = $this->valueOptions[$value];
    }
    return $result;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
MachineName::$valueOptions protected property Stores the available options.
MachineName::buildOptionsForm public function
MachineName::defineOptions protected function
MachineName::getValueOptions public function
MachineName::preRender public function
MachineName::render public function