function VersionHistoryController::getRevisionDescription

Same name in other branches
  1. 11.x core/lib/Drupal/Core/Entity/Controller/VersionHistoryController.php \Drupal\Core\Entity\Controller\VersionHistoryController::getRevisionDescription()

Get a description of the revision.

Parameters

\Drupal\Core\Entity\RevisionableInterface $revision: The entity revision.

Return value

array A render array describing the revision.

1 call to VersionHistoryController::getRevisionDescription()
VersionHistoryController::buildRow in core/lib/Drupal/Core/Entity/Controller/VersionHistoryController.php
Builds a table row for a revision.

File

core/lib/Drupal/Core/Entity/Controller/VersionHistoryController.php, line 143

Class

VersionHistoryController
Provides a controller showing revision history for an entity.

Namespace

Drupal\Core\Entity\Controller

Code

protected function getRevisionDescription(RevisionableInterface $revision) : array {
    $context = [];
    if ($revision instanceof RevisionLogInterface) {
        // Use revision link to link to revisions that are not active.
        [
            'type' => $dateFormatType,
            'format' => $dateFormatFormat,
        ] = $this->getRevisionDescriptionDateFormat($revision);
        $linkText = $this->dateFormatter
            ->format($revision->getRevisionCreationTime(), $dateFormatType, $dateFormatFormat);
        // @todo Simplify this when https://www.drupal.org/node/2334319 lands.
        $username = [
            '#theme' => 'username',
            '#account' => $revision->getRevisionUser(),
        ];
        $context['username'] = $this->renderer
            ->render($username);
    }
    else {
        $linkText = $revision->access('view label') ? $revision->label() : $this->t('- Restricted access -');
    }
    $url = $revision->hasLinkTemplate('revision') ? $revision->toUrl('revision') : NULL;
    $context['revision'] = $url && $url->access() ? Link::fromTextAndUrl($linkText, $url)->toString() : (string) $linkText;
    $context['message'] = $revision instanceof RevisionLogInterface ? [
        '#markup' => $revision->getRevisionLogMessage(),
        '#allowed_tags' => Xss::getHtmlTagList(),
    ] : '';
    return [
        'data' => [
            '#type' => 'inline_template',
            '#template' => isset($context['username']) ? '{% trans %} {{ revision }} by {{ username }}{% endtrans %}{% if message %}<p class="revision-log">{{ message }}</p>{% endif %}' : '{% trans %} {{ revision }} {% endtrans %}{% if message %}<p class="revision-log">{{ message }}</p>{% endif %}',
            '#context' => $context,
        ],
    ];
}

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