コード例 #1
0
 /**
  * {@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));
 }
コード例 #2
0
 /**
  * {@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);
 }
コード例 #3
0
 /**
  * {@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);
 }
コード例 #4
0
 /**
  * {@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);
 }
コード例 #5
0
 /**
  * {@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);
 }
コード例 #6
0
 /**
  * {@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);
 }
コード例 #7
0
 /**
  * {@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);
         }
     }
 }
コード例 #8
0
/**
* 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;
}