source: spip-zone/_plugins_/lister_constantes/trunk/lister_constantes_fonctions.php @ 112815

Last change on this file since 112815 was 112815, checked in by teddy.spip@…, 4 months ago

PSR SPIP

File size: 1.1 KB
Line 
1<?php
2
3/**
4 * Lister toutes les constantes définies dans l'instance de SPIP.
5 * Les constantes fournies par les différents plugins actifs seront aussi prise en compte.
6 *
7 * @param  null|string $prefixe
8 *         Préfixe de la constantes.
9 *
10 * @return array
11 *         Si aucun préfixe, on listera toutes les constantes.
12 *         Si un préfixe est identifié, on listera toutes les constantes avec ce préfixe.
13 */
14function lister_constantes_spip($prefixe = null) {
15        $constantes = get_defined_constants(true);
16
17        $constantes_user = $constantes['user'];
18
19        foreach ($constantes_user as $key => $value) {
20                if ($constante = preg_split('/_/', $key, -1, PREG_SPLIT_NO_EMPTY)) {
21                        if ($constante[0] == '_') {
22                                $constantes_user[$constante[1]][$key] = $value;
23                        } else {
24                                $constantes_user[$constante[0]][$key] = $value;
25                        }
26                        unset($constantes_user[$key]);
27                }
28        }
29
30        ksort($constantes_user);
31
32        $resultat = $constantes_user;
33
34        if ($prefixe) {
35                // On pourrait faire aussi un contrôle avec array_key_exists()
36                // Mais ça risque de fausser le résultat attendu.
37                $resultat = array($prefixe => $constantes_user[$prefixe]);
38        }
39
40        return $resultat;
41}
Note: See TracBrowser for help on using the repository browser.