ClientSettings.php
1014 Bytes
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
<?php
class ClientSettings {
const CAPABILITY = 'edit_client_settings';
const ADMIN_PAGE = 'client-settings';
public static function make() {
static $made = false;
if ($made) {
throw new OverflowException('ClientSettings has already been initialized');
}
$made = true;
$role = get_role('administrator');
$role->add_cap(self::CAPABILITY);
add_actions('ClientSettings_Actions');
}
public static function viewOptionsPage() {
}
}
// register_setting()
// settings_fields()
// add_settings_section()
// add_settings_field()
// settings_fields()
// do_settings_section()
class ClientSettings_Actions {
public static function admin_menu() {
$display = (current_user_can('manage_options') ? 'Client Settings' : 'Settings');
add_utility_page($display, $display, ClientSettings::CAPABILITY, ClientSettings::ADMIN_PAGE, Array('ClientSettings', 'viewOptionsPage'));
}
}
ClientSettings::make();
?>