123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- commit fc8cbeca3774ea4dce6c8768b1051144de5f1681
- Author: bach <bachir@figureslibres.io>
- Date: Wed Mar 3 17:34:33 2021 +0100
- fixe Invalid translation language
- diff --git a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoad.php b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoad.php
- index f83be91..124cd53 100644
- --- a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoad.php
- +++ b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoad.php
- @@ -165,9 +165,11 @@ class EntityLoad extends DataProducerPluginBase implements ContainerFactoryPlugi
- }
-
- // Get the correct translation.
- - if (isset($language) && $language !== $entity->language()->getId() && $entity instanceof TranslatableInterface) {
- - $entity = $entity->getTranslation($language);
- - $entity->addCacheContexts(["static:language:{$language}"]);
- + if (isset($language) && $language !== $entity->language()->getId() && $entity instanceof TranslatableInterface && $entity->isTranslatable()) {
- + if($entity->hasTranslation($language)){
- + $entity = $entity->getTranslation($language);
- + $entity->addCacheContexts(["static:language:{$language}"]);
- + }
- }
-
- // Check if the passed user (or current user if none is passed) has access
- diff --git a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadByUuid.php b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadByUuid.php
- index 10e2d40..e98b514 100644
- --- a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadByUuid.php
- +++ b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadByUuid.php
- @@ -164,9 +164,11 @@ class EntityLoadByUuid extends DataProducerPluginBase implements ContainerFactor
- }
-
- // Get the correct translation.
- - if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface) {
- - $entity = $entity->getTranslation($language);
- - $entity->addCacheContexts(["static:language:{$language}"]);
- + if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface && $entity->isTranslatable()) {
- + if($entity->hasTranslation($language)){
- + $entity = $entity->getTranslation($language);
- + $entity->addCacheContexts(["static:language:{$language}"]);
- + }
- }
-
- // Check if the passed user (or current user if none is passed) has access
- diff --git a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadMultiple.php b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadMultiple.php
- index 4653aa0..526929b 100644
- --- a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadMultiple.php
- +++ b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadMultiple.php
- @@ -168,9 +168,11 @@ class EntityLoadMultiple extends DataProducerPluginBase implements ContainerFact
- continue;
- }
-
- - if (isset($language) && $language !== $entities[$id]->language()->getId() && $entities[$id] instanceof TranslatableInterface) {
- - $entities[$id] = $entities[$id]->getTranslation($language);
- - $entities[$id]->addCacheContexts(["static:language:{$language}"]);
- + if (isset($language) && $language !== $entities[$id]->language()->getId() && $entities[$id] instanceof TranslatableInterface && $entities[$id]->isTranslatable()) {
- + if($entities[$id]->hasTranslation($language)){
- + $entities[$id] = $entities[$id]->getTranslation($language);
- + $entities[$id]->addCacheContexts(["static:language:{$language}"]);
- + }
- }
-
- if ($access) {
- diff --git a/src/Plugin/GraphQL/DataProducer/Entity/EntityTranslation.php b/src/Plugin/GraphQL/DataProducer/Entity/EntityTranslation.php
- index 633bdc2..3773a9b 100644
- --- a/src/Plugin/GraphQL/DataProducer/Entity/EntityTranslation.php
- +++ b/src/Plugin/GraphQL/DataProducer/Entity/EntityTranslation.php
- @@ -101,7 +101,7 @@ class EntityTranslation extends DataProducerPluginBase implements ContainerFacto
- * @return \Drupal\Core\Entity\EntityInterface|null
- */
- public function resolve(EntityInterface $entity, $language, ?bool $access, ?AccountInterface $accessUser, ?string $accessOperation) {
- - if ($entity instanceof TranslatableInterface && $entity->isTranslatable()) {
- + if ($entity instanceof TranslatableInterface && $entity->isTranslatable() && $entity->hasTranslation($language)) {
- $entity = $entity->getTranslation($language);
- $entity->addCacheContexts(["static:language:{$language}"]);
- // Check if the passed user (or current user if none is passed) has access
- diff --git a/src/Plugin/GraphQL/DataProducer/Field/EntityReference.php b/src/Plugin/GraphQL/DataProducer/Field/EntityReference.php
- index 2d0a974..1346cd9 100644
- --- a/src/Plugin/GraphQL/DataProducer/Field/EntityReference.php
- +++ b/src/Plugin/GraphQL/DataProducer/Field/EntityReference.php
- @@ -168,9 +168,11 @@ class EntityReference extends DataProducerPluginBase implements ContainerFactory
- }
-
- // Get the correct translation.
- - if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface) {
- - $entity = $entity->getTranslation($language);
- - $entity->addCacheContexts(["static:language:{$language}"]);
- + if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface && $entity->isTranslatable()) {
- + if($entity->hasTranslation($language)){
- + $entity = $entity->getTranslation($language);
- + $entity->addCacheContexts(["static:language:{$language}"]);
- + }
- }
-
- // Check if the passed user (or current user if none is passed) has
- diff --git a/src/Plugin/GraphQL/DataProducer/Field/EntityReferenceLayoutRevisions.php b/src/Plugin/GraphQL/DataProducer/Field/EntityReferenceLayoutRevisions.php
- index ddcc2ab..8650a52 100644
- --- a/src/Plugin/GraphQL/DataProducer/Field/EntityReferenceLayoutRevisions.php
- +++ b/src/Plugin/GraphQL/DataProducer/Field/EntityReferenceLayoutRevisions.php
- @@ -174,9 +174,11 @@ class EntityReferenceLayoutRevisions extends DataProducerPluginBase implements C
- }
-
- // Get the correct translation.
- - if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface) {
- - $entity = $entity->getTranslation($language);
- - $entity->addCacheContexts(["static:language:{$language}"]);
- + if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface && $entity->isTranslatable()) {
- + if($entity->hasTranslation($language)){
- + $entity = $entity->getTranslation($language);
- + $entity->addCacheContexts(["static:language:{$language}"]);
- + }
- }
-
- // Check if the passed user (or current user if none is passed) has
- diff --git a/src/Plugin/GraphQL/DataProducer/Field/EntityReferenceRevisions.php b/src/Plugin/GraphQL/DataProducer/Field/EntityReferenceRevisions.php
- index 31a1d15..8c950e8 100644
- --- a/src/Plugin/GraphQL/DataProducer/Field/EntityReferenceRevisions.php
- +++ b/src/Plugin/GraphQL/DataProducer/Field/EntityReferenceRevisions.php
- @@ -174,9 +174,11 @@ class EntityReferenceRevisions extends DataProducerPluginBase implements Contain
- }
-
- // Get the correct translation.
- - if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface) {
- - $entity = $entity->getTranslation($language);
- - $entity->addCacheContexts(["static:language:{$language}"]);
- + if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface && $entity->isTranslatable()) {
- + if($entity->hasTranslation($language)){
- + $entity = $entity->getTranslation($language);
- + $entity->addCacheContexts(["static:language:{$language}"]);
- + }
- }
-
- // Check if the passed user (or current user if none is passed) has
- diff --git a/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php b/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php
- index a0c9be6..48678bc 100644
- --- a/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php
- +++ b/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php
- @@ -125,9 +125,11 @@ class RouteEntity extends DataProducerPluginBase implements ContainerFactoryPlug
- }
-
- // Get the correct translation.
- - if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface) {
- - $entity = $entity->getTranslation($language);
- - $entity->addCacheContexts(["static:language:{$language}"]);
- + if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface && $entity->isTranslatable()) {
- + if($entity->hasTranslation($language)){
- + $entity = $entity->getTranslation($language);
- + $entity->addCacheContexts(["static:language:{$language}"]);
- + }
- }
-
- $access = $entity->access('view', NULL, TRUE);
- diff --git a/src/Plugin/GraphQL/DataProducer/Taxonomy/TaxonomyLoadTree.php b/src/Plugin/GraphQL/DataProducer/Taxonomy/TaxonomyLoadTree.php
- index 1bcd624..a23a256 100644
- --- a/src/Plugin/GraphQL/DataProducer/Taxonomy/TaxonomyLoadTree.php
- +++ b/src/Plugin/GraphQL/DataProducer/Taxonomy/TaxonomyLoadTree.php
- @@ -174,9 +174,11 @@ class TaxonomyLoadTree extends DataProducerPluginBase implements ContainerFactor
- foreach ($entities as $id => $entity) {
- $context->addCacheableDependency($entities[$id]);
-
- - if (isset($language) && $language !== $entities[$id]->language()->getId() && $entities[$id] instanceof TranslatableInterface) {
- - $entities[$id] = $entities[$id]->getTranslation($language);
- - $entities[$id]->addCacheContexts(["static:language:{$language}"]);
- + if (isset($language) && $language !== $entities[$id]->language()->getId() && $entities[$id] instanceof TranslatableInterface && $entities[$id]->isTranslatable()) {
- + if($entities[$id]->hasTranslation($language)){
- + $entities[$id] = $entities[$id]->getTranslation($language);
- + $entities[$id]->addCacheContexts(["static:language:{$language}"]);
- + }
- }
-
- if ($access) {
|