public function NodeAuthor::build in Display Suite 8.2
Same name and namespace in other branches
- 8.4 src/Plugin/DsField/Node/NodeAuthor.php \Drupal\ds\Plugin\DsField\Node\NodeAuthor::build()
- 8.3 src/Plugin/DsField/Node/NodeAuthor.php \Drupal\ds\Plugin\DsField\Node\NodeAuthor::build()
Renders a field.
Overrides DsFieldBase::build
File
- src/
Plugin/ DsField/ Node/ NodeAuthor.php, line 22
Class
- NodeAuthor
- Plugin that renders the author of a node.
Namespace
Drupal\ds\Plugin\DsField\NodeCode
public function build() {
/* @var $node NodeInterface */
$node = $this
->entity();
/* @var $user UserInterface */
$user = $node
->getOwner();
// Users without a user name are anonymous users. These are never linked.
if (empty($user->name)) {
return array(
'#plain_text' => \Drupal::config('user.settings')
->get('anonymous'),
);
}
$field = $this
->getFieldConfiguration();
if ($field['formatter'] == 'author') {
return array(
'#markup' => $user
->getUsername(),
'#cache' => array(
'tags' => $user
->getCacheTags(),
),
);
}
if ($field['formatter'] == 'author_linked') {
return array(
'#theme' => 'username',
'#account' => $user,
'#cache' => array(
'tags' => $user
->getCacheTags(),
),
);
}
// Otherwise return an empty array.
return array();
}