PageRenderTime 57ms CodeModel.GetById 30ms RepoModel.GetById 1ms app.codeStats 0ms

/wp-content/plugins/ninja-forms/includes/fields/list.php

https://github.com/mattyws/InfocorpSite
PHP | 685 lines | 585 code | 92 blank | 8 comment | 122 complexity | fb005fc3e368d6c994039f61908333f3 MD5 | raw file
Possible License(s): GPL-2.0, GPL-3.0, LGPL-2.1
  1. <?php
  2. function ninja_forms_register_field_list(){
  3. $args = array(
  4. 'name' => __( 'List', 'ninja-forms' ),
  5. 'edit_function' => 'ninja_forms_field_list_edit',
  6. 'edit_options' => array(
  7. array(
  8. 'type' => 'select',
  9. 'name' => 'list_type',
  10. 'label' => __( 'List Type', 'ninja-forms' ),
  11. 'width' => 'wide',
  12. 'class' => 'widefat',
  13. 'options' => array(
  14. array('name' => __( 'Dropdown', 'ninja-forms' ), 'value' => 'dropdown'),
  15. array('name' => __( 'Radio', 'ninja-forms' ), 'value' => 'radio'),
  16. array('name' => __( 'Checkboxes', 'ninja-forms' ), 'value' => 'checkbox'),
  17. array('name' => __( 'Multi-Select', 'ninja-forms' ), 'value' => 'multi'),
  18. ),
  19. ),
  20. array(
  21. 'type' => 'checkbox',
  22. 'name' => 'user_state',
  23. 'label' => __( 'This is the user\'s state', 'ninja-forms' ),
  24. ),
  25. array(
  26. 'type' => 'hidden',
  27. 'name' => 'user_info_field_group',
  28. ),
  29. ),
  30. 'display_function' => 'ninja_forms_field_list_display',
  31. 'group' => 'standard_fields',
  32. 'edit_label' => true,
  33. 'edit_label_pos' => true,
  34. 'edit_req' => true,
  35. 'edit_custom_class' => true,
  36. 'edit_help' => true,
  37. 'edit_desc' => true,
  38. 'edit_meta' => false,
  39. 'sidebar' => 'template_fields',
  40. 'edit_conditional' => true,
  41. 'conditional' => array(
  42. 'action' => array(
  43. 'show' => array(
  44. 'name' => __( 'Show This', 'ninja-forms' ),
  45. 'js_function' => 'show',
  46. 'output' => 'hide',
  47. ),
  48. 'hide' => array(
  49. 'name' => __( 'Hide This', 'ninja-forms' ),
  50. 'js_function' => 'hide',
  51. 'output' => 'hide',
  52. ),
  53. 'change_value' => array(
  54. 'name' => __( 'Selected Value', 'ninja-forms' ),
  55. 'js_function' => 'change_value',
  56. 'output' => 'list',
  57. ),
  58. 'add_value' => array(
  59. 'name' => __( 'Add Value', 'ninja-forms' ),
  60. 'js_function' => 'add_value',
  61. 'output' => 'ninja_forms_field_list_add_value',
  62. ),
  63. 'remove_value' => array(
  64. 'name' => __( 'Remove Value', 'ninja-forms' ),
  65. 'js_function' => 'remove_value',
  66. 'output' => 'list',
  67. ),
  68. ),
  69. 'value' => array(
  70. 'type' => 'list',
  71. ),
  72. ),
  73. );
  74. ninja_forms_register_field('_list', $args);
  75. add_filter( 'ninja_forms_field_wrap_class', 'ninja_forms_field_filter_list_wrap_class', 10, 2 );
  76. add_action('ninja_forms_display_after_opening_field_wrap', 'ninja_forms_display_list_type', 10, 2);
  77. }
  78. add_action('init', 'ninja_forms_register_field_list');
  79. function ninja_forms_display_list_type( $field_id, $data ){
  80. $field_row = ninja_forms_get_field_by_id( $field_id );
  81. $field_type = $field_row['type'];
  82. if( $field_type == '_list' ){
  83. if ( isset( $data['list_type'] ) ){
  84. $list_type = $data['list_type'];
  85. } else{
  86. $list_type = '';
  87. }
  88. ?>
  89. <input type="hidden" id="ninja_forms_field_<?php echo $field_id;?>_list_type" value="<?php echo $list_type;?>">
  90. <?php
  91. }
  92. }
  93. function ninja_forms_field_list_add_value( $field_id, $x, $conditional, $name, $id, $current = '', $field_data = '' ){
  94. if( isset( $current['value']['value'] ) ){
  95. $current_value = $current['value']['value'];
  96. }else{
  97. $current_value = '';
  98. }
  99. if( isset( $current['value']['label'] ) ){
  100. $current_label = $current['value']['label'];
  101. }else{
  102. $current_label = '';
  103. }
  104. if( isset( $field_data['list_show_value'] ) ){
  105. $list_show_value = $field_data['list_show_value'];
  106. }else{
  107. $list_show_value = 0;
  108. }
  109. ?>
  110. Label
  111. <input type="text" name="<?php echo $name;?>[label]" id="<?php echo $id;?>" class="" value="<?php echo $current_label;?>">
  112. <?php
  113. if( $list_show_value == 1 ){
  114. ?>
  115. Value
  116. <input type="text" name="<?php echo $name;?>[value]" id="<?php echo $id;?>" class="ninja-forms-field-<?php echo $field_id;?>-list-option-value" value="<?php echo $current_value;?>">
  117. <?php
  118. }else{
  119. ?>
  120. <input type="hidden" name="<?php echo $name;?>[value]" value="_ninja_forms_no_value">
  121. <?php
  122. }
  123. }
  124. function ninja_forms_field_list_edit($field_id, $data){
  125. global $wpdb;
  126. if(isset($data['list_type'])){
  127. $list_type = $data['list_type'];
  128. }else{
  129. $list_type = '';
  130. }
  131. if(isset($data['list_show_value'])){
  132. $hidden = $data['list_show_value'];
  133. }else{
  134. $hidden = 0;
  135. }
  136. if(isset($data['multi_size'])){
  137. $multi_size = $data['multi_size'];
  138. }else{
  139. $multi_size = 5;
  140. }
  141. ?>
  142. <p id="ninja_forms_field_<?php echo $field_id;?>_multi_size_p" class="description description-wide" style="<?php if($list_type != 'multi'){ echo 'display:none;';}?>">
  143. <?php _e( 'Multi-Select Box Size', 'ninja-forms' );?>: <input type="text" id="" name="ninja_forms_field_<?php echo $field_id;?>[multi_size]" value="<?php echo $multi_size;?>">
  144. </p>
  145. <p class="description description-wide">
  146. <a href="#" id="ninja_forms_field_<?php echo $field_id;?>_collapse_options" name="" class="ninja-forms-field-collapse-options"><?php _e( 'Expand / Collapse Options', 'ninja-forms' );?></a>
  147. </p>
  148. <span id="ninja_forms_field_<?php echo $field_id;?>_list_span" class="ninja-forms-list-span" style="display: none;">
  149. <p class="description description-wide">
  150. <?php _e( 'Options', 'ninja-forms' );?>: <a href="#" id="ninja_forms_field_<?php echo $field_id;?>_list_add_option" class="ninja-forms-field-add-list-option button-secondary"><?php _e( 'Add New', 'ninja-forms' );?></a>
  151. <a href="#TB_inline?width=640&height=530&inlineId=ninja_forms_field_<?php echo $field_id;?>_import_options_div" class="thickbox button-secondary" title="Import List Items" id=""><?php _e( 'Import Options', 'ninja-forms' );?></a>
  152. </p>
  153. <p class="description description-wide">
  154. <input type="hidden" id="" name="ninja_forms_field_<?php echo $field_id;?>[list_show_value]" value="0">
  155. <label for="ninja_forms_field_<?php echo $field_id;?>_list_show_value"><input type="checkbox" value="1" id="ninja_forms_field_<?php echo $field_id;?>_list_show_value" name="ninja_forms_field_<?php echo $field_id;?>[list_show_value]" class="ninja-forms-field-list-show-value" <?php if(isset($data['list_show_value']) AND $data['list_show_value'] == 1){ echo "checked='checked'";}?>>
  156. <?php _e( 'Show option values', 'ninja-forms' );?> </label>
  157. </p>
  158. <div id="ninja_forms_field_<?php echo $field_id;?>_list_options" class="ninja-forms-field-list-options description description-wide">
  159. <input type="hidden" name="ninja_forms_field_<?php echo $field_id;?>[list][options]" value="">
  160. <?php
  161. if( isset( $data['list']['options'] ) AND is_array( $data['list']['options'] ) AND $data['list']['options'] != '' ){
  162. $x = 0;
  163. foreach($data['list']['options'] as $option){
  164. ninja_forms_field_list_option_output($field_id, $x, $option, $hidden);
  165. $x++;
  166. }
  167. }
  168. ?>
  169. </div>
  170. </span>
  171. <?php add_thickbox(); ?>
  172. <div id="ninja_forms_field_<?php echo $field_id;?>_import_options_div" style="display:none;">
  173. <textarea id="test" class="list-import-textarea"></textarea>
  174. <input type="button" class="save-list-import button-secondary" value="<?php _e( 'Import', 'ninja-forms' ); ?>" rel="<?php echo $field_id;?>">
  175. <input type="button" class="cancel-list-import button-secondary" value="<?php _e( 'Cancel', 'ninja-forms' ); ?>">
  176. <p><?php _e( 'To use this feature, you can paste your CSV into the textarea above.', 'ninja-forms' );?></p>
  177. <p><?php _e( 'The format should look like the following:', 'ninja-forms' );?></p>
  178. <pre>
  179. Label,Value,Calc
  180. Label,Value,Calc
  181. Label,Value,Calc
  182. </pre>
  183. <p><?php _e( "If you want to send an empty value or calc, you should use '' for those.", 'ninja-forms' );?></p>
  184. <pre>
  185. Label,'',''
  186. Label,'',''
  187. Label,'',''
  188. </pre>
  189. </div>
  190. <?php
  191. }
  192. function ninja_forms_field_list_display( $field_id, $data ){
  193. global $wpdb, $ninja_forms_fields;
  194. if(isset($data['show_field'])){
  195. $show_field = $data['show_field'];
  196. }else{
  197. $show_field = true;
  198. }
  199. $field_class = ninja_forms_get_field_class($field_id);
  200. $field_row = ninja_forms_get_field_by_id($field_id);
  201. $type = $field_row['type'];
  202. $type_name = $ninja_forms_fields[$type]['name'];
  203. if ( isset( $data['list_type'] ) ) {
  204. $list_type = $data['list_type'];
  205. } else {
  206. $list_type = '';
  207. }
  208. if(isset($data['list_show_value'])){
  209. $list_show_value = $data['list_show_value'];
  210. }else{
  211. $list_show_value = 0;
  212. }
  213. if( isset( $data['list']['options'] ) AND $data['list']['options'] != '' ){
  214. $options = $data['list']['options'];
  215. }else{
  216. $options = array();
  217. }
  218. if(isset($data['label_pos'])){
  219. $label_pos = $data['label_pos'];
  220. }else{
  221. $label_pos = 'left';
  222. }
  223. if(isset($data['label'])){
  224. $label = $data['label'];
  225. }else{
  226. $label = $type_name;
  227. }
  228. if( isset( $data['multi_size'] ) ){
  229. $multi_size = $data['multi_size'];
  230. }else{
  231. $multi_size = 5;
  232. }
  233. if( isset( $data['default_value'] ) AND !empty( $data['default_value'] ) ){
  234. $selected_value = $data['default_value'];
  235. }else{
  236. $selected_value = '';
  237. }
  238. $list_options_span_class = apply_filters( 'ninja_forms_display_list_options_span_class', '', $field_id );
  239. switch($list_type){
  240. case 'dropdown':
  241. ?>
  242. <select name="ninja_forms_field_<?php echo $field_id;?>" id="ninja_forms_field_<?php echo $field_id;?>" class="<?php echo $field_class;?>" rel="<?php echo $field_id;?>">
  243. <?php
  244. if($label_pos == 'inside'){
  245. ?>
  246. <option value=""><?php echo $label;?></option>
  247. <?php
  248. }
  249. foreach($options as $option){
  250. if(isset($option['value'])){
  251. $value = $option['value'];
  252. }else{
  253. $value = $option['label'];
  254. }
  255. $value = htmlspecialchars( $value, ENT_QUOTES );
  256. if(isset($option['label'])){
  257. $label = $option['label'];
  258. }else{
  259. $label = '';
  260. }
  261. if(isset($option['display_style'])){
  262. $display_style = $option['display_style'];
  263. }else{
  264. $display_style = '';
  265. }
  266. if ( isset( $option['disabled'] ) AND $option['disabled'] ){
  267. $disabled = 'disabled';
  268. }else{
  269. $disabled = '';
  270. }
  271. $label = htmlspecialchars( $label, ENT_QUOTES );
  272. $label = stripslashes( $label );
  273. $label = str_replace( '&amp;', '&', $label );
  274. $field_label = $data['label'];
  275. if($list_show_value == 0){
  276. $value = $label;
  277. }
  278. if ( $selected_value == $value OR ( is_array( $selected_value ) AND in_array( $value, $selected_value ) ) ) {
  279. $selected = 'selected';
  280. }else if( ( $selected_value == '' OR $selected_value == $field_label ) AND isset( $option['selected'] ) AND $option['selected'] == 1 ){
  281. $selected = 'selected';
  282. }else{
  283. $selected = '';
  284. }
  285. ?>
  286. <option value="<?php echo $value;?>" <?php echo $selected;?> style="<?php echo $display_style;?>" <?php echo $disabled;?>><?php echo $label;?></option>
  287. <?php
  288. }
  289. ?>
  290. </select>
  291. <?php
  292. break;
  293. case 'radio':
  294. $x = 0;
  295. if( $label_pos == 'left' OR $label_pos == 'above' ){
  296. ?><?php
  297. }
  298. ?><input type="hidden" name="ninja_forms_field_<?php echo $field_id;?>" value=""><span id="ninja_forms_field_<?php echo $field_id;?>_options_span" class="<?php echo $list_options_span_class;?>" rel="<?php echo $field_id;?>"><ul><?php
  299. foreach($options as $option){
  300. if(isset($option['value'])){
  301. $value = $option['value'];
  302. }else{
  303. $value = $option['label'];
  304. }
  305. $value = htmlspecialchars( $value, ENT_QUOTES );
  306. if(isset($option['label'])){
  307. $label = $option['label'];
  308. }else{
  309. $label = '';
  310. }
  311. if(isset($option['display_style'])){
  312. $display_style = $option['display_style'];
  313. }else{
  314. $display_style = '';
  315. }
  316. $label = htmlspecialchars( $label, ENT_QUOTES );
  317. $label = stripslashes($label);
  318. if($list_show_value == 0){
  319. $value = $label;
  320. }
  321. if ( $selected_value == $value OR ( is_array( $selected_value ) AND in_array( $value, $selected_value ) ) ) {
  322. $selected = 'checked';
  323. }else if( $selected_value == '' AND isset( $option['selected'] ) AND $option['selected'] == 1 ){
  324. $selected = 'checked';
  325. }else{
  326. $selected = '';
  327. }
  328. ?><li><label id="ninja_forms_field_<?php echo $field_id;?>_<?php echo $x;?>_label" class="ninja-forms-field-<?php echo $field_id;?>-options" style="<?php echo $display_style;?>" for="ninja_forms_field_<?php echo $field_id;?>_<?php echo $x;?>"><input id="ninja_forms_field_<?php echo $field_id;?>_<?php echo $x;?>" name="ninja_forms_field_<?php echo $field_id;?>" type="radio" class="<?php echo $field_class;?>" value="<?php echo $value;?>" <?php echo $selected;?> rel="<?php echo $field_id;?>" /><?php echo $label;?></label></li><?php
  329. $x++;
  330. }
  331. ?></ul></span><li style="display:none;" id="ninja_forms_field_<?php echo $field_id;?>_template"><label><input id="ninja_forms_field_<?php echo $field_id;?>_" name="" type="radio" class="<?php echo $field_class;?>" value="" rel="<?php echo $field_id;?>" /></label></li>
  332. <?php
  333. break;
  334. case 'checkbox':
  335. $x = 0;
  336. ?><input type="hidden" name="ninja_forms_field_<?php echo $field_id;?>" value=""><span id="ninja_forms_field_<?php echo $field_id;?>_options_span" class="<?php echo $list_options_span_class;?>" rel="<?php echo $field_id;?>"><ul><?php
  337. foreach($options as $option){
  338. if(isset($option['value'])){
  339. $value = $option['value'];
  340. }else{
  341. $value = $option['label'];
  342. }
  343. $value = htmlspecialchars( $value, ENT_QUOTES );
  344. if(isset($option['label'])){
  345. $label = $option['label'];
  346. }else{
  347. $label = '';
  348. }
  349. if(isset($option['display_style'])){
  350. $display_style = $option['display_style'];
  351. }else{
  352. $display_style = '';
  353. }
  354. $label = htmlspecialchars( $label, ENT_QUOTES );
  355. $label = stripslashes( $label) ;
  356. if($list_show_value == 0){
  357. $value = $label;
  358. }
  359. if( isset( $option['selected'] ) AND $option['selected'] == 1 ){
  360. $checked = 'checked';
  361. }
  362. if( is_array( $selected_value ) AND in_array($value, $selected_value) ){
  363. $checked = 'checked';
  364. }else if($selected_value == $value){
  365. $checked = 'checked';
  366. }else if( $selected_value == '' AND isset( $option['selected'] ) AND $option['selected'] == 1 ){
  367. $checked = 'checked';
  368. }else{
  369. $checked = '';
  370. }
  371. ?><li><label id="ninja_forms_field_<?php echo $field_id;?>_<?php echo $x;?>_label" class="ninja-forms-field-<?php echo $field_id;?>-options" style="<?php echo $display_style;?>"><input id="ninja_forms_field_<?php echo $field_id;?>_<?php echo $x;?>" name="ninja_forms_field_<?php echo $field_id;?>[]" type="checkbox" class="<?php echo $field_class;?> ninja_forms_field_<?php echo $field_id;?>" value="<?php echo $value;?>" <?php echo $checked;?> rel="<?php echo $field_id;?>"/><?php echo $label;?></label></li><?php
  372. $x++;
  373. }
  374. ?></ul></span><li style="display:none;" id="ninja_forms_field_<?php echo $field_id;?>_template"><label><input id="ninja_forms_field_<?php echo $field_id;?>_" name="" type="checkbox" class="<?php echo $field_class;?>" value="" rel="<?php echo $field_id;?>" /></label></li>
  375. <?php
  376. break;
  377. case 'multi':
  378. ?>
  379. <select name="ninja_forms_field_<?php echo $field_id;?>[]" id="ninja_forms_field_<?php echo $field_id;?>" class="<?php echo $field_class;?>" multiple size="<?php echo $multi_size;?>" rel="<?php echo $field_id;?>" >
  380. <?php
  381. if($label_pos == 'inside'){
  382. ?>
  383. <option value=""><?php echo $label;?></option>
  384. <?php
  385. }
  386. foreach($options as $option){
  387. if(isset($option['value'])){
  388. $value = $option['value'];
  389. }else{
  390. $value = $option['label'];
  391. }
  392. $value = htmlspecialchars( $value, ENT_QUOTES );
  393. if(isset($option['label'])){
  394. $label = $option['label'];
  395. }else{
  396. $label = '';
  397. }
  398. if(isset($option['display_style'])){
  399. $display_style = $option['display_style'];
  400. }else{
  401. $display_style = '';
  402. }
  403. $label = htmlspecialchars( $label, ENT_QUOTES );
  404. $label = stripslashes($label);
  405. if($list_show_value == 0){
  406. $value = $label;
  407. }
  408. if(is_array($selected_value) AND in_array($value, $selected_value)){
  409. $selected = 'selected';
  410. }else if( $selected_value == '' AND isset( $option['selected'] ) AND $option['selected'] == 1 ){
  411. $selected = 'selected';
  412. }else{
  413. $selected = '';
  414. }
  415. if( $display_style == '' ){
  416. ?>
  417. <option value="<?php echo $value;?>" <?php echo $selected;?>><?php echo $label;?></option>
  418. <?php
  419. }
  420. }
  421. ?>
  422. </select>
  423. <select id="ninja_forms_field_<?php echo $field_id;?>_clone" style="display:none;" rel="<?php echo $field_id;?>" >
  424. <?php
  425. $x = 0;
  426. foreach($options as $option){
  427. if(isset($option['value'])){
  428. $value = $option['value'];
  429. }else{
  430. $value = $option['label'];
  431. }
  432. $value = htmlspecialchars( $value, ENT_QUOTES );
  433. if(isset($option['label'])){
  434. $label = $option['label'];
  435. }else{
  436. $label = '';
  437. }
  438. if(isset($option['display_style'])){
  439. $display_style = $option['display_style'];
  440. }else{
  441. $display_style = '';
  442. }
  443. $label = htmlspecialchars( $label, ENT_QUOTES );
  444. $label = stripslashes( $label );
  445. if($list_show_value == 0){
  446. $value = $label;
  447. }
  448. if(is_array($selected_value) AND in_array($value, $selected_value)){
  449. $selected = 'selected';
  450. }else{
  451. $selected = '';
  452. }
  453. if( $display_style != '' ){
  454. ?>
  455. <option value="<?php echo $value;?>" title="<?php echo $x;?>" <?php echo $selected;?>><?php echo $label;?></option>
  456. <?php
  457. }
  458. $x++;
  459. }
  460. ?>
  461. </select>
  462. <?php
  463. break;
  464. }
  465. }
  466. function ninja_forms_field_list_option_output($field_id, $x, $option = '', $hidden = ''){
  467. if($hidden == 1){
  468. $hidden = '';
  469. }else{
  470. $hidden = 'display:none';
  471. }
  472. if(is_array($option)){
  473. $label = htmlspecialchars( $option['label'] );
  474. $label = str_replace( '&amp;', '&', $label );
  475. $value = htmlspecialchars( $option['value'] );
  476. $value = str_replace( '&amp;', '&', $value );
  477. if ( isset ( $option['calc'] ) ) {
  478. $calc = $option['calc'];
  479. } else {
  480. $calc = '';
  481. }
  482. if( isset( $option['selected'] ) ){
  483. $selected = $option['selected'];
  484. }else{
  485. $selected = '';
  486. }
  487. $hide = '';
  488. }else{
  489. $label = '';
  490. $value = '';
  491. $selected = '';
  492. $calc = '';
  493. $hide = 'style="display:none;"';
  494. }
  495. if($selected == 1){
  496. $selected = "checked='checked'";
  497. }
  498. ?>
  499. <div id="ninja_forms_field_<?php echo $field_id;?>_list_option_<?php echo $x;?>" class="ninja-forms-field-<?php echo $field_id;?>-list-option ninja-forms-field-list-option" <?php echo $hide;?>>
  500. <table class="list-options">
  501. <tr>
  502. <td class="ninja-forms-delete-list-option-td">
  503. <a href="#" id="ninja_forms_field_<?php echo $field_id;?>_list_remove_option" class="ninja-forms-field-remove-list-option">X</a>
  504. </td>
  505. <td class="ninja-forms-list-option-label-td">
  506. <?php _e( 'Label', 'ninja-forms' );?>: <input type="text" name="ninja_forms_field_<?php echo $field_id;?>[list][options][<?php echo $x;?>][label]" id="ninja_forms_field_<?php echo $field_id;?>_list_option_label" class="ninja-forms-field-list-option-label" value="<?php echo $label;?>">
  507. </td>
  508. <td class="ninja-forms-list-option-value-td">
  509. <span id="ninja_forms_field_<?php echo $field_id;?>_list_option_<?php echo $x;?>_value_span" name="" class="ninja-forms-field-<?php echo $field_id;?>-list-option-value" style="<?php echo $hidden;?>"><?php _e( 'Value', 'ninja-forms' );?>: <input type="text" name="ninja_forms_field_<?php echo $field_id;?>[list][options][<?php echo $x;?>][value]" id="ninja_forms_field_<?php echo $field_id;?>_list_option_value" class="ninja-forms-field-list-option-value" value="<?php echo $value;?>"></span>
  510. </td>
  511. <td class="ninja-forms-list-option-calc-td">
  512. <?php _e( 'Calc', 'ninja-forms' );?>: <input type="text" name="ninja_forms_field_<?php echo $field_id;?>[list][options][<?php echo $x;?>][calc]" id="ninja_forms_field_<?php echo $field_id;?>_list_option_calc" class="ninja-forms-field-list-option-calc" value="<?php echo $calc;?>">
  513. </td>
  514. <td class="ninja-forms-list-option-selected-td">
  515. <label for="ninja_forms_field_<?php echo $field_id;?>_options_<?php echo $x;?>_selected"><?php _e( 'Selected', 'ninja-forms' );?> <input type="hidden" value="0" name="ninja_forms_field_<?php echo $field_id;?>[list][options][<?php echo $x;?>][selected]"><input type="checkbox" value="1" name="ninja_forms_field_<?php echo $field_id;?>[list][options][<?php echo $x;?>][selected]" id="ninja_forms_field_<?php echo $field_id;?>_options_<?php echo $x;?>_selected" <?php echo $selected;?>></label>
  516. </td>
  517. <td class="ninja-forms-list-option-drag-td">
  518. <span class="ninja-forms-drag">Drag</span>
  519. </td>
  520. </tr>
  521. </table>
  522. </div>
  523. <?php
  524. }
  525. function ninja_forms_field_filter_list_wrap_class( $field_wrap_class, $field_id ){
  526. $field_row = ninja_forms_get_field_by_id( $field_id );
  527. $field_type = $field_row['type'];
  528. if( $field_type == '_list' ){
  529. $field_data = $field_row['data'];
  530. if( isset( $field_data['list_type'] ) ){
  531. $list_type = $field_data['list_type'];
  532. }else{
  533. $list_type = '';
  534. }
  535. $field_wrap_class = str_replace( 'list-wrap', 'list-'.$list_type.'-wrap', $field_wrap_class );
  536. }
  537. return $field_wrap_class;
  538. }
  539. // Add a filter to change the current field_value to the "selected" list elements on form load, if any exist.
  540. function ninja_forms_field_filter_list_data( $form_id ){
  541. global $ninja_forms_loading, $ninja_forms_processing;
  542. if ( isset ( $ninja_forms_loading ) ) {
  543. $all_fields = $ninja_forms_loading->get_all_fields();
  544. } else {
  545. return false;
  546. }
  547. // Make sure we have some fields before displaying them!
  548. if ( ! $all_fields ) {
  549. return;
  550. }
  551. // Loop through all of our fields and see if we have any list fields.
  552. foreach( $all_fields as $field_id => $user_value ) {
  553. $tmp_array = array();
  554. if ( isset ( $ninja_forms_loading ) ) {
  555. $field = $ninja_forms_loading->get_field_settings( $field_id );
  556. } else {
  557. // $field = $ninja_forms_processing->get_field_settings( $field_id );
  558. }
  559. $field_type = $field['type'];
  560. $data = $field['data'];
  561. // Check to see if we are working with a list. If so, filter the default_value
  562. if( $field_type == '_list' ){
  563. if( isset( $data['list']['options'] ) AND is_array( $data['list']['options'] ) AND !empty( $data['list']['options'] ) ){
  564. foreach( $data['list']['options'] as $option ){
  565. if( isset( $option['selected'] ) AND $option['selected'] == 1 ){
  566. if( isset( $data['list_show_value'] ) AND $data['list_show_value'] == 1 ){
  567. $tmp_array[] = $option['value'];
  568. }else{
  569. $tmp_array[] = $option['label'];
  570. }
  571. }
  572. }
  573. if ( empty( $tmp_array ) AND $data['list_type'] == 'dropdown' AND $data['label_pos'] != 'inside' ) {
  574. if ( isset ( $data['list_show_value'] ) AND $data['list_show_value'] == 1 AND $data['label_pos'] != 'inside' ) {
  575. $tmp_array[] = $data['list']['options'][0]['value'];
  576. } else {
  577. $tmp_array[] = $data['list']['options'][0]['label'];
  578. }
  579. }
  580. }
  581. if ( isset ( $ninja_forms_loading ) ) {
  582. if ( $ninja_forms_loading->get_field_settings( $field_id ) ) {
  583. $ninja_forms_loading->update_field_value( $field_id, $tmp_array );
  584. }
  585. } else {
  586. // if ( !$ninja_forms_processing->get_field_value( $field_id ) ) {
  587. // $ninja_forms_processing->update_field_value( $field_id, $tmp_array );
  588. // }
  589. }
  590. }
  591. }
  592. }
  593. add_action( 'ninja_forms_display_pre_init', 'ninja_forms_field_filter_list_data', 8 );