mirror of
https://github.com/janunger/rheinwerk-video-training.git
synced 2024-12-23 05:03:42 +01:00
92 lines
2.6 KiB
PHP
92 lines
2.6 KiB
PHP
|
<?php
|
||
|
/*
|
||
|
Plugin Name: VT YouTube Widget
|
||
|
Description: Sidebar Widget zum Anteasern von YouTube-Videos
|
||
|
*/
|
||
|
|
||
|
defined( 'ABSPATH' ) || exit;
|
||
|
|
||
|
|
||
|
function vt_register_youtube_widget() {
|
||
|
register_widget( 'VT_YouTube_Widget' );
|
||
|
}
|
||
|
|
||
|
add_action( 'widgets_init', 'vt_register_youtube_widget' );
|
||
|
|
||
|
|
||
|
class VT_YouTube_Widget extends WP_Widget {
|
||
|
protected $defaults;
|
||
|
|
||
|
public function __construct() {
|
||
|
$this->defaults = [
|
||
|
'title' => '',
|
||
|
'video_id' => '',
|
||
|
'width' => 278,
|
||
|
'height' => 156
|
||
|
];
|
||
|
|
||
|
$widget_options = [
|
||
|
'classname' => 'vt-youtube-widget',
|
||
|
'description' => 'Bettet ein YouTube-Video in die Sidebar ein.'
|
||
|
];
|
||
|
|
||
|
$control_options = [ ];
|
||
|
|
||
|
parent::__construct( 'vt-youtube-widget', 'VT YouTube Widget', $widget_options, $control_options );
|
||
|
}
|
||
|
|
||
|
public function widget( $args, $instance ) {
|
||
|
/** Merge with defaults */
|
||
|
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
||
|
|
||
|
echo $args['before_widget'];
|
||
|
|
||
|
?>
|
||
|
<h2 class="widget-title"><?= apply_filters( 'widget_title', $instance['title'], $instance,
|
||
|
$this->id_base ) ?></h2>
|
||
|
<iframe width="<?= esc_attr( $instance['width'] ); ?>"
|
||
|
height="<?= esc_attr( $instance['height'] ); ?>"
|
||
|
src="https://www.youtube.com/embed/<?= esc_attr($instance['video_id']); ?>"
|
||
|
frameborder="0"
|
||
|
allowfullscreen></iframe>
|
||
|
<?php
|
||
|
|
||
|
echo $args['after_widget'];
|
||
|
}
|
||
|
|
||
|
public function form( $instance ) {
|
||
|
$instance = wp_parse_args( (array) $instance, $this->defaults );
|
||
|
|
||
|
?>
|
||
|
<p>
|
||
|
<label for="<?= $this->get_field_id( 'title' ); ?>">Titel</label><br>
|
||
|
<input type="text"
|
||
|
id="<?= $this->get_field_id( 'title' ); ?>"
|
||
|
name="<?= $this->get_field_name( 'title' ); ?>"
|
||
|
value="<?= esc_attr( $instance['title'] ); ?>"/>
|
||
|
</p>
|
||
|
<p>
|
||
|
<label for="<?= $this->get_field_id( 'video_id' ); ?>">YouTube Video-ID</label><br>
|
||
|
<input type="text"
|
||
|
id="<?= $this->get_field_id( 'video_id' ); ?>"
|
||
|
name="<?= $this->get_field_name( 'video_id' ); ?>"
|
||
|
value="<?= esc_attr( $instance['video_id'] ); ?>"/>
|
||
|
</p>
|
||
|
<p>
|
||
|
<label for="<?= $this->get_field_id( 'width' ); ?>">Breite</label><br>
|
||
|
<input type="text"
|
||
|
id="<?= $this->get_field_id( 'width' ); ?>"
|
||
|
name="<?= $this->get_field_name( 'width' ); ?>"
|
||
|
value="<?= esc_attr( $instance['width'] ); ?>"/>
|
||
|
</p>
|
||
|
<p>
|
||
|
<label for="<?= $this->get_field_id( 'height' ); ?>">Höhe</label><br>
|
||
|
<input type="text"
|
||
|
id="<?= $this->get_field_id( 'height' ); ?>"
|
||
|
name="<?= $this->get_field_name( 'height' ); ?>"
|
||
|
value="<?= esc_attr( $instance['height'] ); ?>"/>
|
||
|
</p>
|
||
|
<?php
|
||
|
}
|
||
|
}
|