source: Collectif_Otra/plugins/configuration_reflet/reflet_pipelines.php @ 2838

Last change on this file since 2838 was 2838, checked in by kent1, 10 years ago

des espaces en moins

File size: 10.1 KB
Line 
1<?php
2/**
3 * Reflet - Configuration
4 *
5 * Auteur :
6 * Quentin Drouet
7 * (c) 2008-2009 Distribué sous licence GNU/GPL
8 *
9 */
10
11if (!defined("_ECRIRE_INC_VERSION")) return;
12
13function reflet_reflet_cfg_liens($flux){
14        $flux .= '<!-- liens*=reflet:reflet_config_generale -->';
15        $flux .= '<!-- liens*=reflet:reflet_valeurs_config -->';
16        return $flux;
17}
18
19/**
20 *
21 * Insertion dans le pipeline i2_form_fin du plugin inscription2
22 *
23 * Ajoute les champs de Reflet dans le formulaire d'inscription si ils sont configurés
24 * NB : Uniquement lors de l'inscription et pas dans la modification du profil
25 *
26 * @return
27 * @param object $flux
28 */
29function reflet_i2_form_fin($flux){
30        $contexte = $flux['args'];
31        if($contexte['id_auteur']>0){
32                return $flux;
33        }else{
34                $flux['data'] .= recuperer_fond('formulaires/inscription2_reflet',$contexte);
35        }
36        return $flux;
37}
38
39/**
40 *
41 * Insertion dans le pipeline i2_cfg_form du plugin inscription2
42 *
43 * Ajoute la partie de reflet dans le formulaire de configuration de ce plugin
44 *
45 * @return
46 * @param object $flux
47 */
48function reflet_i2_cfg_form($flux) {
49        $flux .= recuperer_fond('fonds/inscription2_reflet');
50        return $flux;
51}
52
53/**
54 * Insertion dans le pipeline i2_verifier_formulaire du plugin inscription2
55 * Vérifie la cohérence des champs (formulaire d'inscription)
56 *
57 * 4 cas d'erreur :
58 * 1 - Le domaine est déjà pris
59 * 2 - Un sous-domaine choisi trop court (<3 caractÚres)
60 * 3 - Un sous domaine mais pas de texte (le texte devient obligatoire lorsque le sous domaine est choisi)
61 * 4 - Un texte est présent mais fait moins de 20 caractÚres
62 *
63 * @param object $flux
64 * @return
65 */
66function reflet_i2_verifier_formulaire($flux){
67        if($flux['args']['champs']['ssdomaine']){
68                $generer_nom_domaine = charger_fonction('reflet_generer_nom_domaine','inc');
69                $champs = $generer_nom_domaine($flux['args']['champs']['ssdomaine']);
70                $valeurs['ssdomaine'] = $flux['args']['champs']['ssdomaine'];
71                $domaine_existe = sql_getfetsel("domaine","spip_reflets","domaine = '$champs'");
72                if($domaine_existe){
73                        $flux['data']['ssdomaine'] = _T('reflet:erreur_ssdomaine_exist_error',array('domaine'=>$champs));
74                }
75                else if(strlen($champs)<3){
76                        $flux['data']['ssdomaine'] = _T('reflet:erreur_ssdomaine_superieure',array('char'=>3));
77                }
78                if(!$flux['args']['champs']['reflet_texte_utilisation']){
79                        $flux['data']['reflet_texte_utilisation'] = _T('reflet:erreur_champs_obligatoire_si_domaine');
80                }
81        }
82        if($flux['args']['champs']['reflet_texte_utilisation']){
83                if(strlen($flux['args']['champs']['reflet_texte_utilisation'])<20){
84                        $flux['data']['reflet_texte_utilisation'] = _T('reflet:erreur_description_superieure',array('char'=>20));
85                }
86        }
87        return $flux;
88}
89
90/**
91 * Insertion dans le pipeline i2_traiter_formulaire
92 * (formulaire d'inscription)
93 *
94 * Crée un reflet avec la configuration par défaut si un sous domaine
95 * est choisi
96 *
97 * @param object $flux
98 * @return
99 */
100function reflet_i2_traiter_formulaire($flux){
101        $id_auteur = $flux['args']['id_auteur'];
102        $champs = $flux['args']['champs'];
103        $domaine = $champs['ssdomaine'];
104        if($domaine){
105                $generer_nom_domaine = charger_fonction('reflet_generer_nom_domaine','inc');
106                $domaine = $generer_nom_domaine($domaine);
107                $texte = $champs['reflet_texte_utilisation'];
108                $creation_reflet = charger_fonction('reflet_creation','inc');
109                $id_reflet = $creation_reflet($domaine,$id_auteur,$texte);
110        }
111        return $flux;
112}
113
114/**
115 * Insertion dans le pipeline post_edition
116 *
117 * En cas de modification de la table spip_reflets, regénÚre le XML de
118 * configuration
119 *
120 * @param object $flux
121 * @return
122 */
123function reflet_post_edition($flux){
124        if ($flux['args']['table'] == "spip_reflets"){
125                if($flux['args']['action'] == "instituer_reflet"){
126                        $statut_old = $flux['args']['statut_old'];
127                        $statut_new = $flux['args']['statut_new'];
128                        $id_reflet = $flux['args']['id_objet'];
129
130                        $domaine = sql_getfetsel('domaine','spip_reflets','id_reflet='.intval($id_reflet));
131                        //$generer_xml = charger_fonction('reflet_generation_xml','inc');
132                        //$generer_xml($domaine);
133
134                        // Envoyer le mail de demande de création à tous les admins du site
135                        $message_admin = _T('reflet:mail_admin_texte');
136                        $sujet_admin = "[$nom_site_spip] "._T('reflet:mail_admin_sujet');
137                        $emails_admins = sql_select("email","spip_auteurs","statut = '0minirezo'");
138                        while($email = sql_fetsel($emails_admins)){
139                                envoyer_mail($email,$sujet_admin,$message_admin);
140                        }
141                }
142        }
143        else if ($flux['args']['table'] == "spip_censures"){
144                if($flux['args']['action'] == "supprimer_censure"){
145                        //$generer_xml = charger_fonction('reflet_generation_xml','inc');
146                        //$generer_xml($flux['args']['domaine']);
147                }
148        }
149        else if(in_array($flux['args']['operation'],array('copier_local_post'))){
150                $id_document = $flux['args']['id_objet'];
151                $document = sql_fetsel("*","spip_documents","id_document=".intval($id_document));
152                if($document['extension'] == 'flv'){
153                        $document_lien = sql_fetsel("*","spip_documents_liens","id_document=".intval($id_document)." AND objet=".sql_quote('contrib_son'));
154                        $extension_attente = 'mp3';
155
156                        $type_doc = $document_lien['objet'];
157                        $id_objet = $document_lien['id_objet'];
158
159                        include_spip('inc/documents');
160                        $chemin = get_spip_doc($document['fichier']);
161                        spip_log("encodage de $chemin","spipmotion");
162
163                        $fichier = basename($document['fichier']);
164                        $string = "$document-$id_objet-$width-$type_doc-$height";
165                        $query = md5($string);
166                        $dossier = _DIR_TMP;
167                        $fichier_final = substr($fichier,0,-(strlen($document['extension'])+1)).'-encoded.'.$extension_attente;
168
169                        $fichier_temp = "$dossier$query.$extension_attente";
170                        spip_log("le nom temporaire durant l'encodage est $fichier_temp","spipmotion");
171
172                        $encodage = find_in_path('script_bash/spipmotion.sh').' --e '.$chemin.' --s '.$fichier_temp.' --audiobitrate '.lire_config("spipmotion/bitrate_audio_$extension_attente","128").' --audiofreq '. lire_config("spipmotion/frequence_audio_$extension_attente","44100").' --p '.lire_config("spipmotion/chemin","/usr/local/bin/ffmpeg");
173                        spip_log($encodage,'spipmotion');
174                        $lancement_encodage = exec($encodage,$retour);
175                        spip_log($retour,'reflet');
176                        spip_log("l'encodage est terminé",'reflet');
177
178                        $mode = 'document';
179                        $invalider = true;
180
181                        $ajouter_documents = charger_fonction('ajouter_documents', 'inc');
182                        $x = $ajouter_documents($fichier_temp, $fichier_final, $type_doc, $id_objet, $mode, '', $actif,'','','');
183                        spip_log("on ajoute le nouveau fichier qui devient $x","reflet");
184                        //@unlink($fichier_temp);
185
186                        sql_updateq("spip_documents",array('id_orig'=>$document['id_document']),'id_document='.intval($x));
187                        if ($invalider) {
188                                include_spip('inc/invalideur');
189                                suivre_invalideur("0",true);
190                                spip_log('invalider', 'spipmotion');
191                        }
192                }
193                return $flux;
194        }
195        return $flux;
196}
197
198/**
199 * Insertion dans le pipeline i2_exceptions_des_champs_auteurs_elargis
200 *
201 * Liste des champs pour lesquels on ne doit pas créer de champs dans la
202 * table spip_auteurs_elargis
203 *
204 * @param array $array Array des champs d'autres plugins
205 * @return array L'array complété avec nos champs
206 */
207function reflet_i2_exceptions_des_champs_auteurs_elargis($array){
208        $array[] = 'ssdomaine';
209        $array[] = 'reflet_texte_utilisation';
210
211        return $array;
212}
213function reflet_i2_exceptions_chargement_champs_auteurs_elargis($array){
214        // liste des champs pour lesquels on ne doit pas créer de champs dans la table spip_auteurs_elargis
215
216        $array[] = 'ssdomaine';
217        $array[] = 'reflet_texte_utilisation';
218
219        return $array;
220}
221
222/**
223 *
224 * Insertion dans le pipeline reflet_verifications_specifiques
225 * Plugin reflet configuration
226 *
227 * @return array Tableau contenant plusieurs tableaux en fonction du type de champs
228 * @param object $array Doit recevoir un tableau du même type
229 */
230
231function reflet_reflet_verifications_specifiques($array){
232
233        // Pour plus d'informations voir : http://global.reflet-web.net/spip.php?article44
234
235        // Les pourcentages : fonction inc/reflet_verifier_pourcentage
236        //$array['opacite_normal'] = 'verifier_pourcentage';
237        //$array['opacite_discret'] = 'verifier_pourcentage';
238        //$array['volume_discret'] = 'verifier_pourcentage';
239        //$array['volume_normal'] = 'verifier_pourcentage';
240        //$array['taille_texte1'] = 'verifier_pourcentage';
241        //$array['taille_texte2'] = 'verifier_pourcentage';
242        //$array['taille_texte3'] = 'verifier_pourcentage';
243        //$array['taille_texte4'] = 'verifier_pourcentage';
244
245        // Les durée d'enregistrement et des fichiers sons
246
247        // Les données géographiques
248        $array['lat'] = 'reflet_verifier_latitude';
249        $array['lng'] = 'reflet_verifier_longitude';
250
251        // Les langues
252        $array['languelabeldefaut'] = 'reflet_verifier_languelabeldefaut';
253        $array['langueecrituredefaut'] = 'reflet_verifier_langueecrituredefaut';
254        $array['langueaudiodefaut'] = 'reflet_verifier_langueaudiodefaut';
255
256        return $array;
257}
258
259/**
260 * Insertion dans le pipeline reflet_champs_formulaires
261 * Plugin reflet configuration
262 * Ajoute des champs pris en compte dans le formulaire de la configuration
263 *
264 * @param Array $array Un array de champs
265 * @return Array $array L'array modifié
266 */
267function reflet_reflet_champs_formulaires($array){
268        $array  = array_merge($array,array(
269                                "titre",
270                                "etat",
271                                "languelabeldefaut",
272                                "languelabeldispo",
273                                "langueecrituredefaut",
274                                "langueecrituredispo",
275                                "langueaudiodefaut",
276                                "langueaudiodispo",
277                                "languedescription",
278                                "panneau",
279                                "contrib_texte",
280                                "contrib_son",
281                                "contrib_fichier_son",
282                                "max_texte",
283                                "max_son",
284                                "contenu",
285                                "moderation",
286                                "moderation_revelation_nv",
287                                "censure",
288                                "censure_revelation_nv",
289                                "activer_geoloc",
290                                "lat",
291                                "lng",
292                                "zoom",
293                                "presentation",
294                                "wallpaper",
295                                "wallpaper_position"
296                        )
297                );
298
299        return $array;
300}
301/**
302 * Insertion dans le pipeline rechercher_liste_des_champs
303 *
304 * Ajoute les nouveaux objets : Reflets, contrib_texte et contrib_son dans la
305 * recherche SPIP
306 *
307 * @return array Tableau contenant plusieurs tableaux en fonction du type de champs
308 * @param object $array Doit recevoir un tableau du même type
309 */
310
311function reflet_rechercher_liste_des_champs($array){
312
313        $array['reflet'] = array(
314                                'domaine' => 8,
315                                'description_etat' => 1,
316                                'presentation' => 3,
317                                'texte_utilisation' => 1
318                        );
319        $array['contrib_texte'] = array(
320                                'texte' => 8
321                        );
322        $array['contrib_son'] = array(
323                                'texte' => 8
324                        );
325        return $array;
326}
327?>
Note: See TracBrowser for help on using the repository browser.