/** * Processes the field data * * @return string */ function process() { foreach ($this->field_data as $field => $data) { $this->field_data[$field] = Fieldtype::process_field_data('text', $data); } return $this->field_data; }
public function process() { if (isset($_FILES['page']['name']['yaml'][$this->fieldname])) { $grid_field = $_FILES['page']['name']['yaml'][$this->fieldname]; foreach ($grid_field as $index => $fields) { foreach ($fields as $field => $value) { if (array_get($this->settings['fields'][$field], 'type') === 'file') { if ($value != '') { $file_values = array('name' => $_FILES['page']['name']['yaml'][$this->fieldname][$index][$field], 'type' => $_FILES['page']['type']['yaml'][$this->fieldname][$index][$field], 'tmp_name' => $_FILES['page']['tmp_name']['yaml'][$this->fieldname][$index][$field], 'error' => $_FILES['page']['error']['yaml'][$this->fieldname][$index][$field], 'size' => $_FILES['page']['size']['yaml'][$this->fieldname][$index][$field]); $this->field_data[$index][$field] = Fieldtype::process_field_data('file', $file_values, $this->settings['fields'][$field]); } else { if (isset($this->field_data[$index]["{$field}_remove"])) { $this->field_data[$index][$field] = ''; } else { $this->field_data[$index][$field] = isset($this->field_data[$index][$field]) ? $this->field_data[$index][$field] : ''; } } // unset the remove column if (isset($this->field_data[$index]["{$field}_remove"])) { unset($this->field_data[$index]["{$field}_remove"]); } } } } } foreach ($this->field_data as $row => $column) { foreach ($column as $field => $data) { $the_field_type = array_get($this->settings['fields'][$field], 'type', 'text'); if ($the_field_type !== 'file') { $this->field_data[$row][$field] = Fieldtype::process_field_data($the_field_type, $data); } } } // if $this->field_data doesn't contain real values, make it an empty string for the people if (Helper::isEmptyArray($this->field_data)) { $this->field_data = ""; } return $this->field_data; }
if (isset($settings['type']) && $settings['type'] == 'checkbox' && !isset($form_data['yaml'][$field])) { $form_data['yaml'][$field] = 0; } } /* |-------------------------------------------------------------------------- | Fieldtype Process Method |-------------------------------------------------------------------------- | | Fieldtypes get the opportunity to process their own data. | That happens right here. | */ foreach ($form_data['yaml'] as $field => $value) { if (isset($field_settings[$field]['type'])) { $file_data[$field] = Fieldtype::process_field_data($field_settings[$field]['type'], $value, $field_settings[$field], $field); } else { $file_data[$field] = $value; } } /* |-------------------------------------------------------------------------- | Clean up data |-------------------------------------------------------------------------- | | We make the assumption that all fields INSIDE the fieldset are editable | and all those OUTSIDE should be left alone. So we filter the submission | against the original fieldset and and wipe out empty fields to keep page | variables clean. Not present = null = consistent data types = happy devs. | */
public function process() { foreach ($this->field_data as $row => $column) { foreach ($column as $field => $data) { $settings = $this->settings['fields'][$field]; $the_field_type = array_get($settings, 'type', 'text'); $this->field_data[$row][$field] = Fieldtype::process_field_data($the_field_type, $data, $settings); } } // if $this->field_data doesn't contain real values, make it an empty string for the people if (Helper::isEmptyArray($this->field_data)) { $this->field_data = ""; } return $this->field_data; }
/** * Process data after submission * * @return $array */ public function process() { // Process fieldtypes foreach ($this->field_data as $set_index => $set_data) { $set_name = $set_data['type']; $set_fields = array_get($this->settings['sets'][$set_name], 'fields', array()); unset($set_data['type']); foreach ($set_data as $set_field_name => $set_field_data) { $set_field_settings = $set_fields[$set_field_name]; $the_field_type = array_get($set_field_settings, 'type', 'text'); $field_name = $the_field_type == 'grid' ? "{$this->fieldname}:{$set_index}:{$set_field_name}" : $this->fieldname; $this->field_data[$set_index][$set_field_name] = Fieldtype::process_field_data($the_field_type, $set_field_data, $set_field_settings, $field_name); } } // JavaScript will move the fields around. // We just want the indexes to be reset. return array_values($this->field_data); }
public function process() { if (isset($_FILES['page']['name']['yaml'][$this->fieldname])) { $grid_field = $_FILES['page']['name']['yaml'][$this->fieldname]; foreach ($grid_field as $index => $fields) { foreach ($fields as $field => $value) { if (array_get($this->settings['fields'][$field], 'type') === 'file') { if ($value != '') { $file_values = array('name' => $_FILES['page']['name']['yaml'][$this->fieldname][$index][$field], 'type' => $_FILES['page']['type']['yaml'][$this->fieldname][$index][$field], 'tmp_name' => $_FILES['page']['tmp_name']['yaml'][$this->fieldname][$index][$field], 'error' => $_FILES['page']['error']['yaml'][$this->fieldname][$index][$field], 'size' => $_FILES['page']['size']['yaml'][$this->fieldname][$index][$field]); $this->field_data[$index][$field] = Fieldtype::process_field_data('file', $file_values, $this->settings['fields'][$field]); } else { if (isset($this->field_data[$index]["{$field}_remove"])) { $this->field_data[$index][$field] = ''; } else { $this->field_data[$index][$field] = isset($this->field_data[$index][$field]) ? $this->field_data[$index][$field] : ''; } } // unset the remove column if (isset($this->field_data[$index]["{$field}_remove"])) { unset($this->field_data[$index]["{$field}_remove"]); } } } } } foreach ($this->field_data as $row => $column) { foreach ($column as $field => $data) { if (isset($this->settings['fields'][$field]) && $this->settings['fields'][$field]['type'] != 'file') { $this->field_data[$row][$field] = Fieldtype::process_field_data($this->settings['fields'][$field]['type'], $data); } } } return $this->field_data; }
Session::setFlash('member_old_values', $submission); Session::setFlash('member_errors', $errors); $admin_app->redirect($admin_app->request()->getReferrer()); return; } // set variables foreach ($submission as $key => $value) { if ($key == 'password' && $value == '') { continue; } $field_config = array_get($config, $key, array()); // only save values if save_value isn't false if (array_get($field_config, 'save_value', true)) { // fieldtype processing if there's a type if (isset($config[$key]['type'])) { $value = Fieldtype::process_field_data($config[$key]['type'], $value, $config[$key], $key); } $member->set($key, $value); } else { $member->remove($key); } } // save member $member->save(); // REDIRECT $admin_app->flash('success', Localization::fetch('member_saved')); $url = CP_Helper::show_page('members') ? $admin_app->urlFor('members') : $admin_app->urlFor('pages'); $admin_app->redirect($url); }); // GET: MEMBER // --------------------------------------------------------