abstract class RowPluginBase in Drupal 8
Same name and namespace in other branches
- 9 core/modules/views/src/Plugin/views/row/RowPluginBase.php \Drupal\views\Plugin\views\row\RowPluginBase
 
Base class for Views row plugins.
This is really just a wrapper around a theme hook. It renders a row of the result table by putting it into a render array with the set theme hook.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\views\Plugin\views\PluginBase implements DependentPluginInterface, ContainerFactoryPluginInterface, TrustedCallbackInterface, ViewsPluginInterface
- class \Drupal\views\Plugin\views\row\RowPluginBase
 
 
 - class \Drupal\views\Plugin\views\PluginBase implements DependentPluginInterface, ContainerFactoryPluginInterface, TrustedCallbackInterface, ViewsPluginInterface
 
 - class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
 
Expanded class hierarchy of RowPluginBase
Related topics
5 files declare their use of RowPluginBase
- DataEntityRow.php in core/
modules/ rest/ src/ Plugin/ views/ row/ DataEntityRow.php  - DataFieldRow.php in core/
modules/ rest/ src/ Plugin/ views/ row/ DataFieldRow.php  - DisplayKernelTest.php in core/
modules/ views/ tests/ src/ Kernel/ Plugin/ DisplayKernelTest.php  - RowTest.php in core/
modules/ views/ tests/ modules/ views_test_data/ src/ Plugin/ views/ row/ RowTest.php  - SearchRow.php in core/
modules/ search/ src/ Plugin/ views/ row/ SearchRow.php  
File
- core/
modules/ views/ src/ Plugin/ views/ row/ RowPluginBase.php, line 38  
Namespace
Drupal\views\Plugin\views\rowView source
abstract class RowPluginBase extends PluginBase {
  /**
   * {@inheritdoc}
   */
  protected $usesOptions = TRUE;
  /**
   * Does the row plugin support to add fields to its output.
   *
   * @var bool
   */
  protected $usesFields = FALSE;
  /**
   * Returns the usesFields property.
   *
   * @return bool
   */
  public function usesFields() {
    return $this->usesFields;
  }
  /**
   * {@inheritdoc}
   */
  protected function defineOptions() {
    $options = parent::defineOptions();
    if (isset($this->base_table)) {
      $options['relationship'] = [
        'default' => 'none',
      ];
    }
    return $options;
  }
  /**
   * Provide a form for setting options.
   */
  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    parent::buildOptionsForm($form, $form_state);
    if (isset($this->base_table)) {
      $executable = $form_state
        ->get('view')
        ->getExecutable();
      // A whole bunch of code to figure out what relationships are valid for
      // this item.
      $relationships = $executable->display_handler
        ->getOption('relationships');
      $relationship_options = [];
      foreach ($relationships as $relationship) {
        $relationship_handler = Views::handlerManager('relationship')
          ->getHandler($relationship);
        // If this relationship is valid for this type, add it to the list.
        $data = Views::viewsData()
          ->get($relationship['table']);
        $base = $data[$relationship['field']]['relationship']['base'];
        if ($base == $this->base_table) {
          $relationship_handler
            ->init($executable, $relationship);
          $relationship_options[$relationship['id']] = $relationship_handler
            ->adminLabel();
        }
      }
      if (!empty($relationship_options)) {
        $relationship_options = array_merge([
          'none' => $this
            ->t('Do not use a relationship'),
        ], $relationship_options);
        $rel = empty($this->options['relationship']) ? 'none' : $this->options['relationship'];
        if (empty($relationship_options[$rel])) {
          // Pick the first relationship.
          $rel = key($relationship_options);
        }
        $form['relationship'] = [
          '#type' => 'select',
          '#title' => $this
            ->t('Relationship'),
          '#options' => $relationship_options,
          '#default_value' => $rel,
        ];
      }
      else {
        $form['relationship'] = [
          '#type' => 'value',
          '#value' => 'none',
        ];
      }
    }
  }
  /**
   * Validate the options form.
   */
  public function validateOptionsForm(&$form, FormStateInterface $form_state) {
  }
  /**
   * Perform any necessary changes to the form values prior to storage.
   * There is no need for this function to actually store the data.
   */
  public function submitOptionsForm(&$form, FormStateInterface $form_state) {
  }
  /**
   * {@inheritdoc}
   */
  public function query() {
    if (isset($this->base_table)) {
      if (isset($this->options['relationship']) && isset($this->view->relationship[$this->options['relationship']])) {
        $relationship = $this->view->relationship[$this->options['relationship']];
        $this->field_alias = $this->view->query
          ->addField($relationship->alias, $this->base_field);
      }
      else {
        $this->field_alias = $this->view->query
          ->addField($this->base_table, $this->base_field);
      }
    }
  }
  /**
   * Allow the style to do stuff before each row is rendered.
   *
   * @param $result
   *   The full array of results from the query.
   */
  public function preRender($result) {
  }
  /**
   * Render a row object. This usually passes through to a theme template
   * of some form, but not always.
   *
   * @param object $row
   *   A single row of the query result, so an element of $view->result.
   *
   * @return string
   *   The rendered output of a single row, used by the style plugin.
   */
  public function render($row) {
    return [
      '#theme' => $this
        ->themeFunctions(),
      '#view' => $this->view,
      '#options' => $this->options,
      '#row' => $row,
      '#field_alias' => isset($this->field_alias) ? $this->field_alias : '',
    ];
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            DependencySerializationTrait:: | 
                  protected | property | An array of entity type IDs keyed by the property name of their storages. | |
| 
            DependencySerializationTrait:: | 
                  protected | property | An array of service IDs keyed by property name used for serialization. | |
| 
            DependencySerializationTrait:: | 
                  public | function | 1 | |
| 
            DependencySerializationTrait:: | 
                  public | function | 2 | |
| 
            MessengerTrait:: | 
                  protected | property | The messenger. | 29 | 
| 
            MessengerTrait:: | 
                  public | function | Gets the messenger. | 29 | 
| 
            MessengerTrait:: | 
                  public | function | Sets the messenger. | |
| 
            PluginBase:: | 
                  protected | property | Configuration information passed into the plugin. | 1 | 
| 
            PluginBase:: | 
                  public | property | Plugins's definition | |
| 
            PluginBase:: | 
                  public | property | The display object this plugin is for. | |
| 
            PluginBase:: | 
                  public | property | Options for this plugin will be held here. | |
| 
            PluginBase:: | 
                  protected | property | The plugin implementation definition. | 1 | 
| 
            PluginBase:: | 
                  protected | property | The plugin_id. | |
| 
            PluginBase:: | 
                  protected | property | Stores the render API renderer. | 3 | 
| 
            PluginBase:: | 
                  public | property | The top object of a view. | 1 | 
| 
            PluginBase:: | 
                  public | function | 
            Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: | 
                  14 | 
| 
            PluginBase:: | 
                  public static | function | 
            Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: | 
                  62 | 
| 
            PluginBase:: | 
                  constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
| 
            PluginBase:: | 
                  public | function | 
            Clears a plugin. Overrides ViewsPluginInterface:: | 
                  2 | 
| 
            PluginBase:: | 
                  protected | function | Do the work to filter out stored options depending on the defined options. | |
| 
            PluginBase:: | 
                  public | function | 
            Filter out stored options depending on the defined options. Overrides ViewsPluginInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Returns an array of available token replacements. Overrides ViewsPluginInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | 
                  3 | 
| 
            PluginBase:: | 
                  public | function | 
            Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Returns the plugin provider. Overrides ViewsPluginInterface:: | 
                  |
| 
            PluginBase:: | 
                  protected | function | Returns the render API renderer. | 1 | 
| 
            PluginBase:: | 
                  public | function | 
            Adds elements for available core tokens to a form. Overrides ViewsPluginInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Returns a string with any core tokens replaced. Overrides ViewsPluginInterface:: | 
                  |
| 
            PluginBase:: | 
                  constant | Include entity row languages when listing languages. | ||
| 
            PluginBase:: | 
                  constant | Include negotiated languages when listing languages. | ||
| 
            PluginBase:: | 
                  public | function | 
            Initialize the plugin. Overrides ViewsPluginInterface:: | 
                  8 | 
| 
            PluginBase:: | 
                  public | function | Determines if the plugin is configurable. | |
| 
            PluginBase:: | 
                  protected | function | Makes an array of languages, optionally including special languages. | |
| 
            PluginBase:: | 
                  public | function | 
            Return the human readable name of the display. Overrides ViewsPluginInterface:: | 
                  |
| 
            PluginBase:: | 
                  public static | function | 
            Moves form elements into fieldsets for presentation purposes. Overrides ViewsPluginInterface:: | 
                  |
| 
            PluginBase:: | 
                  public static | function | 
            Flattens the structure of form elements. Overrides ViewsPluginInterface:: | 
                  |
| 
            PluginBase:: | 
                  public static | function | Returns substitutions for Views queries for languages. | |
| 
            PluginBase:: | 
                  protected | function | Fills up the options of the plugin with defaults. | |
| 
            PluginBase:: | 
                  public | function | 
            Returns the summary of the settings in the display. Overrides ViewsPluginInterface:: | 
                  6 | 
| 
            PluginBase:: | 
                  public | function | 
            Provide a full list of possible theme templates used by this style. Overrides ViewsPluginInterface:: | 
                  1 | 
| 
            PluginBase:: | 
                  public static | function | 
            Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface:: | 
                  6 | 
| 
            PluginBase:: | 
                  public | function | 
            Unpack options over our existing defaults, drilling down into arrays
so that defaults don't get totally blown away. Overrides ViewsPluginInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Returns the usesOptions property. Overrides ViewsPluginInterface:: | 
                  8 | 
| 
            PluginBase:: | 
                  public | function | 
            Validate that the plugin is correct and can be saved. Overrides ViewsPluginInterface:: | 
                  6 | 
| 
            PluginBase:: | 
                  protected | function | Replaces Views' tokens in a given string. The resulting string will be sanitized with Xss::filterAdmin. | 1 | 
| 
            PluginBase:: | 
                  constant | Query string to indicate the site default language. | ||
| 
            PluginBase:: | 
                  public | function | 
            Constructs a PluginBase object. Overrides PluginBase:: | 
                  |
| 
            RowPluginBase:: | 
                  protected | property | Does the row plugin support to add fields to its output. | 4 | 
| 
            RowPluginBase:: | 
                  protected | property | 
            Denotes whether the plugin has an additional options form. Overrides PluginBase:: | 
                  1 | 
| 
            RowPluginBase:: | 
                  public | function | 
            Provide a form for setting options. Overrides PluginBase:: | 
                  8 | 
| 
            RowPluginBase:: | 
                  protected | function | 
            Information about options for all kinds of purposes will be held here. Overrides PluginBase:: | 
                  8 | 
| 
            RowPluginBase:: | 
                  public | function | Allow the style to do stuff before each row is rendered. | 4 | 
| 
            RowPluginBase:: | 
                  public | function | 
            Add anything to the query that we might need to. Overrides PluginBase:: | 
                  2 | 
| 
            RowPluginBase:: | 
                  public | function | Render a row object. This usually passes through to a theme template of some form, but not always. | 10 | 
| 
            RowPluginBase:: | 
                  public | function | 
            Perform any necessary changes to the form values prior to storage.
There is no need for this function to actually store the data. Overrides PluginBase:: | 
                  1 | 
| 
            RowPluginBase:: | 
                  public | function | Returns the usesFields property. | 4 | 
| 
            RowPluginBase:: | 
                  public | function | 
            Validate the options form. Overrides PluginBase:: | 
                  1 | 
| 
            StringTranslationTrait:: | 
                  protected | property | The string translation service. | 1 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Formats a string containing a count of items. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Returns the number of plurals supported by a given language. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Gets the string translation service. | |
| 
            StringTranslationTrait:: | 
                  public | function | Sets the string translation service to use. | 2 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Translates a string to the current language or to a given language. | |
| 
            TrustedCallbackInterface:: | 
                  constant | Untrusted callbacks throw exceptions. | ||
| 
            TrustedCallbackInterface:: | 
                  constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||
| 
            TrustedCallbackInterface:: | 
                  constant | Untrusted callbacks trigger E_USER_WARNING errors. |