/
package.php
160 lines (122 loc) · 4.25 KB
/
package.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
<?php
birch_ns( 'birchschedule', function( $ns ) {
$plugin_url = '';
$plugin_file_path = '';
$less_dirs = array();
$module_names = array();
$product_version = '';
$product_name = '';
$product_code = '';
birch_defn( $ns, 'set_product_version', function( $_product_version ) use ( $ns, &$product_version ) {
$product_version = $_product_version;
} );
birch_defn( $ns, 'get_product_version', function() use ( $ns, &$product_version ) {
return $product_version;
} );
birch_defn( $ns, 'set_product_name', function( $_product_name ) use ( $ns, &$product_name ) {
$product_name = $_product_name;
} );
birch_defn( $ns, 'get_product_name', function() use ( $ns, &$product_name ) {
return $product_name;
} );
birch_defn( $ns, 'set_product_code', function( $_product_code ) use ( $ns, &$product_code ) {
$product_code = $_product_code;
} );
birch_defn( $ns, 'get_product_code', function() use ( $ns, &$product_code ) {
return $product_code;
} );
birch_defn( $ns, 'set_plugin_file_path', function ( $_plugin_file_path )
use( $ns, &$plugin_url, &$plugin_file_path ) {
$plugin_file_path = $_plugin_file_path;
$plugin_url = plugins_url() . '/' . basename( $plugin_file_path, '.php' );
} );
birch_defn( $ns, 'plugin_url', function() use ( $ns, &$plugin_url ) {
return $plugin_url;
} );
birch_defn( $ns, 'plugin_file_path', function() use ( $ns, &$plugin_file_path ) {
return $plugin_file_path;
} );
birch_defn( $ns, 'plugin_dir_path', function () use ( $ns, &$plugin_file_path ) {
return plugin_dir_path( $plugin_file_path );
} );
birch_defn( $ns, 'add_less_dir', function( $less_dir ) use( $ns, &$less_dirs ) {
$less_dirs[] = $less_dir;
} );
birch_defn( $ns, 'compile_less', function() use ( $ns, &$less_dirs ) {
foreach ( $less_dirs as $less_dir ) {
$ns->compile_less_dir( $less_dir );
}
} );
birch_defn( $ns, 'compile_less_dir', function( $dir ) use ( $ns ) {
global $birchpress;
$less = new lessc();
if ( is_dir( $dir ) ) {
$files = scandir( $dir );
if ( $files ) {
foreach ( $files as $file ) {
if ( $file != '.' && $file != '..' ) {
if ( is_dir( $dir . '/' . $file ) ) {
$ns->compile_less_dir( $dir . '/' . $file );
} else {
if ( $birchpress->util->ends_with( $file, '.less' ) ) {
$input_less = $dir . "/$file";
$output_less = substr( $input_less, 0, strlen( $input_less ) - 4 ) . 'css';
$less->checkedCompile( $input_less, $output_less );
}
}
}
}
}
}
} );
birch_defn( $ns, 'load_core', function() use( $ns ) {
global $birchpress;
$core_dir = $ns->plugin_dir_path() . 'includes';
$packages = array( 'model', 'view', 'upgrader' );
foreach ( $packages as $package ) {
$birchpress->load_package( $core_dir . '/' . $package );
}
} );
birch_defn( $ns, 'load_modules', function() use ( $ns, &$module_names ) {
global $birchpress;
$modules_dir = $ns->plugin_dir_path() . 'modules';
$_module_names = scandir( $modules_dir );
foreach ( $_module_names as $module_name ) {
if ( $module_name != '.' && $module_name != '..' ) {
$module_names[] = $module_name;
$module_dir = $modules_dir . '/' . $module_name;
$birchpress->load_package( $module_dir );
}
}
} );
birch_defn( $ns, 'upgrade_core', function() {} );
birch_defn( $ns, 'get_module_lookup_config', function() {
return array(
'key' => 'module',
'lookup_table' => array()
);
} );
birch_defmulti( $ns, 'upgrade_module', $ns->get_module_lookup_config, function( $module_a ) {} );
birch_defn( $ns, 'upgrade', function() use ( $ns, &$module_names ) {
$ns->upgrade_core();
foreach ( $module_names as $module_name ) {
$ns->upgrade_module( array(
'module' => $module_name
) );
}
} );
birch_defn( $ns, 'init_packages', function() use ( $ns ) {
global $birchpress;
$birchpress->init_package( $ns );
} );
birch_defn( $ns, 'run', function() use( $ns ) {
global $birchpress;
$ns->load_core();
$ns->load_modules();
$ns->init_packages();
$ns->upgrade();
} );
birch_defn($ns, 'spawn_cron', function() {
spawn_cron();
});
} );