Changeset 10074 in spip-zone


Ignore:
Timestamp:
Mar 2, 2007, 9:53:41 PM (13 years ago)
Author:
cedric@…
Message:

"gerer les jointures a la creation de la donnee"

Location:
_plugins_/_stable_/forms/forms_et_tables_1_9_1
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/action/forms_lier_donnees.php

    r9852 r10074  
    3535                $faire = $args[2];
    3636                if ($faire=='ajouter'){
    37                         if ($id && $id_donnee_liee && autoriser('modifier',$type,$id)){
     37                        if ($id!=0 && $id_donnee_liee && ($id<0 OR autoriser('modifier',$type,$id))){
    3838                                $champ_donnee = 'id_donnee';
    3939                                if ($type=='donnee')
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/balise/forms.php

    r10005 r10074  
    2525        return $args;
    2626}
    27  
     27
    2828function balise_FORMS_dyn($id_form = 0, $id_article = 0, $id_donnee = 0, $class='', $script_validation = 'valide_form', $message_confirm='forms:avis_message_confirmation',$reponse_enregistree="forms:reponse_enregistree",$forms_obligatoires="") {
    2929        if (!include_spip('inc/autoriser'))
     
    5959                )
    6060                AND
    61                 (!$id_donnee
     61                (!($id_donnee>0)
    6262                OR autoriser('modifier','donnee',$id_donnee,NULL,array('id_form'=>$id_form)));
    6363        $formactif = $formactif?' ':'';
     
    7171                        if ($reponse)
    7272                          $reponse = _T($message_confirm,array('mail'=>$reponse));
    73                         if (!_DIR_RESTREINT && $id_donnee=_request('id_donnee'))
     73                        if (!_DIR_RESTREINT
     74                          AND (($r=_request('id_donnee'))===NULL OR $r==$id_donnee OR $r<0) )
    7475                                $valeurs = Forms_valeurs($id_form,$id_donnee);
     76                        else
     77                                $id_donnee = 0;
    7578                }
    7679                else {
     
    122125                        'id_article' => $id_article,
    123126                        'id_form' => $id_form,
    124                         'id_donnee' => $id_donnee?$id_donnee:'',
     127                        'id_donnee' => $id_donnee?$id_donnee:(0-$GLOBALS['auteur_session']['id_auteur']), # GROS Hack pour les jointures a la creation
    125128                        'self' => $url,
    126129                        'valeurs' => serialize($valeurs),
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/forms_fonctions.php

    r10070 r10074  
    125125                if (!_DIR_RESTREINT){
    126126                        $forms_lier_donnees = charger_fonction('forms_lier_donnees','inc');
    127                         $out = $forms_lier_donnees('donnee',"$id_donnee-$champ-$id_form",'donnees_edit');
     127                        $out = $forms_lier_donnees('donnee',"$id_donnee;$champ;$id_form",_request('exec'));
    128128                }
    129129                return $out;
  • _plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms.php

    r10070 r10074  
    9494                $type_table = 'table';
    9595                if ($type == 'donnee'){
    96                         $id = explode('-',$id);
     96                        $id = explode(';',$id);
    9797                        $id_donnee_source = $id[0];
    9898                        $champ = $id[1];
     
    518518        }
    519519       
    520         function Forms_enregistrer_reponse_formulaire($id_form, $id_donnee, &$erreur, &$reponse, $script_validation = 'valide_form', $script_args='') {
     520        function Forms_enregistrer_reponse_formulaire($id_form, &$id_donnee, &$erreur, &$reponse, $script_validation = 'valide_form', $script_args='') {
    521521                $r = '';
    522522                if (!include_spip('inc/autoriser'))
     
    575575                        // D'abord creer la reponse dans la base de donnees
    576576                        if ($ok) {
    577                                 if (autoriser('modifier', 'donnee', $id_donnee, NULL, array('id_form'=>$id_form))){
     577                                if ($id_donnee>0 AND autoriser('modifier', 'donnee', $id_donnee, NULL, array('id_form'=>$id_form))){
    578578                                        spip_query("UPDATE spip_forms_donnees SET date=NOW(), ip="._q($GLOBALS['ip']).", url="._q($url).", confirmation="._q($confirmation).", cookie="._q($cookie)." ".
    579579                                                "WHERE id_donnee="._q($id_donnee));
     
    588588                                        # ils ont un id = 0-id_auteur
    589589                                        spip_query("UPDATE spip_documents_donnees SET id_donnee = $id_donnee WHERE id_donnee = ".(0-$GLOBALS['auteur_session']['id_auteur']));
     590                                        # cf. GROS HACK 2 balise/forms
     591                                        # rattrapper les documents associes a cette nouvelle donnee
     592                                        # ils ont un id = 0-id_auteur
     593                                        spip_query("UPDATE spip_forms_donnees_donnees SET id_donnee = $id_donnee WHERE id_donnee = ".(0-$GLOBALS['auteur_session']['id_auteur']));
    590594                                }
    591595                                if (!$id_donnee) {
Note: See TracChangeset for help on using the changeset viewer.