内容目录
- 一、详细介绍
- 二、效果展示
- 1.部分代码
- 2.效果图展示
- 三、学习资料下载
一、详细介绍
OneNav Extend 是一款功能强大的书签(导航)管理程序,使用PHP + SQLite 3开发,界面简洁,安装简单,使用方便。
OneNav可帮助你你将浏览器书签集中式管理,解决跨设备、跨平台、跨浏览器之间同步和访问困难问题,做到一处部署,随处访问。是基于xiaoz原创的OneNav基础上进行大量的修改,实现了更多的功能!现与xiaoz版是分开发布,独立维护的!
支持后台管理
支持私有链接
支持Chrome/Firefox/Edge书签批量导入
支持多种主题风格
支持链接信息自动识别
支持API
支持Docker部署
支持uTools插件
支持二级分类
支持Chromium内核的[浏览器扩展]
魔改版新增功能:
支持多用户
支持隐藏登陆入口和注册入口
支持登陆保护机制
支持二级密码
支持静态库离线和CDN加速
支持非根目录运行
支持分类选择字体图标(927个图标)
支持分类和链接的关键字搜索
支持筛选链接分类和批量修改分类
支持在列表单元格上快速修改数据
支持从原版升级安装
支持标签组 (可加密分享书签)
支持链接有效性检测
支持上传链接图标
二、效果展示
1.部分代码
代码如下(示例):
// 安装前先检查环境
function check_env() {
//获取组件信息
$ext = get_loaded_extensions();
//检查PHP版本,需要大于5.6小于8.0
$php_version = floatval(PHP_VERSION);
if( ( $php_version < 5.6 ) || ( $php_version > 8.1 ) ) {
exit("当前PHP版本{$php_version}不满足要求,需要5.6 <= PHP <= 8.1");
}
//检查是否支持pdo_sqlite
if ( !array_search('pdo_sqlite',$ext) ) {
exit("不支持PDO_SQLITE组件,请先开启!");
}
//如果配置文件存在
if( file_exists("data/lm.user.db3") ) {
exit("配置文件已存在,无需再次初始化!");
}
return TRUE;
}
require ('./class/Class.php');//载入函数库
if( file_exists('./data/onenav.db3') && file_exists('./data/config.php') && !file_exists('./data/lm.user.db3')){
require ('./data/config.php');//载入配置
$USER = $site_setting['user'];
$SQLite3 = './data/'.$USER.'.db3';
if($USER == 'onenav'){msg(-1000,'用户名不能是onenav!请到/data/config.php修改后再试!');}
unlink($SQLite3);
if(!copy('./initial/onenav.simple.db3',$SQLite3)){msg(-1003,'错误:请检查data目录权限!');}
//查找是否存在on_db_logs表,如果存在则说明是v0.9.16+,后续在根据里面的记录来确定版本!
$data = $db->query("SELECT count(*) AS num FROM sqlite_master WHERE type='table' AND name='on_db_logs'")->fetchAll();
$num = intval($data[0]['num']);
if ( $num == 1 ){
//有on_db_logs表,取ID最大且标记为成功的SQL文件名!并去除后缀名!
$Ver = $db->query("SELECT sql_name FROM on_db_logs WHERE status = 'TRUE' ORDER BY id DESC LIMIT 1")->fetchAll();
$Ver = str_replace(".sql","",$Ver[0]['sql_name']);
}else{
$Ver ='20220304'; //没有on_db_logs表,姑且认为是20220304之前的版本!
}
$Newdb = new Medoo\Medoo(['database_type'=>'sqlite','database_file'=>$SQLite3]);
if(!$Newdb-> query("DELETE FROM on_categorys;")){msg(-1003,'清空分类表失败.');}
if(!$Newdb-> query("DELETE FROM on_links;")){msg(-1003,'清空连接表失败.');}
//导入分类
$categorys = $db->query('SELECT * FROM "on_categorys"')->fetchAll();
foreach ($categorys as $categorys) {
if ($Ver == '20220304' ){
if(preg_match('/<i class="fa (.+)"><\/i>/i',htmlspecialchars_decode($categorys['name']),$matches) != 0){
$ico=$matches[1];
}else{
$ico='';
}
}else{
$ico = str_replace("fa ","",$categorys['font_icon']); //去掉头才符合我的要求
}
2.效果图展示
三、学习资料下载
蓝奏云:https://qumaw.lanzoul.com/igv1s0in133e