source: spip-zone/_plugins_/lister_config/complements/lister_constantes/lister_constantes_fonctions.php @ 90734

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

Le découpe du plugin dev_reloaded continue : voici le plugin lister_constantes.

File size: 1.2 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{
16    $constantes = get_defined_constants(true);
17
18    $constantes_user = $constantes['user'];
19
20    foreach ($constantes_user as $key => $value) {
21        if ($constante = preg_split('/_/', $key, -1, PREG_SPLIT_NO_EMPTY)) {
22            if ($constante[0] == '_') {
23                $constantes_user[$constante[1]][$key] = $value;
24            } else {
25                $constantes_user[$constante[0]][$key] = $value;
26            }
27            unset($constantes_user[$key]);
28        }
29    }
30
31    ksort($constantes_user);
32
33    $resultat = $constantes_user;
34
35    if ($prefixe) {
36        // On pourrait faire aussi un contrôle avec array_key_exists()
37        // Mais ça risque de fausser le résultat attendu.
38        $resultat = array($prefixe => $constantes_user[$prefixe]);
39    }
40
41    return $resultat;
42}
Note: See TracBrowser for help on using the repository browser.