2023-11-17 14:44:01 +08:00
|
|
|
|
<?php
|
2024-04-10 00:51:03 +08:00
|
|
|
|
use App\Support\Setting;
|
2025-06-21 12:11:27 +08:00
|
|
|
|
use Illuminate\Support\Facades\App;
|
2023-11-17 14:44:01 +08:00
|
|
|
|
|
2025-07-18 15:42:58 +08:00
|
|
|
|
if (!function_exists('admin_setting')) {
|
2023-11-17 14:44:01 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 获取或保存配置参数.
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param string|array $key
|
|
|
|
|
|
* @param mixed $default
|
|
|
|
|
|
* @return App\Support\Setting|mixed
|
|
|
|
|
|
*/
|
|
|
|
|
|
function admin_setting($key = null, $default = null)
|
|
|
|
|
|
{
|
2025-07-04 22:16:19 +08:00
|
|
|
|
$setting = app(Setting::class);
|
2025-07-18 15:42:58 +08:00
|
|
|
|
|
2023-11-17 14:44:01 +08:00
|
|
|
|
if ($key === null) {
|
2025-06-21 12:11:27 +08:00
|
|
|
|
return $setting->toArray();
|
2023-11-17 14:44:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (is_array($key)) {
|
2025-06-21 12:11:27 +08:00
|
|
|
|
$setting->save($key);
|
2024-04-10 00:51:03 +08:00
|
|
|
|
return '';
|
2023-11-17 14:44:01 +08:00
|
|
|
|
}
|
2025-07-18 15:42:58 +08:00
|
|
|
|
|
|
|
|
|
|
$default = config('v2board.' . $key) ?? $default;
|
2025-06-21 12:11:27 +08:00
|
|
|
|
return $setting->get($key) ?? $default;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-18 15:42:58 +08:00
|
|
|
|
if (!function_exists('admin_settings_batch')) {
|
2025-06-21 12:11:27 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 批量获取配置参数,性能优化版本
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param array $keys 配置键名数组
|
|
|
|
|
|
* @return array 返回键值对数组
|
|
|
|
|
|
*/
|
|
|
|
|
|
function admin_settings_batch(array $keys): array
|
|
|
|
|
|
{
|
2025-07-04 22:16:19 +08:00
|
|
|
|
return app(Setting::class)->getBatch($keys);
|
2023-11-17 14:44:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-07-18 15:42:58 +08:00
|
|
|
|
|
2025-07-21 23:54:00 +08:00
|
|
|
|
if (!function_exists('source_base_url')) {
|
2025-07-18 15:42:58 +08:00
|
|
|
|
/**
|
2025-07-21 23:54:00 +08:00
|
|
|
|
* 获取来源基础URL,优先Referer,其次Host
|
2025-07-18 15:42:58 +08:00
|
|
|
|
* @param string $path
|
|
|
|
|
|
* @return string
|
|
|
|
|
|
*/
|
2025-07-21 23:54:00 +08:00
|
|
|
|
function source_base_url(string $path = ''): string
|
2025-07-18 15:42:58 +08:00
|
|
|
|
{
|
2025-07-21 23:54:00 +08:00
|
|
|
|
$baseUrl = '';
|
|
|
|
|
|
$referer = request()->header('Referer');
|
|
|
|
|
|
|
|
|
|
|
|
if ($referer) {
|
|
|
|
|
|
$parsedUrl = parse_url($referer);
|
|
|
|
|
|
if (isset($parsedUrl['scheme']) && isset($parsedUrl['host'])) {
|
|
|
|
|
|
$baseUrl = $parsedUrl['scheme'] . '://' . $parsedUrl['host'];
|
|
|
|
|
|
if (isset($parsedUrl['port'])) {
|
|
|
|
|
|
$baseUrl .= ':' . $parsedUrl['port'];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!$baseUrl) {
|
|
|
|
|
|
$baseUrl = request()->getSchemeAndHttpHost();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$baseUrl = rtrim($baseUrl, '/');
|
2025-07-18 15:42:58 +08:00
|
|
|
|
$path = ltrim($path, '/');
|
2025-07-21 23:54:00 +08:00
|
|
|
|
return $baseUrl . '/' . $path;
|
2025-07-18 15:42:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|