1 |
<?php |
2 |
//$Id$ |
3 |
//gen openMairie le 21/02/2022 17:35 |
4 |
|
5 |
require_once "../gen/obj/instruction_notification_document.class.php"; |
6 |
|
7 |
class instruction_notification_document extends instruction_notification_document_gen { |
8 |
|
9 |
/** |
10 |
* Redirige vers la vue permettant de télécharger le document |
11 |
* selon le type de document a télécharger. |
12 |
* |
13 |
* Pour cela, cette méthode utilise la clé fournie dans l'url d'accès au document |
14 |
* pour récupérer l'instance de l'élément auquel est rattaché le document. |
15 |
* Si pour cette instance, il existe une méthode permettant d'accèder |
16 |
* à la vue de téléchargement du document, cette méthode est appelée. |
17 |
* Sinon renvoie une erreur 404. |
18 |
*/ |
19 |
public function view_telecharger_document_anonym($paramNotif) { |
20 |
$cle_acces_document = $this->f->get_submitted_get_value('key'); |
21 |
$instanceDoc = $this->get_inst_document_type_by_key($cle_acces_document); |
22 |
// Fait appel a la vue de prévisualisation des documents de l'instance |
23 |
if (!is_null($instanceDoc) && method_exists($instanceDoc, 'view_telecharger_document_anonym')) { |
24 |
$instanceDoc->view_telecharger_document_anonym(); |
25 |
return; |
26 |
} |
27 |
// Page vide 404 |
28 |
printf('Ressource non trouvée.'); |
29 |
header('HTTP/1.0 404 Not Found'); |
30 |
} |
31 |
|
32 |
/** |
33 |
* A partir de la clé passé en paramètre effectue une requête sql |
34 |
* pour récupérer le nom de la table a laquel est rattaché le document |
35 |
* notifié et l'identifiant de l'élément auquel il appartient. |
36 |
* |
37 |
* Instancie l'objet voulu à partir de ces informations et renvoie |
38 |
* cette instance. |
39 |
* |
40 |
* @param string clé unique d'accès à la pièce |
41 |
* @return objet instance de l'objet auquel est rattaché le document |
42 |
*/ |
43 |
protected function get_inst_document_type_by_key($key) { |
44 |
$qres = $this->f->get_all_results_from_db_query( |
45 |
sprintf( |
46 |
'SELECT |
47 |
instruction_notification_document.document_type as table, |
48 |
instruction_notification_document.document_id as idx |
49 |
FROM |
50 |
%1$sinstruction_notification_document |
51 |
WHERE |
52 |
instruction_notification_document.cle = \'%2$s\'', |
53 |
DB_PREFIXE, |
54 |
$this->f->db->escapeSimple($key) |
55 |
), |
56 |
array( |
57 |
"origin" => __METHOD__, |
58 |
) |
59 |
); |
60 |
if (is_array($qres["result"]) === true |
61 |
&& array_key_exists(0, $qres["result"]) === true) { |
62 |
// |
63 |
return $this->f->get_inst__om_dbform(array( |
64 |
"obj" => $qres["result"][0]["table"], |
65 |
"idx" => $qres["result"][0]["idx"], |
66 |
)); |
67 |
} |
68 |
return null; |
69 |
} |
70 |
} |