Skip to content
Extraits de code Groupes Projets
Valider 92d2eb2c rédigé par maieul@maieul.net's avatar maieul@maieul.net
Parcourir les fichiers

indentation

parent 6938182b
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -18,30 +18,30 @@ include_spip('inc/autoriser'); ...@@ -18,30 +18,30 @@ include_spip('inc/autoriser');
include_spip('plugins/installer'); include_spip('plugins/installer');
function formidable_id_formulaire($id) { function formidable_id_formulaire($id) {
// on utilise une static pour etre sur que si l'appel dans verifier() passe, celui dans traiter() passera aussi // on utilise une static pour etre sur que si l'appel dans verifier() passe, celui dans traiter() passera aussi
// meme si entre temps on perds la base // meme si entre temps on perds la base
static $id_formulaires = array(); static $id_formulaires = array();
if (isset($id_formulaires[$id])) { if (isset($id_formulaires[$id])) {
return $id_formulaires[$id]; return $id_formulaires[$id];
} }
if (is_numeric($id)) { if (is_numeric($id)) {
$where = 'id_formulaire = ' . intval($id); $where = 'id_formulaire = ' . intval($id);
} elseif (is_string($id)) { } elseif (is_string($id)) {
$where = 'identifiant = ' . sql_quote($id); $where = 'identifiant = ' . sql_quote($id);
} else { } else {
return 0; return 0;
} }
$id_formulaire = intval(sql_getfetsel('id_formulaire', 'spip_formulaires', $where)); $id_formulaire = intval(sql_getfetsel('id_formulaire', 'spip_formulaires', $where));
if ($id_formulaire if ($id_formulaire
and !test_espace_prive() and !test_espace_prive()
and !objet_test_si_publie('formulaire', $id_formulaire)) { and !objet_test_si_publie('formulaire', $id_formulaire)) {
return $id_formulaires[$id] = 0; return $id_formulaires[$id] = 0;
} }
return $id_formulaires[$id] = $id_formulaire; return $id_formulaires[$id] = $id_formulaire;
} }
/** /**
...@@ -61,115 +61,115 @@ return $id_formulaires[$id] = $id_formulaire; ...@@ -61,115 +61,115 @@ return $id_formulaires[$id] = $id_formulaire;
* Contexte envoyé au squelette HTML du formulaire. * Contexte envoyé au squelette HTML du formulaire.
**/ **/
function formulaires_formidable_charger($id, $valeurs = array(), $id_formulaires_reponse = false) { function formulaires_formidable_charger($id, $valeurs = array(), $id_formulaires_reponse = false) {
$contexte = array(); $contexte = array();
// On peut donner soit un id soit un identifiant // On peut donner soit un id soit un identifiant
if (!$id_formulaire = formidable_id_formulaire($id)) { if (!$id_formulaire = formidable_id_formulaire($id)) {
return; return;
} }
// On cherche si le formulaire existe
if ($formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = ' . intval($id_formulaire))) {
// On ajoute un point d'entrée avec les infos de ce formulaire
// pour d'eventuels plugins qui en ont l'utilité
$contexte['_formidable'] = $formulaire;
// Classes CSS
$contexte['_css'] = $formulaire['css'];
// Est-ce que la personne a le droit de répondre ? // On cherche si le formulaire existe
if (autoriser('repondre', 'formulaire', $formulaire['id_formulaire'], null, array('formulaire' => $formulaire))) { if ($formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = ' . intval($id_formulaire))) {
$saisies = unserialize($formulaire['saisies']); // On ajoute un point d'entrée avec les infos de ce formulaire
$traitements = unserialize($formulaire['traitements']); // pour d'eventuels plugins qui en ont l'utilité
$contexte['_formidable'] = $formulaire;
// Si on est en train de réafficher les valeurs postées, // Classes CSS
// ne pas afficher les saisies hidden $contexte['_css'] = $formulaire['css'];
if ($formulaire['apres'] == 'valeurs'
and _request('formidable_afficher_apres') == 'valeurs' // Est-ce que la personne a le droit de répondre ?
) { if (autoriser('repondre', 'formulaire', $formulaire['id_formulaire'], null, array('formulaire' => $formulaire))) {
foreach ($saisies as $k => $saisie) { $saisies = unserialize($formulaire['saisies']);
if (isset($saisie['saisie']) $traitements = unserialize($formulaire['traitements']);
and $saisie['saisie'] == 'hidden'
) { // Si on est en train de réafficher les valeurs postées,
unset($saisies[$k]); // ne pas afficher les saisies hidden
if ($formulaire['apres'] == 'valeurs'
and _request('formidable_afficher_apres') == 'valeurs'
) {
foreach ($saisies as $k => $saisie) {
if (isset($saisie['saisie'])
and $saisie['saisie'] == 'hidden'
) {
unset($saisies[$k]);
}
} }
} }
}
// On déclare les champs avec les valeurs par défaut // On déclare les champs avec les valeurs par défaut
$contexte = array_merge(saisies_lister_valeurs_defaut($saisies), $contexte); $contexte = array_merge(saisies_lister_valeurs_defaut($saisies), $contexte);
$contexte['mechantrobot'] = ''; $contexte['mechantrobot'] = '';
// On ajoute le formulaire complet // On ajoute le formulaire complet
$contexte['_saisies'] = $saisies; $contexte['_saisies'] = $saisies;
$contexte['id'] = $formulaire['id_formulaire']; $contexte['id'] = $formulaire['id_formulaire'];
$contexte['_hidden'] = '<input type="hidden" name="id_formulaire" value="' . $contexte['id'] . '"/>'; $contexte['_hidden'] = '<input type="hidden" name="id_formulaire" value="' . $contexte['id'] . '"/>';
// S'il y a des valeurs par défaut dans l'appel, alors on pré-remplit // S'il y a des valeurs par défaut dans l'appel, alors on pré-remplit
if ($valeurs) { if ($valeurs) {
// Si c'est une chaine on essaye de la parser // Si c'est une chaine on essaye de la parser
if (is_string($valeurs)) { if (is_string($valeurs)) {
$liste = explode(',', $valeurs); $liste = explode(',', $valeurs);
$liste = array_map('trim', $liste); $liste = array_map('trim', $liste);
$valeurs = array(); $valeurs = array();
foreach ($liste as $i => $cle_ou_valeur) { foreach ($liste as $i => $cle_ou_valeur) {
if ($i%2 == 0) { if ($i%2 == 0) {
$valeurs[$liste[$i]] = $liste[$i+1]; $valeurs[$liste[$i]] = $liste[$i+1];
}
} }
} }
}
// Si on a un tableau, // Si on a un tableau,
// alors on écrase avec les valeurs données depuis l'appel // alors on écrase avec les valeurs données depuis l'appel
if ($valeurs and is_array($valeurs)) { if ($valeurs and is_array($valeurs)) {
$contexte = array_merge($contexte, $valeurs); $contexte = array_merge($contexte, $valeurs);
}
} }
}
// Si on passe un identifiant de reponse, on edite cette reponse si elle existe // Si on passe un identifiant de reponse, on edite cette reponse si elle existe
if ($id_formulaires_reponse = intval($id_formulaires_reponse)) { if ($id_formulaires_reponse = intval($id_formulaires_reponse)) {
$contexte = formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_reponse, $ok); $contexte = formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_reponse, $ok);
if ($ok == false) { if ($ok == false) {
$contexte['editable'] = false; $contexte['editable'] = false;
$contexte['message_erreur'] = _T('formidable:traiter_enregistrement_erreur_edition_reponse_inexistante'); $contexte['message_erreur'] = _T('formidable:traiter_enregistrement_erreur_edition_reponse_inexistante');
}
} else {
// calcul des paramètres d'anonymisation
$options = isset($traitements['enregistrement']) ? $traitements['enregistrement'] : null;
$anonymisation = (isset($options['anonymiser']) && $options['anonymiser']==true)
? isset($options['anonymiser_variable']) ? $options['anonymiser_variable'] : ''
: '';
// Si multiple = non mais que c'est modifiable, alors on va chercher
// la dernière réponse si elle existe
if ($options
and !$options['multiple']
and $options['modifiable']
and $reponses = formidable_verifier_reponse_formulaire($formulaire['id_formulaire'], $options['identification'], $anonymisation)
) {
$id_formulaires_reponse = array_pop($reponses);
$contexte = formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_reponse, $ok);
}
} }
} else { } else {
// calcul des paramètres d'anonymisation $contexte['editable'] = false;
$options = isset($traitements['enregistrement']) ? $traitements['enregistrement'] : null; // le formulaire a déjà été répondu.
// peut être faut il afficher les statistiques des réponses
$anonymisation = (isset($options['anonymiser']) && $options['anonymiser']==true) if ($formulaire['apres']=='stats') {
? isset($options['anonymiser_variable']) ? $options['anonymiser_variable'] : '' // Nous sommes face à un sondage auquel on a déjà répondu !
: ''; // On remplace complètement l'affichage du formulaire
// par un affichage du résultat de sondage !
// Si multiple = non mais que c'est modifiable, alors on va chercher $contexte['_remplacer_formulaire'] = recuperer_fond('modeles/formulaire_analyse', array(
// la dernière réponse si elle existe 'id_formulaire' => $formulaire['id_formulaire'],
if ($options ));
and !$options['multiple'] } else {
and $options['modifiable'] $contexte['message_erreur'] = _T('formidable:traiter_enregistrement_erreur_deja_repondu');
and $reponses = formidable_verifier_reponse_formulaire($formulaire['id_formulaire'], $options['identification'], $anonymisation)
) {
$id_formulaires_reponse = array_pop($reponses);
$contexte = formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_reponse, $ok);
} }
} }
} else { } else {
$contexte['editable'] = false; $contexte['editable'] = false;
// le formulaire a déjà été répondu. $contexte['message_erreur'] = _T('formidable:erreur_inexistant');
// peut être faut il afficher les statistiques des réponses
if ($formulaire['apres']=='stats') {
// Nous sommes face à un sondage auquel on a déjà répondu !
// On remplace complètement l'affichage du formulaire
// par un affichage du résultat de sondage !
$contexte['_remplacer_formulaire'] = recuperer_fond('modeles/formulaire_analyse', array(
'id_formulaire' => $formulaire['id_formulaire'],
));
} else {
$contexte['message_erreur'] = _T('formidable:traiter_enregistrement_erreur_deja_repondu');
}
} }
} else {
$contexte['editable'] = false;
$contexte['message_erreur'] = _T('formidable:erreur_inexistant');
}
if (!isset($contexte['_hidden'])) { if (!isset($contexte['_hidden'])) {
$contexte['_hidden'] = ''; $contexte['_hidden'] = '';
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter