NodeAuthor.php in Display Suite 8.4
File
src/Plugin/DsField/Node/NodeAuthor.php
View source
<?php
namespace Drupal\ds\Plugin\DsField\Node;
use Drupal\ds\Plugin\DsField\DsFieldBase;
class NodeAuthor extends DsFieldBase {
public function build() {
$node = $this
->entity();
$user = $node
->getOwner();
if (empty($user->name)) {
return [
'#plain_text' => \Drupal::config('user.settings')
->get('anonymous'),
];
}
$field = $this
->getFieldConfiguration();
if ($field['formatter'] == 'author') {
return [
'#markup' => $user
->getAccountName(),
'#cache' => [
'tags' => $user
->getCacheTags(),
],
];
}
if ($field['formatter'] == 'author_linked') {
return [
'#theme' => 'username',
'#account' => $user,
'#cache' => [
'tags' => $user
->getCacheTags(),
],
];
}
return [];
}
public function formatters() {
$formatters = [
'author' => $this
->t('Author'),
'author_linked' => $this
->t('Author linked to profile'),
];
return $formatters;
}
}