56 lines
1.8 KiB
PHP
56 lines
1.8 KiB
PHP
<?php
|
|
use App\ModuleConfigException;
|
|
|
|
$moduleName = 'pihole';
|
|
$mm = isset($modules) && $modules instanceof App\ModuleManager ? $modules : modules();
|
|
|
|
$mm->registerFunction($moduleName, 'settings', function () use ($moduleName): array {
|
|
return modules()->settings($moduleName);
|
|
});
|
|
|
|
$mm->registerFunction($moduleName, 'instances', function () use ($moduleName): array {
|
|
$settings = modules()->settings($moduleName);
|
|
$apiPath = trim((string)($settings['api_path'] ?? '/admin/api.php'));
|
|
if ($apiPath === '') {
|
|
$apiPath = '/admin/api.php';
|
|
}
|
|
if ($apiPath[0] !== '/') {
|
|
$apiPath = '/' . $apiPath;
|
|
}
|
|
|
|
$timeout = (int)($settings['api_timeout_sec'] ?? 8);
|
|
if ($timeout <= 0) {
|
|
$timeout = 8;
|
|
}
|
|
|
|
$verifyTls = !isset($settings['verify_tls']) || $settings['verify_tls'] === '1' || $settings['verify_tls'] === 1 || $settings['verify_tls'] === true;
|
|
|
|
$instances = [];
|
|
foreach (['primary', 'secondary'] as $key) {
|
|
$urlKey = $key . '_url';
|
|
$tokenKey = $key . '_token';
|
|
$nameKey = $key . '_name';
|
|
$url = trim((string)($settings[$urlKey] ?? ''));
|
|
if ($url === '') {
|
|
continue;
|
|
}
|
|
$instances[$key] = [
|
|
'id' => $key,
|
|
'name' => trim((string)($settings[$nameKey] ?? '')) ?: ($key === 'primary' ? 'Primaer' : 'Sekundaer'),
|
|
'url' => rtrim($url, '/'),
|
|
'token' => trim((string)($settings[$tokenKey] ?? '')),
|
|
'api_path' => $apiPath,
|
|
'timeout' => $timeout,
|
|
'verify_tls' => $verifyTls,
|
|
'is_primary' => $key === 'primary',
|
|
];
|
|
}
|
|
|
|
return $instances;
|
|
});
|
|
|
|
$mm->registerFunction($moduleName, 'lists_primary_only', function () use ($moduleName): bool {
|
|
$settings = modules()->settings($moduleName);
|
|
return !empty($settings['lists_primary_only']);
|
|
});
|