source: spip-zone/_plugins_/uploadhtml5/trunk/uploadhtml5_fonctions.php @ 90046

Last change on this file since 90046 was 90046, checked in by marcimat@…, 6 years ago

Permettre de forcer un mode sur le formulaire d'upload.
Exemple, forcer les images dans le portfolio (mode=document) :

`
[(#AUTORISER{joindredocument, annonce, #ID_ANNONCE}|oui)

#FORMULAIRE_UPLOADHTML5{annonce, #ID_ANNONCE, document}

]
`

File size: 3.2 KB
Line 
1<?php
2/**
3 * Fonctions utiles au plugin Formulaire upload html5
4 *
5 * @plugin     Formulaire upload html5
6 * @copyright  2014
7 * @author     Phenix
8 * @licence    GNU/GPL
9 * @package    SPIP\Uploadhtml5\Fonctions
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) return;
13
14/**
15 * Uploader et lier des documents à un objet SPIP
16 *
17 * @param mixed $files $_FILES envoyer par un formulaire had hoc
18 * @param mixed $objet
19 * @param mixed $id_objet
20 * @param string $id_document Dans le cas ou l'on veux remplacer un document.
21 * @access public
22 */
23
24function uploadhtml5_uploader_document($objet, $id_objet, $files, $id_document='new', $mode = 'auto') {
25
26    // tester l'autorisation d'ajout de document
27    include_spip('inc/autoriser');
28    /* S'il n'y a pas d'id_objet, c'est qu'on crée un nouveau
29       document. Les autorisations seront gérées en aval dans
30       ajouter_document. */
31    if ($id_objet AND (!autoriser('joindredocument',$objet,$id_objet)))
32        return false;
33
34    // On va créer le tableau des documents.
35    $docs = array();
36    foreach ($files as $doc) {
37        // pas de fichier vide
38        if (!empty($doc['name']))
39            $docs[] = $doc;
40    }
41
42    // On fait un test au cas ou
43    if (!empty($docs)) {
44        // On ajoute les documents a un objet SPIP.
45        $ajouter_documents = charger_fonction('ajouter_documents','action');
46        $ajouter_documents(
47            $id_document,
48            $docs,
49            $objet, // Article, rubrique, autre objet
50            $id_objet,
51            $mode
52        );
53    }
54}
55
56/**
57 * Uploader un logo sur un objet en spip 3.0/3.1
58 *
59 * @param mixed $objet
60 * @param mixed $id_objet
61 * @param mixed $fichier
62 * @access public
63 * @return mixed
64 */
65function uploadhtml5_uploader_logo($objet, $id_objet, $fichier) {
66
67    // Autorisation de mettre un logo?
68    include_spip('inc/autoriser');
69    if (!autoriser('iconifier',$objet,$id_objet))
70        return false;
71
72    include_spip('action/editer_logo');
73    // Version SPIP 3.1 de cette fonction:
74    if (function_exists('logo_modifier'))
75        return logo_modifier($objet, $id_objet, 'on', $fichier);
76
77
78    include_spip('action/iconifier');
79    $chercher_logo = charger_fonction('chercher_logo','inc');
80    $ajouter_image = charger_fonction('spip_image_ajouter','action');
81
82    $type = type_du_logo(id_table_objet($objet));
83    $logo = $chercher_logo($id_objet, id_table_objet($objet));
84
85    if ($logo)
86        spip_unlink($logo[0]);
87
88    // Dans le cas d'un tableau, on présume que c'est un $_FILES et on passe directement
89    if (is_array($fichier))
90        $err = $ajouter_image($type."on".$id_objet," ", $fichier, true);
91    else
92        // Sinon, on caviarde la fonction ajouter_image
93        $err = $ajouter_image($type."on".$id_objet," ", array('tmp_name' => $fichier), true);
94
95    if ($err)
96        return $err;
97    else
98        return true;
99
100}
101
102/**
103 * Convertir les formats de logo accepté en mime_type
104 *
105 * @access public
106 */
107function mine_type_logos() {
108    global $formats_logos;
109
110    $mine_type_logos = sql_allfetsel('mime_type', 'spip_types_documents', sql_in('extension', $formats_logos));
111    $mine_type_logos = array_column($mine_type_logos, 'mime_type');
112
113    return implode(',', $mine_type_logos);
114}
Note: See TracBrowser for help on using the repository browser.