PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.9.22
Shortcodes and extra features for Phlox theme v2.9.22
2.17.21 2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / includes / elements / dropcap.php
auxin-elements / includes / elements Last commit date
about-widget.php 4 years ago accordion-widget.php 4 years ago accordion.php 4 years ago attachment-url.php 4 years ago audio.php 4 years ago before-after.php 4 years ago button.php 4 years ago code.php 4 years ago contact-box.php 4 years ago contact-form.php 4 years ago custom-list.php 4 years ago divider.php 4 years ago dropcap.php 4 years ago facebook.php 4 years ago flickr.php 4 years ago gallery.php 4 years ago general-element-fields.php 4 years ago gmap.php 4 years ago highlight.php 4 years ago image.php 4 years ago instagram-feed.php 4 years ago latest-items.php 4 years ago latest-posts-slider.php 4 years ago popular-posts-widget.php 4 years ago products-grid.php 4 years ago quote.php 4 years ago recent-posts-grid-carousel.php 3 years ago recent-posts-land-style.php 4 years ago recent-posts-masonry.php 4 years ago recent-posts-tiles-carousel.php 3 years ago recent-posts-tiles.php 4 years ago recent-posts-timeline.php 4 years ago recent-posts-widget.php 4 years ago recent-products.php 3 years ago related-posts.php 8 years ago sample-element.php 4 years ago search.php 4 years ago socials-list.php 4 years ago staff.php 4 years ago tab-widget.php 4 years ago tabs.php 4 years ago testimonial.php 4 years ago text.php 3 years ago touch-slider.php 4 years ago video.php 4 years ago
dropcap.php
208 lines
1 <?php
2 /**
3 * Dropcap element
4 *
5 *
6 * @package Auxin
7 * @license LICENSE.txt
8 * @author averta
9 * @link http://phlox.pro/
10 * @copyright (c) 2010-2022 averta
11 */
12 function auxin_get_dropcap_master_array( $master_array ) {
13
14 $master_array['aux_dropcap'] = array(
15 'name' => __("Dropcap", 'auxin-elements' ),
16 'auxin_output_callback' => 'auxin_widget_dropcap_callback',
17 'base' => 'aux_dropcap',
18 'description' => __('Big styled character at the beginning of paragraph', 'auxin-elements' ),
19 'class' => 'aux-widget-dropcap',
20 'show_settings_on_create' => true,
21 'weight' => 1,
22 'is_widget' => false,
23 'is_shortcode' => true,
24 'is_vc' => true,
25 'category' => THEME_NAME,
26 'group' => '',
27 'admin_enqueue_js' => '',
28 'admin_enqueue_css' => '',
29 'front_enqueue_js' => '',
30 'front_enqueue_css' => '',
31 'icon' => 'aux-element aux-pb-icons-dropcap',
32 'custom_markup' => '',
33 'js_view' => '',
34 'html_template' => '',
35 'deprecated' => '',
36 'content_element' => '',
37 'as_parent' => '',
38 'as_child' => '',
39 'params' => array(
40 array(
41 'heading' => __('Dropcap style','auxin-elements' ),
42 'description' => '',
43 'param_name' => 'style',
44 'type' => 'aux_visual_select',
45 'def_value' => 'classic',
46 'holder' => '',
47 'class' => 'style',
48 'admin_label' => true,
49 'dependency' => '',
50 'weight' => '',
51 'group' => '' ,
52 'edit_field_class' => '',
53 'choices' => array(
54 'classic' => array(
55 'label' => __('Classic', 'auxin-elements' ),
56 'image' => AUXIN_URL . 'images/visual-select/dropcap-classic.svg'
57 ),
58 'square' => array(
59 'label' => __('Square', 'auxin-elements' ),
60 'image' => AUXIN_URL . 'images/visual-select/dropcap-square.svg'
61 ),
62 'square-outline' => array(
63 'label' => __('Outline Square', 'auxin-elements' ),
64 'image' => AUXIN_URL . 'images/visual-select/dropcap-square-outline.svg'
65 ),
66 'square-round' => array(
67 'label' => __('Round Square', 'auxin-elements' ),
68 'image' => AUXIN_URL . 'images/visual-select/dropcap-square-round.svg'
69 ),
70 'circle' => array(
71 'label' => __('Circle', 'auxin-elements' ),
72 'image' => AUXIN_URL . 'images/visual-select/dropcap-circle.svg'
73 ),
74 'circle-outline' => array(
75 'label' => __('Outline Circle', 'auxin-elements' ),
76 'image' => AUXIN_URL . 'images/visual-select/dropcap-circle-outline.svg'
77 )
78 )
79 ),
80 array(
81 'heading' => __('Content','auxin-elements' ),
82 'description' => __('Enter a text to show as dropcap text.', 'auxin-elements' ),
83 'param_name' => 'content',
84 'type' => 'textarea_html',
85 'value' => '',
86 'holder' => '',
87 'class' => 'content',
88 'admin_label' => false,
89 'dependency' => '',
90 'weight' => '',
91 'group' => '' ,
92 'edit_field_class' => ''
93 ),
94 array(
95 'heading' => __('Extra class name','auxin-elements' ),
96 'description' => __('If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.', 'auxin-elements' ),
97 'param_name' => 'extra_classes',
98 'type' => 'textfield',
99 'value' => '',
100 'holder' => '',
101 'class' => 'extra_classes',
102 'admin_label' => false,
103 'dependency' => '',
104 'weight' => '',
105 'group' => '' ,
106 'edit_field_class' => ''
107 )
108 )
109 );
110
111 return $master_array;
112 }
113
114 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_dropcap_master_array', 10, 1 );
115
116 /**
117 * The front-end output of this element is returned by the following function
118 *
119 * @param array $atts The array containing the parsed values from shortcode, it should be same as defined params above.
120 * @param string $shortcode_content The shorcode content
121 * @return string The output of element markup
122 */
123 function auxin_widget_dropcap_callback( $atts, $shortcode_content = null ) {
124
125 // Defining default attributes
126 $default_atts = array(
127 'title' => '', // header title
128 'style' => 'classic',
129 'content' => '', // custom css class names for this element
130
131 'extra_classes' => '',
132 'custom_el_id' => '',
133 'base_class' => 'aux-widget-dropcap'
134 );
135
136 $result = auxin_get_widget_scafold( $atts, $default_atts, $shortcode_content );
137 extract( $result['parsed_atts'] );
138
139 ob_start();
140
141 // widget header ------------------------------
142 echo wp_kses_post( $result['widget_header'] );
143 echo wp_kses_post( $result['widget_title'] );
144
145 // The output for element here
146 $class_names = "";
147
148 switch ($style) {
149 case 'classic':
150 $class_names = "dropcap";
151 break;
152 case 'square':
153 $class_names = "dropcap square";
154
155 break;
156 case 'square-outline':
157 $class_names = "dropcap square outline";
158
159 break;
160 case 'square-round':
161 $class_names = "dropcap square round";
162
163 break;
164 case 'square-round-outline':
165 $class_names = "dropcap square round outline";
166
167 break;
168 case 'circle':
169 $class_names = "dropcap circle";
170
171 break;
172 case 'circle-outline':
173 $class_names = "dropcap circle outline";
174
175 break;
176 }
177
178 $first_letter = substr( $content, 0, 1); // get the first letter
179
180 if ( $first_letter === "<") {
181 $tag = auxin_get_string_between($content, '<', '>');
182 $content = auxin_str_replace_first( "<" .$tag. ">" ,"" , $content );
183 $content = auxin_str_replace_first( "</".$tag. ">" ,"" , $content );
184 }
185
186 $first_letter = mb_substr( $content, 0, 1,'utf-8' ); // get the first letter
187 $rest_of_text = mb_substr( $content, 1, null, 'utf-8' ); // get the rest of text
188
189 echo '<p class="'. esc_attr( $extra_classes ) .'">' .
190 '<span class="'. esc_attr( $class_names ) .'">'. esc_html( $first_letter ) .'</span>'. wp_kses_post( $rest_of_text ) .
191 '</p>';
192
193 // widget footer ------------------------------
194 echo wp_kses_post( $result['widget_footer'] );
195
196 return ob_get_clean();
197 }
198
199
200 if( ! function_exists( 'auxin_str_replace_first' ) ) {
201
202 function auxin_str_replace_first($from, $to, $subject) {
203 $from = '/'.preg_quote($from, '/').'/';
204 return preg_replace($from, $to, $subject, 1);
205 }
206 }
207
208