source: spip-zone/_plugins_/uploadhtml5/trunk/inc/saisie_upload.php @ 95495

Last change on this file since 95495 was 95495, checked in by p@…, 3 years ago

Règles de codages

File size: 3.0 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7include_spip('inc/session');
8
9/**
10 * Fonction qui renvoie les documents uploader dans un tableau
11 * utilisable par objet_associer
12 *
13 * @access public
14 * @return mixed
15 */
16function saisie_upload_get() {
17    // récupérer les documents en session
18    $documents = session_get('upload');
19
20    if (empty($documents)) {
21        return false;
22    }
23
24    // On va renvoyer un tableau formaté pour passer dans objet_associer
25    return array('document' => $documents);
26}
27
28/**
29 * Détruire la session d'upload quand on à terminé
30 *
31 * @access public
32 */
33function saisie_upload_terminer() {
34    session_set('upload', null);
35}
36
37/**
38 * Supprimer un document de la session
39 *
40 * @param mixed $id_document
41 * @access public
42 */
43function saisie_supprimer_document_session($id_document) {
44    include_spip('inc/session');
45    $upload = session_get('upload');
46    unset($upload[array_search($id_document, $upload)]);
47    session_set('upload', $upload);
48}
49
50/**
51 * Traiter une saisie upload.
52 * Basiquement, on associe les documents à un objet spécifique
53 * Ensuite on nettoye la session
54 *
55 * @param mixed $objet
56 * @param mixed $id_objet
57 * @access public
58 */
59function saisie_upload_traiter($objet, $id_objet) {
60
61    include_spip('action/editer_objet');
62    include_spip('action/editer_liens');
63
64    // Récupérer les documents et associer à l'objet
65    $documents = saisie_upload_get();
66
67    if (!$documents) {
68        return false;
69    }
70
71    objet_associer(
72        $documents,
73        array($objet => $id_objet)
74    );
75
76    // Le lien est fait, les documents ne doivent plus être en mode temporaire
77    foreach ($documents['document'] as $id_document) {
78        objet_instituer('document', $id_document, array('statut' => 'publie'));
79    }
80
81    // Terminer l'upload en nettoyant la session
82    saisie_upload_terminer();
83}
84
85/**
86 * Une fonction pour traiter les logos via la saisie upload
87 *
88 * @param mixed $objet
89 * @param mixed $id_objet
90 * @param bool $supprimer
91 *        Supprime le fichier logo de la session et de la médiathèque si true
92 * @access public
93 */
94function saisie_upload_traiter_logo($objet, $id_objet, $supprimer=true) {
95
96    // On prend le premier fichier image de la saisie et on le transform en logo
97    $documents = saisie_upload_get();
98
99    if (!$documents) {
100        return false;
101    }
102
103    $fichier = sql_fetsel(
104        'id_document,fichier',
105        'spip_documents',
106        array(
107            'media='.sql_quote('image'),
108            sql_in('id_document', $documents['document'])
109        ),
110        '',
111        '',
112        '0,1'
113    );
114
115    // On utilise ce fichier de la médiathèque comme logo
116    include_spip('uploadhtml5_fonctions');
117    uploadhtml5_uploader_logo($objet, $id_objet, _DIR_IMG.$fichier['fichier']);
118
119    // Supprime le fichier logo de la session et de la médiathèque
120    if ($supprimer) {
121        saisie_supprimer_document_session($fichier['id_document']);
122        $supprimer_document = charger_fonction('supprimer_document_tmp', 'action');
123        $supprimer_document($fichier['id_document']);
124    }
125}
Note: See TracBrowser for help on using the repository browser.