Add general widgets class

This commit is contained in:
Robin Cornett
2017-11-10 13:34:30 -05:00
parent 389d2f8981
commit c9a81974c3
4 changed files with 85 additions and 8 deletions
+4 -1
View File
@@ -46,6 +46,7 @@ function display_featured_image_genesis_require() {
'settings/class-displayfeaturedimagegenesis-settings',
'class-displayfeaturedimagegenesis-taxonomies',
'sixtenpress-shortcodes/sixtenpress-shortcodes',
'widgets/class-displayfeaturedimagegenesis-widgets',
);
foreach ( $files as $file ) {
@@ -67,6 +68,7 @@ $displayfeaturedimagegenesis_post_meta = new Display_Featured_Image_Genesis_Po
$displayfeaturedimagegenesis_rss = new Display_Featured_Image_Genesis_RSS();
$displayfeaturedimagegenesis_settings = new Display_Featured_Image_Genesis_Settings();
$displayfeaturedimagegenesis_taxonomies = new Display_Featured_Image_Genesis_Taxonomies();
$displayfeaturedimagegenesis_widgets = new DisplayFeaturedImageGenesisWidgets();
$displayfeaturedimage = new Display_Featured_Image_Genesis(
$displayfeaturedimagegenesis_admin,
@@ -79,7 +81,8 @@ $displayfeaturedimage = new Display_Featured_Image_Genesis(
$displayfeaturedimagegenesis_post_meta,
$displayfeaturedimagegenesis_rss,
$displayfeaturedimagegenesis_settings,
$displayfeaturedimagegenesis_taxonomies
$displayfeaturedimagegenesis_taxonomies,
$displayfeaturedimagegenesis_widgets
);
$displayfeaturedimage->run();
+14 -3
View File
@@ -81,6 +81,13 @@ class Display_Featured_Image_Genesis {
*/
protected $taxonomies;
/**
* Register widgets and related shortcodes.
*
* @var \DisplayFeaturedImageGenesisWidgets
*/
protected $widgets;
/**
* Display_Featured_Image_Genesis constructor.
*
@@ -95,7 +102,7 @@ class Display_Featured_Image_Genesis {
* @param $settings
* @param $taxonomies
*/
function __construct( $admin, $author, $common, $customizer, $description, $helptabs, $output, $post_meta, $rss, $settings, $taxonomies ) {
function __construct( $admin, $author, $common, $customizer, $description, $helptabs, $output, $post_meta, $rss, $settings, $taxonomies, $widgets ) {
$this->admin = $admin;
$this->author = $author;
$this->common = $common;
@@ -107,6 +114,7 @@ class Display_Featured_Image_Genesis {
$this->rss = $rss;
$this->settings = $settings;
$this->taxonomies = $taxonomies;
$this->widgets = $widgets;
}
/**
@@ -122,7 +130,6 @@ class Display_Featured_Image_Genesis {
// Plugin setup
add_action( 'after_setup_theme', array( $this, 'add_plugin_supports' ) );
add_action( 'widgets_init', array( $this, 'register_widgets' ) );
add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
add_filter( 'plugin_action_links_' . DISPLAYFEATUREDIMAGEGENESIS_BASENAME, array( $this, 'add_settings_link' ) );
@@ -130,6 +137,11 @@ class Display_Featured_Image_Genesis {
add_action( 'admin_init', array( $this->admin, 'set_up_columns' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
// Widgets
add_action( 'widgets_init', array( $this->widgets, 'register_widgets' ) );
add_action( 'widgets_init', array( $this->widgets, 'register_shortcodes' ) );
add_action( 'admin_enqueue_scripts', array( $this->widgets, 'enqueue_scripts' ) );
// Taxonomies, Author, Post Meta
add_filter( 'displayfeaturedimagegenesis_get_taxonomies', array( $this->taxonomies, 'remove_post_status_terms' ) );
add_action( 'admin_init', array( $this->taxonomies, 'set_taxonomy_meta' ) );
@@ -151,7 +163,6 @@ class Display_Featured_Image_Genesis {
// RSS
add_action( 'template_redirect', array( $this->rss, 'maybe_do_feed' ) );
}
/**
@@ -57,10 +57,6 @@ class DisplayFeaturedImageGenesisWidgetsShortcodes {
* Add media shortcode buttons to the editor.
*/
public function shortcode_buttons() {
$setting = displayfeaturedimagegenesis_get_setting();
if ( ! $setting['shortcodes'] ) {
return;
}
$widgets = array(
'displayfeaturedimagegenesis_term' => __( 'Add Featured Term Widget', 'display-featured-image-genesis' ),
'displayfeaturedimagegenesis_author' => __( 'Add Featured Author Widget', 'display-featured-image-genesis' ),
@@ -0,0 +1,67 @@
<?php
class DisplayFeaturedImageGenesisWidgets {
/**
* Register widgets for plugin
*
* @since 2.0.0
*/
public function register_widgets() {
if ( function_exists( 'is_customize_preview' ) && is_customize_preview() && ! function_exists( 'genesis' ) ) {
return;
}
$widgets = array(
'author' => 'Display_Featured_Image_Genesis_Author_Widget',
'cpt-archive' => 'Display_Featured_Image_Genesis_Widget_CPT',
'taxonomy' => 'Display_Featured_Image_Genesis_Widget_Taxonomy',
);
require_once plugin_dir_path( __FILE__ ) . 'class-displayfeaturedimagegenesis-widgets-form.php';
require_once plugin_dir_path( __FILE__ ) . 'class-displayfeaturedimagegenesis-widgets-update.php';
foreach ( $widgets as $file => $widget ) {
require_once plugin_dir_path( __FILE__ ) . 'displayfeaturedimagegenesis-' . $file . '-widget.php';
register_widget( $widget );
}
}
/**
* Register widget shortcodes.
*/
public function register_shortcodes() {
require_once plugin_dir_path( __FILE__ ) . 'class-displayfeaturedimagegenesis-widgets-shortcodes.php';
$shortcode_class = new DisplayFeaturedImageGenesisWidgetsShortcodes();
foreach ( array( 'author', 'post_type', 'term' ) as $shortcode ) {
add_shortcode( "displayfeaturedimagegenesis_{$shortcode}", array( $shortcode_class, "shortcode_{$shortcode}" ) );
}
$setting = displayfeaturedimagegenesis_get_setting();
if ( ! $setting['shortcodes'] ) {
return;
}
add_filter( 'sixtenpress_shortcode_inline_css', array( $shortcode_class, 'inline_css' ) );
add_action( 'sixtenpress_shortcode_init', array( $shortcode_class, 'shortcode_buttons' ) );
add_action( 'sixtenpress_shortcode_modal', array( $shortcode_class, 'do_modal' ) );
add_action( 'sixtenpress_shortcode_before_media_button', array( $shortcode_class, 'button_open' ) );
add_action( 'sixtenpress_shortcode_after_media_button', array( $shortcode_class, 'button_close' ) );
add_action( 'admin_enqueue_scripts', array( $shortcode_class, 'inline_script' ), 1000 );
}
/**
* Enqueue and localize widget scripts.
*/
public function enqueue_scripts() {
if ( function_exists( 'is_customize_preview' ) && is_customize_preview() && ! function_exists( 'genesis' ) ) {
return;
}
$screen = get_current_screen();
if ( in_array( $screen->id, array( 'widgets', 'customize' ), true ) ) {
wp_enqueue_script( 'widget_selector' );
wp_localize_script( 'widget_selector', 'displayfeaturedimagegenesis_ajax_object', array(
'ajax_url' => admin_url( 'admin-ajax.php' ),
) );
}
}
}