Example #1
0
	function SubmittedFieldSet(&$sourceItems){
		$fields = array ();
		if(isset($_POST[$this->name])&&$rows = $_POST[$this->name]){
			if(count($rows)){
				foreach($rows as $idx => $row){
					if($idx == 'new'){
						$newitems = ArrayLib::invert($row);
						if(count($newitems)){
							$sourceItems = new DataObjectSet();
							foreach($newitems as $k => $newitem){
								$fieldset = $this->FieldSetForRow();
								if($fieldset){
									$newitem['ID'] = "new".$k;
									foreach($newitem as $k => $v){
										if($this->extraData && array_key_exists($k, $this->extraData)){
											unset($newitem[$k]);
										}
									}
									$sourceItem = new DataObject($newitem);
									if(!$sourceItem->isEmpty()){
										$sourceItems->push($sourceItem);
										$form = new Form($this, "EditForm", $fieldset, new FieldSet());
										$form->loadDataFrom($sourceItem);
										$item = new TableField_Item($sourceItem, $this, $form, $this->fieldTypes);
										$fields = array_merge($fields, $item->Fields()->toArray());
									}
								}
							}
						}
					}
				}
			}
		}
		return $fields;
	}