diff --git a/web/modules/custom/materio_expo/src/Controller/QRController.php b/web/modules/custom/materio_expo/src/Controller/QRController.php index 7345a91..1fe8c27 100644 --- a/web/modules/custom/materio_expo/src/Controller/QRController.php +++ b/web/modules/custom/materio_expo/src/Controller/QRController.php @@ -20,26 +20,32 @@ class QRController extends ControllerBase { public function getfile($ref) { //? https://drupal.stackexchange.com/questions/255216/how-to-do-a-redirectresponse-with-a-destination-query-parameter - //* get node from ref - $entity_storage = \Drupal::entityTypeManager()->getStorage('node'); - $query = $entity_storage->getQuery() - ->condition('type', 'materiau') - ->condition('status', '1') - ->condition('field_reference', $ref); - $results = $query->execute(); - $nid = array_pop($results); - $node = $entity_storage->load($nid); + //* check if email cookie is present (form submitted) + $session = \Drupal::request()->getSession(); + $alreadysetemail = $session->get('materio_expo_email'); + if($alreadysetemail){ + //* get node from ref + $entity_storage = \Drupal::entityTypeManager()->getStorage('node'); + $query = $entity_storage->getQuery() + ->condition('type', 'materiau') + ->condition('status', '1') + ->condition('field_reference', $ref); + $results = $query->execute(); + $nid = array_pop($results); + $node = $entity_storage->load($nid); - //* get file from node - $file = $node->get('field_fiche_expo')->referencedEntities()[0]; + //* get file from node + $file = $node->get('field_fiche_expo')->referencedEntities()[0]; - //* redirect to file - return new RedirectResponse($file->createFileUrl()); + //* redirect to file + return new RedirectResponse($file->createFileUrl()); - // return [ - // '#type' => 'markup', - // '#markup' => $this->t("Implement method: getfile with parameter(s): $ref"), - // ]; + } else { + return [ + '#type' => 'markup', + '#markup' => $this->t("Error, email not provided"), + ]; + } } }