| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518 |
- <?php if ( ! defined( 'ABSPATH' ) ) exit;
- function ninja_forms_edit_field_output_li( $field_id, $new = false ) {
- global $wpdb, $ninja_forms_fields, $nf_rte_editors;
- $field_row = ninja_forms_get_field_by_id( $field_id );
- $current_tab = ninja_forms_get_current_tab();
- if ( isset ( $_REQUEST['page'] ) ) {
- $current_page = esc_html( $_REQUEST['page'] );
- } else {
- $current_page = '';
- }
- $field_type = $field_row['type'];
- $field_data = $field_row['data'];
- $plugin_settings = nf_get_settings();
- if ( isset( $ninja_forms_fields[$field_type]['use_li'] ) && $ninja_forms_fields[$field_type]['use_li'] ) {
- if ( isset( $field_row['fav_id'] ) && $field_row['fav_id'] != 0 ) {
- $fav_id = $field_row['fav_id'];
- $fav_row = ninja_forms_get_fav_by_id( $fav_id );
- if ( empty( $fav_row['name'] ) ) {
- $args = array(
- 'update_array' => array(
- 'fav_id' => '',
- ),
- 'where' => array(
- 'id' => $field_id,
- ),
- );
- ninja_forms_update_field( $args );
- $fav_id = '';
- }
- } else {
- $fav_id = '';
- }
- if ( isset( $field_row['def_id'] ) && $field_row['def_id'] != 0 ) {
- $def_id = $field_row['def_id'];
- } else {
- $def_id = '';
- }
- $form_id = $field_row['form_id'];
- if ( isset( $ninja_forms_fields[$field_type] ) ) {
- $reg_field = $ninja_forms_fields[$field_type];
- $type_name = $reg_field['name'];
- $edit_function = $reg_field['edit_function'];
- $edit_options = $reg_field['edit_options'];
- $li_class = $reg_field['li_class'];
- if ( $reg_field['nesting'] ) {
- $nesting_class = 'ninja-forms-nest';
- } else {
- $nesting_class = 'ninja-forms-no-nest';
- }
- $conditional = $reg_field['conditional'];
- $type_class = $field_type.'-li';
- if ( $def_id != 0 && $def_id != '' ) {
- $def_row = ninja_forms_get_def_by_id( $def_id );
- if ( !empty( $def_row['name'] ) ) {
- $type_name = $def_row['name'];
- }
- }
- if ( $fav_id != 0 && $fav_id != '' ) {
- $fav_row = ninja_forms_get_fav_by_id( $fav_id );
- if ( !empty( $fav_row['name'] ) ) {
- $fav_class = 'ninja-forms-field-remove-fav';
- $type_name = $fav_row['name'];
- }
- } else {
- $fav_class = 'ninja-forms-field-add-fav';
- }
- if ( isset( $field_data['label'] ) && $field_data['label'] != '' ) {
- $li_label = $field_data['label'];
- } else {
- $li_label = $type_name;
- }
- $li_label = apply_filters( 'ninja_forms_edit_field_li_label', $li_label, $field_id );
- $li_label = stripslashes( $li_label );
- $li_label = ninja_forms_esc_html_deep( $li_label );
- if (
- isset( $reg_field ) &&
- isset( $reg_field['conditional'] ) &&
- isset( $reg_field['conditional']['value'] ) &&
- isset( $reg_field['conditional']['value']['type'] ) ) {
- $conditional_value_type = $reg_field['conditional']['value']['type'];
- } else {
- $conditional_value_type = '';
- }
- ?>
- <li id="ninja_forms_field_<?php echo $field_id;?>" class="<?php echo $li_class; ?> <?php echo $nesting_class;?> <?php echo $type_class;?>">
- <input type="hidden" id="ninja_forms_field_<?php echo $field_id;?>_conditional_value_type" value="<?php echo $conditional_value_type;?>">
- <input type="hidden" id="ninja_forms_field_<?php echo $field_id;?>_fav_id" name="" class="ninja-forms-field-fav-id" value="<?php echo $fav_id;?>">
- <dl class="menu-item-bar">
- <dt class="menu-item-handle" id="ninja_forms_metabox_field_<?php echo $field_id;?>" >
- <span class="item-title ninja-forms-field-title" id="ninja_forms_field_<?php echo $field_id;?>_title"><?php echo $li_label;?></span>
- <span class="item-controls">
- <span class="item-type"><span class="spinner" style="margin-top:-2px;float:left;"></span><span class="item-type-name"><?php echo $type_name;?></span></span>
- <a class="item-edit nf-edit-field" id="ninja_forms_field_<?php echo $field_id;?>_toggle" title="<?php _e( 'Edit Menu Item', 'ninja-forms' ); ?>" href="#" data-field="<?php echo $field_id; ?>"><?php _e( 'Edit Menu Item' , 'ninja-forms' ); ?></a>
- </span>
- </dt>
- </dl>
- <?php
- if ( $new ) {
- $padding = '';
- } else {
- $padding = 'no-padding';
- }
- ?>
- <div class="menu-item-settings type-class inside <?php echo $padding?>" id="ninja_forms_field_<?php echo $field_id;?>_inside" >
- <?php
- if ( $new ) {
- nf_output_registered_field_settings( $field_id );
- }
- }
- } else {
- if ( isset( $ninja_forms_fields[$field_type] ) ) {
- $reg_field = $ninja_forms_fields[$field_type];
- $edit_function = $reg_field['edit_function'];
- $arguments = array();
- $arguments['field_id'] = $field_id;
- $arguments['data'] = $field_data;
- if ( $edit_function != '' ) {
- call_user_func_array( $edit_function, $arguments );
- }
- }
- }
- }
- add_action( 'ninja_forms_edit_field_li', 'ninja_forms_edit_field_output_li', 10, 2 );
- function ninja_forms_edit_field_close_li( $field_id ) {
- global $ninja_forms_fields;
- $field_row = ninja_forms_get_field_by_id( $field_id );
- $field_type = $field_row['type'];
- if ( isset( $ninja_forms_fields[$field_type]['use_li'] ) and $ninja_forms_fields[$field_type]['use_li'] ) {
- do_action( 'ninja_forms_edit_field_before_closing_li', $field_id );
- ?>
- </div><!-- .menu-item-settings-->
- </li>
- <?php
- }
- }
- add_action( 'ninja_forms_edit_field_after_li', 'ninja_forms_edit_field_close_li' );
- /**
- * Test fixes for adding dynamic tinyMCE editors
- *
- */
- // used to capture javascript settings generated by the editor
- add_filter( 'tiny_mce_before_init', 'NF_WP_Editor_Ajax::tiny_mce_before_init', 10, 2 );
- add_filter( 'quicktags_settings', 'NF_WP_Editor_Ajax::quicktags_settings', 10, 2 );
- class NF_WP_Editor_Ajax {
- /*
- * AJAX Call Used to Generate the WP Editor
- */
- public static function output_js( $field_id = '', $editors = array() ) {
- if ( empty( $field_id ) or empty( $editors ) )
- return false;
- $mce_init = '';
- $qt_init = '';
- foreach ( $editors as $id ) {
- $mce_init .= self::get_mce_init($id);
- $qt_init .= self::get_qt_init($id);
- }
- $mce_init = '{' . trim( $mce_init, ',' ) . '}';
- $qt_init = '{' . trim( $qt_init, ',' ) . '}';
- ?>
- <script type="text/javascript">
- tinyMCEPreInit.mceInit = jQuery.extend( tinyMCEPreInit.mceInit, <?php echo $mce_init ?>);
- tinyMCEPreInit.qtInit = jQuery.extend( tinyMCEPreInit.qtInit, <?php echo $qt_init ?>);
- nf_ajax_rte_editors = <?php echo json_encode( $editors ); ?>;
- </script>
- <?php
- }
- /*
- * Used to retrieve the javascript settings that the editor generates
- */
- private static $mce_settings = array();
- private static $qt_settings = array();
- public static function quicktags_settings( $qtInit, $editor_id ) {
- self::$qt_settings[ $editor_id ] = $qtInit;
- return $qtInit;
- }
- public static function tiny_mce_before_init( $mceInit, $editor_id ) {
- self::$mce_settings[ $editor_id ] = $mceInit;
- return $mceInit;
- }
- /*
- * Code copied from _WP_Editors class (modified a little)
- */
- private static function get_qt_init($editor_id) {
- if ( ! empty( self::$qt_settings[ $editor_id ] ) ) {
- $options = self::_parse_init( self::$qt_settings[ $editor_id ] );
- $qtInit = "'$editor_id':{$options},";
- } else {
- $qtInit = '{}';
- }
- return $qtInit;
- }
- private static function get_mce_init($editor_id) {
- if ( !empty(self::$mce_settings[ $editor_id ]) ) {
- $options = self::_parse_init( self::$mce_settings[ $editor_id ] );
- $mceInit = "'$editor_id':{$options},";
- } else {
- $mceInit = '{}';
- }
- return $mceInit;
- }
- private static function _parse_init($init) {
- $options = '';
- foreach ( $init as $k => $v ) {
- if ( is_bool($v) ) {
- $val = $v ? 'true' : 'false';
- $options .= $k . ':' . $val . ',';
- continue;
- } elseif ( !empty($v) && is_string($v) && ( ('{' == $v{0} && '}' == $v{strlen($v) - 1}) || ('[' == $v{0} && ']' == $v{strlen($v) - 1}) || preg_match('/^\(?function ?\(/', $v) ) ) {
- $options .= $k . ':' . $v . ',';
- continue;
- }
- $options .= $k . ':"' . $v . '",';
- }
- return '{' . trim( $options, ' ,' ) . '}';
- }
- }
- function nf_output_registered_field_settings( $field_id, $data = array() ) {
- global $ninja_forms_fields, $nf_rte_editors;
- $field_row = ninja_forms_get_field_by_id( $field_id );
- $field_type = $field_row['type'];
- $field_data = empty ( $data ) ? $field_row['data'] : $data;
- $current_tab = ninja_forms_get_current_tab();
- if ( isset ( $_REQUEST['page'] ) ) {
- $current_page = esc_html( $_REQUEST['page'] );
- } else {
- $current_page = '';
- }
- $reg_field = $ninja_forms_fields[$field_type];
- $type_name = $reg_field['name'];
- $edit_function = $reg_field['edit_function'];
- $edit_options = $reg_field['edit_options'];
- $edit_settings = $reg_field['edit_settings'];
- if ( $reg_field['nesting'] ) {
- $nesting_class = 'ninja-forms-nest';
- } else {
- $nesting_class = 'ninja-forms-no-nest';
- }
- $conditional = $reg_field['conditional'];
- if ( isset( $field_row['fav_id'] ) && $field_row['fav_id'] != 0 ) {
- $fav_id = $field_row['fav_id'];
- $fav_row = ninja_forms_get_fav_by_id( $fav_id );
- if ( empty( $fav_row['name'] ) ) {
- $args = array(
- 'update_array' => array(
- 'fav_id' => '',
- ),
- 'where' => array(
- 'id' => $field_id,
- ),
- );
- ninja_forms_update_field( $args );
- $fav_id = '';
- }
- } else {
- $fav_id = '';
- }
- if ( isset( $field_row['def_id'] ) && $field_row['def_id'] != 0 ) {
- $def_id = $field_row['def_id'];
- } else {
- $def_id = '';
- }
- if ( $fav_id != 0 && $fav_id != '' ) {
- $fav_row = ninja_forms_get_fav_by_id( $fav_id );
- if ( !empty( $fav_row['name'] ) ) {
- $fav_class = 'ninja-forms-field-remove-fav';
- $type_name = $fav_row['name'];
- $icon_class = 'filled';
- }
- } else {
- $fav_class = 'ninja-forms-field-add-fav';
- $icon_class = 'empty';
- }
- if ( $reg_field['show_field_id'] || $reg_field['show_fav'] ) {
- ?>
- <table id="field-info">
- <tr>
- <?php
- if ( $reg_field['show_field_id'] ) {
- ?>
- <td width="65%"><?php _e( 'Field ID', 'ninja-forms' ); ?>: <strong><?php echo $field_id;?></strong></td>
- <?php
- }
- ?>
- <!-- <td width="15%"><a href="#" class="ninja-forms-field-add-def" id="ninja_forms_field_<?php echo $field_id;?>_def" class="ninja-forms-field-add-def">Add Defined</a></td><td width="15%"><a href="#" class="ninja-forms-field-remove-def" id="ninja_forms_field_<?php echo $field_id;?>_def">Remove Defined</a></td> -->
- <?php
- if ( $reg_field['show_fav'] ) {
- ?>
- <td width="5%"><a href="#" class="<?php echo $fav_class;?>" id="ninja_forms_field_<?php echo $field_id;?>_fav"><span class="dashicons dashicons-star-<?php echo $icon_class; ?>"></span></a></td>
- <?php
- }
- ?>
- </tr>
- </table>
- <?php
- }
- do_action( 'ninja_forms_edit_field_before_registered', $field_id, $field_data );
- $arguments = array( 'field_id' => $field_id, 'data' => $field_data );
- if ( $edit_function != '' ) {
- call_user_func_array( $edit_function, $arguments );
- }
- /**
- * We need to get a list of all of our RTEs.
- * If we're submitting via ajax, we'll need to use this list.
- */
- if ( ! isset ( $nf_rte_editors ) )
- $nf_rte_editors = array();
- $editors = new NF_WP_Editor_Ajax();
- if ( is_array( $edit_options ) and !empty( $edit_options ) ) {
- foreach ( $edit_options as $opt ) {
- $type = $opt['type'];
- $label_class = '';
- if ( isset( $opt['label'] ) ) {
- $label = $opt['label'];
- } else {
- $label = '';
- }
- if ( isset( $opt['name'] ) ) {
- $name = $opt['name'];
- } else {
- $name = '';
- }
- if ( isset( $opt['width'] ) ) {
- $width = $opt['width'];
- } else {
- $width = '';
- }
- if ( isset( $opt['options'] ) ) {
- $options = $opt['options'];
- } else {
- $options = '';
- }
- if ( isset( $opt['class'] ) ) {
- $class = $opt['class'];
- } else {
- $class = '';
- }
- if ( isset( $opt['default'] ) ) {
- $default = $opt['default'];
- } else {
- $default = '';
- }
- if ( isset( $opt['desc'] ) ) {
- $desc = $opt['desc'];
- } else {
- $desc = '';
- }
- if ( isset( $field_data[$name] ) ) {
- $value = $field_data[$name];
- } else {
- $value = $default;
- }
- ninja_forms_edit_field_el_output( $field_id, $type, $label, $name, $value, $width, $options, $class, $desc, $label_class );
- }
- }
- add_action( 'nf_edit_field_advanced', 'nf_test', 10, 2 );
- $settings_sections = apply_filters( 'nf_edit_field_settings_sections', array(
- 'restrictions' => __( 'Restriction Settings', 'ninja-forms' ),
- 'calculations' => __( 'Calculation Settings', 'ninja-forms' ),
- 'advanced' => __( 'Advanced Settings', 'ninja-forms' ),
- ) );
- foreach ( $settings_sections as $key => $name ) {
- ?>
- <div class="nf-field-settings description-wide description">
- <div class="title">
- <?php echo $name; ?><span class="dashicons dashicons-arrow-down nf-field-sub-section-toggle"></span>
- </div>
- <div class="inside" style="display:none;">
- <?php
- if ( ! empty ( $edit_settings[ $key ] ) ) {
- foreach ( $edit_settings[ $key ] as $opt ) {
- $type = $opt['type'];
- $label_class = '';
- if ( isset( $opt['label'] ) ) {
- $label = $opt['label'];
- } else {
- $label = '';
- }
- if ( isset( $opt['name'] ) ) {
- $name = $opt['name'];
- } else {
- $name = '';
- }
- if ( isset( $opt['width'] ) ) {
- $width = $opt['width'];
- } else {
- $width = '';
- }
- if ( isset( $opt['options'] ) ) {
- $options = $opt['options'];
- } else {
- $options = '';
- }
- if ( isset( $opt['class'] ) ) {
- $class = $opt['class'];
- } else {
- $class = '';
- }
- if ( isset( $opt['default'] ) ) {
- $default = $opt['default'];
- } else {
- $default = '';
- }
- if ( isset( $opt['desc'] ) ) {
- $desc = $opt['desc'];
- } else {
- $desc = '';
- }
- if ( isset( $field_data[$name] ) ) {
- $value = $field_data[$name];
- } else {
- $value = $default;
- }
- ninja_forms_edit_field_el_output( $field_id, $type, $label, $name, $value, $width, $options, $class, $desc, $label_class );
- }
- }
- do_action( 'nf_edit_field_' . $key, $field_id, $field_data );
- ?>
- </div>
- </div>
- <?php
- }
- ?>
- <div class="menu-item-actions description-wide submitbox">
- <a class="submitdelete deletion nf-remove-field" id="ninja_forms_field_<?php echo $field_id;?>_remove" data-field="<?php echo $field_id; ?>" href="#"><?php _e('Remove', 'ninja-forms'); ?></a>
- </div>
- <?php
- if ( ! empty ( $nf_rte_editors ) && isset ( $editors ) && is_object( $editors ) ) {
- $editors->output_js( $field_id, $nf_rte_editors );
- }
- }
- function nf_test( $field_id, $field_data ) {
- do_action( 'ninja_forms_edit_field_after_registered', $field_id, $field_data );
- }
|