PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.32
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.32
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / classes / models / FrmFieldOption.php

FrmFieldOption.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 6.32, at classes/models/FrmFieldOption.php

104 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 die( 'You are not allowed to call this page directly.' );
4 }
5
6 /**
7 * @since 2.03.05
8 */
9 class FrmFieldOption {
10
11 /**
12 * @var int|string
13 *
14 * @since 2.03.05
15 */
16 protected $option_key;
17
18 /**
19 * @var array|string
20 *
21 * @since 2.03.05
22 */
23 protected $option;
24
25 /**
26 * @var string
27 *
28 * @since 2.03.05
29 */
30 protected $saved_value = '';
31
32 /**
33 * @var string
34 *
35 * @since 2.03.05
36 */
37 protected $option_label = '';
38
39 /**
40 * @param int|string $option_key
41 * @param array|string $option
42 * @param array $args
43 *
44 * @return void
45 */
46 public function __construct( $option_key, $option, $args = array() ) {
47 $this->option_key = $option_key;
48 $this->option = $option;
49 $this->set_option_label();
50 $this->set_saved_value();
51 }
52
53 /**
54 * Set the option label
55 *
56 * @since 2.03.05
57 *
58 * @return void
59 */
60 private function set_option_label() {
61 $this->option_label = is_array( $this->option ) ? ( $this->option['label'] ?? reset( $this->option ) ) : $this->option;
62 }
63
64 /**
65 * Set the saved value
66 *
67 * @since 2.03.05
68 *
69 * @return void
70 */
71 protected function set_saved_value() {
72 $this->saved_value = $this->option_label;
73 }
74
75 /**
76 * Print a single option
77 *
78 * @since 2.03.05
79 *
80 * @param string $selected_value The value of the option to be selected.
81 * @param int $truncate Truncate the option label if true.
82 * @param bool $use_value_as_label Use the option value as the label if true.
83 *
84 * @return void
85 */
86 public function print_single_option( $selected_value, $truncate, $use_value_as_label = false ) {
87 if ( '' === $this->saved_value && ! $use_value_as_label ) {
88 return;
89 }
90
91 if ( $use_value_as_label && '' === trim( $this->option_label ) ) {
92 $label = '' !== $this->saved_value ? $this->saved_value : FrmAppHelper::get_no_label_text();
93 } else {
94 $label = $this->option_label;
95 }
96
97 echo '<option value="' . esc_attr( $this->saved_value ) . '"';
98 selected( esc_attr( $selected_value ), esc_attr( $this->saved_value ) );
99 // TODO: add hook that can add attributes to option text
100 echo '>';
101 echo esc_html( FrmAppHelper::truncate( $label, $truncate ) ) . '</option>';
102 }
103 }
104