Changeset 10202 in spip-zone


Ignore:
Timestamp:
Mar 6, 2007, 4:57:23 PM (14 years ago)
Author:
cedric@…
Message:

"Gerer le md5 sur les donnees des champs comme pour les autres tables.
Mise en place d'une surcharge $table.'_valeur_colonne_table'"

Location:
_plugins_/_stable_/crayons
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/crayons/action/crayons_store.php

    r10183 r10202  
    8181                                // on fait une exception pour forms_donnee, on verra plus tard
    8282                                // comment faire ca de maniere generique
    83                                 if ($type != 'forms_donnee') {
    84                                         $data = array();
    85                                         foreach ($content as $champtable => $val) {
    86                                                 $data[$champtable] = valeur_colonne_table($type, $champtable, $id);
     83                                $data = array();
     84                                foreach ($content as $champtable => $val) {
     85                                        $data[$champtable] = valeur_colonne_table($type, $champtable, $id);
     86                                }
     87                                $md5 = md5(serialize($data));
     88
     89                                // est-ce que le champ a ete modifie dans la base entre-temps ?
     90                                if ($md5 != $postee[2]) {
     91                                        // si oui, la modif demandee correspond peut-etre
     92                                        // a la nouvelle valeur ? dans ce cas on procede
     93                                        // comme si "pas de modification", sinon erreur
     94                                        if ($md5 != md5(serialize($content))) {
     95                                                $return['$erreur'] = "$type $id $champtable: " .
     96                                                        _U('crayons:modifie_par_ailleurs');
    8797                                        }
    88                                         $md5 = md5(serialize($data));
    89 
    90                                         // est-ce que le champ a ete modifie dans la base entre-temps ?
    91                                         if ($md5 != $postee[2]) {
    92                                                 // si oui, la modif demandee correspond peut-etre
    93                                                 // a la nouvelle valeur ? dans ce cas on procede
    94                                                 // comme si "pas de modification", sinon erreur
    95                                                 if ($md5 != md5(serialize($content))) {
    96                                                         $return['$erreur'] = "$type $id $champtable: " .
    97                                                                 _U('crayons:modifie_par_ailleurs');
    98                                                 }
    99                                                 break;
    100                                         }
    101                                 } // fin exception
     98                                        break;
     99                                }
    102100
    103101                                $modifs[] = array($type, $modele, $id, $content, $wid);
  • _plugins_/_stable_/crayons/inc/crayons.php

    r10017 r10202  
    9797}
    9898//      var_dump(colonne_table('forum', 'id_syndic')); die();
     99function forms_donnee_valeur_colonne_table($table,$champ,$id_donnee){
     100        include_spip("inc/forms");
     101        $valeurs = Forms_valeurs($id_donnee,NULL,$champ);
     102        return isset($valeurs[$champ])?$valeurs[$champ]:'';
     103}
     104
    99105
    100106function valeur_colonne_table($table, $col, $id) {
     107        if (function_exists($f = $table.'_valeur_colonne_table_dist')
     108        OR function_exists($f = $table.'_valeur_colonne_table'))
     109                return $f($table, $col, $id);
    101110        if (is_scalar($id)) {
    102111                $where = id_table_objet($table) . '=' . $id;
Note: See TracChangeset for help on using the changeset viewer.