fixed languaged displayed in corpus map and document localized url
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace Drupal\edlp_corpus\Controller;
|
||||
|
||||
use Drupal\Core\Controller\ControllerBase;
|
||||
use Drupal\Core\Language\LanguageInterface;
|
||||
use Drupal\workflow\Entity\WorkflowManager;
|
||||
use Drupal\File\Entity\File;
|
||||
// use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
@@ -31,6 +32,11 @@ class CorpusController extends ControllerBase {
|
||||
// Get a node storage object.
|
||||
// $file_storage = \Drupal::entityManager()->getStorage('node');
|
||||
|
||||
// $language_manager = ;
|
||||
// $current_langcode = \Drupal::languageManager()->getLanguage(LanguageInterface::TYPE_CONTENT);
|
||||
$current_langcode = \Drupal::languageManager()->getCurrentLanguage()->getId();
|
||||
|
||||
|
||||
$config = \Drupal::config('system.site');
|
||||
|
||||
$query = \Drupal::entityQuery('node')
|
||||
@@ -46,6 +52,7 @@ class CorpusController extends ControllerBase {
|
||||
foreach ($nodes as $node) {
|
||||
// this would be ideal but it's too heavy to load : the whole ajax json goes from 138kb to 1.23Md (even optimized)...
|
||||
// $node_builder = $view_builder->view($node, 'popup');
|
||||
// $node = $n->getTranslation($current_langcode);
|
||||
|
||||
// remove masqué
|
||||
$sid = WorkflowManager::getCurrentStateId($node, 'field_workflow');
|
||||
@@ -58,7 +65,12 @@ class CorpusController extends ControllerBase {
|
||||
// remove if no entries
|
||||
if(!count($entrees)) continue;
|
||||
|
||||
$description_values = $node->get('field_description')->getValue();
|
||||
if ($node->hasTranslation($current_langcode)
|
||||
&& !$node->getTranslation($current_langcode)->field_description->isEmpty()) {
|
||||
$description_values = $node->getTranslation($current_langcode)->get('field_description')->getValue();
|
||||
}else{
|
||||
$description_values = $node->get('field_description')->getValue();
|
||||
}
|
||||
$description = count($description_values) ? $description_values[0]['value'] : "";
|
||||
// dpm($description);
|
||||
|
||||
@@ -78,8 +90,12 @@ class CorpusController extends ControllerBase {
|
||||
// if($has_article && $article_value[0]['value'] == "")
|
||||
// dpm($article_value);
|
||||
|
||||
$document_url = \Drupal::service('renderer')->executeInRenderContext(new RenderContext(), function () use ($node) {
|
||||
return $node->toUrl()->toString();
|
||||
$document_url = \Drupal::service('renderer')->executeInRenderContext(new RenderContext(), function () use ($node, $current_langcode) {
|
||||
if ($node->hasTranslation($current_langcode)){
|
||||
return $node->getTranslation($current_langcode)->toUrl()->toString();
|
||||
}else{
|
||||
return $node->toUrl()->toString();
|
||||
}
|
||||
});
|
||||
|
||||
// favoris marker
|
||||
@@ -110,7 +126,8 @@ class CorpusController extends ControllerBase {
|
||||
'site_name' => $config->get('name'),
|
||||
'count' => count($nodes),
|
||||
'nodes' => $nodes_data,
|
||||
'entrees' => $entrees
|
||||
'entrees' => $entrees,
|
||||
'langcode' => $current_langcode,
|
||||
);
|
||||
|
||||
// https://spinningcode.org/2017/05/cached-json-responses-in-drupal-8/
|
||||
|
||||
Reference in New Issue
Block a user