source: spip-zone/_core_/plugins/grenier/inc/presentation.php @ 93641

Last change on this file since 93641 was 93641, 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: 8.1 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2015                                                *
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
13if (!defined('_ECRIRE_INC_VERSION')) return;
14
15define('_SIGNALER_ECHOS', true);
16define('_INTERFACE_ONGLETS', false);
17
18include_once(_ROOT_RESTREINT."inc/presentation.php");
19
20
21if (!function_exists('afficher_objets')) {
22function afficher_objets($type, $titre_table, $requete, $formater = '', $force = false) {
23        $afficher_objets = charger_fonction('afficher_objets', 'inc');
24        return $afficher_objets($type, $titre_table, $requete, $formater, $force);
25}
26}
27
28//
29// Cadres
30//
31// http://code.spip.net/@afficher_onglets_pages
32function afficher_onglets_pages($ordre, $onglets) {
33        static $onglet_compteur = 0;
34        $res = "";
35        $corps = "";
36        $cpt = 0;
37        $actif = 0;
38        // ordre des onglets
39        foreach($ordre as $id => $label) {
40                $cpt++;
41                $disabled = strlen(trim($onglets[$id]))?"":" class='tabs-disabled'";
42                if (!$actif && !$disabled) $actif = $cpt;
43                $res .= "<li$disabled><a rel='$cpt' href='#$id'><span>" . $label . "</span></a></li>";
44        }
45        $res = "<ul class='tabs-nav'>$res</ul>";
46        foreach((_INTERFACE_ONGLETS ? array_keys($ordre):array_keys($onglets)) as $id){
47                $res .= "<div id='$id' class='tabs-container'>" . $onglets[$id] . "<br class='nettoyeur' /></div>";
48        }
49        $onglet_compteur++;
50        return "<div class='boite_onglets' id='boite_onglet_$onglet_compteur'>$res</div>"
51        . (_INTERFACE_ONGLETS ?
52           http_script("$('#boite_onglet_$onglet_compteur').tabs(".($actif?"$actif,":"")."{ fxAutoHeight: true });
53         if (!$.browser.safari)
54         $('ul.tabs-nav li').hover(
55                function(){
56                        \$('#boite_onglet_$onglet_compteur').triggerTab(parseInt(\$(this).attr('rel')));
57                        return false;
58                }
59                ,
60                function(){}
61                );")
62           :"");
63}
64
65
66// Voir en ligne, ou apercu, ou rien (renvoie tout le bloc)
67// http://code.spip.net/@voir_en_ligne
68function voir_en_ligne($type, $id, $statut = false, $image = 'racine-24.png', $af = true, $inline = true) {
69
70        $en_ligne = $message = '';
71        switch ($type) {
72        case 'article':
73                        if ($statut == "publie" and $GLOBALS['meta']["post_dates"] == 'non') {
74                                $n = sql_fetsel("id_article", "spip_articles", "id_article=$id AND date<=NOW()");
75                                if (!$n) $statut = 'prop';
76                        }
77                        if ($statut == 'publie')
78                                $en_ligne = 'calcul';
79                        elseif ($statut == 'prop')
80                                $en_ligne = 'preview';
81                        break;
82        case 'rubrique':
83                        if ($id > 0)
84                                if ($statut == 'publie')
85                                        $en_ligne = 'calcul';
86                                else
87                                        $en_ligne = 'preview';
88                        break;
89        case 'breve':
90        case 'site':
91                        if ($statut == 'publie')
92                                $en_ligne = 'calcul';
93                        elseif ($statut == 'prop')
94                                $en_ligne = 'preview';
95                        break;
96        case 'mot':
97                        $en_ligne = 'calcul';
98                        break;
99        case 'auteur':
100                        $n = sql_fetsel('A.id_article', 'spip_auteurs_liens AS L LEFT JOIN spip_articles AS A ON (L.objet=\'article\' AND L.id_objet=A.id_article)', "A.statut='publie' AND L.id_auteur=".intval($id));
101                        if ($n) $en_ligne = 'calcul';
102                        else $en_ligne = 'preview';
103                        break;
104        default: return '';
105        }
106
107        if ($en_ligne == 'calcul')
108                $message = _T('icone_voir_en_ligne');
109        elseif ($en_ligne == 'preview'
110        and autoriser('previsualiser'))
111                $message = _T('previsualiser');
112        else
113                return '';
114
115        $h = generer_url_action('redirect', "type=$type&id=$id&var_mode=$en_ligne");
116
117        return $inline
118          ? icone_inline($message, $h, $image, "", $GLOBALS['spip_lang_left'])
119        : icone_horizontale($message, $h, $image, "", $af);
120
121}
122
123// http://code.spip.net/@icone_inline
124function icone_inline($texte, $lien, $fond, $fonction = "", $align = "", $ajax = false, $javascript = '') {
125        // cas d'ajax_action_auteur: faut defaire le boulot
126        // (il faudrait fusionner avec le cas $javascript)
127        if (preg_match(",^<a\shref='([^']*)'([^>]*)>(.*)</a>$,i", $lien, $r)) {
128                list($x, $lien, $atts, $texte) = $r;
129                $javascript .= $atts;
130        }
131
132        // l'ajax de l'espace prive made in php
133        if ($ajax)
134                $javascript .= ' onclick=' . ajax_action_declencheur($lien, $ajax);
135
136        return icone_base($lien, $texte, $fond, $fonction, "verticale $align", $javascript);
137}
138
139
140// http://code.spip.net/@navigation_pagination
141function navigation_pagination($num_rows, $nb_aff = 10, $href = null, $debut, $tmp_var = null, $on = '') {
142
143        $texte = '';
144        $self = parametre_url(self(), 'date', '');
145        $deb_aff = intval($debut);
146
147        for ($i = 0; $i < $num_rows; $i += $nb_aff){
148                $deb = $i + 1;
149
150                // Pagination : si on est trop loin, on met des '...'
151                if (abs($deb - $deb_aff) > 101) {
152                        if ($deb < $deb_aff) {
153                                if (!isset($premiere)) {
154                                        $premiere = '0 ... ';
155                                        $texte .= $premiere;
156                                }
157                        } else {
158                                $derniere = ' | ... '.$num_rows;
159                                $texte .= $derniere;
160                                break;
161                        }
162                } else {
163
164                        $fin = $i + $nb_aff;
165                        if ($fin > $num_rows)
166                                $fin = $num_rows;
167
168                        if ($deb > 1)
169                                $texte .= " |\n";
170                        if ($deb_aff + 1 >= $deb and $deb_aff + 1 <= $fin) {
171                                $texte .= "<b>$deb</b>";
172                        }
173                        else {
174                                $script = parametre_url($self, $tmp_var, $deb - 1);
175                                if ($on) $on = generer_onclic_ajax($href, $tmp_var, $deb - 1);
176                                $texte .= "<a href=\"$script\"$on>$deb</a>";
177                        }
178                }
179        }
180
181        return $texte;
182}
183
184
185// http://code.spip.net/@generer_onclic_ajax
186function generer_onclic_ajax($url, $idom, $val)
187{
188        return "\nonclick=\"return charger_id_url('"
189          . parametre_url($url, $idom, $val)
190          . "','"
191          . $idom
192          . '\');"';
193}
194
195//
196// Afficher la hierarchie des rubriques
197//
198
199// http://code.spip.net/@afficher_hierarchie
200function afficher_hierarchie($id_parent, $editable = true, $id_objet = 0, $type = '', $id_secteur = 0, $restreint = '') {
201        $out = recuperer_fond('prive/squelettes/hierarchie/dist',
202                                        array(
203                                                'id_parent' => $id_parent,
204                                                'objet' => $type,
205                                                'id_objet' => $id_objet,
206                                                'deplacer' => _request('deplacer')?'oui':'',
207                                                'id_secteur' => $id_secteur,
208                                                'restreint' => $restreint,
209                                                'editable' => $editable?' ':'',
210                                        ), array('ajax' => true));
211        $out = pipeline('affiche_hierarchie', array('args' => array(
212                        'id_parent' => $id_parent,
213                        'id_objet' => $id_objet,
214                        'objet' => $type,
215                        'id_secteur' => $id_secteur,
216                        'restreint' => $restreint,
217                        'editable' => $editable?' ':'',
218                        ),
219                        'data' => $out));
220
221        return $out;
222}
223// Cadre formulaires
224
225// http://code.spip.net/@debut_cadre_formulaire
226function debut_cadre_formulaire($style = '') {return "\n<div class='cadre-formulaire'" .(!$style ? "" : " style='$style'") .">";}
227// http://code.spip.net/@fin_cadre_formulaire
228function fin_cadre_formulaire($return = false) {return "</div>\n";}
229
230// Pour construire des menu avec SELECTED
231// http://code.spip.net/@mySel
232function mySel($varaut, $variable, $option = null) {
233        $res = ' value="'.$varaut.'"' . (($variable == $varaut) ? ' selected="selected"' : '');
234        return  (!isset($option) ? $res : "<option".$res.">$option</option>\n");
235}
236
237
238// http://code.spip.net/@bonhomme_statut
239function bonhomme_statut($row) {
240        $puce_statut = charger_fonction('puce_statut', 'inc');
241        return $puce_statut(0, $row['statut'], 0, 'auteur');
242}
243
244
245// http://code.spip.net/@bouton_radio
246function bouton_radio($nom, $valeur, $titre, $actif = false, $onClick = "") {
247        static $id_label = 0;
248
249        if (strlen($onClick) > 0) $onClick = " onclick=\"$onClick\"";
250        $texte = "<input type='radio' name='$nom' value='$valeur' id='label_${nom}_${id_label}'$onClick";
251        if ($actif) {
252                $texte .= ' checked="checked"';
253                $titre = '<b>'.$titre.'</b>';
254        }
255        $texte .= " /> <label for='label_${nom}_${id_label}'>$titre</label>\n";
256        $id_label++;
257        return $texte;
258}
259
260
261// http://code.spip.net/@afficher_choix
262function afficher_choix($nom, $valeur_actuelle, $valeurs, $sep = "<br />") {
263        $choix = array();
264        while (list($valeur, $titre) = each($valeurs)) {
265                $choix[] = bouton_radio($nom, $valeur, $titre, $valeur == $valeur_actuelle);
266        }
267        return "\n".join($sep, $choix);
268}
Note: See TracBrowser for help on using the repository browser.