Un plugin (experimental) qui permet de régler plus finement le contenu du message de retour. Par exemple : ```` Message si le champ_1 est rempli ````
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.0 KiB

<?php
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Permettre d'utiliser la syntaxe
* ```
* <condition si="<afficher_si>">
* partie en affichage conditionnelle
* </condition>
* ```
**/
function formidable_retour_etendu_formidable_pre_raccourcis_arobases(array $flux): array {
include_spip('inc/saisies');
$data = &$flux['data'];
$regexp = '#<condition(\s*)'
.'si=(?<guillemet>"|\')'
.'(?<condition>.*)'
.'(\k<guillemet>)>'
.'(.*)'
.'</condition>'
.'#Us';
// Vérifier si les conditions sont remplis
if (preg_match_all($regexp, $data, $matches, PREG_SET_ORDER)) {
foreach ($matches as $m) {
if (!saisies_evaluer_afficher_si($m['condition'])) {
$data = str_replace($m[0], '', $data);
} else {
$remplace = trim($m[5]);
$remplace = preg_replace('#^'._AUTOBR.'#', '', $remplace);
$remplace = preg_replace('#'._AUTOBR.'$#', '', $remplace);
$data = str_replace($m[0], $remplace, $data);
}
}
};
// Nettoyage
$data = str_replace('<p></p>', '', $data);
return $flux;
}