<?php
/*
* Plugin Name: Digiqole Essentials
* License - GNU/GPL V2 or Later
* Description: This is a required plugin for digiqole theme.
* Version: 2.1.1
* text domain: digiqole-essential
*/
if(!defined('ABSPATH')) {
exit;
}
// Add language
add_action('init', 'digiqole_language_load');
function digiqole_language_load() {
$plugin_dir = basename(dirname(__FILE__)) . "/languages/";
load_plugin_textdomain('digiqole-essential', false, $plugin_dir);
}
// main class
class Digiqole_Essentials_Includes {
// auto load
// ----------------------------------------------------------------------------------------
public static function init() {
self::_action_init();
add_action('widgets_init', array(__CLASS__, '_action_widgets_init'));
}
// directory name to class name, transform dynamically
// ----------------------------------------------------------------------------------------
public static function _action_init() {
self::include_isolated(self::get_path('/post-type/post-class.php'));
self::include_isolated(self::get_path('/hook/blog.php'));
}
// include and register widgets
// ----------------------------------------------------------------------------------------
public static function include_isolated($path) {
include $path;
}
// include method
// ----------------------------------------------------------------------------------------
private static function get_path($append = '') {
$path = plugin_dir_path(__FILE__) . 'includes';
return $path . $append;
}
// directory path for theme core
// ----------------------------------------------------------------------------------------
public static function _action_widgets_init() {
self::include_widget('instagram');
self::include_widget('recent-post');
self::include_widget('social');
self::include_widget('footer-address');
self::include_widget('service-hour');
self::include_widget('author');
self::include_widget('category-list');
self::include_widget('recent-post-tab');
}
// include widgets
// ----------------------------------------------------------------------------------------
public static function include_widget($widget_dir) {
$rel_path = '/widgets';
$path = self::get_path($rel_path) . '/' . $widget_dir;
if(file_exists($path)) {
self::include_isolated($path . '/widget-class.php');
}
register_widget('Digiqole_' . self::dirname_to_classname($widget_dir));
}
// include files
// ----------------------------------------------------------------------------------------
private static function dirname_to_classname($dirname) {
$class_name = explode('-', $dirname);
$class_name = array_map('ucfirst', $class_name);
$class_name = implode('_', $class_name);
return $class_name;
}
}
Digiqole_Essentials_Includes::init();
include 'modules/init.php';