public function __construct( private readonly RoutingExtension
$routingExtension,
private readonly AbstractCategoryUrlGenerator
$categoryUrlGenerator ) { } public function getFunctions(): array
{ return [ new TwigFunction('category_url',
$this->
getCategoryUrl(...
),
['needs_context' => true, 'is_safe_callback' =>
$this->routingExtension->
isUrlGenerationSafe(...
)]),
new TwigFunction('category_linknewtab',
$this->
isLinkNewTab(...
)),
];
} public function getCategoryUrl(array
$twigContext, CategoryEntity
$category): ?string
{ $salesChannel = null;
if (\
array_key_exists('context',
$twigContext) &&
$twigContext['context'
] instanceof SalesChannelContext
) { $salesChannel =
$twigContext['context'
]->
getSalesChannel();
} return $this->categoryUrlGenerator->
generate($category,
$salesChannel);
}