File: //home/plan4ev/public_html/wp-content/plugins/caldera-forms/fields/select2/field/field.php
<?php
$bound = null;
if( !empty( $field['config']['advanced_populate']['filter'] ) ){
preg_match_all("/%(.+?)%/", $field['config']['advanced_populate']['filter'], $hastags);
if(!empty($hastags[1])){
foreach($hastags[1] as $tag_key=>$tag){
foreach($form['fields'] as $key_id=>$fcfg){
if($fcfg['slug'] === $tag){
$bound = '[data-field="'.$key_id.'_'.$current_form_count.'"]';
}
}
}
}
}
$field_value = Caldera_Forms_Field_Util::find_select_field_value( $field, $field_value );
// default
if( empty( $field['config']['border'] ) ){
$field['config']['border'] = '#b6b6b6';
}
if( empty( $field['config']['color'] ) ){
$field['config']['color'] = '#8f8f8f';
}
echo $wrapper_before;
if ( isset( $field[ 'slug' ] ) && isset( $_GET[ $field[ 'slug' ] ] ) ) {
$field_value = Caldera_Forms_Sanitize::sanitize( $_GET[ $field[ 'slug' ] ] );
}
$multi = '';
if( !empty( $field['config']['multi'] ) ){
$multi = 'multiple="multiple"';
$field_name .= '[]';
}
$placeholder = '';
if( !empty( $field['config']['placeholder'] ) ){
$placeholder = 'data-placeholder="' . esc_attr( Caldera_Forms::do_magic_tags( $field['config']['placeholder'] ) ). '"';
}
?>
<?php echo $field_label; ?>
<?php echo $field_before; ?>
<?php if( empty( $bound ) ){ ?>
<select <?php echo $field_placeholder; ?> id="<?php echo esc_attr( $field_id ); ?>" <?php echo $multi; ?> data-select-two="true" data-field="<?php echo esc_attr( $field_base_id ); ?>" class="<?php echo esc_attr( $field_class ); ?>" name="<?php echo esc_attr( $field_name ); ?>" <?php echo $field_required; ?> <?php echo $placeholder; ?>>
<?php
if(!empty($field['config']['option'])){
if ( ! empty( $field_value ) ) {
echo "<option value=\"\"></option>\r\n";
}elseif( !empty( $field['config']['placeholder'] ) ){
echo '<option value=""></option>';
}
foreach($field['config']['option'] as $option_key=>$option){
if(!isset($option['value'])){
$option['value'] = htmlspecialchars( $option['label'] );
}
if( ! empty( $option['disabled'] ) ) {
$disabled[$option_key] = true;
}
?>
<option
data-calc-value="<?php echo esc_attr( Caldera_Forms_Field_Util::get_option_calculation_value( $option, $field, $form ) ); ?>"
value="<?php echo esc_attr( $option['value'] ); ?>"
<?php if ( isset( $disabled[$option_key] ) && $disabled[$option_key] === true ) { ?>disabled<?php } ?>
<?php if( in_array( $option['value'] , (array) $field_value ) ){ ?>selected="selected"<?php } ?>>
<?php echo $option['label']; ?>
</option>
<?php
}
} ?>
</select>
<?php }else{ ?>
<input type="text" data-select-two="true" id="<?php echo esc_attr( $field_id ); ?>" data-field="<?php echo esc_attr( $field_base_id ); ?>" name="<?php echo esc_attr( $field_name ); ?>[]" multiple="multiple" value="<?php echo htmlentities( $field_value ); ?>">
<?php } ?>
<?php echo $field_caption; ?>
<?php echo $field_after; ?>
<?php echo $wrapper_after; ?>
<?php
ob_start();
?>
<style>
#s2id_<?php echo $field_id; ?>.ccselect2-container.ccselect2-dropdown-open .ccselect2-choice,
#s2id_<?php echo $field_id; ?>.ccselect2-container.ccselect2-dropdown-open .ccselect2-choices,
.s2id_<?php echo $field_id; ?>.ccselect2-drop-active,
.s2id_<?php echo $field_id; ?>.ccselect2-drop.ccselect2-drop-above.ccselect2-drop-active,
.s2id_<?php echo $field_id; ?>.ccselect2-container-active .ccselect2-choice,
.s2id_<?php echo $field_id; ?>.ccselect2-container-active .ccselect2-choices,
.s2id_<?php echo $field_id; ?>.ccselect2-dropdown-open.ccselect2-drop-above .ccselect2-choice,
.s2id_<?php echo $field_id; ?>.ccselect2-dropdown-open.ccselect2-drop-above .ccselect2-choices,
.s2id_<?php echo $field_id; ?>.ccselect2-container-multi.ccselect2-container-active .ccselect2-choices,
.s2id_<?php echo $field_id; ?>.ccselect2-container-multi .ccselect2-choices .ccselect2-search-choice-focus{
border-color: <?php echo $field['config']['border']; ?> !important;
}
.s2id_<?php echo $field_id; ?> .ccselect2-results .ccselect2-highlighted,
.s2id_<?php echo $field_id; ?> .ccselect2-container-multi .ccselect2-choices .ccselect2-search-choice-focus{
background: <?php echo $field['config']['color']; ?> !important;
}
.has-error .s2id_<?php echo $field_id; ?> .ccselect2-container .ccselect2-choice {
border-color: #dd4b39 !important;
background-color: #f2dede !important;
background-image: none;
}
</style>
<script>
window.addEventListener('DOMContentLoaded', function(){
jQuery( function($){
<?php if( !empty( $bound ) ){ ?>
var opts = {
ajax: {
url: ajaxurl,
dataType: 'json',
quietMillis: 250,
data: function (term, page) {
return {
action : 'cf_filter_populate',
q: $('<?php echo esc_html( $bound ); ?>').val(), // search term
<?php if( !empty( $field['config']['easy_pod'] ) ){?>easy_pod : '<?php echo esc_html( $field['config']['easy_pod'] ); ?>'<?php } ?>
};
},
results: function (data, page) {
return { results: data };
},
cache: true
}
};
<?php }else{ ?>
var opts = {};
<?php } ?>
$(document).on('cf.bind', '#<?php echo esc_html( $field_id ); ?>', function() {
$(this).select2( opts );
});
});
});
</script>
<?php
$script_template = ob_get_clean();
if( ! empty( $form[ 'grid_object' ] ) && is_object( $form[ 'grid_object' ] ) ){
$form[ 'grid_object' ]->append( $script_template, $field[ 'grid_location' ] );
}else{
echo $script_template;
}