feat: 简航 SimpleNav 个人网站导航系统(PHP + SQLite)
- 前台:搜索引擎切换+联想下拉、网格板块(常用/工具)、合集标签页 - 后台:初始化/登录、网站/板块/引擎增删改、上下移排序 - 添加网站自动抓取名称与图标(存储于服务器),支持自定义简称 - 一键全部更新(批量刷新图标+名称,保留自定义简称) - 搜索联想服务端代理(必应/百度/谷歌/搜狗/360/DuckDuckGo) - 零依赖:原生 CSS/JS,PDO SQLite
This commit is contained in:
+60
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
/**
|
||||
* 简航 SimpleNav —— 基础配置
|
||||
* 面向个人的轻量级网站导航系统
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
date_default_timezone_set('Asia/Shanghai');
|
||||
if (function_exists('mb_internal_encoding')) {
|
||||
mb_internal_encoding('UTF-8');
|
||||
}
|
||||
|
||||
define('APP_NAME', '简航');
|
||||
define('APP_PATH', __DIR__);
|
||||
define('DATA_PATH', APP_PATH . '/data'); // 数据库等敏感数据(禁止 Web 访问)
|
||||
define('DB_PATH', DATA_PATH . '/nav.db');
|
||||
define('ICON_PATH', APP_PATH . '/uploads/icons'); // 抓取的网站图标(可公开访问)
|
||||
define('ICON_URL', 'uploads/icons'); // 相对站点根
|
||||
|
||||
/**
|
||||
* 自动探测应用根 URL,兼容「放在子目录 /simplenav」与「放在根目录」两种部署。
|
||||
* 返回形如 ''(根目录)或 '/simplenav'。
|
||||
*/
|
||||
function app_base(): string
|
||||
{
|
||||
$dir = isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : '/';
|
||||
$dir = str_replace('\\', '/', dirname($dir));
|
||||
$dir = preg_replace('#/admin$#', '', $dir); // admin/ 下的脚本回退到应用根
|
||||
$dir = rtrim($dir, '/');
|
||||
return $dir === '/' ? '' : $dir;
|
||||
}
|
||||
|
||||
/** 生成带应用根的 URL */
|
||||
function url(string $path = ''): string
|
||||
{
|
||||
return app_base() . '/' . ltrim($path, '/');
|
||||
}
|
||||
|
||||
/** 站点名(可在后台设置里覆盖) */
|
||||
function site_name(): string
|
||||
{
|
||||
return setting('site_name', APP_NAME);
|
||||
}
|
||||
|
||||
/** 读取设置项 */
|
||||
function setting(string $key, string $default = ''): string
|
||||
{
|
||||
static $cache = null;
|
||||
if ($cache === null) {
|
||||
$cache = [];
|
||||
try {
|
||||
foreach (db()->query('SELECT k, v FROM settings') as $row) {
|
||||
$cache[$row['k']] = $row['v'];
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
$cache = [];
|
||||
}
|
||||
}
|
||||
return array_key_exists($key, $cache) && $cache[$key] !== '' ? $cache[$key] : $default;
|
||||
}
|
||||
Reference in New Issue
Block a user