public function CalendarHeader::render in Calendar 8.2
Same name and namespace in other branches
- 8 src/Plugin/views/area/CalendarHeader.php \Drupal\calendar\Plugin\views\area\CalendarHeader::render()
Render the area.
Parameters
bool $empty: (optional) Indicator if view result is empty or not. Defaults to FALSE.
Return value
array In any case we need a valid Drupal render array to return.
Overrides AreaPluginBase::render
File
- src/
Plugin/ views/ area/ CalendarHeader.php, line 111
Class
- CalendarHeader
- Views area Calendar Header area.
Namespace
Drupal\calendar\Plugin\views\areaCode
public function render($empty = FALSE) {
if (!$empty || !empty($this->options['empty'])) {
$header_text = $date_argument = NULL;
$render = [];
$calendar_arguments = $this->calendarHelper
->getCalendarArguments($this->view);
foreach ($calendar_arguments as $date_argument) {
switch ($date_argument['id']) {
case 'calendar_day':
$date = new DrupalDateTime($date_argument['argument']);
$argument_text = $date
->format('F d Y');
$header_text = $this
->renderTextField($argument_text);
break;
case 'calendar_year_week':
$date = $this->calendarHelper
->weekInfo($date_argument['argument']);
$argument_text = $this
->t('Week') . ' ' . $date['weekno'] . ' ' . $this
->t('starting') . ' ' . $date['startweekdate']
->format('F d Y');
$header_text = $this
->renderTextField($argument_text);
break;
case 'calendar_year_month':
$date = new DrupalDateTime($date_argument['argument'] . '01');
$argument_text = $date
->format('F') . ' ' . $date
->format('Y');
$header_text = $this
->renderTextField($argument_text);
break;
case 'calendar_year':
break;
}
if (!$this->options['pager_embed']) {
$render = [
'#theme' => 'calendar_header',
'#title' => $header_text,
];
}
else {
if ($this->view->display_handler
->renderPager()) {
$exposed_input = isset($this->view->exposed_raw_input) ? $this->view->exposed_raw_input : NULL;
$render = $this->view
->renderPager($exposed_input);
$render['#exclude'] = FALSE;
$render['#items']['current'] = $header_text;
}
}
}
return $render;
}
return [];
}