static function input($args, $formdata = false) { if (false !== $formdata) { $form = new scbForm($formdata); return $form->input($args); } if (empty($args['name'])) { return trigger_error('Empty name', E_USER_WARNING); } $args = wp_parse_args($args, array('desc' => '', 'desc_pos' => 'after', 'wrap' => self::TOKEN, 'wrap_each' => self::TOKEN)); if (isset($args['value']) && is_array($args['value'])) { $args['values'] = $args['value']; unset($args['value']); } if (isset($args['extra']) && !is_array($args['extra'])) { $args['extra'] = shortcode_parse_atts($args['extra']); } self::$cur_name = self::get_name($args['name']); switch ($args['type']) { case 'select': case 'radio': $input = self::_single_choice($args); break; case 'checkbox': if (isset($args['values'])) { $input = self::_multiple_choice($args); } else { $input = self::_checkbox($args); } break; default: $input = self::_input($args); } return str_replace(self::TOKEN, $input, $args['wrap']); }
function render($p2p_id, $post_id) { $args = array('name' => $this->key, 'type' => $this->data['type']); if (isset($this->data['values'])) { $args['value'] = $this->data['values']; } $single_value = 'checkbox' != $args['type']; $data = array($this->key => p2p_get_meta($p2p_id, $this->key, $single_value)); $form = new scbForm($data, array('p2p_meta', $p2p_id)); return $form->input($args); }
static function input( $args, $formdata = false ) { // setle on singular keys foreach ( array( 'name', 'value' ) as $key ) { $old = $key . 's'; if ( isset( $args[$old] ) ) { $args[$key] = $args[$old]; unset( $args[$old] ); } } if ( !empty( $formdata ) ) { $form = new scbForm( $formdata ); return $form->input( $args ); } if ( empty( $args['name'] ) ) return trigger_error( 'Empty name', E_USER_WARNING ); $args = wp_parse_args( $args, array( 'desc' => '', 'desc_pos' => '', ) ); $val_is_array = isset( $args['value'] ) && is_array( $args['value'] ); if ( isset( $args['extra'] ) && !is_array( $args['extra'] ) ) $args['extra'] = shortcode_parse_atts( $args['extra'] ); self::$cur_name = self::get_name( $args['name'] ); switch ( $args['type'] ) { case 'select': case 'radio': if ( ! $val_is_array ) return trigger_error( "'value' argument is expected to be an array", E_USER_WARNING ); return self::_single_choice( $args ); break; case 'checkbox': if ( $val_is_array ) return self::_multiple_choice( $args ); else return self::_checkbox( $args ); break; default: return self::_input( $args ); } }
protected function input($args, $formdata = array()) { $prefix = array('widget-' . $this->id_base, $this->number); $form = new scbForm($formdata, $prefix); // Add default class if (!isset($args['extra']) && 'text' == $args['type']) { $args['extra'] = array('class' => 'widefat'); } // Add default label position if (!in_array($args['type'], array('checkbox', 'radio')) && empty($args['desc_pos'])) { $args['desc_pos'] = 'before'; } $name = $args['name']; if (!is_array($name) && '[]' == substr($name, -2)) { $name = array(substr($name, 0, -2), ''); } $args['name'] = $name; return $form->input($args); }