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

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

Nouvelle option: titre automatique sur base du nom du fichier

File size: 3.6 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        $id_documents = $ajouter_documents(
47            $id_document,
48            $docs,
49            $objet, // Article, rubrique, autre objet
50            $id_objet,
51            $mode
52        );
53
54        $config = lire_config('uploadhtml5');
55        // Gestion de l'auto titre des documents
56        if (isset($config['autotitre']) and $config['autotitre']) {
57            foreach($id_documents as $key => $id_document) {
58                sql_updateq(
59                    'spip_documents',
60                    array('titre' => $docs[$key]['name']),
61                    'id_document='.intval($id_document)
62                );
63            }
64        }
65
66    }
67}
68
69/**
70 * Uploader un logo sur un objet en spip 3.0/3.1
71 *
72 * @param mixed $objet
73 * @param mixed $id_objet
74 * @param mixed $fichier
75 * @access public
76 * @return mixed
77 */
78function uploadhtml5_uploader_logo($objet, $id_objet, $fichier) {
79
80    // Autorisation de mettre un logo?
81    include_spip('inc/autoriser');
82    if (!autoriser('iconifier',$objet,$id_objet))
83        return false;
84
85    include_spip('action/editer_logo');
86    // Version SPIP 3.1 de cette fonction:
87    if (function_exists('logo_modifier'))
88        return logo_modifier($objet, $id_objet, 'on', $fichier);
89
90
91    include_spip('action/iconifier');
92    $chercher_logo = charger_fonction('chercher_logo','inc');
93    $ajouter_image = charger_fonction('spip_image_ajouter','action');
94
95    $type = type_du_logo(id_table_objet($objet));
96    $logo = $chercher_logo($id_objet, id_table_objet($objet));
97
98    if ($logo)
99        spip_unlink($logo[0]);
100
101    // Dans le cas d'un tableau, on présume que c'est un $_FILES et on passe directement
102    if (is_array($fichier))
103        $err = $ajouter_image($type."on".$id_objet," ", $fichier, true);
104    else
105        // Sinon, on caviarde la fonction ajouter_image
106        $err = $ajouter_image($type."on".$id_objet," ", array('tmp_name' => $fichier), true);
107
108    if ($err)
109        return $err;
110    else
111        return true;
112
113}
114
115/**
116 * Convertir les formats de logo accepté en mime_type
117 *
118 * @access public
119 */
120function mine_type_logos() {
121    global $formats_logos;
122
123    $mine_type_logos = sql_allfetsel('mime_type', 'spip_types_documents', sql_in('extension', $formats_logos));
124    $mine_type_logos = array_column($mine_type_logos, 'mime_type');
125
126    return implode(',', $mine_type_logos);
127}
Note: See TracBrowser for help on using the repository browser.