|
@@ -48,32 +48,32 @@ class MaterioDecoupledLanguageLinks extends ControllerBase {
|
|
|
public function getPathTranslationLinks(Request $request) {
|
|
|
$post_data = json_decode( $request->getContent(),TRUE);
|
|
|
$path = $post_data['path'];
|
|
|
+ $data = [];
|
|
|
|
|
|
// build the links
|
|
|
$url_object = \Drupal::service('path.validator')->getUrlIfValid($path);
|
|
|
- // Call to a member function getRouteName() on bool in Drupal\materio_decoupled\Controller\MaterioDecoupledLanguageLinks->getPathTranslationLinks()
|
|
|
+
|
|
|
+ $languages = $this->languageManager->getNativeLanguages();
|
|
|
if (!$url_object) {
|
|
|
- // if path does not exists rtuen an error
|
|
|
- return new JsonResponse(array(
|
|
|
- "links" => [],
|
|
|
- "error" => "path {$path} is not valid"
|
|
|
- ));
|
|
|
+ // if path does not exists
|
|
|
+ $data["error"] = "path {$path} is not valid";
|
|
|
+ $route_name = "<front>";
|
|
|
+ $route_parameters = null;
|
|
|
+ }else{
|
|
|
+ $route_name = $url_object->getRouteName();
|
|
|
+ $route_parameters = $url_object->getrouteParameters();
|
|
|
}
|
|
|
- $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()
|
|
|
+ "url" => $url->toString(),
|
|
|
+ "sys_path" => $url->getInternalPath()
|
|
|
];
|
|
|
}
|
|
|
|
|
|
- $data = array(
|
|
|
- "links" => $links
|
|
|
- );
|
|
|
+ $data["links"] = $links;
|
|
|
|
|
|
return new JsonResponse($data);
|
|
|
}
|