mirror of
https://github.com/Rushilwiz/dear-anon.git
synced 2025-04-21 20:39:51 -04:00
278 lines
13 KiB
PHP
278 lines
13 KiB
PHP
<?php
|
|
/**
|
|
* @package PowerPressSubscribe_Widget
|
|
*/
|
|
class PowerPressSubscribe_Widget extends WP_Widget {
|
|
|
|
function __construct() {
|
|
load_plugin_textdomain( 'powerpress' );
|
|
|
|
parent::__construct(
|
|
'powerpress_subscribe',
|
|
__( 'Subscribe to Podcast' , 'powerpress'),
|
|
array( 'description' => __( 'Display subscribe to podcast links.' , 'powerpress') )
|
|
);
|
|
if ( is_active_widget( false, false, $this->id_base ) ) {
|
|
add_action( 'wp_head', array( $this, 'css' ) );
|
|
}
|
|
|
|
add_action('admin_enqueue_scripts', array( $this, 'load_scripts' ));
|
|
}
|
|
|
|
function load_scripts($hook) {
|
|
|
|
// taken from: https://pippinsplugins.com/loading-scripts-correctly-in-the-wordpress-admin/
|
|
if( $hook == 'widgets.php' )
|
|
{
|
|
//echo "<!-- $hook -->";
|
|
wp_enqueue_script( 'powerpress-subscribe-widget', plugins_url( 'js/powerpress-subscribe-widget.js' , __FILE__ ) );
|
|
}
|
|
}
|
|
|
|
function css() {
|
|
?>
|
|
|
|
<style type="text/css" xmlns="http://www.w3.org/1999/html">
|
|
|
|
/*
|
|
PowerPress subscribe sidebar widget
|
|
*/
|
|
<?php if( !defined('POWERPRESS_SUBSCRIBE_SIDEBAR_NO_H_STYLING') ) { ?>
|
|
.widget-area .widget_powerpress_subscribe h2,
|
|
.widget-area .widget_powerpress_subscribe h3,
|
|
.widget-area .widget_powerpress_subscribe h4,
|
|
.widget_powerpress_subscribe h2,
|
|
.widget_powerpress_subscribe h3,
|
|
.widget_powerpress_subscribe h4 {
|
|
margin-bottom: 0;
|
|
padding-bottom: 0;
|
|
}
|
|
<?php } ?>
|
|
</style>
|
|
<?php
|
|
}
|
|
|
|
function form( $instance ) {
|
|
$GeneralSettings = get_option('powerpress_general');
|
|
if ( empty($instance['title']) ) {
|
|
$instance['title'] = __( 'Subscribe to Podcast' , 'powerpress');
|
|
}
|
|
if(empty($instance['style'])) {
|
|
if (empty($GeneralSettings['timestamp']) || $GeneralSettings['timestamp'] > 1570366800) {
|
|
$instance['style'] = 'modern';
|
|
} else {
|
|
$instance['style'] = 'classic';
|
|
}
|
|
}
|
|
if(empty($instance['modern_style'])) {
|
|
$instance['modern_style'] = 'squared';
|
|
}
|
|
if(empty($instance['modern_direction'])) {
|
|
$instance['modern_direction'] = 'vertical';
|
|
}
|
|
if ( empty($instance['subscribe_type']) ) {
|
|
$instance['subscribe_type'] = '';
|
|
}
|
|
if ( empty($instance['subscribe_post_type']) ) {
|
|
$instance['subscribe_post_type'] = '';
|
|
}
|
|
if ( empty($instance['subscribe_feed_slug']) ) {
|
|
$instance['subscribe_feed_slug'] = '';
|
|
}
|
|
if ( empty($instance['subscribe_category_id']) ) {
|
|
$instance['subscribe_category_id'] = '';
|
|
}
|
|
|
|
?>
|
|
<p>
|
|
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title:' , 'powerpress'); ?></label>
|
|
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $instance['title'] ); ?>" />
|
|
</p>
|
|
<p>
|
|
<label for="<?php echo $this->get_field_id( 'style' ); ?>"><?php esc_html_e( 'Style:' , 'powerpress'); ?></label>
|
|
<select class="widefat" id="<?php echo $this->get_field_id( 'style' ); ?>" name="<?php echo $this->get_field_name( 'style' ); ?> ">
|
|
<option value="modern" <?php echo selected($instance['style'], 'modern')?> >Modern</option>
|
|
<option value="classic" <?php echo selected($instance['style'], 'classic') ?> >Classic</option>
|
|
</select>
|
|
</p>
|
|
<p class="pp-sub-widget-p-modern-styles">
|
|
<input type="radio" id="<?php echo $this->get_field_id('modern_style_square') ?>"
|
|
name="<?php echo $this->get_field_name('modern_style') ?>" value="squared" <?php echo $instance['modern_style'] === 'squared' ? 'checked' : '' ?> />
|
|
<label for="<?php echo $this->get_field_id('modern_style_square') ?>"> <?php esc_html_e('Squared', 'powerpress'); ?></label>
|
|
<input type="radio" id="<?php echo $this->get_field_id('modern_style_rounded') ?>"
|
|
name="<?php echo $this->get_field_name('modern_style') ?>" value="rounded" <?php echo $instance['modern_style'] === 'rounded' ? 'checked' : '' ?> />
|
|
<label for="<?php echo $this->get_field_id('modern_style_rounded') ?>"> <?php esc_html_e('Rounded', 'powerpress'); ?></label>
|
|
</p>
|
|
<p class="pp-sub-widget-p-modern-styles">
|
|
<input type="radio" id="<?php echo $this->get_field_id('modern_direction_vertical') ?>"
|
|
name="<?php echo $this->get_field_name('modern_direction') ?>" value="vertical" <?php echo $instance['modern_direction'] === 'vertical' ? 'checked' : '' ?> />
|
|
<label for="<?php echo $this->get_field_id('modern_direction_vertical') ?>"> <?php esc_html_e('Vertical', 'powerpress'); ?></label>
|
|
<input type="radio" id="<?php echo $this->get_field_id('modern_direction_horizontal') ?>"
|
|
name="<?php echo $this->get_field_name('modern_direction') ?>" value="horizontal" <?php echo $instance['modern_direction'] === 'horizontal' ? 'checked' : '' ?> />
|
|
<label for="<?php echo $this->get_field_id('modern_direction_horizontal') ?>"> <?php esc_html_e('Horizontal', 'powerpress'); ?></label>
|
|
</p>
|
|
<p class="pp-sub-widget-p-subscribe_type">
|
|
<label for="<?php echo $this->get_field_id('subscribe_type'); ?>"><?php _e( 'Select Podcast Type:', 'powerpress' ); ?></label>
|
|
<select class="widefat powerpress-subscribe-type" onchange="javascript: powerpress_subscribe_widget_change(this)" id="<?php echo $this->get_field_id('subscribe_type'); ?>" name="<?php echo $this->get_field_name('subscribe_type'); ?>">
|
|
<?php
|
|
$types = array(''=>__('Default Podcast','powerpress'), 'channel'=>__('Podcast Channel','powerpress')); //, 'ttid'=>__('Taxonomy Podcasting','powerpress'));
|
|
|
|
if( !empty($GeneralSettings['cat_casting']) || $instance['subscribe_type'] == 'category' ) // If category podcasting enabled
|
|
$types['category'] = __('Category Podcasting','powerpress');
|
|
|
|
if( !empty($GeneralSettings['posttype_podcasting']) || $instance['subscribe_type'] == 'post_type' ) // If post type podcasting enabled
|
|
$types['post_type'] = __('Post Type Podcasting','powerpress');
|
|
|
|
foreach( $types as $type => $label ) {
|
|
echo '<option value="' . $type . '"'
|
|
. selected( $instance['subscribe_type'], $type, false )
|
|
. '>' . $label . "</option>\n";
|
|
}
|
|
?>
|
|
</select>
|
|
</p>
|
|
<?php
|
|
// If Post type podcasting enabled...
|
|
if( !empty($GeneralSettings['posttype_podcasting']) || $instance['subscribe_type'] == 'post_type' )
|
|
{
|
|
?>
|
|
<p id="<?php echo $this->get_field_id('subscribe_post_type_section'); ?>" class="pp-sub-widget-p-post_type"<?php if( $instance['subscribe_type'] != 'post_type' ) echo " style=\"display: none;\""; ?>>
|
|
<label for="<?php echo $this->get_field_id('subscribe_post_type'); ?>"><?php _e( 'Select Post Type:', 'powerpress' ); ?></label>
|
|
<select class="widefat" id="<?php echo $this->get_field_id('subscribe_post_type'); ?>" name="<?php echo $this->get_field_name('subscribe_post_type'); ?>">
|
|
<option value=""><?php echo __('Select Post Type', 'powerpress'); ?></option>
|
|
<?php
|
|
$post_types = powerpress_admin_get_post_types(false);
|
|
foreach( $post_types as $index => $label ) {
|
|
echo '<option value="' . $label . '"'
|
|
. selected( $instance['subscribe_post_type'], $label, false )
|
|
. '>' . $label . "</option>\n";
|
|
}
|
|
?>
|
|
</select>
|
|
</p>
|
|
<?php } ?>
|
|
|
|
<p id="<?php echo $this->get_field_id('subscribe_feed_slug_section'); ?>" class="pp-sub-widget-p-channel"<?php if( $instance['subscribe_type'] != 'post_type' && $instance['subscribe_type'] != 'channel' ) echo " style=\"display: none;\""; ?>>
|
|
<label for="<?php echo $this->get_field_id( 'subscribe_feed_slug' ); ?>"><?php esc_html_e( 'Feed Slug:' , 'powerpress'); ?></label>
|
|
<input class="widefat" id="<?php echo $this->get_field_id( 'subscribe_feed_slug' ); ?>" name="<?php echo $this->get_field_name( 'subscribe_feed_slug' ); ?>" type="text" value="<?php echo esc_attr( $instance['subscribe_feed_slug'] ); ?>" />
|
|
</p>
|
|
<?php // If category podcasting...
|
|
if( !empty($GeneralSettings['cat_casting']) || $instance['subscribe_type'] == 'category' ) { ?>
|
|
<p id="<?php echo $this->get_field_id('subscribe_category_id_section'); ?>" class="pp-sub-widget-p-category"<?php if( $instance['subscribe_type'] != 'category' ) echo " style=\"display: none;\""; ?>>
|
|
<label for="<?php echo $this->get_field_id( 'subscribe_category_id' ); ?>"><?php esc_html_e( 'Category ID:' , 'powerpress'); ?></label>
|
|
<input class="widefat" id="<?php echo $this->get_field_id( 'subscribe_category_id' ); ?>" name="<?php echo $this->get_field_name( 'subscribe_category_id' ); ?>" type="text" value="<?php echo esc_attr( $instance['subscribe_category_id'] ); ?>" />
|
|
</p>
|
|
<?php } ?>
|
|
<?php
|
|
}
|
|
|
|
function update( $new_instance, $old_instance ) {
|
|
$instance['title'] = strip_tags( $new_instance['title'] );
|
|
$instance['style'] = strip_tags( $new_instance['style']);
|
|
$instance['modern_style'] = strip_tags( $new_instance['modern_style']);
|
|
$instance['modern_direction'] = strip_tags( $new_instance['modern_direction']);
|
|
$instance['subscribe_type'] = strip_tags( $new_instance['subscribe_type'] ); // general, channel, category, post_type, ttid
|
|
$instance['subscribe_post_type'] = strip_tags( $new_instance['subscribe_post_type'] );; // eg sermons
|
|
$instance['subscribe_feed_slug'] = strip_tags( $new_instance['subscribe_feed_slug'] );; // e.g. podcast
|
|
$instance['subscribe_category_id'] = strip_tags( $new_instance['subscribe_category_id'] );; // e.g. 456
|
|
//$instance['subscribe_term_taxonomy_id'] = strip_tags( $new_instance['subscribe_term_taxonomy_id'] );; // e.g. 345
|
|
return $instance;
|
|
}
|
|
|
|
function widget( $args, $instance ) {
|
|
|
|
$ExtraData = array('subscribe_type'=>'general', 'feed'=>'', 'taxonomy_term_id'=>'', 'cat_id'=>'', 'post_type'=>'');
|
|
if( !empty($instance['subscribe_type']) )
|
|
$ExtraData['subscribe_type'] = $instance['subscribe_type'];
|
|
else
|
|
$ExtraData['subscribe_type'] = '';
|
|
switch( $ExtraData['subscribe_type'] )
|
|
{
|
|
case 'post_type': {
|
|
|
|
if( empty($instance['subscribe_post_type']) || empty($instance['subscribe_feed_slug']) )
|
|
return;
|
|
$ExtraData['post_type'] = $instance['subscribe_post_type'];
|
|
$ExtraData['feed'] = $instance['subscribe_feed_slug'];
|
|
};
|
|
case 'channel': {
|
|
if( empty($instance['subscribe_feed_slug']) )
|
|
return;
|
|
$ExtraData['feed'] = $instance['subscribe_feed_slug'];
|
|
}; break;
|
|
case 'ttid': {
|
|
if( empty($instance['subscribe_term_taxonomy_id']) || !is_numeric($instance['subscribe_term_taxonomy_id']) )
|
|
return;
|
|
$ExtraData['taxonomy_term_id'] = $instance['subscribe_term_taxonomy_id'];
|
|
}; break;
|
|
case 'category': {
|
|
|
|
if( empty($instance['subscribe_category_id']) )
|
|
return;
|
|
|
|
if( is_numeric($instance['subscribe_category_id']) )
|
|
{
|
|
$ExtraData['cat_id'] = $instance['subscribe_category_id'];
|
|
}
|
|
else
|
|
{
|
|
$catObj = get_category_by_slug($instance['subscribe_category_id']);
|
|
if( empty($catObj->term_id) )
|
|
return;
|
|
$ExtraData['cat_id'] = $catObj->term_id;
|
|
}
|
|
}; break;
|
|
default: {
|
|
// Doesn't matter, we're using the default podcast channel
|
|
|
|
};
|
|
}
|
|
$Settings = powerpresssubscribe_get_settings( $ExtraData, false );
|
|
$Settings['modern_style'] = '-sq'; // Default to squared corners
|
|
$Settings['style'] = '';
|
|
if( isset($instance['style']) )
|
|
$Settings['style'] = $instance['style'];
|
|
if (defined('WP_DEBUG')) {
|
|
if (WP_DEBUG) {
|
|
wp_enqueue_style('powerpress_subscribe_widget_modern', plugin_dir_url(__FILE__) . 'css/subscribe-widget.css', array(), POWERPRESS_VERSION);
|
|
} else {
|
|
wp_enqueue_style('powerpress_subscribe_widget_modern', plugin_dir_url(__FILE__) . 'css/subscribe-widget.min.css', array(), POWERPRESS_VERSION);
|
|
}
|
|
} else {
|
|
wp_enqueue_style('powerpress_subscribe_widget_modern', plugin_dir_url(__FILE__) . 'css/subscribe-widget.min.css', array(), POWERPRESS_VERSION);
|
|
}
|
|
if( !empty($instance['modern_style']) && $instance['modern_style'] == 'squared') {
|
|
$Settings['modern_style'] = '-sq';
|
|
}
|
|
if( !empty($instance['modern_style']) && $instance['modern_style'] == 'rounded') {
|
|
$Settings['modern_style'] = ''; // Use new rounded corners
|
|
}
|
|
|
|
if( !empty($instance['modern_direction']) && $instance['modern_direction'] == 'horizontal') {
|
|
$Settings['modern_direction'] = 'horizontal';
|
|
}
|
|
if( empty($Settings) )
|
|
return;
|
|
|
|
if( empty($instance['title']) )
|
|
$instance['title'] = __( 'Subscribe to Podcast' , 'powerpress');
|
|
$instance['title'] = trim($instance['title']);
|
|
|
|
echo $args['before_widget'];
|
|
if ( ! empty( $instance['title'] ) ) {
|
|
echo $args['before_title'];
|
|
echo esc_html( $instance['title'] );
|
|
echo $args['after_title'];
|
|
}
|
|
echo powerpress_do_subscribe_sidebar_widget( $Settings );
|
|
echo $args['after_widget'];
|
|
return;
|
|
}
|
|
}
|
|
|
|
function powerpress_subscribe_register_widget() {
|
|
register_widget( 'PowerPressSubscribe_Widget' );
|
|
}
|
|
|
|
add_action( 'widgets_init', 'powerpress_subscribe_register_widget' );
|