Files
sportspress/modules/sportspress-widget-alignment.php
2015-08-19 17:24:44 +10:00

124 lines
2.9 KiB
PHP

<?php
/*
Plugin Name: SportsPress Widget Alignment
Plugin URI: http://themeboy.com/
Description: Add alignment options to SportsPress widgets.
Author: ThemeBoy
Author URI: http://themeboy.com
Version: 1.8.3
*/
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) exit;
if ( ! class_exists( 'SportsPress_Widget_Alignment' ) ) :
/**
* Main SportsPress Widget Alignment Class
*
* @class SportsPress_Widget_Alignment
* @version 1.8.3
*/
class SportsPress_Widget_Alignment {
/**
* @var array
*/
public $options = array();
/**
* Constructor
*/
public function __construct() {
// Define constants
$this->define_constants();
// Initialize
add_action( 'init', array( $this, 'init' ) );
// Widgets
add_filter( 'sportspress_widget_update', array( $this, 'widget_update' ), 10, 2 );
add_filter( 'sportspress_widget_defaults', array( $this, 'widget_defaults' ) );
add_action( 'sportspress_before_widget_template_form', array( $this, 'before_widget_form' ), 10, 2 );
add_action( 'sportspress_before_widget', array( $this, 'before_widget'), 10, 2 );
add_action( 'sportspress_after_widget', array( $this, 'after_widget') );
}
/**
* Define constants
*/
private function define_constants() {
if ( !defined( 'SP_WIDGET_ALIGNMENT_VERSION' ) )
define( 'SP_WIDGET_ALIGNMENT_VERSION', '1.8.3' );
if ( !defined( 'SP_WIDGET_ALIGNMENT_URL' ) )
define( 'SP_WIDGET_ALIGNMENT_URL', plugin_dir_url( __FILE__ ) );
if ( !defined( 'SP_WIDGET_ALIGNMENT_DIR' ) )
define( 'SP_WIDGET_ALIGNMENT_DIR', plugin_dir_path( __FILE__ ) );
}
/**
* Initialize
*/
public function init() {
$this->options = array(
'none' => __( 'None', 'sportspress' ),
'left' => __( 'Left', 'sportspress' ),
'right' => __( 'Right', 'sportspress' ),
);
}
/**
* Widget update
*/
function widget_update( $instance, $new_instance ) {
$instance['align'] = strip_tags( $new_instance['align'] );
return $instance;
}
/**
* Widget defaults
*/
function widget_defaults( $defaults ) {
$defaults['align'] = 'none';
return $defaults;
}
/**
* Before widget forms
*/
function before_widget_form( $object, $instance ) {
?>
<p><label for="<?php echo $object->get_field_id('align'); ?>"><?php printf( __( 'Alignment: %s', 'sportspress' ), '' ); ?></label>
<select name="<?php echo $object->get_field_name('align'); ?>" id="<?php echo $object->get_field_id('align'); ?>">
<?php
$align = strip_tags( sp_array_value( $instance, 'align', 'none' ) );
foreach ( $this->options as $value => $label ) {
printf( '<option value="%s" %s>%s</option>', $value, ( $align == $value ? 'selected' : '' ), $label );
}
?>
</select>
</p>
<?php
}
/**
* Before widget
*/
function before_widget( $args, $instance ) {
echo '<div class="sp-widget-align-' . sp_array_value( $instance, 'align', 'none' ) . '">';
}
/**
* After widget
*/
function after_widget() {
echo '</div>';
}
}
endif;
new SportsPress_Widget_Alignment();