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

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

Première version du plugin

  • Property svn:eol-style set to native
File size: 2.4 KB
Line 
1<?php
2
3/**
4 * La balise #BOUSSOLE_INFOS renvoie :
5 * - soit le tableau des infos contenues dans la meta boussole_infos_<alias> si l'alias est fourni
6 * - soit la liste de tous les tableaux d'infos des meta boussole_infos_xxxx sinon
7 *
8 * @param string $p
9 * @return array
10 */
11
12// $p   => alias de la boussole ou vide
13function balise_BOUSSOLE_INFOS($p) {
14       
15        $alias = interprete_argument_balise(1,$p);
16        $alias = isset($alias) ? str_replace('\'', '"', $alias) : '""';
17
18        $p->code = 'calcul_boussole_infos('.$alias.')';
19
20        return $p;
21}
22
23function calcul_boussole_infos($alias) {
24
25        $infos = array();
26       
27        $where = array();
28        $group_by = array();
29        if ($alias)
30                $where[] = 'aka_boussole=' . sql_quote($alias);
31        else
32                $group_by[] = 'aka_boussole';
33
34        $akas_boussole = sql_allfetsel('aka_boussole', 'spip_boussoles', $where, $group_by);
35        if ($akas_boussole) {
36                foreach (array_map('reset', $akas_boussole) as $_aka_boussole) {
37                        $meta = sql_fetsel('valeur, maj', 'spip_meta', 'nom=' . sql_quote('boussole_infos_' . $_aka_boussole));
38                        if ($meta) {
39                                if ($alias)
40                                        $infos = array_merge(unserialize($meta['valeur']), array('maj' => $meta['maj']));
41                                else
42                                        $infos[] = array_merge(unserialize($meta['valeur']), array('maj' => $meta['maj']));
43                        }
44                }
45        }
46
47        return $infos;
48}
49
50
51/**
52 * Renvoie la traduction d'un champ d'une boussole, d'un groupe ou d'un site
53 *
54 * @param string $aka_boussole
55 * @param string $champ
56 * @param string $alias
57 * @return string
58 */
59
60// $aka_boussole        => alias de la boussole
61// $champ                       => champ a traduire
62// $alias                       => alias du groupe ou du site
63function boussole_traduire($aka_boussole, $champ, $alias='') {
64        $champs_boussole = array('nom_boussole', 'slogan_boussole','descriptif_boussole');
65        $champs_groupe_site = array('nom_groupe', 'nom_site', 'slogan_site', 'descriptif_site');
66
67        $traduction = '';
68        if ($aka_boussole) {
69                if (in_array($champ, $champs_boussole))
70                        $traduction = _T('boussole:' . $champ . '_' . $aka_boussole);
71                elseif (in_array($champ, $champs_groupe_site))
72                        $traduction = _T('boussole:' . $champ . '_' . $aka_boussole . '_' . $alias);
73        }
74
75        return $traduction;
76}
77
78function boussole_informer_taille($logo) {
79        $taille = '';
80        if ($taille = @getimagesize($logo))
81                $taille = _T('info_largeur_vignette', array('largeur_vignette' => $taille[0], 'hauteur_vignette' => $taille[1]));
82        else
83                $taille = _T('boussole:info_aucun_logo_boussole');
84       
85        return $taille;
86}
87
88?>
Note: See TracBrowser for help on using the repository browser.