class Rss
Plugin which formats the comments as RSS items.
Attributes
#[ViewsRow(id: "comment_rss", title: new TranslatableMarkup("Comment"), help: new TranslatableMarkup("Display the comment as RSS."), theme: "views_view_row_rss", register_theme: FALSE, base: [
"comment_field_data",
], display_types: [
"feed",
])]
  Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase- class \Drupal\views\Plugin\views\PluginBase implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\views\Plugin\views\ViewsPluginInterface, \Drupal\Component\Plugin\DependentPluginInterface, \Drupal\Core\Security\TrustedCallbackInterface extends \Drupal\Core\Plugin\PluginBase- class \Drupal\views\Plugin\views\row\RowPluginBase extends \Drupal\views\Plugin\views\PluginBase- class \Drupal\views\Plugin\views\row\RssPluginBase extends \Drupal\views\Plugin\views\row\RowPluginBase- class \Drupal\comment\Plugin\views\row\Rss extends \Drupal\views\Plugin\views\row\RssPluginBase
 
 
- class \Drupal\views\Plugin\views\row\RssPluginBase extends \Drupal\views\Plugin\views\row\RowPluginBase
 
- class \Drupal\views\Plugin\views\row\RowPluginBase extends \Drupal\views\Plugin\views\PluginBase
 
- class \Drupal\views\Plugin\views\PluginBase implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\views\Plugin\views\ViewsPluginInterface, \Drupal\Component\Plugin\DependentPluginInterface, \Drupal\Core\Security\TrustedCallbackInterface extends \Drupal\Core\Plugin\PluginBase
 
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase
Expanded class hierarchy of Rss
39 string references to 'Rss'
- book_node_links_alter in core/modules/ book/ book.module 
- Implements hook_node_links_alter().
- CommentLinkBuilder::buildCommentedEntityLinks in core/modules/ comment/ src/ CommentLinkBuilder.php 
- Builds links for the given entity.
- CommentLinkBuilderTest::getLinkCombinations in core/modules/ comment/ tests/ src/ Unit/ CommentLinkBuilderTest.php 
- Data provider for ::testCommentLinkBuilder.
- comment_entity_view in core/modules/ comment/ comment.module 
- Implements hook_entity_view().
- ConfigNamesMapperTest::testGetConfigData in core/modules/ config_translation/ tests/ src/ Unit/ ConfigNamesMapperTest.php 
- Tests ConfigNamesMapper::getConfigData().
File
- 
              core/modules/ comment/ src/ Plugin/ views/ row/ Rss.php, line 12 
Namespace
Drupal\comment\Plugin\views\rowView source
class Rss extends RssPluginBase {
  
  /**
   * {@inheritdoc}
   */
  // phpcs:ignore Drupal.NamingConventions.ValidVariableName.LowerCamelName
  protected $base_table = 'comment_field_data';
  
  /**
   * {@inheritdoc}
   */
  // phpcs:ignore Drupal.NamingConventions.ValidVariableName.LowerCamelName
  public string $base_field = 'cid';
  
  /**
   * The field alias.
   */
  // phpcs:ignore Drupal.NamingConventions.ValidVariableName.LowerCamelName
  public string $field_alias;
  
  /**
   * @var \Drupal\comment\CommentInterface[]
   */
  protected $comments;
  
  /**
   * {@inheritdoc}
   */
  protected $entityTypeId = 'comment';
  public function preRender($result) {
    $cids = [];
    foreach ($result as $row) {
      $cids[] = $row->cid;
    }
    $this->comments = $this->entityTypeManager
      ->getStorage('comment')
      ->loadMultiple($cids);
  }
  
  /**
   * {@inheritdoc}
   */
  public function buildOptionsForm_summary_options() {
    $options = parent::buildOptionsForm_summary_options();
    $options['title'] = $this->t('Title only');
    $options['default'] = $this->t('Use site default RSS settings');
    return $options;
  }
  public function render($row) {
    global $base_url;
    $cid = $row->{$this->field_alias};
    if (!is_numeric($cid)) {
      return;
    }
    $view_mode = $this->options['view_mode'];
    if ($view_mode == 'default') {
      $view_mode = \Drupal::config('system.rss')->get('items.view_mode');
    }
    // Load the specified comment and its associated node:
    /** @var \Drupal\comment\CommentInterface $comment */
    $comment = $this->comments[$cid];
    if (empty($comment)) {
      return;
    }
    $comment->rss_namespaces = [];
    $comment->rss_elements = [
      [
        'key' => 'pubDate',
        'value' => gmdate('r', $comment->getCreatedTime()),
      ],
      [
        'key' => 'dc:creator',
        'value' => $comment->getAuthorName(),
      ],
      [
        'key' => 'guid',
        'value' => 'comment ' . $comment->id() . ' at ' . $base_url,
        'attributes' => [
          'isPermaLink' => 'false',
        ],
      ],
    ];
    // The comment gets built and modules add to or modify
    // $comment->rss_elements and $comment->rss_namespaces.
    $build = $this->entityTypeManager
      ->getViewBuilder('comment')
      ->view($comment, 'rss');
    unset($build['#theme']);
    if (!empty($comment->rss_namespaces)) {
      $this->view->style_plugin->namespaces = array_merge($this->view->style_plugin->namespaces, $comment->rss_namespaces);
    }
    $item = new \stdClass();
    if ($view_mode != 'title') {
      // We render comment contents.
      $item->description = $build;
    }
    $item->title = $comment->label();
    $item->link = $comment->toUrl('canonical', [
      'absolute' => TRUE,
    ])
      ->toString();
    // Provide a reference so that the render call in
    // template_preprocess_views_view_row_rss() can still access it.
    $item->elements =& $comment->rss_elements;
    $item->cid = $comment->id();
    $build = [
      '#theme' => $this->themeFunctions(),
      '#view' => $this->view,
      '#options' => $this->options,
      '#row' => $item,
    ];
    return $build;
  }
}Members
| Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides | 
|---|---|---|---|---|---|---|
| DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | |||
| DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | |||
| DependencySerializationTrait::__sleep | public | function | 2 | |||
| DependencySerializationTrait::__wakeup | public | function | #[\ReturnTypeWillChange] | 2 | ||
| MessengerTrait::$messenger | protected | property | The messenger. | 25 | ||
| MessengerTrait::messenger | public | function | Gets the messenger. | 25 | ||
| MessengerTrait::setMessenger | public | function | Sets the messenger. | |||
| PluginBase::$configuration | protected | property | Configuration information passed into the plugin. | 1 | ||
| PluginBase::$definition | public | property | Plugins' definition. | |||
| PluginBase::$displayHandler | public | property | The display object this plugin is for. | |||
| PluginBase::$options | public | property | Options for this plugin will be held here. | |||
| PluginBase::$pluginDefinition | protected | property | The plugin implementation definition. | 1 | ||
| PluginBase::$pluginId | protected | property | The plugin ID. | |||
| PluginBase::$position | public | property | The handler position. | |||
| PluginBase::$renderer | protected | property | Stores the render API renderer. | 3 | ||
| PluginBase::$view | public | property | The top object of a view. | 1 | ||
| PluginBase::DERIVATIVE_SEPARATOR | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||||
| PluginBase::destroy | public | function | Clears a plugin. | Overrides ViewsPluginInterface::destroy | 2 | |
| PluginBase::doFilterByDefinedOptions | protected | function | Do the work to filter out stored options depending on the defined options. | |||
| PluginBase::filterByDefinedOptions | public | function | Filter out stored options depending on the defined options. | Overrides ViewsPluginInterface::filterByDefinedOptions | ||
| PluginBase::getAvailableGlobalTokens | public | function | Returns an array of available token replacements. | Overrides ViewsPluginInterface::getAvailableGlobalTokens | ||
| PluginBase::getBaseId | public | function | Gets the base_plugin_id of the plugin instance. | Overrides DerivativeInspectionInterface::getBaseId | ||
| PluginBase::getDerivativeId | public | function | Gets the derivative_id of the plugin instance. | Overrides DerivativeInspectionInterface::getDerivativeId | ||
| PluginBase::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | Overrides PluginInspectionInterface::getPluginDefinition | 2 | |
| PluginBase::getPluginId | public | function | Gets the plugin ID of the plugin instance. | Overrides PluginInspectionInterface::getPluginId | ||
| PluginBase::getProvider | public | function | Returns the plugin provider. | Overrides ViewsPluginInterface::getProvider | ||
| PluginBase::getRenderer | protected | function | Returns the render API renderer. | 1 | ||
| PluginBase::globalTokenForm | public | function | Adds elements for available core tokens to a form. | Overrides ViewsPluginInterface::globalTokenForm | ||
| PluginBase::globalTokenReplace | public | function | Returns a string with any core tokens replaced. | Overrides ViewsPluginInterface::globalTokenReplace | ||
| PluginBase::INCLUDE_ENTITY | constant | Include entity row languages when listing languages. | ||||
| PluginBase::INCLUDE_NEGOTIATED | constant | Include negotiated languages when listing languages. | ||||
| PluginBase::init | public | function | Initialize the plugin. | Overrides ViewsPluginInterface::init | 6 | |
| PluginBase::isConfigurable | public | function | Determines if the plugin is configurable. | |||
| PluginBase::listLanguages | protected | function | Makes an array of languages, optionally including special languages. | |||
| PluginBase::pluginTitle | public | function | Return the human readable name of the display. | Overrides ViewsPluginInterface::pluginTitle | ||
| PluginBase::preRenderAddFieldsetMarkup | public static | function | Moves form elements into fieldsets for presentation purposes. | Overrides ViewsPluginInterface::preRenderAddFieldsetMarkup | ||
| PluginBase::preRenderFlattenData | public static | function | Flattens the structure of form elements. | Overrides ViewsPluginInterface::preRenderFlattenData | ||
| PluginBase::queryLanguageSubstitutions | public static | function | Returns substitutions for Views queries for languages. | |||
| PluginBase::setOptionDefaults | protected | function | Fills up the options of the plugin with defaults. | |||
| PluginBase::summaryTitle | public | function | Returns the summary of the settings in the display. | Overrides ViewsPluginInterface::summaryTitle | 6 | |
| PluginBase::themeFunctions | public | function | Provide a full list of possible theme templates used by this style. | Overrides ViewsPluginInterface::themeFunctions | 1 | |
| PluginBase::trustedCallbacks | public static | function | Lists the trusted callbacks provided by the implementing class. | Overrides TrustedCallbackInterface::trustedCallbacks | 6 | |
| PluginBase::unpackOptions | public | function | Unpacks options over our existing defaults. | Overrides ViewsPluginInterface::unpackOptions | ||
| PluginBase::usesOptions | public | function | Returns the usesOptions property. | Overrides ViewsPluginInterface::usesOptions | 8 | |
| PluginBase::validate | public | function | Validate that the plugin is correct and can be saved. | Overrides ViewsPluginInterface::validate | 6 | |
| PluginBase::viewsTokenReplace | protected | function | Replaces Views' tokens in a given string. | 1 | ||
| PluginBase::VIEWS_QUERY_LANGUAGE_SITE_DEFAULT | constant | Query string to indicate the site default language. | ||||
| RowPluginBase::$usesFields | protected | property | Does the row plugin support to add fields to its output. | 4 | ||
| RowPluginBase::$usesOptions | protected | property | Denotes whether the plugin has an additional options form. | Overrides PluginBase::$usesOptions | 1 | |
| RowPluginBase::query | public | function | Add anything to the query that we might need to. | Overrides PluginBase::query | 2 | |
| RowPluginBase::submitOptionsForm | public | function | Perform any necessary changes to the form values prior to storage. | Overrides PluginBase::submitOptionsForm | 1 | |
| RowPluginBase::usesFields | public | function | Returns the usesFields property. | 4 | ||
| RowPluginBase::validateOptionsForm | public | function | Validate the options form. | Overrides PluginBase::validateOptionsForm | 1 | |
| Rss::$base_field | public | property | The actual field used. | Overrides RowPluginBase::$base_field | ||
| Rss::$base_table | protected | property | ||||
| Rss::$comments | protected | property | ||||
| Rss::$entityTypeId | protected | property | The ID of the entity type for which this is an RSS row plugin. | Overrides RssPluginBase::$entityTypeId | ||
| Rss::$field_alias | public | property | The field alias. | Overrides RowPluginBase::$field_alias | ||
| Rss::buildOptionsForm_summary_options | public | function | Return the main options, which are shown in the summary title. | Overrides RssPluginBase::buildOptionsForm_summary_options | ||
| Rss::preRender | public | function | Allow the style to do stuff before each row is rendered. | Overrides RowPluginBase::preRender | ||
| Rss::render | public | function | Renders a row object. | Overrides RowPluginBase::render | ||
| RssPluginBase::$entityDisplayRepository | protected | property | The entity display repository. | |||
| RssPluginBase::$entityTypeManager | protected | property | The entity type manager. | |||
| RssPluginBase::buildOptionsForm | public | function | Provide a form for setting options. | Overrides RowPluginBase::buildOptionsForm | ||
| RssPluginBase::calculateDependencies | public | function | Calculates dependencies for the configured plugin. | Overrides PluginBase::calculateDependencies | ||
| RssPluginBase::create | public static | function | Creates an instance of the plugin. | Overrides PluginBase::create | ||
| RssPluginBase::defineOptions | protected | function | Information about options for all kinds of purposes will be held here. | Overrides RowPluginBase::defineOptions | ||
| RssPluginBase::__construct | public | function | Constructs a RssPluginBase object. | Overrides PluginBase::__construct | ||
| StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | ||
| StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | |||
| StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | |||
| StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | |||
| StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | ||
| StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | |||
| TrustedCallbackInterface::THROW_EXCEPTION | constant | Untrusted callbacks throw exceptions. | ||||
| TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION | constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||||
| TrustedCallbackInterface::TRIGGER_WARNING | Deprecated | constant | Untrusted callbacks trigger E_USER_WARNING errors. | 
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
