public static function CalendarHelper::getURLForGranularity in Calendar 8
Get the Url object that will link to the view for the given granularity and arguments.
@todo Allow a View to link to other Views by itself for a certain granularity.
Parameters
\Drupal\views\ViewExecutable $view: The view executable service.
$granularity:
$arguments:
Return value
\Drupal\Core\Url|null
5 calls to CalendarHelper::getURLForGranularity()
- Calendar::calendarBuildMiniWeek in src/
Plugin/ views/ style/ Calendar.php - Build one mini week row.
- Calendar::calendarBuildMonth in src/
Plugin/ views/ style/ Calendar.php - Build one month.
- template_preprocess_calendar_datebox in ./
calendar.theme.inc - Create the calendar date box.
- template_preprocess_calendar_mini in ./
calendar.theme.inc - Display a mini month view.
- template_preprocess_calendar_month_multiple_entity in ./
calendar.theme.inc - Format an calendar month node for display.
File
- src/
CalendarHelper.php, line 897
Class
- CalendarHelper
- Defines Gregorian Calendar date values.
Namespace
Drupal\calendarCode
public static function getURLForGranularity(ViewExecutable $view, $granularity, $arguments) {
$granularity_links = $view
->getStyle()->options['granularity_links'];
if ($granularity_links[$granularity]) {
/** @var \Drupal\Core\Routing\RouteProvider $router */
$router = \Drupal::getContainer()
->get('router.route_provider');
$route_name = $granularity_links[$granularity];
// Check if route exists. $router->getRoutesByName will throw error if no match.
$routes = $router
->getRoutesByNames([
$route_name,
]);
if ($routes) {
return Url::fromRoute($route_name, static::getViewRouteParameters($arguments, $view));
}
}
if ($display_id = static::getDisplayForGranularity($view, $granularity)) {
// @todo Handle arguments in different positions
// @todo Handle query string parameters.
return static::getViewsURL($view, $display_id, $arguments);
}
return NULL;
}