source: spip-zone/_plugins_/boussole/boussole_fonctions.php @ 48785

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

On utilise plus spip_version_compare pour éviter de la chercher partout quand elle change de place suivant les version SPIP :p

  • Property svn:eol-style set to native
File size: 3.7 KB
Line 
1<?php
2
3// ----------------------- Balises propres a Boussole ---------------------------------
4
5/**
6 * La balise #BOUSSOLE_INFOS renvoie :
7 * - soit le tableau des infos contenues dans la meta boussole_infos_<alias> si l'alias est fourni
8 * - soit la liste de tous les tableaux d'infos des meta boussole_infos_xxxx sinon
9 *
10 * @param string $p
11 * @return array
12 */
13
14// $p   => alias de la boussole ou vide
15function balise_BOUSSOLE_INFOS($p) {
16       
17        $alias = interprete_argument_balise(1,$p);
18        $alias = isset($alias) ? str_replace('\'', '"', $alias) : '""';
19
20        $p->code = 'calcul_boussole_infos('.$alias.')';
21
22        return $p;
23}
24
25function calcul_boussole_infos($alias) {
26
27        $infos = array();
28       
29        $where = array();
30        $group_by = array();
31        if ($alias)
32                $where[] = 'aka_boussole=' . sql_quote($alias);
33        else
34                $group_by[] = 'aka_boussole';
35
36        $akas_boussole = sql_allfetsel('aka_boussole', 'spip_boussoles', $where, $group_by);
37        if ($akas_boussole) {
38                foreach (array_map('reset', $akas_boussole) as $_aka_boussole) {
39                        $meta = sql_fetsel('valeur, maj', 'spip_meta', 'nom=' . sql_quote('boussole_infos_' . $_aka_boussole));
40                        if ($meta) {
41                                if ($alias)
42                                        $infos = array_merge(unserialize($meta['valeur']), array('maj' => $meta['maj']));
43                                else
44                                        $infos[] = array_merge(unserialize($meta['valeur']), array('maj' => $meta['maj']));
45                        }
46                }
47        }
48
49        return $infos;
50}
51
52
53// ----------------------- Filtres propres a Boussole ---------------------------------
54
55/**
56 * Renvoie la traduction d'un champ d'une boussole, d'un groupe ou d'un site
57 *
58 * @param string $aka_boussole
59 * @param string $champ
60 * @param string $alias
61 * @return string
62 */
63
64// $aka_boussole        => alias de la boussole
65// $champ                       => champ a traduire
66// $alias                       => alias du groupe ou du site
67function boussole_traduire($aka_boussole, $champ, $alias='') {
68        $champs_boussole = array('nom_boussole', 'slogan_boussole','descriptif_boussole', 'titre_actualite');
69        $champs_groupe_site = array('nom_groupe', 'nom_site', 'slogan_site', 'nom_slogan_site', 'descriptif_site');
70
71        $traduction = '';
72        if ($aka_boussole) {
73                if (in_array($champ, $champs_boussole))
74                        $traduction = _T('boussole:' . $champ . '_' . $aka_boussole);
75                elseif (in_array($champ, $champs_groupe_site))
76                        if ($champ != 'nom_slogan_site')
77                                $traduction = _T('boussole:' . $champ . '_' . $aka_boussole . '_' . $alias);
78                        else
79                                $traduction = _T('boussole:nom_site_' . $aka_boussole . '_' . $alias) . ' - ' .
80                                                          _T('boussole:slogan_site_' . $aka_boussole . '_' . $alias);
81        }
82
83        return $traduction;
84}
85
86/**
87 * Renvoie la la chaine habituelle informant sur la taille d'un logo (lxh pixels)
88 *
89 * @param string $logo
90 * @return string
91 */
92
93// $logo        => fichier logo
94function boussole_informer_taille($logo) {
95        $taille = '';
96        if ($taille = @getimagesize($logo))
97                $taille = _T('info_largeur_vignette', array('largeur_vignette' => $taille[0], 'hauteur_vignette' => $taille[1]));
98        else
99                $taille = _T('boussole:info_aucun_logo_boussole');
100       
101        return $taille;
102}
103
104
105// -------------------- Filtres de compatibilite avec SPIP 2.0 ------------------------
106
107if (substr($GLOBALS['spip_version_branche'],0, 3) == '2.0') {
108        function bouton_action($libelle, $url, $class="", $confirm="", $title=""){
109                $onclick = $confirm?" onclick='return confirm(\"" . attribut_html($confirm) . "\");'":"";
110                $title = $title ? " title='$title'" : "";
111       
112                return "<form class='bouton_action_post $class' method='post' action='$url'><div>".form_hidden($url)
113                        ."<button type='submit' class='submit'$title$onclick>$libelle</button></div></form>";
114        }
115
116        function singulier_ou_pluriel($nb,$chaine_un,$chaine_plusieurs,$var='nb'){
117                if (!$nb=intval($nb)) return "";
118                if ($nb>1) return _T($chaine_plusieurs, array($var => $nb));
119                else return _T($chaine_un);
120        }
121}
122
123?>
Note: See TracBrowser for help on using the repository browser.