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 / audio.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 4 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 4 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 4 years ago touch-slider.php 4 years ago video.php 4 years ago
audio.php
206 lines
1 <?php
2 /**
3 * Audio player 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_audio_master_array( $master_array ) {
13
14 $master_array['aux_audio'] = array(
15 'name' => __("Audio", 'auxin-elements' ),
16 'auxin_output_callback' => 'auxin_widget_audio_callback',
17 'base' => 'aux_audio',
18 'description' => __('Audio player', 'auxin-elements' ),
19 'description' => __('It adds an audio player element.', 'auxin-elements'),
20 'class' => 'aux-widget-audio',
21 'show_settings_on_create' => true,
22 'weight' => 1,
23 'is_widget' => true,
24 'is_shortcode' => 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-sound-cloud',
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' => __('Title','auxin-elements' ),
43 'description' => __('Audio title, leave it empty if you don`t need title.', 'auxin-elements'),
44 'param_name' => 'title',
45 'type' => 'textfield',
46 'value' => '',
47 'holder' => 'textfield',
48 'class' => 'title',
49 'admin_label' => false,
50 'dependency' => '',
51 'weight' => '',
52 'group' => '' ,
53 'edit_field_class' => ''
54 ),
55 array(
56 'heading' => __('Audio file(MP3 or ogg)','auxin-elements' ),
57 'description' => '',
58 'param_name' => 'src',
59 'type' => 'aux_select_audio',
60 'value' => '',
61 'holder' => '',
62 'class' => 'audio_src',
63 'admin_label' => false,
64 'dependency' => '',
65 'weight' => '',
66 'group' => '' ,
67 'edit_field_class' => ''
68 ),
69 array(
70 'heading' => __('Repeat the audio','auxin-elements' ),
71 'description' => '',
72 'param_name' => 'loop',
73 'type' => 'aux_switch',
74 'value' => '1',
75 'class' => '',
76 'admin_label' => false,
77 'dependency' => '',
78 'weight' => '',
79 'group' => '',
80 'edit_field_class' => ''
81 ),
82 array(
83 'heading' => __('AutoPlay','auxin-elements' ),
84 'description' => __('Play the audio file automatically.','auxin-elements' ),
85 'param_name' => 'autoplay',
86 'type' => 'aux_switch',
87 'value' => '0',
88 'class' => '',
89 'admin_label' => false,
90 'dependency' => '',
91 'weight' => '',
92 'group' => '',
93 'edit_field_class' => ''
94 ),
95 array(
96 'heading' => __('Skin','auxin-elements' ),
97 'description' => __('The skin of audio element.','auxin-elements' ),
98 'param_name' => 'skin',
99 'type' => 'aux_visual_select',
100 'def_value' => 'dark',
101 'choices' => array(
102 'default' => array(
103 'label' => __('Theme Default', 'auxin-elements'),
104 'image' => AUXIN_URL . 'images/visual-select/default2.svg'
105 ),
106 'dark' => array(
107 'label' => __('Dark', 'auxin-elements'),
108 'image' => AUXIN_URL . 'images/visual-select/audio-player-dark.svg'
109 ),
110 'light' => array(
111 'label' => __('Light', 'auxin-elements'),
112 'image' => AUXIN_URL . 'images/visual-select/audio-player-light.svg'
113 )
114 ),
115 'holder' => '',
116 'class' => 'skin',
117 'admin_label' => true,
118 'dependency' => '',
119 'weight' => '',
120 'group' => __('Appearance', 'auxin-elements'),
121 'edit_field_class' => ''
122 ),
123 array(
124 'heading' => __('Extra class name','auxin-elements' ),
125 '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' ),
126 'param_name' => 'extra_classes',
127 'type' => 'textfield',
128 'value' => '',
129 'def_value' => '',
130 'holder' => '',
131 'class' => 'extra_classes',
132 'admin_label' => false,
133 'dependency' => '',
134 'weight' => '',
135 'group' => __('Appearance', 'auxin-elements'),
136 'edit_field_class' => ''
137 )
138 )
139 );
140
141 return $master_array;
142 }
143
144 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_audio_master_array', 10, 1 );
145
146
147 /**
148 * This is the widget callback in fact the front end out put of this widget comes from this function
149 */
150 function auxin_widget_audio_callback( $atts, $shortcode_content = null ){
151
152 // Defining default attributes
153 $default_atts = array(
154 'title' => '', // section title
155 'src' => '',
156 'loop' => '1',
157 'autoplay' => '0',
158 'preload' => '',
159 'skin' => '', // dark or light
160
161 'extra_classes' => '', // custom css class names for this element
162 'custom_el_id' => '', // custom id attribute for this element
163 'base_class' => 'aux-widget-audio' // base class name for container
164 );
165
166 $result = auxin_get_widget_scafold( $atts, $default_atts, $shortcode_content );
167 extract( $result['parsed_atts'] );
168
169 ob_start();
170
171 // widget header ------------------------------
172 echo wp_kses_post( $result['widget_header'] );
173 echo wp_kses_post( $result['widget_title'] );
174
175 $skin = 'default' === $skin ? auxin_get_option( 'global_audio_player_skin', 'dark' ) : $skin;
176
177 $class = 'wp-audio-shortcode aux-player-' . esc_attr( $skin );
178
179 // convert attachment id to url
180 if( is_numeric( $src ) ){
181 $src = wp_get_attachment_url( $src );
182 }
183
184 if( $provider = auxin_extract_embed_provider_name( $src ) ){
185 $class .= ' aux-provider-'. $provider;
186 }
187
188 $autoplay = auxin_is_true( $autoplay ) ? "1": "0";
189 $loop = auxin_is_true( $loop ) ? "1": "0";
190
191 echo wp_audio_shortcode(
192 array(
193 'src' => $src,
194 'loop' => $loop,
195 'autoplay' => $autoplay,
196 'preload' => $preload,
197 'class' => $class
198 )
199 );
200
201 // widget footer ------------------------------
202 echo wp_kses_post( $result['widget_footer'] );
203
204 return ob_get_clean();
205 }
206