PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.17.14
Shortcodes and extra features for Phlox theme v2.17.14
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 1 year ago accordion-widget.php 1 year ago accordion.php 1 year ago attachment-url.php 1 year ago audio.php 1 year ago before-after.php 1 year ago button.php 1 year ago code.php 1 year ago contact-box.php 1 year ago contact-form.php 1 year ago custom-list.php 6 months ago divider.php 1 year ago dropcap.php 1 year ago facebook.php 1 year ago flickr.php 1 year ago gallery.php 1 year ago gmap.php 1 year ago highlight.php 1 year ago image.php 1 year ago instagram-feed.php 1 year ago latest-posts-slider.php 1 year ago popular-posts-widget.php 1 year ago products-grid.php 1 year ago quote.php 1 year ago recent-posts-grid-carousel.php 1 year ago recent-posts-land-style.php 1 year ago recent-posts-masonry.php 1 year ago recent-posts-tiles-carousel.php 1 year ago recent-posts-tiles.php 1 year ago recent-posts-timeline.php 1 year ago recent-posts-widget.php 1 year ago recent-products.php 1 year ago related-posts.php 8 years ago sample-element.php 1 year ago search.php 1 year ago socials-list.php 1 year ago staff.php 1 year ago tab-widget.php 1 year ago tabs.php 1 year ago testimonial.php 1 year ago text.php 1 year ago touch-slider.php 1 year ago video.php 1 year ago
audio.php
205 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-2025 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 '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-sound-cloud',
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' => __('Title','auxin-elements' ),
42 'description' => __('Audio title, leave it empty if you don`t need title.', 'auxin-elements'),
43 'param_name' => 'title',
44 'type' => 'textfield',
45 'value' => '',
46 'holder' => 'textfield',
47 'class' => 'title',
48 'admin_label' => false,
49 'dependency' => '',
50 'weight' => '',
51 'group' => '' ,
52 'edit_field_class' => ''
53 ),
54 array(
55 'heading' => __('Audio file(MP3 or ogg)','auxin-elements' ),
56 'description' => '',
57 'param_name' => 'src',
58 'type' => 'aux_select_audio',
59 'value' => '',
60 'holder' => '',
61 'class' => 'audio_src',
62 'admin_label' => false,
63 'dependency' => '',
64 'weight' => '',
65 'group' => '' ,
66 'edit_field_class' => ''
67 ),
68 array(
69 'heading' => __('Repeat the audio','auxin-elements' ),
70 'description' => '',
71 'param_name' => 'loop',
72 'type' => 'aux_switch',
73 'value' => '1',
74 'class' => '',
75 'admin_label' => false,
76 'dependency' => '',
77 'weight' => '',
78 'group' => '',
79 'edit_field_class' => ''
80 ),
81 array(
82 'heading' => __('AutoPlay','auxin-elements' ),
83 'description' => __('Play the audio file automatically.','auxin-elements' ),
84 'param_name' => 'autoplay',
85 'type' => 'aux_switch',
86 'value' => '0',
87 'class' => '',
88 'admin_label' => false,
89 'dependency' => '',
90 'weight' => '',
91 'group' => '',
92 'edit_field_class' => ''
93 ),
94 array(
95 'heading' => __('Skin','auxin-elements' ),
96 'description' => __('The skin of audio element.','auxin-elements' ),
97 'param_name' => 'skin',
98 'type' => 'aux_visual_select',
99 'def_value' => 'dark',
100 'choices' => array(
101 'default' => array(
102 'label' => __('Theme Default', 'auxin-elements'),
103 'image' => AUXIN_URL . 'images/visual-select/default2.svg'
104 ),
105 'dark' => array(
106 'label' => __('Dark', 'auxin-elements'),
107 'image' => AUXIN_URL . 'images/visual-select/audio-player-dark.svg'
108 ),
109 'light' => array(
110 'label' => __('Light', 'auxin-elements'),
111 'image' => AUXIN_URL . 'images/visual-select/audio-player-light.svg'
112 )
113 ),
114 'holder' => '',
115 'class' => 'skin',
116 'admin_label' => true,
117 'dependency' => '',
118 'weight' => '',
119 'group' => __('Appearance', 'auxin-elements'),
120 'edit_field_class' => ''
121 ),
122 array(
123 'heading' => __('Extra class name','auxin-elements' ),
124 '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' ),
125 'param_name' => 'extra_classes',
126 'type' => 'textfield',
127 'value' => '',
128 'def_value' => '',
129 'holder' => '',
130 'class' => 'extra_classes',
131 'admin_label' => false,
132 'dependency' => '',
133 'weight' => '',
134 'group' => __('Appearance', 'auxin-elements'),
135 'edit_field_class' => ''
136 )
137 )
138 );
139
140 return $master_array;
141 }
142
143 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_audio_master_array', 10, 1 );
144
145
146 /**
147 * This is the widget callback in fact the front end out put of this widget comes from this function
148 */
149 function auxin_widget_audio_callback( $atts, $shortcode_content = null ){
150
151 // Defining default attributes
152 $default_atts = array(
153 'title' => '', // section title
154 'src' => '',
155 'loop' => '1',
156 'autoplay' => '0',
157 'preload' => '',
158 'skin' => '', // dark or light
159
160 'extra_classes' => '', // custom css class names for this element
161 'custom_el_id' => '', // custom id attribute for this element
162 'base_class' => 'aux-widget-audio' // base class name for container
163 );
164
165 $result = auxin_get_widget_scafold( $atts, $default_atts, $shortcode_content );
166 extract( $result['parsed_atts'] );
167
168 ob_start();
169
170 // widget header ------------------------------
171 echo wp_kses_post( $result['widget_header'] );
172 echo wp_kses_post( $result['widget_title'] );
173
174 $skin = 'default' === $skin ? auxin_get_option( 'global_audio_player_skin', 'dark' ) : $skin;
175
176 $class = 'wp-audio-shortcode aux-player-' . esc_attr( $skin );
177
178 // convert attachment id to url
179 if( is_numeric( $src ) ){
180 $src = wp_get_attachment_url( $src );
181 }
182
183 if( $provider = auxin_extract_embed_provider_name( $src ) ){
184 $class .= ' aux-provider-'. $provider;
185 }
186
187 $autoplay = auxin_is_true( $autoplay ) ? "1": "0";
188 $loop = auxin_is_true( $loop ) ? "1": "0";
189
190 echo wp_audio_shortcode(
191 array(
192 'src' => $src,
193 'loop' => $loop,
194 'autoplay' => $autoplay,
195 'preload' => $preload,
196 'class' => $class
197 )
198 );
199
200 // widget footer ------------------------------
201 echo wp_kses_post( $result['widget_footer'] );
202
203 return ob_get_clean();
204 }
205