/** * {@inheritDoc} */ public function generate_field($profile_row, $preview_options = false) { $profile_row['field_ident'] = isset($profile_row['var_name']) ? $profile_row['var_name'] : 'pf_' . $profile_row['field_ident']; $field_ident = $profile_row['field_ident']; $default_value = $profile_row['lang_default_value']; $profile_row['field_value'] = $this->request->is_set($field_ident) ? $this->request->variable($field_ident, $default_value, true) : (!isset($this->user->profile_fields[$field_ident]) || $preview_options !== false ? $default_value : $this->user->profile_fields[$field_ident]); $this->template->assign_block_vars($this->get_name_short(), array_change_key_case($profile_row, CASE_UPPER)); }
/** * {@inheritDoc} */ public function get_excluded_options($key, $action, $current_value, &$field_data, $step) { if ($step == 2 && $key == 'field_maxlen') { // Get the number of options if this key is 'field_maxlen' return sizeof(explode("\n", $this->request->variable('lang_options', '', true))); } return parent::get_excluded_options($key, $action, $current_value, $field_data, $step); }
/** * {@inheritDoc} */ public function prepare_hidden_fields($step, $key, $action, &$field_data) { if ($key == 'field_length' && $this->request->is_set('rows')) { $field_data['rows'] = $this->request->variable('rows', 0); $field_data['columns'] = $this->request->variable('columns', 0); return $field_data['rows'] . '|' . $field_data['columns']; } return parent::prepare_hidden_fields($step, $key, $action, $field_data); }
/** * {@inheritDoc} */ public function get_excluded_options($key, $action, $current_value, &$field_data, $step) { if ($step == 2 && $key == 'field_default_value') { // Permit an empty string if ($action == 'create' && $this->request->variable('field_default_value', '') === '') { return ''; } } return parent::get_excluded_options($key, $action, $current_value, $field_data, $step); }
/** * {@inheritDoc} */ public function prepare_hidden_fields($step, $key, $action, &$field_data) { if ($key == 'field_default_value') { $field_length = $this->request->variable('field_length', 0); // Do a simple is set check if using checkbox. if ($field_length == 2) { return $this->request->is_set($key); } return $this->request->variable($key, $field_data[$key], true); } $default_lang_options = array('l_lang_options' => array(0 => array('')), 'lang_options' => array(0 => '')); if (isset($default_lang_options[$key]) && $this->request->is_set($key)) { return $this->request->variable($key, $default_lang_options[$key], true); } return parent::prepare_hidden_fields($step, $key, $action, $field_data); }
/** * {@inheritDoc} */ public function prepare_hidden_fields($step, $key, $action, &$field_data) { if ($key == 'field_default_value') { $always_now = $this->request->variable('always_now', 0); if ($always_now) { return 'now'; } else { if ($this->request->is_set('field_default_value_day')) { $field_data['field_default_value_day'] = $this->request->variable('field_default_value_day', 0); $field_data['field_default_value_month'] = $this->request->variable('field_default_value_month', 0); $field_data['field_default_value_year'] = $this->request->variable('field_default_value_year', 0); return sprintf('%2d-%2d-%4d', $field_data['field_default_value_day'], $field_data['field_default_value_month'], $field_data['field_default_value_year']); } } } return parent::prepare_hidden_fields($step, $key, $action, $field_data); }
/** * {@inheritDoc} */ public function prepare_hidden_fields($step, $key, $action, &$field_data) { if (!$this->request->is_set($key)) { // Do not set this variable, we will use the default value return null; } else { if ($key == 'field_ident' && isset($field_data[$key])) { return $field_data[$key]; } else { $default_value = ''; $lang_fields = array('l_lang_name', 'l_lang_explain', 'l_lang_default_value', 'l_lang_options'); if (in_array($key, $lang_fields)) { $default_value = array(0 => ''); } return $this->request->variable($key, $default_value, true); } } }
/** * Converts query string (GET) parameters in request into hidden fields. * * Useful for forwarding GET parameters when submitting forms with GET method. * * It is possible to omit some of the GET parameters, which is useful if * they are specified in the form being submitted. * * sid is always omitted. * * @param \src\request\request $request Request object * @param array $exclude A list of variable names that should not be forwarded * @return string HTML with hidden fields */ function src_build_hidden_fields_for_query_params($request, $exclude = null) { $names = $request->variable_names(\src\request\request_interface::GET); $hidden = ''; foreach ($names as $name) { // Sessions are dealt with elsewhere, omit sid always if ($name == 'sid') { continue; } // Omit any additional parameters requested if (!empty($exclude) && in_array($name, $exclude)) { continue; } $escaped_name = src_quoteattr($name); // Note: we might retrieve the variable from POST or cookies // here. To avoid exposing cookies, skip variables that are // overwritten somewhere other than GET entirely. $value = $request->variable($name, '', true); $get_value = $request->variable($name, '', true, \src\request\request_interface::GET); if ($value === $get_value) { $escaped_value = src_quoteattr($value); $hidden .= "<input type='hidden' name={$escaped_name} value={$escaped_value} />"; } } return $hidden; }