plugin install
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
|
||||
namespace Gravity_Forms\Gravity_Forms\Settings\Fields;
|
||||
|
||||
use Gravity_Forms\Gravity_Forms\Settings\Fields;
|
||||
|
||||
defined( 'ABSPATH' ) || die();
|
||||
|
||||
// Load base class.
|
||||
require_once 'class-select.php';
|
||||
require_once 'class-text.php';
|
||||
|
||||
class Text_And_Select extends Base {
|
||||
|
||||
/**
|
||||
* Field type.
|
||||
*
|
||||
* @since 2.5
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $type = 'text_and_select';
|
||||
|
||||
/**
|
||||
* Child inputs.
|
||||
*
|
||||
* @since 2.5
|
||||
*
|
||||
* @var Base[]
|
||||
*/
|
||||
public $inputs = array();
|
||||
|
||||
/**
|
||||
* Initialize Field Select field.
|
||||
*
|
||||
* @since 2.5
|
||||
*
|
||||
* @param array $props Field properties.
|
||||
* @param \Gravity_Forms\Gravity_Forms\Settings\Settings $settings Settings instance.
|
||||
*/
|
||||
public function __construct( $props, $settings ) {
|
||||
|
||||
parent::__construct( $props, $settings );
|
||||
|
||||
// Prevent description from showing up on all sub-fields.
|
||||
unset( $props['description'] );
|
||||
|
||||
// Prepare Text field.
|
||||
if ( isset( $this->inputs['text'] ) ) {
|
||||
|
||||
// Set field type.
|
||||
if ( rgars( $this->inputs, 'text/type' ) && $this->inputs['text']['type'] !== 'text' ) {
|
||||
$this->inputs['text']['input_type'] = $this->inputs['text']['type'];
|
||||
$this->inputs['text']['type'] = 'text';
|
||||
} else if ( ! rgars( $this->inputs, 'text/type' ) ) {
|
||||
$this->inputs['text']['type'] = 'text';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Prepare Select field.
|
||||
if ( isset( $this->inputs['select'] ) ) {
|
||||
|
||||
// Set field type.
|
||||
$this->inputs['select']['type'] = 'select';
|
||||
|
||||
}
|
||||
|
||||
// Prepare input fields.
|
||||
foreach ( $this->inputs as &$input ) {
|
||||
$input = Fields::create( $input, $this->settings );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// # RENDER METHODS ------------------------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Render field.
|
||||
*
|
||||
* @since 2.5
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function markup() {
|
||||
|
||||
// Prepare markup.
|
||||
$html = $this->get_description();
|
||||
|
||||
$html .= sprintf(
|
||||
'<span class="%s">%s %s %s</span>',
|
||||
esc_attr( $this->get_container_classes() ),
|
||||
isset( $this->inputs['text'] ) ? $this->inputs['text']->markup() : '',
|
||||
isset( $this->inputs['select'] ) ? $this->inputs['select']->markup() : '',
|
||||
$this->get_error_icon()
|
||||
);
|
||||
|
||||
return $html;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Fields::register( 'text_and_select', '\Gravity_Forms\Gravity_Forms\Settings\Fields\Text_And_Select' );
|
||||
Reference in New Issue
Block a user