| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/wp-content/plugins/ninja-forms/includes/Abstracts/ |
Upload File : |
<?php if ( ! defined( 'ABSPATH' ) ) exit;
/**
* Class NF_Abstracts_List
*/
abstract class NF_Abstracts_List extends NF_Abstracts_Field
{
protected $_name = '';
protected $_section = 'common';
protected $_type = 'list';
protected $_test_value = FALSE;
protected $_settings_all_fields = array(
'key', 'label', 'label_pos', 'required', 'options', 'classes', 'admin_label', 'help', 'description'
);
public static $_base_template = 'list';
public function __construct()
{
parent::__construct();
add_filter( 'ninja_forms_custom_columns', array( $this, 'custom_columns' ), 10, 2 );
add_filter( 'ninja_forms_render_options', array( $this, 'query_string_default' ), 10, 2 );
}
public function get_parent_type()
{
return 'list';
}
public function admin_form_element( $id, $value )
{
$form_id = get_post_meta( absint( $_GET[ 'post' ] ), '_form_id', true );
$field = Ninja_Forms()->form( $form_id )->get_field( $id );
$settings = $field->get_settings();
$settings[ 'options' ] = apply_filters( 'ninja_forms_render_options', $settings[ 'options' ], $settings );
$settings[ 'options' ] = apply_filters( 'ninja_forms_render_options_' . $field->get_setting( 'type' ), $settings[ 'options' ], $settings );
$options = '<option>--</option>';
if ( is_array( $settings[ 'options' ] ) ) {
foreach( $settings[ 'options' ] as $option ){
$selected = ( $value == $option[ 'value' ] ) ? "selected" : '';
$options .= "<option value='" . esc_attr( $option[ 'value' ] ) . "' $selected>" . esc_html( $option[ 'label' ] ) . "</option>";
}
}
return "<select class='widefat' name='fields[" . esc_attr( $id ) . "]' id=''>$options</select>";
}
/*
* Appropriate output for a column cell in submissions list.
*/
public function custom_columns( $value, $field )
{
if( $this->_name != $field->get_setting( 'type' ) ) return $value;
//Consider & to be the same as the & values in database in a selectbox saved value:
if( ! is_array( $value ) ) $value = array( htmlspecialchars_decode($value) );
$settings = $field->get_settings();
$options = $field->get_setting( 'options' );
$options = apply_filters( 'ninja_forms_render_options', $options, $settings );
$options = apply_filters( 'ninja_forms_render_options_' . $field->get_setting( 'type' ), $options, $settings );
$output = '';
if( ! empty( $options ) ) {
foreach ($options as $option) {
if ( ! in_array( $option[ 'value' ], $value ) ) continue;
$output .= esc_html( $option[ 'label' ] ) . "<br />";
}
}
return $output;
}
public function query_string_default( $options, $settings )
{
if( ! isset( $settings[ 'key' ] ) ) return $options;
$field_key = $settings[ 'key' ];
if( ! isset( $_GET[ $field_key ] ) ) return $options;
foreach( $options as $key => $option ){
if( ! isset( $option[ 'value' ] ) ) continue;
if( $option[ 'value' ] != $_GET[ $field_key ] ) continue;
$options[ $key ][ 'selected' ] = 1;
}
return $options;
}
}