source: spip-zone/_plugins_/comments/comments-200/comments_pipelines.php @ 36579

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

une fonction autoriser_forum_moderer generique

File size: 2.8 KB
Line 
1<?php
2/*
3 * Plugin Comments
4 * (c) 2010 xxx
5 * Distribue sous licence GPL
6 *
7 */
8
9/**
10 * Generer les boutons d'admin des forum selon les droits du visiteur
11 * en SPIP 2.1 uniquement
12 *
13 * @param <type> $p
14 * @return <type>
15 */
16function balise_BOUTONS_ADMIN_FORUM_dist($p) {
17        if (($_id = interprete_argument_balise(1,$p))===NULL)
18                $_id = champ_sql('id_forum', $p);
19
20        include_spip('inc/plugin');
21        if (function_exists('spip_version_compare')
22                AND spip_version_compare($GLOBALS['spip_version_code'],"2.1.0-rc",">="))
23                $p->code = "
24'<'.'?php
25        if (\$GLOBALS[\'visiteur_session\'][\'statut\']==\'0minirezo\'
26                AND (\$id = '.intval($_id).')
27                AND     include_spip(\'inc/autoriser\')
28                AND autoriser(\'moderer\',\'forum\',\$id)) {
29                        include_spip(\'inc/actions\');
30                        echo \"<div class=\'actions modererforum\'>\"
31                        . bouton_action(_T(\'icone_supprimer_message\'),generer_action_auteur(\'instituer_forum\',\$id.\'-off\',ancre_url(self(),\'forum\')))
32                        . bouton_action(_T(\'SPAM\'),generer_action_auteur(\'instituer_forum\',\$id.\'-spam\',ancre_url(self(),\'forum\')))
33                        . \"</div>\";
34                }
35?'.'>'";
36                $p->interdire_scripts = false;
37
38        return $p;
39
40}
41
42
43// Moderer le forum ?
44// = modifier l'objet correspondant (si forum attache a un objet)
45// = droits par defaut sinon (admin complet pour moderation complete)
46// http://doc.spip.org/@autoriser_modererforum_dist
47function autoriser_forum_moderer_dist($faire, $type, $id, $qui, $opt) {
48        $row = sql_fetsel("*", "spip_forum", "id_forum=".intval($id));
49        if (isset($row['objet']))
50                return autoriser('modererforum', $row['objet'], $row['id_objet'], $qui, $opt);
51        elseif($row['id_article'])
52                return autoriser('modererforum', 'article', $row['id_article'], $qui, $opt);
53        elseif($row['id_breve'])
54                return autoriser('modererforum', 'breve', $row['id_breve'], $qui, $opt);
55        elseif($row['id_rubrique'])
56                return autoriser('modererforum', 'rubrique', $row['id_rubrique'], $qui, $opt);
57        elseif($row['id_message'])
58                return autoriser('modererforum', 'message', $row['id_message'], $qui, $opt);
59        elseif($row['id_syndic'])
60                return autoriser('modererforum', 'site', $row['id_syndic'], $qui, $opt);
61        return false;
62}
63
64
65// surcharger les boucles FORUMS
66// pour afficher uniquement les forums public meme en preview
67function comments_pre_boucle($boucle){
68        if ($boucle->type_requete == 'forums') {
69                $id_table = $boucle->id_table;
70                $mstatut = $id_table .'.statut';
71                // Par defaut, selectionner uniquement les forums sans mere
72                // Les criteres {tout} et {plat} inversent ce choix
73                if (!isset($boucle->modificateur['tout']) AND !isset($boucle->modificateur['plat'])) {
74                        array_unshift($boucle->where,array("'='", "'$id_table." ."id_parent'", 0));
75                }
76                // Restreindre aux elements publies
77                if (!$boucle->modificateur['criteres']['statut']) {
78                                array_unshift($boucle->where,array("'='", "'$mstatut'", "'\\'publie\\''"));
79                }
80        }
81        return $boucle;
82}
83
84?>
Note: See TracBrowser for help on using the repository browser.