radar-wp/includes/squat-radar-instance.php

75 lines
1.8 KiB
PHP

<?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';
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'] );
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();
if (is_active_sidebar('squat_radar_widget_shortcode')) {
dynamic_sidebar('squat_radar_widget_shortcode');
}
return ob_get_clean();
}
function add_sidebar() {
register_sidebar([
'name' => __( 'Squat Radar Shortcodes'),
'description'=> __( 'This widget area is not by default displayed on frontend. It can be displayed with all its widgets with the [squat_radar_sidebar] shortcode.', 'squat-radar' ),
'id' => 'squat_radar_widget_shortcode',
'before_widget' => '<div class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
]);
}
}