source: spip-zone/_plugins_/reservation_evenement/branches/v1/reservation_evenement_fonctions.php @ 101661

Last change on this file since 101661 was 101661, checked in by abelass@…, 4 years ago
  • bug détection bon prix avec déclinaisons
  • garder les champs extras modifiés dans la session
  • mieux détecter les noms de statuts
File size: 3.9 KB
Line 
1<?php
2/**
3 * Fonctions utiles au plugin Réservation Événements
4 *
5 * @plugin     Réservation Événements
6 * @copyright  2013
7 * @author     Rainer Müller
8 * @licence    GNU/GPL
9 * @package    SPIP\Reservation_evenement\Fonctions
10 */
11
12if (!defined('_ECRIRE_INC_VERSION'))
13        return;
14
15function champs_extras_reservation() {
16        //les champs extras auteur
17        include_spip('cextras_pipelines');
18
19        if (function_exists('champs_extras_objet')) {
20                //Charger les définitions pour la création des formulaires
21                $champs_extras_auteurs = champs_extras_objet(table_objet_sql('auteur'));
22
23        }
24
25        return $champs_extras_auteurs;
26}
27
28function nom_statuts($statuts) {
29        $liste_objets = lister_tables_objets_sql();
30
31        $statuts_selectionnees = array();
32
33        if (is_array($statuts)) {
34                foreach ($liste_objets['spip_reservations']['statut_textes_instituer'] AS $statut => $label) {
35                        if (in_array($statut, $statuts))
36                                $statuts_selectionnees[$statut] = _T($label);
37                }
38        }
39        return $statuts_selectionnees;
40}
41
42//retourne les statuts qui définissent si un événement est complet
43function statuts_complet() {
44        $statuts_complets = charger_fonction('complet', 'inc/statuts');
45        $statuts = $statuts_complets();
46        return $statuts;
47}
48
49/**
50 * Cherche le label d'un champ extra
51 *
52 * @param  string $nom Le nom du champ.
53 * @param  array $champs_extras Les champs extras.
54 *
55 * @return string Le label.
56 */
57function chercher_label($nom, $champs_extras = '') {
58        $label = $nom;
59
60        if (!$champs_extras) {
61                //les champs extras auteur
62                include_spip('cextras_pipelines');
63
64                if (function_exists('champs_extras_objet')) {
65                        //Charger les définitions pour la création des formulaires
66                        $champs_extras = champs_extras_objet(table_objet_sql('auteur'));
67                }
68        }
69
70        foreach ($champs_extras as $value) {
71                if (isset($value['options']['nom']) and $value['options']['nom'] == $nom) {
72                        $label = $value['options']['label'];
73                }
74        }
75        return $label;
76}
77
78/**
79 * Cherche les infos d'un client
80 *
81 * @param  string $email L'email du client.
82 * @param  string $champ Un champ spécifique.
83 * @param  bin $retour_vide TRUE/FALSE.
84 *
85 * @return mixed La valeur du champ ou un tableau avec tous les champs.
86 */
87function infos_client($email, $champ = '', $retour_vide = TRUE) {
88        // Si on trouve un auteur spip on le prend, sinon on cherche dans les réservations
89        if (!$client = sql_fetsel('*', 'spip_auteurs', 'email=' . sql_quote($email)))
90                !$client = sql_fetsel('*', 'spip_reservations', 'email=' . sql_quote($email), '', 'id_reservation DESC');
91
92        // Si on a des informations on retrourne la valeur d'un champ
93        // ou le tableau des infos selon ce qui es demandé.
94        // sinon on ne retourne rien.
95        if ($client) {
96                if ($champ AND isset($client[$champ]))
97                        $infos = $client[$champ];
98                else
99                        $infos = $client;
100        }
101        elseif ($retour_vide)
102                $infos = '';
103        else
104                $infos = $email;
105
106        return $infos;
107}
108
109/*
110 * Formater un nombre pour l'afficher comme un prix avec une devise
111 *
112 * @param float $prix Valeur du prix à formater
113 * @param string $devise devise
114 * @return string Retourne une chaine contenant le prix formaté avec une devise (par défaut l'euro)
115 */
116function prix_formater_devise($montant, $devise) {
117        include_spip('inc/config');
118        include_spip('inc/cookie');
119
120        $montant = number_format($montant, 2, '.', '');
121
122        //On détermine la langue du contexte
123        $lang = $GLOBALS['spip_lang'];
124        // Si PECL intl est présent on dermine le format de l'affichage de la devise selon la langue du contexte
125        if (function_exists('numfmt_create')) {
126                $fmt = numfmt_create($lang, NumberFormatter::CURRENCY);
127                $montant = numfmt_format_currency($fmt, $montant, $devise);
128        }
129        //Sinon on formate à la française
130        elseif (function_exists('traduire_devise'))
131                $montant = $montant . '&nbsp;' . traduire_devise($devise);
132        else
133                $montant = $montant . '&nbsp;' . $devise;
134
135        return $montant;
136}
137function re_statut_titre($objet, $statut) {
138        include_spip('inc/puce_statut');
139        return statut_texte_instituer($objet , $statut);
140}
141
Note: See TracBrowser for help on using the repository browser.