desc.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. function ninja_forms_register_field_desc(){
  3. $args = array(
  4. 'name' => __( 'Text', 'ninja-forms' ),
  5. 'sidebar' => 'layout_fields',
  6. 'edit_function' => '',
  7. 'edit_options' => array(
  8. array(
  9. 'type' => 'rte',
  10. 'name' => 'default_value',
  11. 'label' => __( 'Default Value', 'ninja-forms' ),
  12. 'width' => 'wide',
  13. 'class' => 'widefat',
  14. ),
  15. array(
  16. 'type' => 'select',
  17. 'name' => 'desc_el',
  18. 'label' => __( 'Text Element', 'ninja-forms' ),
  19. 'width' => 'thin',
  20. 'class' => '',
  21. 'options' => array(
  22. array('name' => 'div', 'value' => 'div'),
  23. array('name' => 'h1', 'value' => 'h1'),
  24. array('name' => 'h2', 'value' => 'h2'),
  25. array('name' => 'h3', 'value' => 'h3'),
  26. array('name' => 'h4', 'value' => 'h4'),
  27. array('name' => 'h5', 'value' => 'h5'),
  28. array('name' => 'h6', 'value' => 'h6'),
  29. array('name' => 'p', 'value' => 'p'),
  30. array('name' => 'span', 'value' => 'span'),
  31. ),
  32. ),
  33. ),
  34. 'display_function' => 'ninja_forms_field_desc_display',
  35. 'group' => 'layout_elements',
  36. 'display_label' => false,
  37. 'display_wrap' => false,
  38. 'edit_label' => true,
  39. 'edit_label_pos' => false,
  40. 'edit_req' => false,
  41. 'edit_custom_class' => true,
  42. 'edit_help' => false,
  43. 'edit_meta' => false,
  44. 'edit_conditional' => true,
  45. 'process_field' => false,
  46. 'pre_process' => 'ninja_forms_field_desc_pre_process',
  47. 'esc_html' => false,
  48. );
  49. ninja_forms_register_field('_desc', $args);
  50. }
  51. add_action('init', 'ninja_forms_register_field_desc');
  52. function ninja_forms_field_desc_display( $field_id, $data, $form_id = '' ){
  53. if(isset($data['desc_el'])){
  54. $desc_el = $data['desc_el'];
  55. }else{
  56. $desc_el = "p";
  57. }
  58. if(isset($data['default_value'])){
  59. $default_value = $data['default_value'];
  60. }else{
  61. $default_value = '';
  62. }
  63. $default_value = html_entity_decode( $default_value, ENT_COMPAT, "UTF-8" );
  64. if($desc_el == "div"){
  65. $default_value = wpautop( $default_value );
  66. }else{
  67. $default_value = nl2br( $default_value );
  68. }
  69. if( isset( $data['display_style'] ) ){
  70. $display_style = $data['display_style'];
  71. }else{
  72. $display_style = '';
  73. }
  74. $default_value = do_shortcode( $default_value );
  75. $field_class = ninja_forms_get_field_class( $field_id, $form_id );
  76. $field_class .= ' nf-desc';
  77. ?>
  78. <<?php echo $desc_el;?> class="<?php echo $field_class;?>" id="ninja_forms_field_<?php echo $field_id;?>_div_wrap" style="<?php echo $display_style;?>" rel="<?php echo $field_id;?>"><?php echo $default_value;?></<?php echo $desc_el;?>>
  79. <?php
  80. }
  81. /*
  82. *
  83. * Function that adds the $data['default_value'] to the $ninja_forms_processing.
  84. *
  85. * @since 2.2.30
  86. * @returns void
  87. */
  88. function ninja_forms_field_desc_pre_process( $field_id, $user_value ){
  89. global $ninja_forms_processing;
  90. $field = ninja_forms_get_field_by_id( $field_id );
  91. $default_value = isset( $field['data']['default_value'] ) ? $field['data']['default_value'] : '';
  92. $ninja_forms_processing->update_field_value( $field_id, $default_value );
  93. }