2019-04-27 18:36:32 +02:00
< ? php
/**
* Manage the Squat Radar plugin .
*
* @ package Squat_Radar
*/
defined ( 'ABSPATH' ) || exit ;
/**
* Singleton for managing Squat Radar .
*/
class Squat_Radar_Instance {
private static $instance = null ;
/**
* Creates or returns an instance of this class .
*
* @ return A single instance of this class .
*/
public static function get_instance () {
return null == self :: $instance ? self :: $instance = new self : self :: $instance ;
}
private function __construct () {
include SQUAT_RADAR_DIR . 'includes/squat-radar-widget.php' ;
include SQUAT_RADAR_DIR . 'includes/squat-radar-connector.php' ;
include SQUAT_RADAR_DIR . 'includes/squat-radar-formatter.php' ;
2019-04-29 20:07:19 +02:00
add_shortcode ( 'squat_radar_sidebar' , [ $this , 'print_sidebar' ] );
add_action ( 'plugins_loaded' , [ $this , 'i18n' ], 5 );
add_action ( 'widgets_init' , [ $this , 'add_sidebar' ], 20 );
add_action ( 'widgets_init' , [ 'Squat_Radar_Widget' , 'register_widget' ] );
2019-04-27 18:36:32 +02:00
Squat_Radar_Formatter :: register ();
}
/**
* Load translation files
*
* @ since 0.2 . 4
*/
function i18n () {
load_plugin_textdomain ( 'squat-radar' , false , '/languages' );
}
function print_sidebar () {
ob_start ();
2019-04-29 20:07:19 +02:00
if ( is_active_sidebar ( 'squat_radar_widget_shortcode' )) {
dynamic_sidebar ( 'squat_radar_widget_shortcode' );
2019-04-27 18:36:32 +02:00
}
return ob_get_clean ();
}
function add_sidebar () {
2019-04-29 20:07:19 +02:00
register_sidebar ([
2019-04-27 18:36:32 +02:00
'name' => __ ( 'Squat Radar Shortcodes' ),
2019-04-29 20:07:19 +02:00
'description' => __ ( 'This widget area is not by default displayed on frontend. It can be displayed with all its widgets with the [squat_radar] shortcode; or used to hold active widgets displayed with their own [squat_radar_widget id="X"] shortcode, see instructions on widget configuration for the id.' , 'squat-radar' ),
2019-04-27 18:36:32 +02:00
'id' => 'squat_radar_widget_shortcode' ,
'before_widget' => '<div class="widget %2$s">' ,
'after_widget' => '</div>' ,
'before_title' => '<h3 class="widget-title">' ,
'after_title' => '</h3>' ,
2019-04-29 20:07:19 +02:00
]);
2019-04-27 18:36:32 +02:00
}
}