mirror of
https://github.com/janunger/rheinwerk-video-training.git
synced 2026-02-06 07:05:14 +01:00
Initiale Version
This commit is contained in:
91
Kapitel_7/Lektion_6/vt_youtube_sidebar.php
Executable file
91
Kapitel_7/Lektion_6/vt_youtube_sidebar.php
Executable file
@@ -0,0 +1,91 @@
|
||||
<?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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user