Extending Fresns

Fresns is minimalistic, but it's also highly extensible. In fact, most of the features that ship with Fresns are actually extensions!

This approach makes Fresns extremely customizable. A user can disable any features they don't use on their forum, and install other extensions to make a forum perfect for their community.

In order to achieve this extensibility, Fresns has been built with rich APIs and extension points. With some programming knowledge, you can leverage these APIs to add just about any feature you want. This section of the documentation aims to teach you how Fresns works, and how to use the APIs so that you can build your own extensions.

Structure Introduction

Fresns 主程序不会拥有所有功能。她更像是一个脚手架、一个框架,为扩展程序打好坚固可靠的基础,只含有身为社区不可或缺的基本 API 功能,比如帖子、评论、用户、用户角色和通知等。

内置扩展又称原生扩展,是与主程序打包到一块、默认启用的。它们和其他扩展一样,可以被禁用或卸载。我们的想法是使其具有良好的通用性、可配置性,以满足大多数人的需求,因此,内置扩展无法满足一切使用需求。

第三方扩展由他人开发,Fresns 团队也不会提供官方支持。他们大多用于解决特定的需求。

如果你想要解决核心或现有内置扩展的 Bug 或功能缺陷,我们建议你直接为对应的项目贡献代码,这要比分散精力去开发一个新的第三方扩展更合适一些。你可以在 Fresns 社区open in new window发帖与 Fresns 开发者交流有关事宜。

Extensions Type

控制面板:管理主程序功能和用户内容的后台,分别有集成模式和独立部署模式。独立部署模式等于一个独立网站或 App 或微信小程序,独立运行在主程序之外,通过 API 对主程序数据库进行操作,所以独立部署的控制面板,通常需要配套安装一套管理功能 API 扩展插件。

网站引擎:基于主程序 API 开发的网站功能,分别有集成引擎和独立引擎。独立引擎等于一个独立网站,独立部署和运行在主程序之外,等同于移动应用(App),通过独立部署,可以实现一套数据在不同功能形式上运行,实现差异化运营的目的。

主题模板:依附在网站引擎的前端界面,根据所选引擎的模板标准开发的 UE&UI 界面。

移动应用:基于主程序 API 开发的移动在外的应用程序,可以是独立网站、App、微信小程序、快应用等各类形式。如果主程序 API 不满足需求,可以安装或开发扩展插件来新增 API,或者管理移动应用的相当配置,所以移动应用可能会开发一个插件,安装在控制台“移动应用”频道,用于增强移动端功能和管理。

功能插件:增强并丰富主程序功能的扩展,例如扩展一个频道、自定义注册流程或编辑器、增强管理功能、内容安全检查等等。

Installation Description

  • 为了安全性和延伸性的考虑,无论是插件、引擎、主题,全部采用统一安装流程;
  • 通过主程序根目录 /extensions/ 文件夹进行安装前预备目录;
  • 安装过程中,主程序会对文件的安全和规范进行扫描;
  • 确认无误后,会将信息入库并分发文件到对应的执行位置。

Local Install

  • 将安装文件放置在主程序根目录 /extensions/ 文件夹中,然后在主程序控制台输入「文件夹名」执行安装。

Code Install

  • 在后端控制台输入“安装码”,主程序会从 Fresns 应用商店下载安装包并解压到 /extensions/ 文件夹中,然后再执行安装。