register.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. function ninja_forms_register_field($slug, $args = array()){
  3. global $ninja_forms_fields;
  4. if( !isset( $ninja_forms_fields ) ){
  5. $ninja_forms_fields = array();
  6. }
  7. $defaults = array(
  8. 'conditional' => '',
  9. 'default_label' => '',
  10. 'default_label_pos' => '',
  11. 'default_value' => '',
  12. 'display_function' => '',
  13. 'display_label' => true,
  14. 'display_wrap' => true,
  15. 'edit_autocomplete_off' => false,
  16. 'edit_conditional' => true,
  17. 'edit_custom_class' => true,
  18. 'edit_function' => '',
  19. 'edit_help' => true,
  20. 'edit_label' => true,
  21. 'edit_label_pos' => true,
  22. 'edit_meta' => true,
  23. 'edit_options' => '',
  24. 'edit_placeholder' => false,
  25. 'edit_req' => true,
  26. 'edit_settings' => '',
  27. 'edit_sub_post_process' => '',
  28. 'edit_sub_pre_process' => '',
  29. 'edit_sub_process' => '',
  30. 'esc_html' => true,
  31. 'group' => '',
  32. 'interact' => true,
  33. 'label_pos_options' => '',
  34. 'li_class' => '',
  35. 'limit' => '',
  36. 'name' => $slug,
  37. 'nesting' => false,
  38. 'post_process' => '',
  39. 'pre_process' => '',
  40. 'process' => '',
  41. 'process_field' => true,
  42. 'req' => false,
  43. 'req_validation' => '',
  44. 'save_function' => '',
  45. 'save_sub' => true,
  46. 'show_fav' => true,
  47. 'show_field_id' => true,
  48. 'show_remove' => true,
  49. 'sub_edit' => 'text',
  50. 'sub_edit_function' => '',
  51. 'use_li' => true,
  52. 'visible' => 1,
  53. );
  54. // Parse incomming $args into an array and merge it with $defaults
  55. $args = wp_parse_args( $args, $defaults );
  56. foreach( $args as $key => $val ){
  57. $ninja_forms_fields[$slug][$key] = $val;
  58. }
  59. }
  60. function ninja_forms_register_field_type_group( $slug, $args ){
  61. global $ninja_forms_field_type_groups;
  62. foreach( $args as $key => $val ){
  63. $ninja_forms_field_type_groups[$slug][$key] = $val;
  64. }
  65. }
  66. function ninja_forms_register_tab( $slug, $args ){
  67. global $ninja_forms_tabs;
  68. if(!is_array($ninja_forms_tabs)){
  69. $ninja_forms_tabs = array();
  70. }
  71. $defaults = array(
  72. 'active_class' => '',
  73. 'add_form_id' => true,
  74. 'disable_no_form_id' => false,
  75. 'display_function' => '',
  76. 'inactive_class' => '',
  77. 'name' => '',
  78. 'page' => '',
  79. 'save_function' => '',
  80. 'show_on_no_form_id' => true,
  81. 'show_save' => true,
  82. 'show_tab_links' => true,
  83. 'show_this_tab_link' => true,
  84. 'tab_reload' => false,
  85. );
  86. // Parse incomming $args into an array and merge it with $defaults
  87. $args = wp_parse_args( $args, $defaults );
  88. $page = $args['page'];
  89. foreach( $args as $key => $val ){
  90. $ninja_forms_tabs[$page][$slug][$key] = $val;
  91. }
  92. }
  93. function ninja_forms_register_sidebar( $slug, $args ){
  94. global $ninja_forms_sidebars;
  95. if( !is_array($ninja_forms_sidebars ) ){
  96. $ninja_forms_sidebars = array();
  97. }
  98. $defaults = array(
  99. 'display_function' => 'ninja_forms_sidebar_display_fields',
  100. 'name' => '',
  101. 'order' => '',
  102. 'save_function' => '',
  103. 'settings' => ''
  104. );
  105. // Parse incomming $args into an array and merge it with $defaults
  106. $args = wp_parse_args( $args, $defaults );
  107. extract( $args );
  108. foreach( $args as $key => $val ){
  109. $ninja_forms_sidebars[$page][$tab][$slug][$key] = $val;
  110. }
  111. }
  112. function ninja_forms_register_sidebar_option( $slug, $args ){
  113. global $ninja_forms_sidebars;
  114. if( !is_array($ninja_forms_sidebars ) ){
  115. $ninja_forms_sidebars = array();
  116. }
  117. $defaults = array(
  118. 'desc' => '',
  119. 'display_function' => '',
  120. 'help' => '',
  121. 'name' => ''
  122. );
  123. // Parse incomming $args into an array and merge it with $defaults
  124. $args = wp_parse_args( $args, $defaults );
  125. extract( $args );
  126. foreach( $args as $key => $val ){
  127. $ninja_forms_sidebars[$page][$tab][$sidebar]['settings'][$slug][$key] = $val;
  128. }
  129. }
  130. function ninja_forms_register_sidebar_options( $args ){
  131. global $ninja_forms_sidebars;
  132. extract( $args );
  133. foreach( $args['settings'] as $setting ){
  134. $defaults = array(
  135. 'desc' => '',
  136. 'display_function' => '',
  137. 'help' => '',
  138. 'name' => ''
  139. );
  140. $slug = $setting['name'];
  141. // Parse incomming $setting into an array and merge it with $defaults
  142. $setting = wp_parse_args( $setting, $defaults );
  143. foreach( $setting as $key => $val ){
  144. $ninja_forms_sidebars[$page][$tab][$sidebar]['settings'][$slug][$key] = $val;
  145. }
  146. }
  147. }
  148. function ninja_forms_field_edit( $slug ){
  149. global $ninja_forms_fields;
  150. $function_name = $ninja_forms_fields[$slug]['edit_function'];
  151. $arguments = func_get_args();
  152. array_shift( $arguments ); // We need to remove the first arg ($function_name)
  153. call_user_func_array( $function_name, $arguments );
  154. }
  155. //Screen option registration function
  156. function ninja_forms_register_screen_option( $id, $args ){
  157. global $ninja_forms_screen_options;
  158. $defaults = array(
  159. 'display_function' => '',
  160. 'order' => '',
  161. 'page' => '',
  162. 'save_function' => '',
  163. 'tab' => '',
  164. );
  165. // Parse incomming $args into an array and merge it with $defaults
  166. $args = wp_parse_args( $args, $defaults );
  167. extract( $args );
  168. if($page == '' AND $tab == ''){
  169. $ninja_forms_screen_options['_universal_'][$id]['display_function'] = $display_function;
  170. $ninja_forms_screen_options['_universal_'][$id]['save_function'] = $save_function;
  171. }elseif($page != '' AND $tab == ''){
  172. $ninja_forms_screen_options[$page]['_universal_'][$id]['display_function'] = $display_function;
  173. $ninja_forms_screen_options[$page]['_universal_'][$id]['save_function'] = $save_function;
  174. }elseif($page != '' AND $tab != ''){
  175. $ninja_forms_screen_options[$page][$tab][$id]['display_function'] = $display_function;
  176. $ninja_forms_screen_options[$page][$tab][$id]['save_function'] = $save_function;
  177. }
  178. }
  179. //Help tab registration function
  180. function ninja_forms_register_help_screen_tab( $id, $args ){
  181. global $ninja_forms_help_screen_tabs;
  182. $defaults = array(
  183. 'display_function' => '',
  184. 'order' => '',
  185. 'page' => '',
  186. 'tab' => '',
  187. 'title' => '',
  188. );
  189. // Parse incomming $args into an array and merge it with $defaults
  190. $args = wp_parse_args( $args, $defaults );
  191. extract( $args );
  192. if($page == '' AND $tab == ''){
  193. $ninja_forms_help_screen_tabs['_universal_'][$id]['title'] = $title;
  194. $ninja_forms_help_screen_tabs['_universal_'][$id]['content'] = $display_function;
  195. }elseif($page != '' AND $tab == ''){
  196. $ninja_forms_help_screen_tabs[$page]['_universal_'][$id]['title'] = $title;
  197. $ninja_forms_help_screen_tabs[$page]['_universal_'][$id]['content'] = $display_function;
  198. }elseif($page != '' AND $tab != ''){
  199. $ninja_forms_help_screen_tabs[$page][$tab][$id]['title'] = $title;
  200. $ninja_forms_help_screen_tabs[$page][$tab][$id]['content'] = $display_function;
  201. }
  202. }
  203. //Tab - Metaboxes Registration function
  204. function ninja_forms_register_tab_metabox($args = array()){
  205. global $ninja_forms_tabs_metaboxes;
  206. $defaults = array(
  207. 'display_container' => true,
  208. 'save_function' => '',
  209. 'state' => ''
  210. );
  211. // Parse incomming $args into an array and merge it with $defaults
  212. $args = wp_parse_args( $args, $defaults );
  213. extract( $args );
  214. foreach($args as $key => $val){
  215. $ninja_forms_tabs_metaboxes[$page][$tab][$slug][$key] = $val;
  216. }
  217. }
  218. //Register Tab Metabox Options
  219. function ninja_forms_register_tab_metabox_options( $args = array() ){
  220. global $ninja_forms_tabs_metaboxes;
  221. extract( $args );
  222. $new_settings = $args['settings'];
  223. if( isset( $ninja_forms_tabs_metaboxes[$page][$tab][$slug]['settings'] ) ){
  224. $settings = $ninja_forms_tabs_metaboxes[$page][$tab][$slug]['settings'];
  225. }else{
  226. $settings = array();
  227. }
  228. if( is_array( $new_settings ) AND !empty( $new_settings ) ){
  229. foreach( $new_settings as $s ){
  230. if( is_array( $settings ) ){
  231. array_push( $settings, $s );
  232. }
  233. }
  234. }
  235. $ninja_forms_tabs_metaboxes[$page][$tab][$slug]['settings'] = $settings;
  236. }