]> git.andy128k.dev Git - ipf.git/commitdiff
fix UB for m2m
authoravl <alex.litovchenko@gmail.com>
Tue, 23 Dec 2008 10:25:45 +0000 (12:25 +0200)
committeravl <alex.litovchenko@gmail.com>
Tue, 23 Dec 2008 10:25:45 +0000 (12:25 +0200)
ipf/form/model.php

index 499a8cc7346fc895fb26bfc6ba6b5bbb88668cfa..0e447b9b8c50b19d2bf40d47ea4bccdb5b32fde3 100644 (file)
@@ -46,8 +46,14 @@ class IPF_Form_Model extends IPF_Form
                 }
                 if (array_key_exists($uname,$db_columns))
                     $this->addDBField($uname,$db_columns[$uname]);
-                elseif (array_key_exists($uname,$db_relations))
-                    $this->addDBRelation($uname,$db_relations[$uname],$db_columns[$db_relations[$uname]->getLocalFieldName()]);
+                elseif (array_key_exists($uname,$db_relations)){
+                       $lfn = $db_relations[$uname]->getLocalFieldName();
+                       if (isset($db_columns[$lfn]))
+                               $col = $db_columns[$lfn];
+                       else
+                               $col = array();
+                    $this->addDBRelation($uname,$db_relations[$uname],$col);
+                }
             }
         }
     }
@@ -122,9 +128,7 @@ class IPF_Form_Model extends IPF_Form
                 $rels = $this->model->getTable()->getRelations();
 
                 foreach($rels as $rname=>$rel){
-                    //print "$rname<br>";
                     if (isset($this->cleaned_data[$rname])){
-                        //print $rel->getAlias();
                         $this->model->unlink($rel->getAlias());
                         if (is_array($this->cleaned_data[$rname])){
                             $this->model->link($rel->getAlias(),$this->cleaned_data[$rname]);