Skip to content
Extraits de code Groupes Projets
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