source: spip-zone/_core_/branches/spip-3.0/plugins/grenier/inc/presentation.php @ 94397

Last change on this file since 94397 was 94397, checked in by denisb@…, 4 years ago

bonne année.

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