/
mg-cache.php
163 lines (146 loc) · 3.68 KB
/
mg-cache.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<?php
/*
Plugin Name: MG Cache
Plugin URI: http://mindgruve.com/
Description: Manage assets and caching.
Author: kchevalier@mindgruve.com
Author URI: http://mindgruve.com/
Version: 1.0
*/
/**
* MgCache
*
* MG Cache Plugin Front Controller
*
* @package WordPress
* @subpackage MgCache
* @version 1.0
* @since MgCache 1.0
* @author kchevalier@mindgruve.com
*/
defined('ABSPATH') or die();
if (!class_exists('MgCache')) {
class MgCache
{
/**
* Kill switch.
* @var bool
*/
public static $active = true;
/**
* Initialize MgCache class.
*
* @since MgCache 1.0
*
* @return null
*/
public static function init()
{
require('MgCacheRequirements.php');
if (MgCacheRequirements::checkRequirements() && self::$active) {
// actions
add_action('activated_plugin',array('MgCache', 'activate'));
add_action('deactivated_plugin',array('MgCache', 'deactivate'));
add_action('init', array('MgCache', 'load'));
add_action('admin_menu', array('MgCache', 'registerAdmin'));
// filters
add_filter('category_rewrite_rules', array('MgCacheRouting', 'rewriteRulesFilter'));
}
}
/**
* Activate plugin
*
* @since MgCache 1.0
*
* @return null
*/
public static function activate($plugin)
{
// flush URL rewrite rules cache
include_once('MgCacheRouting.php');
flush_rewrite_rules();
}
/**
* Deactivate plugin
*
* @since MgCache 1.0
*
* @return null
*/
public static function deactivate($plugin)
{
// flush URL rewrite rules cache
flush_rewrite_rules();
}
/**
* Bootstrap MgCache Plugin.
*
* @since MgCache 1.0
*
* @return null
*/
public static function load()
{
self::registerHelpers();
self::registerControllers();
self::registerRoutes();
}
/**
* Register Helpers.
*
* @since MgCache 1.0
*
* @return null
*/
public static function registerHelpers()
{
include_once('helpers/MgCacheHelper.php');
include_once('helpers/MgAssetHelper.php');
MgAssetHelper::init();
MgCacheHelper::init();
}
/**
* Register Controllers.
*
* @since MgCache 1.0
*
* @return null
*/
public static function registerControllers()
{
include_once('controllers/MgAssetController.php');
}
/**
* Register Routes.
*
* @since MgCache 1.0
*
* @return null
*/
public static function registerRoutes()
{
include_once('MgCacheRouting.php');
MgCacheRouting::init();
}
/**
* Register Admin.
*
* @since MgCache 1.0
*
* @return null
*/
public static function registerAdmin()
{
include_once('admin/MgCacheAdmin.php');
add_submenu_page(
"options-general.php",
"Mg Cache",
"Cache",
"update_themes",
basename(__FILE__),
array('MgCacheAdmin', 'printAdminPage')
);
}
}
MgCache::init();
}