|
1 | 1 | <?php
|
2 | 2 |
|
3 | 3 | declare(strict_types=1);
|
4 |
| -// Creared: 20150101 - Updated: 20250202 |
| 4 | +// Created: 20150101 - Updated: 20250203 |
5 | 5 | // Copyright (C) 2015-2025 Mark Constable <markc@renta.net> (AGPL-3.0)
|
6 | 6 |
|
| 7 | +namespace HCP; |
| 8 | + |
7 | 9 | const DBG = true;
|
8 | 10 |
|
9 | 11 | require_once __DIR__ . '/../vendor/autoload.php';
|
10 | 12 |
|
11 |
| -use HCP\Init; |
12 |
| - |
13 |
| -echo new Init(new class() |
14 |
| -{ |
15 |
| - public $cfg = [ |
16 |
| - 'email' => 'admin@example.com', |
17 |
| - 'admpw' => 'admin123', |
18 |
| - 'file' => '../src/.ht_conf.php', // settings override |
19 |
| - 'hash' => 'SHA512-CRYPT', |
20 |
| - 'host' => '', |
21 |
| - 'perp' => 25, |
22 |
| - 'self' => '/', |
23 |
| - ]; |
24 |
| - |
25 |
| - public $in = [ |
26 |
| - 'a' => '', // API (apiusr:apikey) |
27 |
| - 'd' => '', // Domain (current) |
28 |
| - 'g' => null, // Group/Category |
29 |
| - 'f' => 'html', // Rendering Format |
30 |
| - 'i' => null, // Item or ID |
31 |
| - 'l' => '', // Log (alert message) |
32 |
| - 'm' => 'list', // Method (or action) |
33 |
| - 'o' => 'Home', // Object (or plugin) |
34 |
| - 'r' => 'local', // Remotes (local) |
35 |
| - 't' => 'TopNav', // Theme (Default) |
36 |
| - 'x' => '', // XHR (request) |
37 |
| - ]; |
38 |
| - |
39 |
| - public $out = [ |
40 |
| - 'doc' => 'NetServa HCP', |
41 |
| - 'css' => '', |
42 |
| - 'log' => '', |
43 |
| - 'nav1' => '', |
44 |
| - 'nav2' => '', |
45 |
| - 'nav3' => '', |
46 |
| - 'head' => 'NetServa', |
47 |
| - 'main' => 'Error: missing page!', |
48 |
| - 'foot' => 'Copyright (C) 2015-2025 Mark Constable (AGPL-3.0)', |
49 |
| - 'js' => '', |
50 |
| - ]; |
51 |
| - |
52 |
| - public $t; |
53 |
| - |
54 |
| - public $db = [ |
55 |
| - 'host' => '127.0.0.1', // DB site |
56 |
| - 'name' => 'sysadm', // DB name |
57 |
| - 'pass' => '../src/.ht_pw', // MySQL password override |
58 |
| - 'path' => '../sysadm/sysadm.db', // SQLite DB |
59 |
| - 'port' => '3306', // DB port |
60 |
| - 'sock' => '', // '/run/mysqld/mysqld.sock', |
61 |
| - 'type' => 'sqlite', // mysql | sqlite |
62 |
| - 'user' => 'sysadm', // DB user |
63 |
| - ]; |
64 |
| - |
65 |
| - public $nav1 = [ |
66 |
| - 'non' => [ |
67 |
| - ['Webmail', 'webmail/', 'bi bi-envelope'], |
68 |
| - ['Phpmyadmin', 'phpmyadmin/', 'bi bi-globe'], |
69 |
| - ], |
70 |
| - 'usr' => [ |
71 |
| - ['Webmail', 'webmail/', 'bi bi-envelope'], |
72 |
| - ['Phpmyadmin', 'phpmyadmin/', 'bi bi-globe'], |
73 |
| - ], |
74 |
| - 'adm' => [ |
75 |
| - ['Menu', [ |
76 |
| - ['Webmail', 'webmail/', 'bi bi-envelope'], |
77 |
| - ['Phpmyadmin', 'phpmyadmin/', 'bi bi-globe'], |
78 |
| - ], 'bi bi-list'], |
79 |
| - ['Admin', [ |
80 |
| - ['Accounts', '?o=Accounts', 'bi bi-people'], |
81 |
| - ['Vhosts', '?o=Vhosts', 'bi bi-globe'], |
82 |
| - ['Mailboxes', '?o=Vmails', 'bi bi-envelope'], |
83 |
| - ['Aliases', '?o=Valias', 'bi bi-envelope-fill'], |
84 |
| - ['DKIM', '?o=Dkim', 'bi bi-person-vcard'], |
85 |
| - ['Domains', '?o=Domains', 'bi bi-server'], |
86 |
| - ], 'bi bi-gear-fill'], |
87 |
| - ['Stats', [ |
88 |
| - ['Sys Info', '?o=InfoSys', 'bi bi-speedometer'], |
89 |
| - ['Processes', '?o=Processes', 'bi bi-diagram-2'], |
90 |
| - ['Mail Info', '?o=Infomail', 'bi bi-envelope-fill'], |
91 |
| - ['Mail Graph', '?o=Mailgraph', 'bi bi-envelope'], |
92 |
| - ], 'bi bi-graph-up'], |
93 |
| - ], |
94 |
| - ]; |
95 |
| - |
96 |
| - public $nav2 = []; |
97 |
| - |
98 |
| - public $nav3 = []; |
99 |
| - |
100 |
| - public $dns = [ |
101 |
| - 'a' => '127.0.0.1', |
102 |
| - 'mx' => '', |
103 |
| - 'ns1' => 'ns1.', |
104 |
| - 'ns2' => 'ns2.', |
105 |
| - 'prio' => 0, |
106 |
| - 'ttl' => 300, |
107 |
| - 'soa' => [ |
108 |
| - 'primary' => 'ns1.', |
109 |
| - 'email' => 'admin.', |
110 |
| - 'refresh' => 7200, |
111 |
| - 'retry' => 540, |
112 |
| - 'expire' => 604800, |
113 |
| - 'ttl' => 3600, |
114 |
| - ], |
115 |
| - 'db' => [ |
116 |
| - 'host' => '127.0.0.1', // Alt DNS DB site |
117 |
| - 'name' => 'pdns', // Alt DNS DB name |
118 |
| - 'pass' => '../src/.ht_dns_pw', // MySQL DNS password override |
119 |
| - 'path' => '../sysadm/pdns.db', // DNS SQLite DB |
120 |
| - 'port' => '3306', // Alt DNS DB port |
121 |
| - 'sock' => '', // '/run/mysqld/mysqld.sock', |
122 |
| - 'type' => 'sqlite', // mysql | sqlite | '' to disable |
123 |
| - 'user' => 'pdns', // Alt DNS DB user |
124 |
| - ], |
125 |
| - ]; |
126 |
| - |
127 |
| - public $acl = [ |
128 |
| - 0 => 'SuperAdmin', |
129 |
| - 1 => 'Administrator', |
130 |
| - 2 => 'User', |
131 |
| - 3 => 'Suspended', |
132 |
| - 9 => 'Anonymous', |
133 |
| - ]; |
134 |
| -}); |
135 |
| - |
136 |
| -function elog(string $content): void |
137 |
| -{ |
138 |
| - if (DBG) |
139 |
| - { |
140 |
| - error_log($content); |
141 |
| - } |
142 |
| -} |
| 13 | +// Initialize with correct self path and hostname |
| 14 | +$self = str_replace('index.php', '', $_SERVER['PHP_SELF']); |
| 15 | +$host = getenv('HOSTNAME') ?: ''; |
| 16 | +echo new Init(new Config($self, $host)); |
143 | 17 |
|
144 |
| -function dbg($var = null): void |
| 18 | +function dbg(mixed $var = null): void |
145 | 19 | {
|
146 |
| - if (is_object($var)) |
147 |
| - { |
148 |
| - $refobj = new \ReflectionObject($var); |
149 |
| - // get all public and protected properties |
150 |
| - $var = $refobj->getProperties(\ReflectionProperty::IS_PUBLIC); |
151 |
| - $var = \array_merge($var, $refobj->getProperties(\ReflectionProperty::IS_PROTECTED)); |
152 |
| - } |
153 |
| - ob_start(); |
154 |
| - print_r($var); |
155 |
| - $ob = ob_get_contents(); |
156 |
| - ob_end_clean(); |
157 |
| - error_log($ob); |
| 20 | + error_log(var_export($var, true)); |
158 | 21 | }
|
0 commit comments