Chris@0: renderer = $renderer; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public static function create(ContainerInterface $container) { Chris@0: return new static( Chris@0: $container->get('renderer') Chris@0: ); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns the requested rendered contextual links. Chris@0: * Chris@0: * Given a list of contextual links IDs, render them. Hence this must be Chris@0: * robust to handle arbitrary input. Chris@0: * Chris@0: * @see contextual_preprocess() Chris@0: * Chris@0: * @return \Symfony\Component\HttpFoundation\JsonResponse Chris@0: * The JSON response. Chris@0: */ Chris@0: public function render(Request $request) { Chris@0: $ids = $request->request->get('ids'); Chris@0: if (!isset($ids)) { Chris@0: throw new BadRequestHttpException(t('No contextual ids specified.')); Chris@0: } Chris@0: Chris@0: $rendered = []; Chris@0: foreach ($ids as $id) { Chris@0: $element = [ Chris@0: '#type' => 'contextual_links', Chris@0: '#contextual_links' => _contextual_id_to_links($id), Chris@0: ]; Chris@0: $rendered[$id] = $this->renderer->renderRoot($element); Chris@0: } Chris@0: Chris@0: return new JsonResponse($rendered); Chris@0: } Chris@0: Chris@0: }