mirror of
https://github.com/JMP-MS/ASPIC.git
synced 2026-10-27 16:07:10 +00:00
58 lines
2.5 KiB
PHP
58 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* ASPIC — consignes_fonctions.php
|
|
*
|
|
* Bibliothèque des fonctions du catalogue ASP_Fonctions (chantier des
|
|
* consignes, 6 septembre 2026 — voir Réflexions stratégiques). Chaque
|
|
* fonction ci-dessous porte le nom exact enregistré dans
|
|
* ASP_Fonctions.FON_NomPHP, et est appelée dynamiquement par le moteur
|
|
* générique (voir moteur_consignes.php) — plus aucun appel en dur dans
|
|
* contacts.php depuis la version du 6 septembre 2026 (soir).
|
|
*
|
|
* Convention pour écrire une nouvelle fonction ici :
|
|
* - Traitement : signature (string $valeur): string — reçoit la valeur
|
|
* actuelle du champ, retourne la valeur transformée.
|
|
* - Test : signature (string $valeur): bool — retourne vrai si la valeur
|
|
* respecte la consigne, faux sinon (le message affiché à l'échec vient de
|
|
* CNS_MessageErreur en base, jamais de cette fonction).
|
|
* Fichier volontairement sans aucune dépendance (pas de session, pas de
|
|
* base de données) : chaque fonction ne fait que transformer ou tester une
|
|
* valeur qu'on lui passe.
|
|
*/
|
|
|
|
// ASP_Fonctions.FON_Nom = 'MAJUSCULE' (Nature=Traitement)
|
|
// Met en majuscules la valeur d'un champ, en respectant les caractères
|
|
// accentués français (mb_strtoupper avec encodage explicite : un simple
|
|
// strtoupper() laisserait "é"/"è"/... inchangés selon la locale du serveur).
|
|
function consigne_majuscule(string $valeur): string
|
|
{
|
|
return mb_strtoupper($valeur, 'UTF-8');
|
|
}
|
|
|
|
// ASP_Fonctions.FON_Nom = 'NON_VIDE' (Nature=Test)
|
|
// Vrai si la valeur n'est pas vide une fois débarrassée des espaces
|
|
// superflus en début/fin (une chaîne de simples espaces est considérée vide).
|
|
function consigne_non_vide(string $valeur): bool
|
|
{
|
|
return trim($valeur) !== '';
|
|
}
|
|
|
|
// ASP_Fonctions.FON_Nom = 'PREMIERE_LETTRE_MAJUSCULE' (Nature=Traitement)
|
|
// "georges" -> "Georges", "JOSEPH" -> "Joseph", "jean-marc" -> "Jean-Marc".
|
|
// Tout le reste en minuscules, une majuscule après le début de la chaîne et
|
|
// après chaque tiret ou espace (pour les prénoms composés). Volontairement
|
|
// pas de ucwords() : cette fonction native de PHP n'est pas fiable en UTF-8
|
|
// (elle raisonne en octets, pas en caractères — un prénom commençant par une
|
|
// lettre accentuée type "Éric" serait corrompu).
|
|
function consigne_premiere_lettre_majuscule(string $valeur): string
|
|
{
|
|
$valeur = mb_strtolower($valeur, 'UTF-8');
|
|
return (string)preg_replace_callback(
|
|
'/(^|[\s\-])(\p{L})/u',
|
|
function (array $m): string {
|
|
return $m[1] . mb_strtoupper($m[2], 'UTF-8');
|
|
},
|
|
$valeur
|
|
);
|
|
}
|