source: spip-zone/_plugins_/licence/licence_pipelines3.php

Last change on this file was 99274, checked in by brunobergot@…, 3 years ago

version 0.9.0 : compat spip 3.1 pour la licence des documents

réparer la regex pour qu'elle fonctionne avec la nouvelle structure html des formulaire (running gag) + adapter la stuture html du bloc inséré en fonction de la version de SPIP (div ou li)

File size: 3.3 KB
Line 
1<?php
2/**
3 * Plugin Licence
4 * (c) 2007-2013 fanouch
5 * Distribue sous licence GPL
6 *
7 * @package SPIP\Licences\Pipelines
8 */
9
10if (!defined("_ECRIRE_INC_VERSION")) return;
11
12/**
13 * Insertion dans le pipeline affiche_milieu (SPIP)
14 *
15 * Insertion au centre des pages d'articles dans le privé
16 * d'un formulaire d'édition de la licence de l'article
17 *
18 * @param array $flux
19 *              Le contexte du pipeline
20 * @return array $flux
21 *              Le contexte du pipeline modifié
22 */
23function licence_affiche_milieu($flux) {
24        if ($flux['args']['exec'] == 'article'){
25                $contexte['id_article'] = $flux["args"]["id_article"];
26               
27                $texte = recuperer_fond('prive/squelettes/contenu/licence_article3',$contexte,array('ajax'=>true));
28               
29                if (($p = strpos($flux['data'],'<!--affiche_milieu-->'))!==false)
30                        $flux['data'] = substr_replace($flux['data'],$texte,$p,0);
31                else
32                        $flux['data'] .= $texte;
33        }
34        return $flux;
35}
36
37/**
38 * Insertion dans le pipeline pre_insertion (SPIP)
39 *
40 * Si création d'un nouvel article, on lui attribue la licence par défaut si
41 * on utilise correctement les fonctions internes de SPIP pour créer des articles
42 * cf : http://trac.rezo.net/trac/spip/browser/branches/spip-2.1/ecrire/action/editer_article.php#L214
43 *
44 * @param array $flux
45 *              Le contexte du pipeline
46 * @return array $flux
47 *              Le contexte du pipeline auquel on a ajouté la licence
48 */
49function licence_pre_insertion($flux){
50        if ($flux['args']['table']=='spip_articles') {
51                include_spip('inc/config');
52                $licence_defaut = lire_config('licence/licence_defaut');
53                $flux['data']['id_licence'] = $licence_defaut;
54        }
55        return $flux;
56}
57
58
59/**
60 * Insertion dans le pipeline editer_contenu_objet (SPIP)
61 *
62 * Ajout dans le formulaire d'édition de document du sélecteur de licence
63 *
64 * @param array $flux
65 *              Le contexte du pipeline
66 * @return array  $flux
67 *              Le contexte du pipeline complété
68 */
69function licence_editer_contenu_objet($flux){
70        if(in_array($flux['args']['type'],array('document'))){
71                if(preg_match(",<(li|div) [^>]*class=[\"']editer editer_credits.*>(.*)<\/(li|div)>,Uims",$flux['data'],$regs)){
72                        include_spip('inc/licence');
73                        $licences = licence_lister();
74                        $ajouts = recuperer_fond('prive/licence_document_saisies',array('id_document'=>$flux['args']['id'],'licences' => $licences));
75                        $flux['data'] = str_replace($regs[0],$ajouts.$regs[0],$flux['data']);
76                }
77        }
78        return $flux;
79}
80
81/**
82 * Insertion dans le pipeline xmlrpc_methodes (xmlrpc)
83 * Ajout de méthodes xml-rpc spécifiques à Licence
84 *
85 * @param array $flux
86 *              Un array des methodes déjà présentes, fonctionnant sous la forme :
87 *                      -* clé = nom de la méthode;
88 *                      -* valeur = le nom de la fonction à appeler;
89 * @return array $flux
90 *              L'array complété avec nos nouvelles méthodes
91 */
92function licence_xmlrpc_methodes($flux){
93        $flux['spip.liste_licences'] = 'licence_liste_licences';
94        return $flux;
95}
96
97/**
98 * Insertion dans le pipeline xmlrpc_server_class (xmlrpc)
99 *
100 * Ajout de fonctions spécifiques utilisées par le serveur xml-rpc
101 * On inclu le fichier contenant les classes spécifiques
102 *
103 * @param $flux
104 * @return $flux
105 */
106function licence_xmlrpc_server_class($flux){
107        include_spip('inc/licence_xmlrpc');
108        return $flux;
109}
110?>
Note: See TracBrowser for help on using the repository browser.