source: spip-zone/_core_/plugins/forum/balise/formulaire_forum_prive.php @ 93640

Last change on this file since 93640 was 93640, checked in by marcimat@…, 5 years ago

Meilleure compatibilité avec PSR-2 et nos règles d'écriture, en appliquant
différents fix avec php-cs-fixers. Fixers appliqués ici :

'encoding', utf8
'eof_ending',
un saut de ligne en fin de fichier
'elseif', elseif plutôt que else if
'function_call_space',
espaces sur fonctions
'function_declaration', espaces sur fonctions
'function_typehint_space',
espaces sur fonctions
'linefeed', sauts de ligne \n uniquement
'lowercase_constants',
true, false, null en munuscule
'lowercase_keywords', mots clés PHP en lowercase
'method_argument_space',
espaces sur appels de fonctions
'multiple_use', use unique sur fonctions anonymes
'newline_after_open_tag',
ouverture de php… et c'est tout sur cette ligne
'operators_spaces', espaces de part et d'autres des opérateurs binaires
'parenthesis',
pas d'espace juste après parenthèse ouvrante, ou avant parenthèse fermante
'php_closing_tag', pas de fermeture de php
'short_tag',
tag PHP corrects
'trailing_spaces', pas d'espace qui traîne en fin de ligne
'visibility',
déclarer 'public / private / protected' sur les méthodes

File size: 3.9 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2014                                                *
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
13/**
14 * Gestion du formulaire Forum Privé et de sa balise
15 *
16 * @package SPIP\Forum\Balises
17 **/
18if (!defined("_ECRIRE_INC_VERSION")) {
19        return;
20}  #securite
21
22include_spip('inc/acces');
23include_spip('inc/texte');
24include_spip('inc/forum');
25
26
27/**
28 * Compile la balise `#FORMULAIRE_FORUM_PRIVE` qui affiche un formulaire d'ajout
29 * de commentaire pour l'espace privé
30 *
31 * Signature : `#FORMULAIRE_FORUM_PRIVE{[redirection[, objet, id_objet]]}`
32 *
33 * Particularité du contexte du formulaire pour permettre une saisie
34 * de mots-clés dans les forums : si la variable de personnalisation
35 * `$afficher_groupe[]` est définie dans le fichier d'appel, et si la table
36 * de référence est OK, la liste des mots-clés est alors proposée.
37 *
38 * @balise
39 * @see balise_FORMULAIRE_FORUM()
40 * @example
41 *     ```
42 *     #FORMULAIRE_FORUM_PRIVE seul calcule (objet, id_objet) depuis la boucle parente
43 *     #FORMULAIRE_FORUM_PRIVE{#SELF} pour forcer l'url de retour
44 *     #FORMULAIRE_FORUM_PRIVE{#SELF, article, 3} pour forcer l'objet et son identifiant
45 *     ```
46 *
47 * @param Champ $p
48 *     Pile au niveau de la balise
49 * @return Champ
50 *     Pile complétée par le code à générer
51 */
52function balise_FORMULAIRE_FORUM_PRIVE($p) {
53
54        /**
55         * On recupere $objet et $id_objet depuis une boucle englobante si possible
56         * Sinon, on essaie aussi de recuperer des id_xx dans l'URL qui pourraient indiquer
57         * sur quoi le formulaire porte.
58         * Enfin, on pourra aussi forcer objet et id_objet depuis l'appel du formulaire
59         */
60        $i_boucle = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
61        if (isset($p->boucles[$i_boucle])) {
62                $_id_objet = $p->boucles[$i_boucle]->primary;
63                $_type = $p->boucles[$i_boucle]->id_table;
64        } else {
65                $_id_objet = $_type = '';
66        }
67
68        /**
69         * On essaye de trouver les forums en fonction de l'environnement
70         * pour cela, on recupere l'ensemble des id_xxx possibles dans l'env
71         */
72        $ids = forum_get_objets_depuis_env();
73        $ids = array_values($ids);
74
75        $obtenir = array(
76                $_id_objet,
77                'id_forum',
78                'forcer_previsu',
79                'statut',
80        );
81
82
83        if ($ids) {
84                $obtenir = array_merge($obtenir, $ids);
85        }
86
87        $p = calculer_balise_dynamique($p, 'FORMULAIRE_FORUM_PRIVE', $obtenir,
88                array("'$_type'", count($ids))
89        );
90
91        return $p;
92}
93
94/**
95 * Chercher l'objet/id_objet et la configuration du forum
96 *
97 * @param array $args
98 * @param array $context_compil
99 * @return array|bool
100 */
101function balise_FORMULAIRE_FORUM_PRIVE_stat($args, $context_compil) {
102        // un arg peut contenir l'url sur lequel faire le retour
103        // exemple dans un squelette article.html : [(#FORMULAIRE_FORUM_PRIVE{#SELF})]
104        // recuperer les donnees du forum auquel on repond.
105        // deux autres a la suite pour forcer objet et id_objet
106        // [(#FORMULAIRE_FORUM_PRIVE{#SELF, article, 8})]
107        //
108
109        // $args = (obtenir) + (ids) + (url, objet, id_objet)
110        $ido = array_shift($args);
111        $id_forum = intval(array_shift($args));
112        $forcer_previsu = array_shift($args);
113        $statut = array_shift($args);
114
115        include_spip('balise/formulaire_forum');
116        // si statut privrac ou privadm, pas besoin d'objet !
117        $r = balise_forum_retrouve_objet($ido, $id_forum, $args, $context_compil,
118                !in_array($statut, array('privrac', 'privadm')));
119        if (!$r) {
120                return false;
121        }
122
123        list($objet, $id_objet, $retour) = $r;
124
125        return
126                array($objet, $id_objet, $id_forum, $forcer_previsu, $statut, $retour);
127}
Note: See TracBrowser for help on using the repository browser.