function populateFromPostData($data)
 {
     parent::populateFromPostData($data);
     $fieldSet = $this->Options();
     $deletedOptions = explode(',', $data['Deleted']);
     // store default, etc
     foreach ($fieldSet as $option) {
         if ($deletedOptions && array_search($option->ID, $deletedOptions) !== false) {
             $option->delete();
             continue;
         }
         if ($data[$option->ID]) {
             $option->populateFromPostData($data[$option->ID]);
         }
         unset($data[$option->ID]);
     }
     foreach ($data as $tempID => $optionData) {
         if (!$tempID || !is_array($optionData) || empty($optionData) || !preg_match('/^_?\\d+$/', $tempID)) {
             continue;
         }
         // what will we name the new option?
         $newOption = new EditableCheckboxOption();
         $newOption->Name = 'option' . (string) $optionNumber++;
         $newOption->ParentID = $this->ID;
         $newOption->populateFromPostData($optionData);
     }
 }
예제 #2
0
 function populateFromPostData($data)
 {
     $this->Size = !empty($data['Size']) ? $data['Size'] : 32;
     $this->MinLength = !empty($data['MinLength']) ? $data['MinLength'] : 1;
     $this->MaxLength = !empty($data['MaxLength']) ? $data['MaxLength'] : 32;
     $this->Rows = !empty($data['Rows']) ? $data['Rows'] : 1;
     parent::populateFromPostData($data);
 }
예제 #3
0
 public function populateFromPostData($data)
 {
     $fieldPrefix = 'Default-';
     if (empty($data['Default']) && !empty($data[$fieldPrefix . 'Year']) && !empty($data[$fieldPrefix . 'Month']) && !empty($data[$fieldPrefix . 'Day'])) {
         $data['Default'] = $data['Year'] . '-' . $data['Month'] . '-' . $data['Day'];
     }
     parent::populateFromPostData($data);
 }
	/**
	 * On before saving this object we need to go through and keep
	 * an eye on all our option fields that are related to this
	 * field in the form 
	 * 
	 * @param Array Data
	 */
	public function populateFromPostData($data) {
		parent::populateFromPostData($data);
		
		// get the current options
		$fieldSet = $this->Options();

		// go over all the current options and check if ID and Title still exists
		foreach($fieldSet as $option) {
			if(isset($data[$option->ID]) && isset($data[$option->ID]['Title']) && $data[$option->ID]['Title'] != "field-node-deleted") {
				$option->populateFromPostData($data[$option->ID]);
			}
			else {
				$option->delete();
			}
		}
	}
예제 #5
0
 function populateFromPostData($data)
 {
     parent::populateFromPostData($data);
     $fieldSet = $this->Options();
     $deletedOptions = explode(',', $data['Deleted']);
     //Debug::show( $deletedOptions );
     // store default, etc
     foreach ($fieldSet as $option) {
         //Debug::show( $option );
         if ($deletedOptions && array_search($option->ID, $deletedOptions) !== false) {
             $option->delete();
             continue;
         }
         if ($data[$option->ID]) {
             $option->setField('Default', $option->ID == $data['Default']);
             $option->populateFromPostData($data[$option->ID]);
         }
         unset($data[$option->ID]);
     }
     // Debug::show( $data );
     foreach ($data as $tempID => $optionData) {
         $optionNumber = 0;
         if (!$tempID || !is_array($optionData) || empty($optionData) || !preg_match('/^_?\\d+$/', $tempID)) {
             continue;
         }
         // what will we name the new option?
         $newOption = new EditableRadioOption();
         $newOption->Name = sprintf('option%d', $optionNumber++);
         $newOption->ParentID = $this->ID;
         $newOption->setField('Default', $tempID == $data['Default']);
         $newOption->populateFromPostData($optionData);
         // $mail .= "NEW: " . $optionData['Title'] . "\n";
         if (Director::is_ajax()) {
             $fieldID = $this->ID;
             $fieldEditorName = $this->editor ? $this->editor->Name() : 'Fields';
             $prefix = $fieldEditorName . '[' . $fieldID . ']';
             $newID = $newOption->ID;
             $newSort = $newOption->Sort;
             echo "\$('" . $fieldEditorName . "[{$fieldID}]').updateOption('{$prefix}','{$tempID}','{$newID}','{$newSort}');";
         }
         if (!$newOption->Title) {
             user_error('Added blank option ' . $tempID, E_USER_ERROR);
         }
     }
 }
예제 #6
0
 function populateFromPostData($data)
 {
     parent::populateFromPostData($data);
     $fieldSet = $this->Options();
     $deletedOptions = explode(',', $data['Deleted']);
     // store default, etc
     foreach ($fieldSet as $option) {
         if ($deletedOptions && array_search($option->ID, $deletedOptions) !== false) {
             $option->delete();
             continue;
         }
         if (isset($data[$option->ID])) {
             $option->setField('Default', isset($data['Default']) ? $option->ID == $data['Default'] : false);
             $option->populateFromPostData($data[$option->ID]);
         }
         unset($data[$option->ID]);
     }
     $optionNumber = 0;
     foreach ($data as $tempID => $optionData) {
         if (!$tempID || !is_array($optionData) || empty($optionData) || !preg_match('/^_?\\d+$/', $tempID)) {
             continue;
         }
         // what will we name the new option?
         $newOption = new EditableDropdownOption();
         $newOption->Name = 'option' . (string) $optionNumber++;
         $newOption->ParentID = $this->ID;
         if (isset($data['Default'])) {
             $newOption->setField('Default', $tempID == $data['Default']);
         }
         if (Director::is_ajax()) {
             $fieldID = $this->ID;
             $fieldEditorName = $this->editor ? $this->editor->Name() : 'Fields';
             $prefix = $fieldEditorName . '[' . $fieldID . ']';
             $newID = $newOption->ID;
             $newSort = $newOption->Sort;
             echo "\$('" . $fieldEditorName . "[{$fieldID}]').updateOption('{$prefix}','{$tempID}','{$newID}','{$newSort}');";
         }
         if (!$optionData['Sort']) {
         }
         $newOption->populateFromPostData($optionData);
     }
 }
예제 #7
0
 function populateFromPostData($data)
 {
     /*if( !empty( $data['Default'] ) && !preg_match( '/^\d{4}-\d{2}-\d{2}$/', $data['Default'] ) ) {
     			if( empty( $data['Year'] ) || !is_numeric( $data['Year'] ) ) $data['Year'] = '2001';
     			if( empty( $data['Month'] ) || !is_numeric( $data['Month'] ) ) $data['Month'] = '01';
     			if( empty( $data['Day'] ) || !is_numeric( $data['Day'] ) ) $data['Day'] = '01';
     			
     			// unset( $data['Default'] );
     			$data['Default'] = $data['Year'] . '-' . $data['Month'] . '-' . $data['Day'];
     		}*/
     /*echo "ERROR:";
     		Debug::show( $data );
     		die();*/
     $fieldPrefix = 'Default-';
     if (empty($data['Default']) && !empty($data[$fieldPrefix . 'Year']) && !empty($data[$fieldPrefix . 'Month']) && !empty($data[$fieldPrefix . 'Day'])) {
         $data['Default'] = $data['Year'] . '-' . $data['Month'] . '-' . $data['Day'];
     }
     // Debug::show( $data );
     parent::populateFromPostData($data);
 }
예제 #8
0
 function testPopulateFromPostData()
 {
     $this->logInWithPermission('ADMIN');
     $set = new ArrayList();
     $field = new EditableFormField();
     $data = array('Title' => 'Field Title', 'Default' => 'Default Value', 'Sort' => '2', 'Required' => 0, 'CustomErrorMessage' => 'Custom');
     $field->populateFromPostData($data);
     $set->push($field);
     $this->assertDOSEquals(array($data), $set);
     // test the custom settings
     $data['CustomSettings'] = array('Foo' => 'Bar');
     $checkbox = new EditableCheckbox();
     $checkbox->write();
     $checkbox->populateFromPostData(array('Title' => 'Checkbox'));
     $field->populateFromPostData($data);
     $this->assertEquals($field->getSettings(), array('Foo' => 'Bar'));
     $rule = array('Display' => 'Hide', 'ConditionField' => $checkbox->Name, 'ConditionOption' => 'HasValue', 'Value' => 6);
     // test the custom rules
     $data['CustomRules'] = array('Rule1' => $rule);
     $field->populateFromPostData($data);
     $rules = unserialize($field->CustomRules);
     $this->assertEquals($rules[0], $rule);
 }
예제 #9
0
 function populateFromPostData($data)
 {
     $this->SendCopy = !empty($data['SendCopy']) ? "1" : "0";
     parent::populateFromPostData($data);
 }
예제 #10
0
 function populateFromPostData($data)
 {
     $this->setField('Checked', isset($data['Checked']) ? $data['Checked'] : null);
     parent::populateFromPostData($data);
 }
 public function populateFromPostData($data)
 {
     $this->GroupID = $data['GroupID'];
     parent::populateFromPostData($data);
 }