a1tem / knowledge-base

知识库管理系统

dev-master 2020-05-23 03:24 UTC

README

Latest Version on Packagist Total Downloads

知识库管理系统。

这是一个Laravel包,允许您将知识库管理系统安装到您的网站中

主要功能

  • 分类
  • 分类可以有额外的字段(文本、文本区域、数字、选择、日期、复选框)
  • 当用户创建文章时,他也应该填写属于该分类的所有额外字段
  • 通过文章标题和内容以及额外字段进行搜索
  • 额外字段的验证
  • 分页
  • 完全可自定义,因为您有权访问所有Vue组件

演示

文章

Articles

分类

Categories

安装

通过Composer

$ composer require a1tem/knowledge-base
$ php artisan migrate
$ npm add babel-plugin-syntax-dynamic-import babel-plugin-syntax-jsx babel-plugin-transform-vue-jsx eslint eslint-loader eslint-plugin-vue laravel-mix-eslint vue-template-compiler --save-dev
$ npm add element-ui axios vue2-editor
$ npm install

Passport安装

我们使用Passport来执行API调用,如果您已经使用Passport,请跳过此部分。

完整的安装过程可以在Passport文档中找到

之后,只需将其添加到 Http/Middleware/EncryptCookies.php 文件中

protected static $serialize = true;

并将 'knowledge-base/' 添加到 Http/Middleware/VerifyCsrfToken.php 文件的 $except 数组中

    protected $except = [
        'knowledge-base/*'
    ];

将其添加到您的主blade文件或 views/layout/app.blade.php 中(如果尚未包含)。

<meta name="csrf-token" content="{{ csrf_token() }}">

用法

首先,我们应该发布所有包资源,为此请在控制台中运行此命令

$ artisan vendor:publish --provider="A1tem\KnowledgeBase\KnowledgeBaseServiceProvider"

发布的组件将放置在您的 resources/js 目录中。组件发布后,您应该在 resources/js/app.js 文件中注册它们,在顶部添加以下内容

require('./knowledge-base/knowledge-base');

之后运行

$ npm run dev

在blade文件中使用它

默认情况下,模块将在 NON_SPA 模式下工作,这意味着您可以直接通过输入URL地址来使用它

  • 查看所有分类

/knowledge-base/view/categories

  • 查看所有文章

/knowledge-base/view/articles

您可以在 resources/views/vendor/a1tem/knowledge-base 文件夹中找到所有发布的视图文件,并按需修改样式。

您还可以修改VUE文件,要找到它们,请导航到 resources/js/knowledge-base/views 文件夹。

在修改vue文件后,别忘了运行 npm run dev 重建资源。

在SPA应用中使用它

  • 如果您想在SPA模式下使用此包,您必须更改 knowledge-base/config.js 文件
MODE: MODE_SPA
  • 然后您必须在路由文件中包含它
import { KNOWLEDGE_BASE_ROUTER } from './knowledge-base/knowledge-base-router';

export default new VueRouter({
  mode: 'history',
  linkActiveClass: 'active',
  routes: [
    {
      path: '/',
      component: Vue.component('Layout', require('./Layout.vue').default),
      children: [
        // Your routes here
      ].concat(KNOWLEDGE_BASE_ROUTER),
    },
  ],
});

您可以通过查看 'knowledge-base/knowledge-base-router.js' 文件并按最适合您应用程序的方式更改它来检查。

配置

您可以配置包的不同方面,请检查 config/knowledge-base.php 文件。

测试

$ composer phpunit

or

$ vendor/bin/phpunit

安全性

如果您发现任何安全相关的问题,请通过电子邮件 artempetrusenko@gmail.com 联系我们,而不是使用问题跟踪器。

致谢

使用

Laravel - 专为Web工匠设计的PHP框架

VueJS - 一个渐进式JavaScript框架

Element - 一个基于Vue 2.0的开发者、设计师和产品经理组件库

Vue2Editor - 使用Vue.js和Quill.js构建的Vue.js富文本编辑器

许可协议

知识库系统是开源软件,采用MIT许可协议。