|
@@ -20,26 +20,32 @@ class QRController extends ControllerBase {
|
|
public function getfile($ref) {
|
|
public function getfile($ref) {
|
|
//? https://drupal.stackexchange.com/questions/255216/how-to-do-a-redirectresponse-with-a-destination-query-parameter
|
|
//? 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);
|
|
|
|
-
|
|
|
|
- //* get file from node
|
|
|
|
- $file = $node->get('field_fiche_expo')->referencedEntities()[0];
|
|
|
|
-
|
|
|
|
- //* redirect to file
|
|
|
|
- return new RedirectResponse($file->createFileUrl());
|
|
|
|
-
|
|
|
|
- // return [
|
|
|
|
- // '#type' => 'markup',
|
|
|
|
- // '#markup' => $this->t("Implement method: getfile with parameter(s): $ref"),
|
|
|
|
- // ];
|
|
|
|
|
|
+ //* 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];
|
|
|
|
+
|
|
|
|
+ //* redirect to file
|
|
|
|
+ return new RedirectResponse($file->createFileUrl());
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ return [
|
|
|
|
+ '#type' => 'markup',
|
|
|
|
+ '#markup' => $this->t("Error, email not provided"),
|
|
|
|
+ ];
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|