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

Last change on this file since 55573 was 55573, checked in by brunobergot@…, 9 years ago

permettre de passer type_bulle=non pour ne pas avoir de title sur les liens

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