Changeset 57904 in spip-zone for _plugins_/formitable


Ignore:
Timestamp:
Jan 31, 2012, 8:56:37 PM (8 years ago)
Author:
jluc@…
Message:

Enrichissement de la liaison avec la table utilisateur : id_auteur rejoint statut. + Option "réponses multiples", sans gestion des cookies, seulement pour les visiteurs enregistrés donc.

Location:
_plugins_/formitable
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formitable/inc/formitable.php

    r57785 r57904  
    3434
    3535
     36/*
     37 * Génère le nom du cookie qui sera utilisé par le plugin lors d'une réponse
     38 * par un visiteur non-identifié.
     39 *
     40 * @param int $id_formulaire L'identifiant du formulaire
     41 * @return string Retourne le nom du cookie
     42 */
     43function formitable_generer_nom_cookie($id_formulaire){
     44        return $GLOBALS['cookie_prefix'].'cookie_formitable_'.$id_formulaire;
     45}
     46
    3647?>
  • _plugins_/formitable/traiter/simple.php

    r57787 r57904  
    5959    }
    6060
    61     // Si la moderation est a posteriori ou que la personne est un boss, on publie direct
     61    // Si la moderation est a posteriori ou que la personne a les autorisations nécessaire, on publie direct
    6262    if ($options['champ_statut']) {
    6363        if ($options['moderation'] == 'posteriori' or autoriser('instituer', $table_destinataire, 'unused', null, array('id_formulaire'=>$id_formulaire, 'nouveau_statut'=>'publie')))
     
    6868    }
    6969
     70/*
     71 *
     72   // Si on identifie
     73    if ($options['auth_cookie'])  {
     74        $nom_cookie = formitable_generer_nom_cookie($id_formulaire);
     75        if (isset($_COOKIE[$nom_cookie]))
     76            $cookie = $_COOKIE[$nom_cookie];
     77            $id_reponse_cookie = sql_getfetsel ($options['primary'], $table_destinataire, $auteur_session['auth_cookie']."='$cookie'");
     78        else {
     79                include_spip("inc/acces");
     80                $cookie = creer_uniqid();
     81        }
     82        $insertions[$options['champ_cookie']] = $cookie;
     83    };
     84   */
     85
     86    $id_reponse_auteur_deja = 0;
     87    if ($options['champ_id_auteur']) {
     88        // La personne a-t-elle un compte ?
     89        global $auteur_session;
     90        $id_auteur = $auteur_session ? intval($auteur_session['id_auteur']) : 0;
     91
     92        $insertions[$options['champ_id_auteur']] = $id_auteur;
     93
     94        $id_reponse_auteur_deja = sql_getfetsel ($options['champ_primary'], $table_destinataire, $options['champ_id_auteur'].'='.$id_auteur);
     95
     96    }
     97
     98    // à confirmer à terme :
     99    // les réponses sont soit multiples et non modifiables,
     100    // soit uniques et modifiables,
     101    // soit uniques et non modifiables
     102
     103    if ($id_reponse_auteur_deja and !$options['multiple']) {
     104        $retours['message_erreur'] .= "\n<br/>"._T('Vous avez déjà répondu. Votre nouvelle réponse ne peut être prise en compte.');
     105        return $retours;
     106    }
     107
     108/*    if ($options['multiple'] or $options['modifiable']){
     109                        include_spip("inc/cookie");
     110                        // Expiration dans 30 jours
     111                        spip_setcookie($nom_cookie, $_COOKIE[$nom_cookie] = $cookie, time() + 30 * 24 * 3600);
     112        }*/
     113
    70114    // S'il y a bien des choses à modifier
    71115    if ($champs) {
    72116        // On insere les nouvelles valeurs
    73         $id= sql_insertq ($table_destinataire, $insertions);
     117        $id = sql_insertq ($table_destinataire, $insertions);
    74118        if (!$id)
    75119            $retours['message_erreur'] .= "\n<br/>Erreur : l'insertion dans la table ($table_destinataire) ne se fait pas bien.".sql_error()."<pre class='reponse_formulaire_erreur'>".print_r($insertions,1)."</pre>";
     
    83127
    84128?>
    85 
  • _plugins_/formitable/traiter/simple.yaml

    r57787 r57904  
    77    options:
    88      nom: 'table_destinataire'
    9       label: 'table destinataire'
     9      label: 'Table destinataire'
    1010      explication: 'Indiquez le nom de la table destinataire des enregistrements'
    1111  -
     
    1313    options:
    1414      nom: 'correspondance_champs_formulaire_table'
    15       label: 'correspondances du formulaire vers la table'
    16       explication : 'Indiquez pour chaque champ du formulaire, le nom du champ de la table utilisateur'
     15      label: 'Correspondances du formulaire vers la table'
     16      explication: 'Indiquez pour chaque champ du formulaire, le nom du champ de la table utilisateur'
    1717      defaut: 'input_1|titre...'
     18      rows: 6
    1819  -
    1920    saisie: 'input'
    2021    options:
     22      nom: 'champ_primary'
     23      label: 'Nom de la clé primaire de votre table'
     24      explication: 'Indiquez le nom du champ contenant les id_auteurs dand la table destinataire des enregistrements'
     25  -
     26    saisie: 'input'
     27    options:
     28      nom: 'champ_id_auteur'
     29      label: 'Champ id_auteur de votre table'
     30      explication: 'Indiquez le nom du champ contenant les id_auteurs dand la table destinataire des enregistrements'
     31      defaut: 'id_auteur'
     32  -
     33    saisie: 'input'
     34    options:
    2135      nom: 'champ_statut'
    22       label: 'champ statut'
     36      label: 'Champ statut'
    2337      explication: 'Indiquez le nom du champ qui contient le statut de chaque enregistrement sil existe. Videz sinon.'
    2438      defaut: 'statut'
     
    3145        posteriori: '<:bouton_radio_modere_posteriori:>'
    3246        priori: '<:bouton_radio_modere_priori:>'
    33       defaut: 'posteriori'
     47        defaut: 'posteriori'
     48  -
     49    saisie: 'oui_non'
     50    options:
     51      nom: 'multiple'
     52      label: '<:formidable:traiter_enregistrement_option_multiple_label:>'
     53      explication: '<:formidable:traiter_enregistrement_option_multiple_explication:>'
     54      defaut: 'on'
Note: See TracChangeset for help on using the changeset viewer.