class StatisticsLastCommentName

Same name in this branch
  1. 8.9.x core/modules/comment/src/Plugin/views/sort/StatisticsLastCommentName.php \Drupal\comment\Plugin\views\sort\StatisticsLastCommentName
Same name and namespace in other branches
  1. 11.x core/modules/comment/src/Plugin/views/sort/StatisticsLastCommentName.php \Drupal\comment\Plugin\views\sort\StatisticsLastCommentName
  2. 11.x core/modules/comment/src/Plugin/views/field/StatisticsLastCommentName.php \Drupal\comment\Plugin\views\field\StatisticsLastCommentName
  3. 10 core/modules/comment/src/Plugin/views/sort/StatisticsLastCommentName.php \Drupal\comment\Plugin\views\sort\StatisticsLastCommentName
  4. 10 core/modules/comment/src/Plugin/views/field/StatisticsLastCommentName.php \Drupal\comment\Plugin\views\field\StatisticsLastCommentName
  5. 9 core/modules/comment/src/Plugin/views/sort/StatisticsLastCommentName.php \Drupal\comment\Plugin\views\sort\StatisticsLastCommentName
  6. 9 core/modules/comment/src/Plugin/views/field/StatisticsLastCommentName.php \Drupal\comment\Plugin\views\field\StatisticsLastCommentName

Field handler to present the name of the last comment poster.

Plugin annotation

@ViewsField("comment_ces_last_comment_name");

Hierarchy

Expanded class hierarchy of StatisticsLastCommentName

Related topics

File

core/modules/comment/src/Plugin/views/field/StatisticsLastCommentName.php, line 16

Namespace

Drupal\comment\Plugin\views\field
View source
class StatisticsLastCommentName extends FieldPluginBase {
  
  /**
   * {@inheritdoc}
   */
  public function query() {
    // last_comment_name only contains data if the user is anonymous. So we
    // have to join in a specially related user table.
    $this->ensureMyTable();
    // join 'users' to this table via vid
    $definition = [
      'table' => 'users_field_data',
      'field' => 'uid',
      'left_table' => 'comment_entity_statistics',
      'left_field' => 'last_comment_uid',
      'extra' => [
        [
          'field' => 'uid',
          'operator' => '!=',
          'value' => '0',
        ],
      ],
    ];
    $join = \Drupal::service('plugin.manager.views.join')->createInstance('standard', $definition);
    // nes_user alias so this can work with the sort handler, below.
    $this->user_table = $this->query
      ->ensureTable('ces_users', $this->relationship, $join);
    $this->field_alias = $this->query
      ->addField(NULL, "COALESCE({$this->user_table}.name, {$this->tableAlias}.{$this->field})", $this->tableAlias . '_' . $this->field);
    $this->user_field = $this->query
      ->addField($this->user_table, 'name');
    $this->uid = $this->query
      ->addField($this->tableAlias, 'last_comment_uid');
  }
  
  /**
   * {@inheritdoc}
   */
  protected function defineOptions() {
    $options = parent::defineOptions();
    $options['link_to_user'] = [
      'default' => TRUE,
    ];
    return $options;
  }
  
  /**
   * {@inheritdoc}
   */
  public function render(ResultRow $values) {
    if (!empty($this->options['link_to_user'])) {
      $account = User::create();
      $account->name = $this->getValue($values);
      $account->uid = $values->{$this->uid};
      $username = [
        '#theme' => 'username',
        '#account' => $account,
      ];
      return \Drupal::service('renderer')->render($username);
    }
    else {
      return $this->sanitizeValue($this->getValue($values));
    }
  }

}

Members

Title Sort descending 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
DependencySerializationTrait::__wakeup public function
FieldPluginBase::$additional_fields public property Stores additional fields which get added to the query.
FieldPluginBase::$aliases public property
FieldPluginBase::$field_alias public property
FieldPluginBase::$lastRenderIndex protected property Keeps track of the last render index.
FieldPluginBase::$linkGenerator protected property The link generator.
FieldPluginBase::$original_value public property The field value prior to any rewriting.
FieldPluginBase::$renderer protected property Stores the render API renderer. 1
FieldPluginBase::addAdditionalFields protected function Add 'additional' fields to the query.
FieldPluginBase::addSelfTokens protected function Add any special tokens this field might use for itself. 1
FieldPluginBase::adminLabel public function
FieldPluginBase::adminSummary public function Provide extra data to the administration form
FieldPluginBase::advancedRender public function
FieldPluginBase::allowAdvancedRender protected function Determine if this field can allow advanced rendering.
FieldPluginBase::buildOptionsForm public function Default options form that provides the label widget that all fields
should have.
3
FieldPluginBase::clickSort public function 1
FieldPluginBase::clickSortable public function 2
FieldPluginBase::documentSelfTokens protected function Document any special tokens this field might use for itself. 1
FieldPluginBase::elementClasses public function
FieldPluginBase::elementLabelClasses public function
FieldPluginBase::elementLabelType public function
FieldPluginBase::elementType public function
FieldPluginBase::elementWrapperClasses public function
FieldPluginBase::elementWrapperType public function
FieldPluginBase::getElements public function
FieldPluginBase::getEntity public function
FieldPluginBase::getFieldTokenPlaceholder protected function Returns a token placeholder for the current field.
FieldPluginBase::getPreviousFieldLabels protected function Returns all field labels of fields before this field.
FieldPluginBase::getRenderer protected function Returns the render API renderer.
FieldPluginBase::getRenderTokens public function
FieldPluginBase::getTokenValuesRecursive protected function Recursive function to add replacements for nested query string parameters.
FieldPluginBase::getValue public function 1
FieldPluginBase::init public function 2
FieldPluginBase::isValueEmpty public function
FieldPluginBase::label public function
FieldPluginBase::linkGenerator protected function Gets the link generator.
FieldPluginBase::postRender public function
FieldPluginBase::preRender public function 2
FieldPluginBase::renderAltered protected function Render this field as user-defined altered text.
FieldPluginBase::renderAsLink protected function Render this field as a link, with the info from a fieldset set by
the user.
FieldPluginBase::renderText public function
FieldPluginBase::renderTrimText protected function Trims the field down to the specified length.
FieldPluginBase::RENDER_TEXT_PHASE_COMPLETELY constant Indicator of the renderText() method for rendering the whole element.
(if no render_item() method is available).
FieldPluginBase::RENDER_TEXT_PHASE_EMPTY constant Indicator of the renderText() method for rendering the empty text.
FieldPluginBase::RENDER_TEXT_PHASE_SINGLE_ITEM constant Indicator of the renderText() method for rendering a single item.
(If no render_item() is present).
FieldPluginBase::submitOptionsForm public function Performs some cleanup tasks on the options array before saving it. 1
FieldPluginBase::theme public function
FieldPluginBase::themeFunctions public function
FieldPluginBase::tokenizeValue public function
FieldPluginBase::trimText public static function Trims the field down to the specified length.
FieldPluginBase::useStringGroupBy public function
HandlerBase::$field public property With field you can override the realField if the real field is not set.
HandlerBase::$moduleHandler protected property The module handler.
HandlerBase::$query public property Where the $query object will reside:
HandlerBase::$realField public property The actual field in the database table, maybe different
on other kind of query plugins/special handlers.
HandlerBase::$relationship public property The relationship used for this field.
HandlerBase::$table public property The table this handler is attached to.
HandlerBase::$tableAlias public property The alias of the table of this handler which is used in the query.
HandlerBase::$viewsData protected property The views data service.
HandlerBase::acceptExposedInput public function Take input from exposed handlers and assign to this handler, if necessary.
HandlerBase::access public function 1
HandlerBase::breakString public static function
HandlerBase::broken public function
HandlerBase::buildExposedForm public function Render our chunk of the exposed handler form when selecting
HandlerBase::buildExposeForm public function Form for exposed handler options.
HandlerBase::buildExtraOptionsForm public function Provide a form for setting options.
HandlerBase::buildGroupByForm public function Provide a form for aggregation settings. 1
HandlerBase::calculateDependencies public function 3
HandlerBase::canExpose public function Determine if a handler can be exposed.
HandlerBase::caseTransform protected function Transform a string by a certain method.
HandlerBase::defaultExposeOptions public function Set new exposed option defaults when exposed setting is flipped
on.
HandlerBase::defineExtraOptions public function Provide defaults for the handler.
HandlerBase::displayExposedForm public function Displays the Expose form.
HandlerBase::ensureMyTable public function
HandlerBase::exposedInfo public function Get information about the exposed form for the form renderer.
HandlerBase::getDateField public function Creates cross-database SQL dates.
HandlerBase::getDateFormat public function Creates cross-database SQL date formatting.
HandlerBase::getEntityType public function
HandlerBase::getField public function
HandlerBase::getJoin public function
HandlerBase::getModuleHandler protected function Gets the module handler.
HandlerBase::getTableJoin public static function
HandlerBase::getViewsData protected function Gets views data service.
HandlerBase::hasExtraOptions public function If a handler has 'extra options' it will get a little settings widget and
another form called extra_options.
HandlerBase::isAGroup public function Returns TRUE if the exposed filter works like a grouped filter.
HandlerBase::isExposed public function Determine if this item is 'exposed', meaning it provides form elements
to let users modify the view.
HandlerBase::multipleExposedInput public function Define if the exposed input has to be submitted multiple times.
This is TRUE when exposed filters grouped are using checkboxes as
widgets.
HandlerBase::placeholder protected function Provides a unique placeholders for handlers.
HandlerBase::postExecute public function
HandlerBase::preQuery public function
HandlerBase::sanitizeValue public function
HandlerBase::setModuleHandler public function Sets the module handler.
HandlerBase::setRelationship public function
HandlerBase::setViewsData public function
HandlerBase::showExposeButton public function Shortcut to display the expose/hide button.
HandlerBase::showExposeForm public function Shortcut to display the exposed options form.
HandlerBase::storeExposedInput public function If set to remember exposed input in the session, store it there.
HandlerBase::submitExposed public function Submit the exposed handler form
HandlerBase::submitExposeForm public function Perform any necessary changes to the form exposes prior to storage.
There is no need for this function to actually store the data.
HandlerBase::submitExtraOptionsForm 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.
HandlerBase::submitFormCalculateOptions public function Calculates options stored on the handler 1
HandlerBase::submitGroupByForm 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.
1
HandlerBase::submitTemporaryForm public function A submit handler that is used for storing temporary items when using
multi-step changes, such as ajax requests.
HandlerBase::usesGroupBy public function Provides the handler some groupby.
HandlerBase::validate public function
HandlerBase::validateExposed public function Validate the exposed handler form
HandlerBase::validateExposeForm public function Validate the options form.
HandlerBase::validateExtraOptionsForm public function Validate the options form.
HandlerBase::__construct public function Constructs a Handler object. 4
MessengerTrait::$messenger protected property The messenger. 3
MessengerTrait::messenger public function Gets the messenger. 3
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$definition public property Plugins's 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.
PluginBase::$pluginId protected property The plugin_id.
PluginBase::$usesOptions protected property Denotes whether the plugin has an additional options form.
PluginBase::$view public property The top object of a view.
PluginBase::create public static function 5
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::destroy public function
PluginBase::doFilterByDefinedOptions protected function Do the work to filter out stored options depending on the defined options.
PluginBase::filterByDefinedOptions public function
PluginBase::getAvailableGlobalTokens public function
PluginBase::getBaseId public function
PluginBase::getDerivativeId public function
PluginBase::getPluginDefinition public function 1
PluginBase::getPluginId public function
PluginBase::getProvider public function
PluginBase::globalTokenForm public function
PluginBase::globalTokenReplace public function
PluginBase::INCLUDE_ENTITY constant Include entity row languages when listing languages.
PluginBase::INCLUDE_NEGOTIATED constant Include negotiated languages when listing languages.
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
PluginBase::preRenderAddFieldsetMarkup public static function
PluginBase::preRenderFlattenData public static function
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 1
PluginBase::trustedCallbacks public static function
PluginBase::unpackOptions public function
PluginBase::usesOptions public function
PluginBase::validateOptionsForm public function 2
PluginBase::viewsTokenReplace protected function Replaces Views' tokens in a given string. The resulting string will be
sanitized with Xss::filterAdmin.
PluginBase::VIEWS_QUERY_LANGUAGE_SITE_DEFAULT constant Query string to indicate the site default language.
StatisticsLastCommentName::defineOptions protected function Information about options for all kinds of purposes will be held here. Overrides FieldPluginBase::defineOptions
StatisticsLastCommentName::query public function Called to add the field to a query. Overrides FieldPluginBase::query
StatisticsLastCommentName::render public function Renders the field. Overrides FieldPluginBase::render
StringTranslationTrait::$stringTranslation protected property The string translation service.
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. 1
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 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.