source: spip-zone/_squelettes_/gribouille/article_fonctions.php

Last change on this file was 25801, checked in by fil@…, 13 years ago

retablir la creation de pages petee par generer_url_entite (suite)

File size: 2.6 KB
Line 
1<?php
2
3// Compatibilite 1.9.2
4if (version_compare($GLOBALS['spip_version_code'],'1.9300','<'))
5        include_spip('gribouille/compat_gribouille');
6
7
8// utiliser par exemple, pour afficher une ligne de diff :
9//  [<small> (#ID_ARTICLE|affiche_diff{#ID_VERSION,'diff'}|supprimer_tags|couper{50})</small>]
10function affiche_diff($id_article, $id_version, $format='complet') {
11        include_spip('inc/suivi_versions');
12
13        $textes = revision_comparee($id_article, $id_version, $format);
14
15
16        $ret = '';
17        foreach ($textes as $champ => $texte) {
18                $texte = propre_diff($texte);
19
20                if ($champ == 'titre')
21                        $texte = "<h1>$texte</h1>";
22                else
23                        $texte = "<div class='$k'>$texte</div>";
24
25                $ret .= "\n<hr/>\n". $texte;
26        }
27
28        return $ret;
29}
30
31function affiche_auteur_diff($auteur) {
32
33        // Si c'est un nombre, c'est un auteur de la table spip_auteurs
34        if ($auteur == intval($auteur)
35        AND $s = sql_query("SELECT * FROM spip_auteurs WHERE id_auteur="._q($auteur))
36        AND $t = sql_fetch($s)) {
37                return typo($t['nom']);
38        } else {
39                return $auteur;
40        }
41}
42
43
44// Creation d'un nouvel article du WIKI -- cf. inc-entete
45if (_request('ajouter_page_wiki')!==NULL
46AND (!preg_match(",http://,",_request('ajouter_page_wiki'))) // pas d'url en titre de page, non mais
47AND _request('id_rubrique')!==NULL
48AND (!_request('pas_de_robot_merci'))
49AND _request('id_rubrique') == $GLOBALS['contexte']['id_rubrique']) {
50        $id_rubrique = intval($_POST['id_rubrique']);
51        $id_article = null;
52
53        // on verifie d'abord qu'un article de ce titre n'existe pas deja
54        $s = sql_query("SELECT id_article FROM spip_articles WHERE titre="
55        ._q(_request('ajouter_page_wiki'))." OR url_propre="
56        ._q(_request('ajouter_page_wiki')));
57        if ($t = sql_fetch($s)) {
58                $id_article = $t['id_article'];
59        } else {
60                include_spip('inc/autoriser');
61                if (autoriser('publierdans', 'rubrique', $id_rubrique)) {
62                        include_spip('action/editer_article');
63                        $id_article = insert_article($id_rubrique);
64                        include_spip('inc/modifier');
65                        $r = modifier_contenu('article', $id_article,
66                                array('champs' => array('titre', 'statut')),
67                                array(
68                                        'titre' => _request('ajouter_page_wiki'),
69                                        'statut' => 'publie' # spip 1.9.2
70                                )
71                        );
72                        # pour SPIP 1.9.3
73                        if (function_exists('instituer_article'))
74                                instituer_article($id_article,array('statut' => 'publie'));
75                }
76        }
77
78        if (!$id_article)
79                die("Erreur : creation d'article interdite");
80
81        include_spip('inc/headers');
82        if (function_exists('generer_url_entite')) {
83                $url = generer_url_entite($id_article, 'article');
84        } else {
85                charger_generer_url();
86                $url = generer_url_article($id_article, '&');
87        }
88        redirige_par_entete($url);
89}
90
91define ('RUBRIQUE_WIKI_OK', true);
92
93?>
Note: See TracBrowser for help on using the repository browser.