parent = $parent; $this->field = $field; $this->value = $value; } /** * Field Render Function. * Takes the vars and outputs the HTML for the field in the settings * * @since Redux_Options 2.0.1 */ function render() { if ( empty( $this->field['mode'] ) ) { $this->field['mode'] = "text"; } if ( $this->field['mode'] != "checkbox" && $this->field['mode'] != "text" ) { $this->field['mode'] = "text"; } $class = ( isset( $this->field['class'] ) ) ? $this->field['class'] : ''; $options = $this->field['options']; // This is to weed out missing options that might be in the default // Why? Who knows. Call it a dummy check. if ( ! empty( $this->value ) ) { foreach ( $this->value as $k => $v ) { if ( ! isset( $options[ $k ] ) ) { unset( $this->value[ $k ] ); } } } $noSort = false; foreach ( $options as $k => $v ) { if ( ! isset( $this->value[ $k ] ) ) { // A save has previously been done. if ( is_array( $this->value ) && array_key_exists( $k, $this->value ) ) { $this->value[ $k ] = $v; // Missing database entry, meaning no save has yet been done. } else { $noSort = true; $this->value[ $k ] = ''; } } } // If missing database entries are found, it means no save has been done // and therefore no sort should be done. Set the default array in the same // order as the options array. Why? The sort order is based on the // saved default array. If entries are missing, the sort is messed up. // - kp if ( true == $noSort ) { $dummyArr = array(); foreach ( $options as $k => $v ) { $dummyArr[ $k ] = $this->value[ $k ]; } unset( $this->value ); $this->value = $dummyArr; unset( $dummyArr ); } $use_labels = false; $label_class = ''; if ( $this->field['mode'] != "checkbox" ) { if ( ( isset( $this->field['label'] ) && $this->field['label'] == true ) ) { $use_labels = true; $label_class = ' labeled'; } } echo '