php7-mysql-data/Kapitel_7/Lektion_6/vt_youtube_sidebar.php

92 lines
2.6 KiB
PHP
Raw Permalink Normal View History

2016-08-16 21:20:53 +02:00
<?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
}
}