display_builder-1.0.x-dev/modules/display_builder_views/src/Plugin/UiPatterns/Source/ViewFooterSource.php
modules/display_builder_views/src/Plugin/UiPatterns/Source/ViewFooterSource.php
<?php
declare(strict_types=1);
namespace Drupal\display_builder_views\Plugin\UiPatterns\Source;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\display_builder_views\Plugin\ViewsUiPatternsSourceBase;
use Drupal\ui_patterns\Attribute\Source;
/**
* Plugin implementation of the source for views.
*/
#[Source(
id: 'View_footer_source',
label: new TranslatableMarkup('View footer'),
description: new TranslatableMarkup('The Views footer area.'),
context_requirements: ['is_display_builder_views'],
prop_types: ['slot'],
tags: ['views'],
)]
class ViewFooterSource extends ViewsUiPatternsSourceBase {
/**
* {@inheritdoc}
*/
public static function setVariableId(): string {
return 'footer';
}
/**
* {@inheritdoc}
*/
public function getPropValue(): mixed {
$view = $this->getView();
if (!$view) {
return $this->t('View Footer placeholder');
}
if (!$view->footer || empty($view->footer)) {
return '';
}
$output = [];
foreach ($view->footer as $key => $value) {
$output[$key] = $value->render();
}
return $output;
}
}
