12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace Drupal\materio_decoupled\Controller;
- use Drupal\Core\Controller\ControllerBase;
- use Symfony\Component\DependencyInjection\ContainerInterface;
- use Drupal\Core\Language\LanguageManagerInterface;
- use Drupal\Core\Url;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpFoundation\JsonResponse;
- class MaterioDecoupledLanguageLinks extends ControllerBase {
-
- protected $languageManager;
-
- public static function create(ContainerInterface $container) {
- return new static(
- $container->get('language_manager')
- );
- }
-
- public function __construct(LanguageManagerInterface $language_manager) {
- $this->languageManager = $language_manager;
- }
-
- public function getPathTranslationLinks(Request $request) {
- $post_data = json_decode( $request->getContent(),TRUE);
- $path = $post_data['path'];
-
- $url_object = \Drupal::service('path.validator')->getUrlIfValid($path);
- $route_name = $url_object->getRouteName();
- $route_parameters = $url_object->getrouteParameters();
- $languages = $this->languageManager->getNativeLanguages();
- foreach ($languages as $key => $language) {
- $url = Url::fromRoute($route_name, $route_parameters, ["language"=>$language]);
- $links[$key] = [
- "title" => $language->get('label'),
- "url" => $url->toString()
- ];
- }
- $data = array(
- "links" => $links
- );
- return new JsonResponse($data);
- }
- }
|