PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.5.13
Shortcodes and extra features for Phlox theme v2.5.13
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 6 years ago accordion-widget.php 6 years ago accordion.php 6 years ago attachment-url.php 6 years ago audio.php 6 years ago before-after.php 6 years ago button.php 6 years ago code.php 6 years ago contact-box.php 6 years ago contact-form.php 6 years ago custom-list.php 6 years ago divider.php 6 years ago dropcap.php 6 years ago facebook.php 6 years ago flickr.php 6 years ago gallery.php 6 years ago general-element-fields.php 6 years ago gmap.php 6 years ago highlight.php 6 years ago image.php 6 years ago instagram-feed.php 6 years ago latest-items.php 8 years ago latest-posts-slider.php 6 years ago popular-posts-widget.php 6 years ago quote.php 6 years ago recent-posts-grid-carousel.php 6 years ago recent-posts-land-style.php 6 years ago recent-posts-masonry.php 6 years ago recent-posts-tiles-carousel.php 6 years ago recent-posts-tiles.php 6 years ago recent-posts-timeline.php 6 years ago recent-posts-widget.php 6 years ago recent-products.php 6 years ago related-posts.php 8 years ago sample-element.php 6 years ago search.php 6 years ago socials-list.php 6 years ago staff.php 6 years ago tab-widget.php 6 years ago tabs.php 6 years ago testimonial.php 6 years ago text.php 6 years ago touch-slider.php 6 years ago video.php 6 years ago
dropcap.php
209 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-2020 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_so' => true,
25 'is_vc' => true,
26 'category' => THEME_NAME,
27 'group' => '',
28 'admin_enqueue_js' => '',
29 'admin_enqueue_css' => '',
30 'front_enqueue_js' => '',
31 'front_enqueue_css' => '',
32 'icon' => 'aux-element aux-pb-icons-dropcap',
33 'custom_markup' => '',
34 'js_view' => '',
35 'html_template' => '',
36 'deprecated' => '',
37 'content_element' => '',
38 'as_parent' => '',
39 'as_child' => '',
40 'params' => array(
41 array(
42 'heading' => __('Dropcap style','auxin-elements' ),
43 'description' => '',
44 'param_name' => 'style',
45 'type' => 'aux_visual_select',
46 'def_value' => 'classic',
47 'holder' => '',
48 'class' => 'style',
49 'admin_label' => true,
50 'dependency' => '',
51 'weight' => '',
52 'group' => '' ,
53 'edit_field_class' => '',
54 'choices' => array(
55 'classic' => array(
56 'label' => __('Classic', 'auxin-elements' ),
57 'image' => AUXIN_URL . 'images/visual-select/dropcap-classic.svg'
58 ),
59 'square' => array(
60 'label' => __('Square', 'auxin-elements' ),
61 'image' => AUXIN_URL . 'images/visual-select/dropcap-square.svg'
62 ),
63 'square-outline' => array(
64 'label' => __('Outline Square', 'auxin-elements' ),
65 'image' => AUXIN_URL . 'images/visual-select/dropcap-square-outline.svg'
66 ),
67 'square-round' => array(
68 'label' => __('Round Square', 'auxin-elements' ),
69 'image' => AUXIN_URL . 'images/visual-select/dropcap-square-round.svg'
70 ),
71 'circle' => array(
72 'label' => __('Circle', 'auxin-elements' ),
73 'image' => AUXIN_URL . 'images/visual-select/dropcap-circle.svg'
74 ),
75 'circle-outline' => array(
76 'label' => __('Outline Circle', 'auxin-elements' ),
77 'image' => AUXIN_URL . 'images/visual-select/dropcap-circle-outline.svg'
78 )
79 )
80 ),
81 array(
82 'heading' => __('Content','auxin-elements' ),
83 'description' => __('Enter a text to show as dropcap text.', 'auxin-elements' ),
84 'param_name' => 'content',
85 'type' => 'textarea_html',
86 'value' => '',
87 'holder' => '',
88 'class' => 'content',
89 'admin_label' => false,
90 'dependency' => '',
91 'weight' => '',
92 'group' => '' ,
93 'edit_field_class' => ''
94 ),
95 array(
96 'heading' => __('Extra class name','auxin-elements' ),
97 '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' ),
98 'param_name' => 'extra_classes',
99 'type' => 'textfield',
100 'value' => '',
101 'holder' => '',
102 'class' => 'extra_classes',
103 'admin_label' => false,
104 'dependency' => '',
105 'weight' => '',
106 'group' => '' ,
107 'edit_field_class' => ''
108 )
109 )
110 );
111
112 return $master_array;
113 }
114
115 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_dropcap_master_array', 10, 1 );
116
117 /**
118 * The front-end output of this element is returned by the following function
119 *
120 * @param array $atts The array containing the parsed values from shortcode, it should be same as defined params above.
121 * @param string $shortcode_content The shorcode content
122 * @return string The output of element markup
123 */
124 function auxin_widget_dropcap_callback( $atts, $shortcode_content = null ) {
125
126 // Defining default attributes
127 $default_atts = array(
128 'title' => '', // header title
129 'style' => 'classic',
130 'content' => '', // custom css class names for this element
131
132 'extra_classes' => '',
133 'custom_el_id' => '',
134 'base_class' => 'aux-widget-dropcap'
135 );
136
137 $result = auxin_get_widget_scafold( $atts, $default_atts, $shortcode_content );
138 extract( $result['parsed_atts'] );
139
140 ob_start();
141
142 // widget header ------------------------------
143 echo $result['widget_header'];
144 echo $result['widget_title'];
145
146 // The output for element here
147 $class_names = "";
148
149 switch ($style) {
150 case 'classic':
151 $class_names = "dropcap";
152 break;
153 case 'square':
154 $class_names = "dropcap square";
155
156 break;
157 case 'square-outline':
158 $class_names = "dropcap square outline";
159
160 break;
161 case 'square-round':
162 $class_names = "dropcap square round";
163
164 break;
165 case 'square-round-outline':
166 $class_names = "dropcap square round outline";
167
168 break;
169 case 'circle':
170 $class_names = "dropcap circle";
171
172 break;
173 case 'circle-outline':
174 $class_names = "dropcap circle outline";
175
176 break;
177 }
178
179 $first_letter = substr( $content, 0, 1); // get the first letter
180
181 if ( $first_letter === "<") {
182 $tag = auxin_get_string_between($content, '<', '>');
183 $content = auxin_str_replace_first( "<" .$tag. ">" ,"" , $content );
184 $content = auxin_str_replace_first( "</".$tag. ">" ,"" , $content );
185 }
186
187 $first_letter = mb_substr( $content, 0, 1,'utf-8' ); // get the first letter
188 $rest_of_text = mb_substr( $content, 1, null, 'utf-8' ); // get the rest of text
189
190 echo '<p class="'. $extra_classes .'">' .
191 '<span class="'. $class_names .'">'. $first_letter .'</span>'. $rest_of_text .
192 '</p>';
193
194 // widget footer ------------------------------
195 echo $result['widget_footer'];
196
197 return ob_get_clean();
198 }
199
200
201 if( ! function_exists( 'auxin_str_replace_first' ) ) {
202
203 function auxin_str_replace_first($from, $to, $subject) {
204 $from = '/'.preg_quote($from, '/').'/';
205 return preg_replace($from, $to, $subject, 1);
206 }
207 }
208
209