PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / includes / class-give-tooltips.php
give / includes Last commit date
admin 21 hours ago api 3 years ago database 5 months ago deprecated 1 month ago donors 5 months ago emails 9 months ago forms 21 hours ago frontend 6 years ago gateways 9 months ago libraries 9 months ago payments 2 months ago actions.php 9 months ago ajax-functions.php 2 days ago class-give-async-process.php 1 year ago class-give-background-updater.php 9 months ago class-give-cache-setting.php 1 year ago class-give-cache.php 9 months ago class-give-cli-commands.php 1 year ago class-give-comment.php 9 months ago class-give-cron.php 9 months ago class-give-donate-form.php 1 year ago class-give-donor.php 2 years ago class-give-email-access.php 5 years ago class-give-license-handler.php 1 month ago class-give-logging.php 9 months ago class-give-readme-parser.php 4 years ago class-give-roles.php 5 months ago class-give-scripts.php 2 weeks ago class-give-session.php 9 months ago class-give-stats.php 6 years ago class-give-template-loader.php 6 years ago class-give-tooltips.php 6 years ago class-give-translation.php 4 years ago class-notices.php 9 months ago country-functions.php 7 months ago currencies-list.php 7 months ago currency-functions.php 3 years ago error-tracking.php 6 years ago filters.php 9 months ago formatting.php 9 months ago install.php 9 months ago login-register.php 2 years ago misc-functions.php 1 month ago plugin-compatibility.php 6 years ago post-types.php 1 year ago price-functions.php 6 years ago process-donation.php 1 year ago setting-functions.php 6 years ago shortcodes.php 1 year ago template-functions.php 1 year ago user-functions.php 3 years ago
class-give-tooltips.php
201 lines
1 <?php
2
3 /**
4 * Class for managing tooltips
5 *
6 * @package Give
7 * @subpackage Classes/Give_Tooltips
8 * @copyright Copyright (c) 2017, GiveWP
9 * @license https://opensource.org/licenses/gpl-license GNU Public License
10 * @since 2.0
11 */
12 class Give_Tooltips {
13 /**
14 * Set tooltip arguments.
15 *
16 * @since 2.0
17 * @access private
18 *
19 * @param $args
20 *
21 * @return array
22 */
23 private function set_toottip_args( $args ) {
24 $args = wp_parse_args(
25 $args,
26 array(
27 // Tooltip tag.
28 'tag' => 'span',
29 'tag_content' => '',
30
31 // Set to link of anchor if tooltip tag is anchor.
32 'link' => '#',
33
34 // Text for tooltip
35 'label' => '',
36
37 // Value: top-right, top, top-left, right, left, bottom-right, bottom, bottom-left.
38 'position' => 'top',
39
40 // Value: error, warning, info, success.
41 'status' => '',
42
43 // Value: small, medium, large.
44 'size' => '',
45
46 // Value: true/false.
47 'show_always' => false,
48
49 // Value: true/false
50 'round_edges' => false,
51
52 // Value: true/false
53 'animate' => true,
54
55 // Attributes.
56 'attributes' => array(),
57
58 // Value: true/false
59 'auto_width' => true,
60 )
61 );
62
63 // Auto set width of tooltip.
64 if (
65 ! empty( $args['auto_width'] ) &&
66 ! empty( $args['label'] ) &&
67 empty( $args['size'] )
68 ) {
69 if ( 15 < str_word_count( $args['label'] ) ) {
70 $args['size'] = 'large';
71 } elseif ( 7 < str_word_count( $args['label'] ) ) {
72 $args['size'] = 'medium';
73 }
74 }
75
76 return $args;
77 }
78
79
80 /**
81 * Render tooltip
82 *
83 * @since 2.0
84 * @access public
85 *
86 * @param $args
87 *
88 * @return string
89 */
90 public function render( $args ) {
91 $args = $this->set_toottip_args( $args );
92
93 $tooltip_pos = array(
94 'top' => 'hint--top',
95 'top-right' => 'hint--top-right',
96 'top-left' => 'hint--top-left',
97 'right' => 'hint--right',
98 'left' => 'hint--left',
99 'bottom' => 'hint--bottom',
100 'bottom-right' => 'hint--bottom-right',
101 'bottom-left' => 'hint--bottom-left',
102 );
103
104 $tooltip_status = array(
105 'error' => 'hint--error',
106 'warning' => 'hint--warning',
107 'info' => 'hint--info',
108 'success' => 'hint--success',
109 );
110
111 $tooltip_size = array(
112 'small' => 'hint--small',
113 'medium' => 'hint--medium',
114 'large' => 'hint--large',
115 );
116
117 // Set label.
118 $args['attributes']['aria-label'] = $args['label'];
119
120 // Set classes.
121 $args['attributes']['class'] = ! empty( $args['attributes']['class'] ) ? $args['attributes']['class'] : '';
122 $args['attributes']['class'] .= " {$tooltip_pos[ $args['position'] ]}";
123 $args['attributes']['class'] .= ! empty( $args['status'] ) ? " {$tooltip_status[ $args['status'] ]}" : '';
124 $args['attributes']['class'] .= ! empty( $args['size'] ) ? " {$tooltip_size[ $args['size'] ]}" : '';
125 $args['attributes']['class'] .= $args['show_always'] ? ' hint--always' : '';
126 $args['attributes']['class'] .= $args['round_edges'] ? ' hint--rounded' : '';
127 $args['attributes']['class'] .= $args['animate'] ? ' hint--bounce' : ' hint--no-animate';
128 $args['attributes']['class'] = trim( $args['attributes']['class'] );
129
130 // Set link attribute in tooltip has anchor tag.
131 if ( 'a' === $args['tag'] && ! empty( $args['link'] ) ) {
132 $args['attributes']['href'] = esc_url( $args['link'] );
133 }
134
135 return sprintf( '<%1$s %2$s rel="tooltip">%3$s</%1$s>', $args['tag'], give_get_attribute_str( $args['attributes'] ), $args['tag_content'] );
136 }
137
138
139 /**
140 * Render tooltip with anchor tag
141 *
142 * @since 2.0
143 * @access public
144 *
145 * @param array $args
146 *
147 * @return string
148 */
149 function render_link( $args ) {
150 $args['tag'] = 'a';
151 $tooltip_markup = $this->render( $args );
152
153 return $tooltip_markup;
154 }
155
156 /**
157 * Render tooltip with span tag
158 *
159 * @since 2.0
160 * @access public
161 *
162 * @param array|string $args
163 *
164 * @return string
165 */
166 function render_span( $args ) {
167 // Set tooltip args from string.
168 if ( is_string( $args ) ) {
169 $args = array( 'label' => $args );
170 }
171
172 $args['tag'] = 'span';
173 $tooltip_markup = $this->render( $args );
174
175 return $tooltip_markup;
176 }
177
178 /**
179 * Render tooltip with span tag and question mark icon
180 *
181 * @since 2.0
182 * @access public
183 *
184 * @param array|string $args
185 *
186 * @return string
187 */
188 function render_help( $args ) {
189 // Set tooltip args from string.
190 if ( is_string( $args ) ) {
191 $args = array( 'label' => $args );
192 }
193
194 $args['tag_content'] = '<i class="give-icon give-icon-question"></i>';
195 $args['attributes']['class'] = 'give-tooltip';
196 $tooltip_markup = $this->render_span( $args );
197
198 return $tooltip_markup;
199 }
200 }
201