source: spip-zone/_grenier_/champs_extras/extras_pipelines.php @ 79910

Last change on this file since 79910 was 79910, checked in by cedric@…, 7 years ago

He y avait un bug et personne l'avait vu ? Coquille dans la regexp de remplacement qui pourissait les formulaires

File size: 2.7 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2008                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13function extras_afficher_contenu_objet($flux){
14        if ($GLOBALS['champs_extra']){
15                include_spip('base/abstract_sql');
16                $type = $flux['args']['type'];
17                $table_objet = table_objet($type);
18                $id_table_objet = id_table_objet($type);               
19                $id_objet = $flux['args']['id_objet'];
20                $spip_table_objet = table_objet_sql($type);
21       
22                // Verfifier qu'il y a bien un champ extra (sinon plantage garanti)
23                $description_table = description_table($spip_table_objet);
24                if ($description_table["field"]["extra"]) $extra = sql_getfetsel('extra',$spip_table_objet,"$id_table_objet=".intval($id_objet));
25                include_spip('inc/extra');
26                $flux['data'].= extra_affichage($extra,$table_objet);
27        }
28       
29        return $flux;
30}
31
32// pipeline obsolete
33function extras_afficher_revision_objet($flux){
34        return extras_afficher_contenu_objet($flux); // pas de revisions sur les extras
35}
36
37function extras_editer_contenu_objet($flux){
38        if ($GLOBALS['champs_extra']){
39                $args = $flux['args'];
40                include_spip('inc/extra');
41                $type_extra = table_objet($args['type']);
42                $extra_saisie = extra_saisie($args['contexte']['extra'],$type_extra,$args['contexte']['id_secteur']);
43
44                if ($extra_saisie){
45                        if (strpos($flux['data'],'<!--extra-->')!==FALSE)
46                                $flux['data'] = preg_replace(',(.*)(<!--extra-->),ims',"\\1$extra_saisie\\2",$flux['data'],1);
47                        else
48                                $flux['data'] = preg_replace(',(.*)(</fieldset>),ims',"\\1\\2$extra_saisie",$flux['data'],1);
49                }
50        }
51        return $flux;
52}
53
54function extras_pre_edition($flux){
55        $serveur = '';
56        $table_objet = $flux['args']['table_objet'];
57        $id_objet = $flux['args']['id_objet'];
58       
59        $trouver_table = charger_fonction('trouver_table', 'base');
60        $desc = $trouver_table($table_objet, $serveur);
61       
62        // recuperer les extras (utilise $_POST, un peu sale...
63        // a voir pour le faire marcher avec les crayons)
64        if (isset($desc['field']['extra'])
65        AND isset($_POST['extra'])
66        AND $GLOBALS['champs_extra']) {
67                include_spip('inc/extra');
68                $extra = extra_update($table_objet, $id_objet, $_POST);
69                if ($extra !== false)
70                        $flux['data']['extra'] = $extra;
71        }
72
73        return $flux;
74}
75
76
77?>
Note: See TracBrowser for help on using the repository browser.