Same filename and directory in other branches
- 8.9.x core/lib/Drupal/Core/Render/Element/SystemCompactLink.php
- 9 core/lib/Drupal/Core/Render/Element/SystemCompactLink.php
Namespace
Drupal\Core\Render\Element
File
core/lib/Drupal/Core/Render/Element/SystemCompactLink.php
View source
<?php
namespace Drupal\Core\Render\Element;
use Drupal\Core\Link as BaseLink;
use Drupal\Core\Render\Attribute\RenderElement;
use Drupal\Core\Url as BaseUrl;
use Drupal\Component\Utility\NestedArray;
class SystemCompactLink extends Link {
public function getInfo() {
$class = static::class;
return [
'#pre_render' => [
[
$class,
'preRenderCompactLink',
],
[
$class,
'preRenderLink',
],
],
'#theme_wrappers' => [
'container' => [
'#attributes' => [
'class' => [
'compact-link',
],
],
],
],
];
}
public static function preRenderCompactLink($element) {
$element += [
'#options' => [],
];
if (system_admin_compact_mode()) {
$element['#title'] = t('Show descriptions');
$element['#url'] = BaseUrl::fromRoute('system.admin_compact_page', [
'mode' => 'off',
]);
$element['#options'] = [
'attributes' => [
'title' => t('Expand layout to include descriptions.'),
],
'query' => \Drupal::destination()
->getAsArray(),
];
}
else {
$element['#title'] = t('Hide descriptions');
$element['#url'] = BaseUrl::fromRoute('system.admin_compact_page', [
'mode' => 'on',
]);
$element['#options'] = [
'attributes' => [
'title' => t('Compress layout by hiding descriptions.'),
],
'query' => \Drupal::destination()
->getAsArray(),
];
}
$options = NestedArray::mergeDeep($element['#url']
->getOptions(), $element['#options']);
$element['#markup'] = BaseLink::fromTextAndUrl($element['#title'], $element['#url']
->setOptions($options))
->toString();
return $element;
}
}
Classes