Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
=' ) ) {
add_action( 'wp_insert_site', array( 'Mp_Time_Table', 'on_create_blog' ) );
} else {
add_action( 'wpmu_new_blog', array( 'Mp_Time_Table', 'on_create_blog' ) );
}
add_filter( 'wpmu_drop_tables', array( 'Mp_Time_Table', 'on_delete_blog' ) );
/**
* Class Mp_Time_Table
*/
class Mp_Time_Table {
protected static $instance;
/**
* Mp_Time_Table constructor.
*/
public function __construct() {
$this->include_all();
Core::get_instance()->init_plugin( 'mp_timetable' );
}
/**
* Include all files
*/
public function include_all() {
/**
* Include Gump
*/
require_once self::get_plugin_path() . 'classes/libs/class-gump.php';
/**
* Install Parsers
*/
require_once self::get_plugin_path() . 'classes/libs/parsers.php';
/**
* Include Permalinks
*/
require_once self::get_plugin_path() . 'classes/class-permalinks.php';
/**
* Include Core
*/
require_once self::get_plugin_path() . 'classes/class-core.php';
/**
* Include module
*/
require_once self::get_plugin_path() . 'classes/class-module.php';
/**
* Include Model
*/
require_once self::get_plugin_path() . 'classes/class-model.php';
/**
* Include Controller
*/
require_once self::get_plugin_path() . 'classes/class-controller.php';
/**
* Include State factory
*/
require_once self::get_plugin_path() . 'classes/class-state-factory.php';
/**
* Include Preprocessor
*/
require_once self::get_plugin_path() . 'classes/class-preprocessor.php';
/**
* include shortcodes
*/
require_once( self::get_plugin_path() . 'classes/class-shortcode.php' );
/**
* include Widgets
*/
require_once self::get_plugin_path() . 'classes/widgets/class-mp-timetable-widget.php';
/**
* Include view
*/
require_once self::get_plugin_path() . 'classes/class-view.php';
/**
* Include hooks
*/
require_once self::get_plugin_path() . 'classes/class-hooks.php';
/**
* Include blocks
*/
require_once self::get_plugin_path() . 'classes/blocks/class-timetable-block.php';
/**
* Include Widgets Managers
*/
require_once self::get_plugin_path() . 'classes/class-widgets-manager.php';
}
/**
* Get plugin path
*/
public static function get_plugin_path() {
return plugin_dir_path( __FILE__ );
}
/**
* @return Mp_Time_Table
*/
public static function init() {
if ( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Retrieve relative to theme root path to templates.
*
* @return string
*/
public static function get_template_path() {
return apply_filters( 'mptt_template_path', 'mp-timetable/' );
}
/**
* Retrieve relative to plugin root path to templates.
*
* @return string
*/
public static function get_templates_path() {
return self::get_plugin_path() . 'templates/';
}
/**
* Get plugin part path
*
* @param string $part
*
* @return string
*/
public static function get_plugin_part_path( $part = '' ) {
return self::get_plugin_path() . $part;
}
/**
* On activation
*/
public static function on_activation( $network_wide = false ) {
if ( $network_wide && is_multisite() ) {
$sites = get_sites();
foreach( $sites as $site ) {
$blog_id = $site->blog_id;
switch_to_blog( $blog_id );
Mp_Time_Table::install();
restore_current_blog();
}
} else {
Mp_Time_Table::install();
}
}
/**
* Install
*/
public static function install() {
// Register post type
Core::get_instance()->register_all_post_type();
// Register taxonomy all
Core::get_instance()->register_all_taxonomies();
flush_rewrite_rules( false );
//Create table in not exists
Core::get_instance()->create_table();
}
/**
* On deactivation
*/
public static function on_deactivation() {
flush_rewrite_rules( false );
}
/**
* On uninstall
*/
public static function on_uninstall() {
do_action( 'mptt_on_uninstall' );
}
/**
* On create blog
*
* @param int|WP_Site $blog
*/
public static function on_create_blog( $blog ) {
if ( is_plugin_active_for_network( MP_TT_PLUGIN_BASENAME ) ) {
if ( ! is_int( $blog ) ) {
$blog = $blog->id;
}
switch_to_blog( $blog );
Mp_Time_Table::install();
restore_current_blog();
}
}
/**
* On blog creation
*/
public static function on_delete_blog( $tables ) {
$tables[] = self::get_datatable();
return $tables;
}
/**
* Get data table name
*
* @return string
*/
public static function get_datatable() {
global $wpdb;
return $wpdb->prefix . "mp_timetable_data";
}
/**
* Get plugin url
*
* @param string $path
*
* @return string
*/
static function get_plugin_url( $path = '' ) {
return plugin_dir_url( __FILE__ ) . $path;
}
}