主题开发 您可以根据此文档开发自己喜欢的OneNav主题。 目录结构 OneNav主题位于站点根目录下的/templates目录,或者是/data/templates,逻辑为: 优先读取/templates目录下的主题 如果未读取到/templates目录下的主题,则尝试从/data/templates读取 主题目录命名规范 主题目录不能包含特殊字符,比如-/.*!@#$%^&等 目录名称不能包含空格 创建一个主题 在/templates下创建一个目录,比如HelloWorld,里面至少需要存在2个文件,分别是: index.php - 主题首页文件 info.json - 主题描述等信息 info.json配置信息 info.jsonn内容包含: { "name":"Hello World", "description":"Hello World", "homepage":"https://www.xiaoz.me", "version":"1.0.0", "update":"2022/04/13", "author":"xiaoz", "screenshot":"https://img.rss.ink/imgs/2022/03/42ed3ef2c4a50f6d.png" } 字段含义如下: name:主题名称 description:主题描述 homepage:作者主页 version:主题版本 update:主题更新时间 author:主题作者 screenshot:主题截图 这个时候回到OneNav后台 - 系统设置 - 主题设置,可以看到刚刚创建好的HelloWorld主题,不过当前没有实际作用,因为index.php还没有任何内容。 内置变量 您在index.php中可以使用以下变量,注意需要通过PHP开始符和结束符包裹,比如 $site['title']:站点标题 $site['logo']:站点logo $site['subtitle']:站点副标题 $site['keywords']:站点关键词 $site['description']:站点描述 $site['custom_header']:自定义header $template:主题文件夹名称,比如HelloWorld index.php 接下来我们试着在index.php添加内容,这个文件可以直接使用上面提到的内置变量。试着将上面的变量添加到index.php,内容如下: <?php echo $site['title']; ?> - <?php echo $site['subtitle']; ?>

内容
OneNav后台 - 系统设置 - 主题设置 - 使用HelloWorld这个主题,回到首页我们可以看到变量已经生效,自动输出了网站标题。 不过当前非常简陋,内容都还没有。我们试着在aside元素添加遍历输出分类目录的代码,如下: "; ?>
  • $category['name']指的是分类目录名称 这时分类目录已经遍历并显示,内容如下截图: 趁热打铁,我们继续将书签内容也遍历输出,将下面的代码添加到article元素节点: "; //如果分类是私有的 if( $category['property'] == 1 ) { $property = ''; } else { $property = ''; } ?>
    这时候刷新首页,可以看到书签内容也输出了。不过没有CSS,样式完全是乱的,CSS样式就需要主题开发者根据自己的喜好来写了。 至此一个简单的HelloWorld主题已经完成,完整代码如下: <?php echo $site['title']; ?> - <?php echo $site['subtitle']; ?>

    "; //如果分类是私有的 if( $category['property'] == 1 ) { $property = ''; } else { $property = ''; } ?>