-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodules.php
More file actions
78 lines (71 loc) · 1.85 KB
/
modules.php
File metadata and controls
78 lines (71 loc) · 1.85 KB
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
<?php
namespace Formwerdung\Square;
class Modules extends Lib\Module {
/**
* Constructor. Load modules, check activation hook and remove the role
* (since we have no uninstall hook) if the feature is no longer set
*
* @since 0.0.1
* @access public
* @uses register_activation_hook()
* @uses remove_role()
*/
public function __construct() {
$this->loadModules();
register_activation_hook(__FILE__, [$this, 'activate']);
if (!static::isThemeFeature('square-extra-user')) {
remove_role('square-manager');
}
}
/**
* Loop through available modules, create feature name and basename from file
*
* @since 0.0.1
* @access private
*/
private function loadModules() {
$this->loadDefaultModule();
foreach (glob(__DIR__ . '/modules/*.php') as $file) {
$basename = basename($file, '.php');
$basename = static::underscoresToDashes($basename);
$feature = 'square-' . $basename;
if ($this->isThemeFeature($feature)) {
$this->loadModule($file, $basename);
}
}
}
/**
* Load single module (=require module file), create class name from basename
*
* @since 0.0.1
* @access private
* @param string $f file
* @param $tring $bn basename
*/
private function loadModule($f, $bn) {
require_once($f);
$class = static::dashesToCamelCase($bn, true);
$class = '\Formwerdung\Square\Modules\\' . $class;
new $class;
}
/**
* Load default module
*
* @since 0.0.1
* @access private
*/
private function loadDefaultModule() {
require_once('modules/default_cleanup.php');
new \Formwerdung\Square\Modules\DefaultCleanup;
}
/**
* Things we have to do on activation
*
* @since 0.0.1
* @access private
* @uses flush_rewrite_rules()
*/
private function activate() {
flush_rewrite_rules();
}
}