source: spip-zone/_plugins_/uploadhtml5/trunk/uploadhtml5_pipelines.php @ 93484

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

Corrige le commit précédent

On ne peux pas simplement faire un "and" il faut tester l'espace privé
et la config en dehors du test de formulaire

File size: 4.4 KB
Line 
1<?php
2/**
3 * Utilisations de pipelines par Formulaire upload html5
4 *
5 * @plugin     Formulaire upload html5
6 * @copyright  2014
7 * @author     Phenix
8 * @licence    GNU/GPL
9 * @package    SPIP\Uploadhtml5\Pipelines
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) return;
13
14function uploadhtml5_jquery_plugins($scripts) {
15        include_spip('inc/config');
16    $config = lire_config('uploadhtml5');
17    if (
18        (isset($config['charger_public']) and $config['charger_public']) // Si on doit charger dans l'espace publique
19        or test_espace_prive() // Ou que l'on est dans l'espace privé
20    ) {
21        $scripts[] = 'lib/dropzone/dropzone.js'; // Charger Dropzone
22    }
23
24    return $scripts;
25}
26
27function uploadhtml5_insert_head_css($flux) {
28        include_spip('inc/config');
29    $config = lire_config('uploadhtml5');
30    if (
31        (isset($config['charger_public']) and $config['charger_public']) // Si on doit charger dans l'espace publique
32        or test_espace_prive() // Ou que l'on est dans l'espace privé
33    ) {
34        $flux .= '<link rel="stylesheet" href="'.find_in_path('lib/dropzone/dropzone.css').'" type="text/css" media="screen" />';
35
36        $flux .= '<link rel="stylesheet" href="'.find_in_path('css/saisie_upload.css').'" type="text/css" media="screen" />';
37    }
38
39    return $flux;
40}
41
42function uploadhtml5_header_prive($flux) {
43    $flux .= '<link rel="stylesheet" href="'.find_in_path('lib/dropzone/dropzone.css').'" type="text/css" media="screen" />';
44
45    $flux .= '<link rel="stylesheet" href="'.find_in_path('prive/css/dropzone_prive.css').'" type="text/css" media="screen" />';
46
47
48    return $flux;
49}
50
51function uploadhtml5_formulaire_fond($flux) {
52        include_spip('inc/config');
53        $config = lire_config('uploadhtml5');
54
55    // Simplification de variable
56    $objet = isset($flux['args']['contexte']['objet']) ? $flux['args']['contexte']['objet'] : '';
57    $id_objet = isset($flux['args']['contexte']['id_objet']) ? $flux['args']['contexte']['id_objet'] : 0;
58
59
60    if ($flux['args']['form'] == 'joindre_document') {
61
62            /**
63             * Si on est pas sur l'espace privé et que les scripts
64             * n'ont pas été charger sur l'espace public,
65             * on ne fait rien au formulaire
66             */
67            if (!test_espace_prive() and !$config['charger_public']) {
68                    return $flux;
69            }
70
71        // Récupérer le formulaire d'upload en html5 et lui passer une partie du contexte de joindre_document
72        $uploadhtml5 = recuperer_fond(
73            'prive/squelettes/inclure/uploadhtml5',
74            array(
75                'type' => $objet,
76                'id' => $id_objet
77            )
78        );
79
80        // Injecter uloadhtml5 au dessus du formulaire joindre_document.
81        $flux['data'] = $uploadhtml5.$flux['data'];
82    }
83    elseif ($flux['args']['form'] == 'editer_logo') {
84
85            /**
86             * Si on est pas sur l'espace privé et que les scripts
87             * n'ont pas été charger sur l'espace public,
88             * on ne fait rien au formulaire
89             */
90            if (!test_espace_prive() and !$config['charger_public']) {
91                    return $flux;
92            }
93
94        $chercher_logo = charger_fonction('chercher_logo','inc');
95        if (!$chercher_logo($id_objet, id_table_objet($objet))) {
96
97
98            // Bloc ajax par défaut
99            $ajaxReload = 'navigation';
100
101            // Cas spécial: si on édite le logo du site, il faut recharger le contenu et non la navigation
102            if ($id_objet == 0 and $objet == 'site')
103                $ajaxReload = 'contenu';
104
105            // Récupérer le formulaire d'upload en html5 et lui passer une partie du contexte
106            $uploadhtml5 = recuperer_fond(
107                'prive/squelettes/inclure/uploadhtml5_logo',
108                array(
109                    'type' => $objet,
110                    'id' => $id_objet,
111                    'ajaxReload' => $ajaxReload
112                )
113            );
114
115            $config = lire_config('uploadhtml5');
116            // Injecter uloadhtml5 au dessus du formulaire joindre_document.
117            if (isset($config['remplacer_editer_logo'])
118                and $config['remplacer_editer_logo'])
119                $flux['data'] = $uploadhtml5;
120            else
121                $flux['data'] = $uploadhtml5.$flux['data'];
122        }
123    }
124
125    return $flux;
126}
127
128
129/**
130 * Lacher le cron de nettoyage des fichiers media temporaire toute les 24 heures
131 *
132 * @param mixed $taches
133 * @access public
134 * @return mixed
135 */
136function uploadhtml5_taches_generales_cron($taches) {
137    $taches['nettoyer_document_temporaire'] = 24*3600;
138    return $taches;
139}
Note: See TracBrowser for help on using the repository browser.