atrakeur/forum

此包已被弃用且不再维护。作者建议使用 riari/laravel-forum 包。

一个适用于在Laravel构建的任何网站中集成的完整论坛包

dev-master 2015-07-31 19:42 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:36:27 UTC


README

** 注意:由于我没有时间再对其进行改进,此包现已停用。然而,一位好心的家伙基于我的工作进行了分支并进行了改进,现在正在维护它。我建议您查看 这个仓库 以获取新版本。此仓库仅用于文档目的。请将您的pull请求和问题提交到Riari的仓库中。**

Build Status Scrutinizer Code Quality

目标

此包旨在为在Laravel应用程序中实现论坛提供一个良好的起点。它专注于处理论坛创建的所有繁琐和重复性工作(类别、子类别、主题、消息)。让您有更多时间专注于网站功能和论坛如何与您的应用程序集成。此包将提供多个钩子,如特殊事件和自定义闭包,以允许您自定义其行为。此外,您还可以扩展论坛的核心类,以直接在核心中实现您自己的方法。

此包尚未完成,欢迎通过pull请求一起改进此包。

安装

导入包

要安装,只需将以下行添加到您的composer .json中,并运行composer update

"atrakeur/forum": "dev-master"

然后添加以下服务提供者到您的app.php

'Atrakeur\Forum\ForumServiceProvider',

集成到您的应用程序中

在执行以下步骤之前,在某些情况下(L4),您可能需要先运行composer更新,因此

composer update

并且,为了安全起见,运行

composer dump-autoload

现在将论坛文件直接发布到您的Laravel应用程序中: php artisan config:publish atrakeur/forum php artisan migrate:publish atrakeur/forum

如果一切顺利,您应该在app/config/packages/atrakeur/forum中找到配置文件,并在app/database/migrations中找到三个新的迁移文件。

现在,您可以使用默认的Laravel命令 php artisan migrate 创建数据库模式。

为了使您能够完全自定义包以符合您的网站,该包使用两个应用程序级别的控制器集成到您的应用程序中。运行命令 php artisan forum:install 以在您的app/controllers文件夹中自动部署控制器。(请注意,如果已存在具有相同名称的文件,则上述命令将在覆盖您的文件之前失败。)

自定义

要调整视图,请使用Laravel命令将其发布到您的视图文件夹

php artisan view:publish atrakeur/forum

最后一步需要创建一些类别和子类别到论坛_categories表中。模式非常基本,您应该能够使用Laravel seeds自己完成(待补充:提供一些示例)

现在,您可以开始了,只需加载 https:///forum ,您应该看到一个全新的论坛。

有关如何将其与您的登录系统集成,详细信息请参阅配置文件注释。(待办事项:提供一些示例)默认情况下,它应该可以在Laravel默认认证下正常运行。

功能

此包目前处于(非常)alpha阶段,因此以下所有功能可能尚未启用。不过,请随时在https://github.com/atrakeur/laravel-forum/issues 上发布问题和功能请求。我会根据您的帮助尽快修复和改进此包!

  • 二级分类嵌套
  • 分类内的主题和消息
  • 简单用户集成(通过配置文件和回调函数实现)
  • 简单用户权限集成(通过配置文件和回调函数实现)
  • 发布消息(带有应用程序集成的钩子)
  • 轻量级且快速(设计时考虑了缓存和高速)
  • 基于Bootstrap设计(简洁的标记,无杂乱的CSS,可以直接集成到您的网站中)

事件

此包提供各种事件作为钩子,使您能够在其论坛功能之上实现自己的功能。以下为所有事件的完整列表以及它们被触发的时间。当提供参数时,您可以使用此参数更改论坛的内部对象以符合您的需求。

事件 参数 用法
forum.new.topic $topic 在主题保存之前调用。可以用来修改主题内容
forum.new.message $message 在消息保存之前调用。可以用来修改消息内容
forum.saved.topic $topic 在主题保存之后调用。可用于记录目的
forum.saved.message $message 在消息保存之后调用。可用于记录目的