-
maieul@maieul.net a rédigémaieul@maieul.net a rédigé
formidable_pipelines.php 7,88 Kio
<?php
/**
* Utilisation de pipelines
*
* @package SPIP\Formidable\Pipelines
**/
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/formidable_fichiers');
define(
'_RACCOURCI_MODELE_FORMIDABLE',
'(<(formulaire\|formidable|formidable|form)' # <modele
.'([0-9]*)\s*' # id
.'([|](?:<[^<>]*>|[^>])*)?' # |arguments (y compris des tags <...>)
.'>)' # fin du modele >
.'\s*(<\/a>)?' # eventuel </a>
);
/**
* Ajouter la protection NoSpam de base a formidable (jeton)
*
* @param $formulaires
* @return array
*/
function formidable_nospam_lister_formulaires($formulaires) {
$formulaires[] = 'formidable';
return $formulaires;
}
/**
* Trouver les liens <form
* @param $texte
* @return array
*/
function formidable_trouve_liens($texte) {
$formulaires = array();
if (preg_match_all(','._RACCOURCI_MODELE_FORMIDABLE.',ims', $texte, $regs, PREG_SET_ORDER)) {
foreach ($regs as $r) {
$id_formulaire = 0;
if ($r[2] == 'formidable') {
$id_formulaire = $r[3];
} elseif ($r[2] == 'form') {
$id_formulaire = sql_getfetsel('id_formulaire', 'spip_formulaires', 'identifiant='.sql_quote('form'.$r[3]));
} elseif ($r[2] == 'formulaire|formidable') {
$args = ltrim($r[4], '|');
$args = explode('=', $args);
$args = $args[1];
$args = explode('|', $args);
$args = trim(reset($args));
if (is_numeric($args)) {
$id_formulaire = intval($args);
} else {
$id_formulaire = sql_getfetsel('id_formulaire', 'spip_formulaires', 'identifiant='.sql_quote($args));
}
}
if ($id_formulaire = intval($id_formulaire)) {
$formulaires[$id_formulaire] = $id_formulaire;
}
}
}
return $formulaires;
}
/**
* Associer/dissocier les formulaires a un objet qui les utilise (ou ne les utilise plus)
* @param $flux