__( 'You must specify at least one media source', 'ableplayer' ), 'type' => 'error', ); } foreach ( $post as $key => $v ) { if ( in_array( $key, $keys, true ) ) { if ( 'speed' === $key && ableplayer_get_settings( 'default_speed' ) === $v ) { continue; } if ( 'heading' === $key && ableplayer_get_settings( 'default_heading' ) === $v ) { continue; } if ( '' !== $v ) { if ( in_array( $key, array( 'captions', 'subtitles', 'descriptions', 'chapters' ), true ) ) { $v .= ableplayer_shortcode_track( $key, $post ); } $array[ $key ] = $v; $string .= " $key="$v""; } } } $output = esc_html( $shortcode . $string ); ableplayer_update_setting( 'last_shortcode', $output ); if ( 'shortcode' === $format && ! is_array( $output ) ) { $return = "

"; echo wp_kses( $return, ableplayer_kses_elements() ); } else { if ( is_array( $output ) ) { return $output; } $array['shortcode'] = "[$output]"; $array['message'] = __( 'New shortcode created.', 'ableplayer' ); $array['type'] = 'success'; return $array; } } } /** * Get the srclang and label for a shortcode track. * * @param string $kind Type of track. * @param array $post Array of data to test. * * @return string */ function ableplayer_shortcode_track( $kind, $post ) { // Handle track srclang and label. $default_lang = str_replace( '_', '-', get_locale() ); $kinds = array( 'captions' => __( 'Captions', 'ableplayer' ), 'subtitles' => __( 'Subtitles', 'ableplayer' ), 'descriptions' => __( 'Audio Description', 'ableplayer' ), 'chapters' => __( 'Chapters', 'ableplayer' ), ); $v = ''; $srclang = isset( $post[ $kind . '-srclang' ] ) ? $post[ $kind . '-srclang' ] : ''; $label = isset( $post[ $kind . '-label' ] ) ? $post[ $kind . '-label' ] : ''; if ( $srclang && $srclang !== $default_lang ) { $v .= '|' . $srclang; } if ( $label && $label !== $kinds['captions'] ) { $v .= '|' . $label; } return $v; } /** * Form to create a shortcode * * @param array $data Data submitted from shortcode generator. */ function ableplayer_generator( $data = array() ) { ?>

[ableplayer] shortcode.', 'ableplayer' ); $message_type = isset( $params['type'] ) ? $params['type'] : 'info'; $shortcode = isset( $params['shortcode'] ) ? $params['shortcode'] : '[ableplayer]'; $last_shortcode = ableplayer_get_settings( 'last_shortcode' ); $shortcode = ( ! isset( $params['shortcode'] ) && $last_shortcode ) ? "[$last_shortcode]" : $shortcode; $default_lang = str_replace( '_', '-', get_locale() ); $kinds = array( 'captions' => __( 'Captions', 'ableplayer' ), 'subtitles' => __( 'Subtitles', 'ableplayer' ), 'descriptions' => __( 'Audio Description', 'ableplayer' ), 'chapters' => __( 'Chapters', 'ableplayer' ), ); ?>
$message_type, 'additional_classes' => array( 'inline' ), ) ); ?>

' . __( 'Shortcode Copied', 'ableplayer' ) . '

' ); } ?>

'source_type', 'label' => __( 'Video Source Type', 'ableplayer' ), 'type' => 'select', 'default' => array( 'youtube' => 'YouTube', 'vimeo' => 'Vimeo', 'local' => 'Local', ), ), 'generator' ); ?>

'youtube-id', 'label' => __( 'YouTube Source', 'ableplayer' ), 'type' => 'url', 'atts' => array( 'placeholder' => 'https://youtube.com', ), ), 'generator' ); ableplayer_settings_field( array( 'name' => 'youtube-desc-id', 'label' => __( 'YouTube Audio Described Source', 'ableplayer' ), 'type' => 'url', 'atts' => array( 'placeholder' => 'https://youtube.com', ), ), 'generator' ); ableplayer_settings_field( array( 'name' => 'youtube-sign-src', 'label' => __( 'YouTube Sign Language Source', 'ableplayer' ), 'type' => 'url', 'atts' => array( 'placeholder' => 'https://youtube.com', ), ), 'generator' ); ?>

'vimeo-id', 'label' => __( 'Vimeo Source', 'ableplayer' ), 'type' => 'url', 'atts' => array( 'placeholder' => 'https://vimeo.com', ), ), 'generator' ); ableplayer_settings_field( array( 'name' => 'vimeo-desc-id', 'label' => __( 'Vimeo Audio Described Source', 'ableplayer' ), 'type' => 'url', 'atts' => array( 'placeholder' => 'https://vimeo.com', ), ), 'generator' ); ?>

'captions-srclang', 'label' => __( 'Language Code', 'ableplayer' ), 'type' => 'text', 'default' => $default_lang, ), 'generator' ); ableplayer_settings_field( array( 'name' => 'captions-label', 'label' => __( 'Captions Label', 'ableplayer' ), 'type' => 'text', 'default' => $kinds['captions'], ), 'generator' ); ?>
'subtitles-srclang', 'label' => __( 'Language Code', 'ableplayer' ), 'type' => 'text', 'default' => $default_lang, ), 'generator' ); ableplayer_settings_field( array( 'name' => 'subtitles-label', 'label' => __( 'Subtitles Label', 'ableplayer' ), 'type' => 'text', 'default' => $kinds['subtitles'], ), 'generator' ); ?>
'descriptions-srclang', 'label' => __( 'Language Code', 'ableplayer' ), 'type' => 'text', 'default' => $default_lang, ), 'generator' ); ableplayer_settings_field( array( 'name' => 'descriptions-label', 'label' => __( 'Descriptions Label', 'ableplayer' ), 'type' => 'text', 'default' => $kinds['descriptions'], ), 'generator' ); ?>
'chapter-srclang', 'label' => __( 'Language Code', 'ableplayer' ), 'type' => 'text', 'default' => $default_lang, ), 'generator' ); ableplayer_settings_field( array( 'name' => 'chapter-label', 'label' => __( 'Chapters Label', 'ableplayer' ), 'type' => 'text', 'default' => $kinds['chapters'], ), 'generator' ); ?>

'autoplay', 'label' => __( 'Enable Autoplay', 'ableplayer' ), 'type' => 'checkbox-single', ), 'generator' ); ?>

'loop', 'label' => __( 'Enable Looping', 'ableplayer' ), 'type' => 'checkbox-single', ), 'generator' ); ?>

'playsinline', 'label' => __( 'Play inline on mobile devices', 'ableplayer' ), 'type' => 'checkbox-single', ), 'generator' ); ?>

'hidecontrols', 'label' => __( 'Hide controls while playing', 'ableplayer' ), 'type' => 'checkbox-single', ), 'generator' ); ?>

'heading', 'label' => __( 'Hidden heading level', 'ableplayer' ), 'type' => 'select', 'default' => array( 'auto' => __( 'Automatically assigned', 'ableplayer' ), '0' => __( 'No heading', 'ableplayer' ), '2' => 'h2', '3' => 'h3', '4' => 'h4', ), ), 'generator' ); ?>

'speed', 'label' => __( 'Speed selection control', 'ableplayer' ), 'type' => 'select', 'default' => array( 'animals' => __( 'Animals: Tortoise and Hare', 'ableplayer' ), 'arrows' => __( 'Arrows', 'ableplayer' ), ), ), 'generator' ); ?>

'start', 'label' => __( 'Start time in seconds', 'ableplayer' ), 'type' => 'number', 'atts' => array( 'min' => '0', 'step' => '1', ), ), 'generator' ); ?>

'volume', 'label' => __( 'Initial volume', 'ableplayer' ), 'type' => 'number', 'atts' => array( 'min' => '0', 'max' => '10', 'step' => '1', ), ), 'generator' ); ?>

'seekinterval', 'label' => __( 'Seek interval', 'ableplayer' ), 'type' => 'number', 'note' => __( 'A value of 0 lets Able Player calculate the seek interval based on video length.', 'ableplayer' ), 'atts' => array( 'min' => '0', 'step' => '5', ), ), 'generator' ); ?>