Changeset 13043
- Timestamp:
- 11/16/08 22:56:26 (5 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
plugins/sfPropelPlugin/trunk/lib/form/sfFormPropel.class.php
r13041 r13043 184 184 * Updates the values of the object with the cleaned up values. 185 185 * 186 * @param array $values An array of values 187 * 186 188 * @return BaseObject The current updated object 187 189 */ … … 198 200 199 201 // embedded forms 200 foreach ($this->embeddedForms as $name => $form) 201 { 202 if ($form instanceof sfFormPropel && is_array($values[$name])) 202 $this->updateObjectEmbeddedForms($values); 203 204 return $this->object; 205 } 206 207 /** 208 * Updates the values of the objects in embedded forms. 209 * 210 * @param array $values An array of values 211 * @param array $forms An array of forms 212 */ 213 public function updateObjectEmbeddedForms($values, $forms = null) 214 { 215 if (is_null($forms)) 216 { 217 $forms = $this->embeddedForms; 218 } 219 220 foreach ($forms as $name => $form) 221 { 222 if (!is_array($values[$name])) 223 { 224 continue; 225 } 226 227 if ($form instanceof sfFormPropel) 203 228 { 204 229 $form->updateObject($values[$name]); 205 230 } 206 } 207 208 return $this->object; 231 else 232 { 233 $this->updateObjectEmbeddedForms($values[$name], $form->getEmbeddedForms()); 234 } 235 } 209 236 } 210 237 … … 344 371 * Saves embedded form objects. 345 372 * 346 * @param PropelPDO $con An optional PropelPDO object 347 */ 348 public function saveEmbeddedForms($con = null) 373 * @param PropelPDO $con An optional PropelPDO object 374 * @param array $forms An array of forms 375 */ 376 public function saveEmbeddedForms($con = null, $forms = null) 349 377 { 350 378 if (is_null($con)) … … 353 381 } 354 382 355 foreach ($this->embeddedForms as $form) 383 if (is_null($forms)) 384 { 385 $forms = $this->embeddedForms; 386 } 387 388 foreach ($forms as $form) 356 389 { 357 390 if ($form instanceof sfFormPropel) … … 360 393 $form->getObject()->save($con); 361 394 } 395 else 396 { 397 $this->saveEmbeddedForms($con, $form->getEmbeddedForms()); 398 } 362 399 } 363 400 }