edit-field.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. function ninja_forms_edit_field( $field_id, $new = false ){
  3. global $wpdb, $ninja_forms_fields;
  4. do_action( 'ninja_forms_edit_field_before_li', $field_id, $new );
  5. do_action( 'ninja_forms_edit_field_li', $field_id, $new );
  6. do_action( 'ninja_forms_edit_field_after_li', $field_id, $new );
  7. }
  8. function ninja_forms_edit_field_el_output($field_id, $type, $label = '', $name = '', $value = '', $width = 'wide', $options = '', $class = '', $desc = '', $label_class = '' ){
  9. global $ninja_forms_fields, $nf_rte_editors;
  10. $field_row = ninja_forms_get_field_by_id($field_id);
  11. $field_type = $field_row['type'];
  12. $reg_field = $ninja_forms_fields[$field_type];
  13. $class = 'code ninja-forms-'.$field_type.'-'.$name.' '.$class;
  14. $id = 'ninja_forms_field_'.$field_id.'_'.$name;
  15. if ( strpos( $name, '[' ) !== false ) {
  16. str_replace( ']', '', $name );
  17. $name = explode( '[', $name );
  18. if ( is_array ( $name ) ) {
  19. $tmp_name = 'ninja_forms_field_'.$field_id;
  20. foreach ( $name as $n ) {
  21. $tmp_name .= '['.$n.']';
  22. }
  23. $name = $tmp_name;
  24. } else {
  25. $name = 'ninja_forms_field_'.$field_id.'['.$name.']';
  26. }
  27. } else {
  28. $name = 'ninja_forms_field_'.$field_id.'['.$name.']';
  29. }
  30. ?>
  31. <div class="description description-<?php echo $width;?> <?php echo $type;?>" id="<?php echo $name;?>_p">
  32. <?php
  33. if($type != 'rte'){
  34. $value = ninja_forms_esc_html_deep( $value );
  35. ?>
  36. <span class="field-option">
  37. <?php
  38. }
  39. if($type != 'checkbox' AND $type != 'desc'){
  40. ?>
  41. <label for="<?php echo $id;?>" id="<?php echo $id;?>_label" class="<?php echo $label_class;?>">
  42. <?php _e( $label , 'ninja-forms'); ?></label><br/>
  43. <?php
  44. }
  45. switch($type){
  46. case 'text':
  47. ?>
  48. <input type="text" class="<?php echo $class;?>" name="<?php echo $name;?>" id="<?php echo $id;?>" value="<?php echo $value;?>" />
  49. <?php
  50. break;
  51. case 'number':
  52. ?>
  53. <input type="number" class="<?php echo $class;?>" name="<?php echo $name;?>" id="<?php echo $id;?>" value="<?php echo $value;?>" />
  54. <?php
  55. break;
  56. case 'checkbox':
  57. ?>
  58. <label for="<?php echo $id;?>" id="<?php echo $id;?>_label">
  59. <input type="hidden" value="0" name="<?php echo $name;?>">
  60. <input type="checkbox" value="1" name="<?php echo $name;?>" id="<?php echo $id;?>" class="<?php echo $class;?>" <?php checked($value, 1);?>>
  61. <?php _e( $label , 'ninja-forms'); ?>
  62. </label>
  63. <?php
  64. break;
  65. case 'select':
  66. ?>
  67. <select id="<?php echo $id;?>" name="<?php echo $name;?>" class="<?php echo $class;?>">
  68. <?php
  69. if(is_array($options) AND !empty($options)){
  70. foreach($options as $opt){
  71. ?>
  72. <option value="<?php echo $opt['value'];?>" <?php selected($opt['value'], $value); ?> ><?php _e( $opt['name'], 'ninja-forms'); ?></option>
  73. <?php
  74. }
  75. }
  76. ?>
  77. </select>
  78. <?php
  79. break;
  80. case 'multi':
  81. ?>
  82. <select multiple="multiple" id="<?php echo $id;?>" name="<?php echo $name;?>" class="<?php echo $class;?>">
  83. <?php
  84. if(is_array($options) AND !empty($options)){
  85. foreach($options as $opt){
  86. ?>
  87. <option value="<?php echo $opt['value'];?>" <?php selected($opt['value'], $value); ?> ><?php _e( $opt['name'], 'ninja-forms'); ?></option>
  88. <?php
  89. }
  90. }
  91. ?>
  92. </select>
  93. <?php
  94. break;
  95. case 'textarea':
  96. ?>
  97. <textarea id="<?php echo $id;?>" name="<?php echo $name;?>" class="<?php echo $class;?>" rows="3" cols="20" ><?php echo $value;?></textarea>
  98. <?php
  99. break;
  100. case 'hidden':
  101. ?>
  102. <input type="hidden" name="<?php echo $name;?>" value="<?php echo $value;?>">
  103. <?php
  104. break;
  105. case 'desc':
  106. ?>
  107. <span class="desc"><label for="<?php echo $id;?>" id="<?php echo $id;?>_label"><?php _e($label, 'ninja-forms'); ?></label></span>
  108. <?php
  109. break;
  110. case 'rte':
  111. // Check if our current user has the RTE disabled.
  112. $user_id = get_current_user_id();
  113. $rich_editing = get_user_meta( $user_id, 'rich_editing', true );
  114. if ( 'true' == $rich_editing ) {
  115. $editor_id = str_replace( '[', '_', $name );
  116. $editor_id = str_replace( ']', '', $editor_id );
  117. $plugin_settings = nf_get_settings();
  118. if ( !isset( $plugin_settings['version_2_2_25_rte_fix'] ) OR $plugin_settings['version_2_2_25_rte_fix'] == '' ) {
  119. $value = html_entity_decode( $value );
  120. $plugin_settings['version_2_2_25_rte_fix'] = 1;
  121. update_option( 'ninja_forms_settings', $plugin_settings );
  122. }
  123. $args = apply_filters( 'ninja_forms_edit_field_rte', array( 'textarea_name' => $name ) );
  124. wp_editor( $value, $editor_id, $args );
  125. // If we're using ajax, add this editor ID to our global var so that we can instantiate it on the front-end.
  126. if ( isset ( $_POST['action'] ) && ( $_POST['action'] == 'ninja_forms_new_field' || $_POST['action'] == 'nf_output_field_settings_html' ) )
  127. $nf_rte_editors[] = $editor_id;
  128. } else {
  129. ?>
  130. <textarea id="<?php echo $id;?>" name="<?php echo $name;?>" class="<?php echo $class;?>" rows="3" cols="20" ><?php echo $value;?></textarea>
  131. <?php
  132. }
  133. break;
  134. }
  135. if($desc != ''){
  136. ?>
  137. <span class="description">
  138. <?php _e($desc, 'ninja-forms'); ?>
  139. </span>
  140. <?php
  141. }
  142. if($type != 'rte'){
  143. ?>
  144. </span>
  145. <?php
  146. }
  147. ?>
  148. </div>
  149. <?php
  150. }