PageRenderTime 22ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/wp-content/plugins/ninja-forms/deprecated/includes/display/fields/display-fields.php

https://gitlab.com/lamovible/grand-regis
PHP | 318 lines | 243 code | 56 blank | 19 comment | 99 complexity | 09d7562c78b3e97278183f0aa6f516d1 MD5 | raw file
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. /**
  3. * Outputs the HTML for each field within a given form_id.
  4. * It is attached to the ninja_forms_display_fields hook which is excuted by ninja_forms_display_form() in display-form.php
  5. **/
  6. add_action('init', 'ninja_forms_register_display_fields');
  7. function ninja_forms_register_display_fields(){
  8. add_action('ninja_forms_display_fields', 'ninja_forms_display_fields', 10, 2);
  9. }
  10. function ninja_forms_display_fields($form_id){
  11. global $ninja_forms_fields, $ninja_forms_loading, $ninja_forms_processing;
  12. $field_results = ninja_forms_get_fields_by_form_id($form_id);
  13. $field_results = apply_filters('ninja_forms_display_fields_array', $field_results, $form_id);
  14. if ( is_array ( $field_results ) AND !empty ( $field_results ) ) {
  15. foreach ( $field_results as $field ) {
  16. if ( isset ( $ninja_forms_loading ) && $ninja_forms_loading->get_form_ID() == $form_id ) {
  17. $field = $ninja_forms_loading->get_field_settings( $field['id'] );
  18. } else if ( isset ( $ninja_forms_processing ) && $ninja_forms_processing->get_form_ID() == $form_id ) {
  19. $field = $ninja_forms_processing->get_field_settings( $field['id'] );
  20. }
  21. if( isset( $ninja_forms_fields[$field['type']] ) ){
  22. $type = $ninja_forms_fields[$field['type']];
  23. $field_id = $field['id'];
  24. if(isset($field['data']['req'])){
  25. $req = $field['data']['req'];
  26. }else{
  27. $req = '';
  28. }
  29. $default_label_pos = $type['default_label_pos'];
  30. $display_wrap = $type['display_wrap'];
  31. $display_label = $type['display_label'];
  32. $sub_edit_function = $type['sub_edit_function'];
  33. $display_function = $type['display_function'];
  34. //Check to see if we are currently editing a form submission.
  35. //If we are, then $display_function should be set to the sub_edit_function instead.
  36. if( is_object( $ninja_forms_processing)){
  37. $sub_id = $ninja_forms_processing->get_form_setting('sub_id');
  38. }else if(isset($_REQUEST['sub_id'])){
  39. $sub_id = absint( $_REQUEST['sub_id'] );
  40. }else{
  41. $sub_id = '';
  42. }
  43. if ( $sub_id != '' AND $sub_edit_function != '' AND is_admin() ){
  44. $display_function = $sub_edit_function;
  45. }
  46. $process_field = $type['process_field'];
  47. $data = $field['data'];
  48. //These filters can be used to temporarily modify the settings of a field, i.e. default_value.
  49. $data = apply_filters( 'ninja_forms_field', $data, $field_id );
  50. //Check the show_field value of our $data array. If it is set to false, don't output the field.
  51. if(isset($data['show_field'])){
  52. $show_field = $data['show_field'];
  53. }else{
  54. $show_field = true;
  55. }
  56. if( isset( $data['display_style'] ) ){
  57. $display_style = $data['display_style'];
  58. }else{
  59. $display_style = '';
  60. }
  61. if( isset( $data['visible'] ) ){
  62. $visible = $data['visible'];
  63. }else{
  64. $visible = true;
  65. }
  66. if ( $display_style != '' ) {
  67. $display_style = 'style="'.$display_style.'"';
  68. }
  69. if ( $display_function != '' AND $show_field ) {
  70. if ( isset( $data['label_pos'] ) ) {
  71. $label_pos = $data['label_pos'];
  72. }else{
  73. $label_pos = '';
  74. }
  75. if( $label_pos == '' ) {
  76. $label_pos = $default_label_pos;
  77. }
  78. do_action( 'ninja_forms_display_before_field', $field_id, $data );
  79. //Check to see if display_wrap has been disabled. If it hasn't, show the wrapping DIV.
  80. if($display_wrap){
  81. $field_wrap_class = ninja_forms_get_field_wrap_class($field_id, $form_id);
  82. $field_wrap_class = apply_filters( 'ninja_forms_field_wrap_class', $field_wrap_class, $field_id );
  83. do_action( 'ninja_forms_display_before_opening_field_wrap', $field_id, $data );
  84. ?>
  85. <div class="<?php echo $field_wrap_class;?>" <?php echo $display_style;?> id="ninja_forms_field_<?php echo $field_id;?>_div_wrap" data-visible="<?php echo $visible;?>">
  86. <?php
  87. do_action( 'ninja_forms_display_after_opening_field_wrap', $field_id, $data );
  88. }
  89. //Check to see if display_label has been disabled. If it hasn't, show the label.
  90. if( $display_label ){
  91. if( $label_pos == 'left' OR $label_pos == 'above' ){ // Check the label position variable. If it is left or above, show the label.
  92. do_action( 'ninja_forms_display_before_field_label', $field_id, $data );
  93. do_action( 'ninja_forms_display_field_label', $field_id, $data );
  94. do_action( 'ninja_forms_display_after_field_label', $field_id, $data );
  95. }
  96. }
  97. //Check to see if there is a registered display function. If so, call it.
  98. if($display_function != ''){
  99. do_action( 'ninja_forms_display_before_field_function', $field_id, $data );
  100. $arguments['field_id'] = $field_id;
  101. $arguments['data'] = $data;
  102. $arguments['form_id'] = $form_id;
  103. call_user_func_array($display_function, $arguments);
  104. do_action( 'ninja_forms_display_after_field_function', $field_id, $data );
  105. if( $label_pos == 'left' OR $label_pos == 'inside'){
  106. do_action( 'ninja_forms_display_field_help', $field_id, $data );
  107. }
  108. }
  109. //Check to see if display_label has been disabled. If it hasn't, show the label.
  110. if($display_label){
  111. if($label_pos == 'right' OR $label_pos == 'below'){ // Check the label position variable. If it is right or below, show the label.
  112. do_action( 'ninja_forms_display_before_field_label', $field_id, $data );
  113. do_action( 'ninja_forms_display_field_label', $field_id, $data );
  114. do_action( 'ninja_forms_display_after_field_label', $field_id, $data );
  115. }
  116. }
  117. //Check to see if display_wrap has been disabled. If it hasn't close the wrapping DIV
  118. if($display_wrap){
  119. do_action( 'ninja_forms_display_before_closing_field_wrap', $field_id, $data );
  120. ?>
  121. </div>
  122. <?php
  123. do_action( 'ninja_forms_display_after_closing_field_wrap', $field_id, $data );
  124. }
  125. do_action( 'ninja_forms_display_after_field', $field_id, $data );
  126. }
  127. }
  128. }
  129. }
  130. }
  131. /**
  132. * The next two functions are used to get CSS class names based upon field settings.
  133. *
  134. **/
  135. function ninja_forms_get_field_wrap_class( $field_id, $form_id = '' ){
  136. global $ninja_forms_loading, $ninja_forms_processing;
  137. $field_wrap_class = 'field-wrap';
  138. if ( '' == $form_id ) {
  139. $field = ninja_forms_get_field_by_id( $field_id );
  140. $form_id = $field['form_id'];
  141. }
  142. if ( isset ( $ninja_forms_loading ) && $ninja_forms_loading->get_form_ID() == $form_id ) {
  143. $field_row = $ninja_forms_loading->get_field_settings( $field_id );
  144. } else if ( isset ( $ninja_forms_processing ) && $ninja_forms_processing->get_form_ID() == $form_id ) {
  145. $field_row = $ninja_forms_processing->get_field_settings( $field_id );
  146. }
  147. $form_id = $field_row['form_id'];
  148. $data = $field_row['data'];
  149. if ( isset ( $field_row['type'] ) ) {
  150. $type_slug = $field_row['type'];
  151. } else {
  152. $type_slug = '';
  153. }
  154. if(strpos($type_slug, "_") === 0){
  155. $type_slug = substr($type_slug, 1);
  156. }
  157. $field_wrap_class .= " ".$type_slug."-wrap";
  158. if(isset($data['label_pos'])){
  159. $label_pos = $data['label_pos'];
  160. }else{
  161. $label_pos = 'above';
  162. }
  163. $field_wrap_class .= " label-".$label_pos;
  164. $x = 0;
  165. $custom_class = '';
  166. if(isset($data['class']) AND !empty($data['class'])){
  167. $class_array = explode(",", $data['class']);
  168. foreach($class_array as $class){
  169. $custom_class .= $class;
  170. if($x != (count($class_array) - 1)){
  171. $custom_class .= " ";
  172. }
  173. $x++;
  174. }
  175. }
  176. if($custom_class != ''){
  177. $custom_class = str_replace( ' ', '-wrap ', $custom_class );
  178. $field_wrap_class .= ' '.$custom_class.'-wrap';
  179. }
  180. if( is_object( $ninja_forms_processing) AND is_array($ninja_forms_processing->get_errors_by_location($field_id))){
  181. foreach($ninja_forms_processing->get_errors_by_location($field_id) as $error){
  182. $field_wrap_class .= ' ninja-forms-error';
  183. break;
  184. }
  185. }
  186. return apply_filters( 'ninja_forms_display_field_wrap_class', $field_wrap_class, $field_id, $field_row );
  187. }
  188. function ninja_forms_get_field_class( $field_id, $form_id = '' ) {
  189. global $ninja_forms_loading, $ninja_forms_processing;
  190. if ( '' == $form_id ) {
  191. $field = ninja_forms_get_field_by_id( $field_id );
  192. $form_id = $field['form_id'];
  193. }
  194. if ( isset ( $ninja_forms_loading ) && $ninja_forms_loading->get_form_ID() == $form_id ) {
  195. $field_row = $ninja_forms_loading->get_field_settings( $field_id );
  196. $field_class = $ninja_forms_loading->get_field_setting( $field_id, 'field_class' );
  197. } else if ( isset ( $ninja_forms_processing ) && $ninja_forms_processing->get_form_ID() == $form_id ) {
  198. $field_row = $ninja_forms_processing->get_field_settings( $field_id );
  199. $field_class = $ninja_forms_processing->get_field_setting( $field_id, 'field_class' );
  200. }
  201. $field_data = $field_row['data'];
  202. $field_data = apply_filters( 'ninja_forms_field', $field_data, $field_id );
  203. $field_type = isset ( $field_row['type'] ) ? $field_row['type'] : '';
  204. $x = 0;
  205. $custom_class = '';
  206. if ( isset( $field_data['class'] ) AND !empty ( $field_data['class'] ) ) {
  207. $class_array = explode(",", $field_data['class']);
  208. foreach($class_array as $class){
  209. $custom_class .= $class;
  210. if($x != (count($class_array) - 1)){
  211. $custom_class .= " ";
  212. }
  213. $x++;
  214. }
  215. }
  216. $req_class = '';
  217. if(isset($field_data['req']) AND $field_data['req'] == 1){
  218. $req_class = 'ninja-forms-req';
  219. }
  220. // Check to see if we are dealing with a field that has the user_info_field_group set.
  221. if ( isset ( $field_data['user_info_field_group_name'] ) and $field_data['user_info_field_group_name'] != '' ) {
  222. $user_info_group_class = $field_data['user_info_field_group_name'].'-address';
  223. } else {
  224. $user_info_group_class = '';
  225. }
  226. $address_class = '';
  227. // Check to see if we are dealing with an address field.
  228. if ( isset ( $field_data['user_address_1'] ) and $field_data['user_address_1'] == 1 ) {
  229. $address_class = 'address address1';
  230. }
  231. if ( isset ( $field_data['user_address_2'] ) and $field_data['user_address_2'] == 1 ) {
  232. $address_class = 'address address2';
  233. }
  234. if ( isset ( $field_data['user_city'] ) and $field_data['user_city'] == 1 ) {
  235. $address_class = 'address city';
  236. }
  237. if ( isset ( $field_data['user_state'] ) and $field_data['user_state'] == 1 ) {
  238. $address_class = 'address state';
  239. }
  240. if ( isset ( $field_data['user_zip'] ) and $field_data['user_zip'] == 1 ) {
  241. $address_class = 'address zip';
  242. }
  243. if ( '_country' == $field_type ) {
  244. $address_class = 'address country';
  245. }
  246. if($req_class != ''){
  247. $field_class .= " ".$req_class;
  248. }
  249. if($custom_class != ''){
  250. $field_class .= " ".$custom_class;
  251. }
  252. if ( $user_info_group_class != '' ) {
  253. $field_class .= " ".$user_info_group_class;
  254. }
  255. if ( $address_class != '' ) {
  256. $field_class .= " ".$address_class;
  257. }
  258. if ( isset ( $field_data['input_limit'] ) and $field_data['input_limit'] != '' ) {
  259. $field_class .= " input-limit";
  260. }
  261. return apply_filters( 'ninja_forms_display_field_class', $field_class, $field_id, $field_row );
  262. }