m4tlch/laravel-blog

基于webdevetc/m4blog的Laravel博客(包含管理面板)

v1.3.6 2019-01-13 19:57 UTC

This package is auto-updated.

Last update: 2024-09-22 18:15:27 UTC


README

添加完整博客(包含管理后端)到您的Laravel应用的简单安装Laravel包

5分钟安装!快速简单!

简介

这是WebDevEtc的 M4Blog包。它包含了您快速轻松添加博客到Laravel应用所需的一切。

请访问此处获取5分钟安装指南(带视频教程)

安装指南Packagist << 请务必遵循说明。它们很简单,但必须遵循。

特性

  • 包含所有视图、路由、模型、控制器、事件等
    • 面向公众的页面
      • 查看所有帖子(分页)
      • 查看分类中的所有帖子(分页)
      • 查看单个帖子
      • 添加评论视图/确认视图
      • 搜索(全文搜索)、搜索表单、搜索结果页面。
    • 管理页面
      • 帖子 (CRUD博客帖子,上传特色图片(自动调整大小)
        • 查看所有帖子,
        • 创建新帖子,
        • 编辑帖子,
        • 删除帖子
      • 分类 (CRUD帖子分类)
        • 查看所有分类,
        • 创建新分类,
        • 编辑帖子,
        • 删除帖子
      • 评论 (包括评论批准)
        • 查看所有评论,
        • 批准/管理评论,
        • 删除评论
      • 上传图片
        • 以及上传每个博客帖子的特色图片(自动调整到多个定义的大小),您还可以单独上传图片。
        • 查看所有上传的图片(多个尺寸)
  • 包含管理面板
    • 创建/编辑帖子
    • 创建/编辑帖子分类
    • 管理(批准/删除)提交的评论
  • 允许每个博客帖子上传特色图片(您可以定义实际尺寸) - 在大、中、缩略图尺寸下
  • 完全通过其config/m4blog.php配置文件配置。
  • 包含所有必需的视图文件,无需额外设置即可直接使用。所有视图文件(Blade文件)使用Bootstrap 4,并且非常干净的HTML(易于理解)。您可以通过在/resources/views/vendor/m4blog/目录中放置文件来轻松覆盖任何视图文件
  • 内置评论(使用数据库),可以自动批准或要求管理员批准(评论管理)。
    • 其他选项包括使用Disqus评论或禁用评论。
  • 包含单元测试。
  • 对数据库的任何更改都会触发事件,因此您可以轻松添加事件监听器以添加额外的逻辑。
  • < 5分钟安装时间,您的博客即可上线并运行,准备好进入管理面板编写博客帖子 - 下面是详细步骤,但这是所需步骤的摘要
    • 使用Composer安装,
    • 进行数据库迁移,复制配置文件(使用php artisan vendor:publish完成),
    • 更改public/blog_images/目录的权限和所有权,以便为每个博客帖子上传特色图片。
    • 然后在您的 \App\User 文件中添加 1 个方法(canManageM4BlogPosts()
    • 但请参阅安装说明以了解如何使一切正常运行

此包适用于谁/什么

  • 适用于运行 Laravel(5.6)的网站
  • 想要拥有网站博客,并且有一个易于使用的界面来撰写博客文章/分配类别/管理现有文章
  • 仅管理员用户可以编辑/管理博客(这并不适合让您的网站上每位用户都能管理文章)
  • 您了解文章可能(可能)包含 JS 或任何其他代码,因此您应该只允许受信任的管理员用户添加/编辑/删除/管理博客文章

此包不适用于什么

  • 您想要让您的(普通、非管理员)用户撰写博客文章的网站。您必须在您的用户模型上设置 canManageM4BlogPosts() 以仅允许受信任的用户。

重要注意事项

  1. 任何可以管理博客文章的人(由您添加到用户模型中的 canManageM4BlogPosts() 方法定义)都可以提交任何要输出的 HTML。这是一个安全问题。如果您不信任内容,请在输出之前添加自定义视图并转义博客内容,并将配置中的 use_custom_view_files 设置为 false。

  2. 如果配置中启用了 use_custom_view_files(默认情况下是启用的),这意味着任何设置了自定义视图文件的帖子(详情请参阅文档)可以包含 /resources/views/custom_blog_posts 中的任何文件,Blade 将执行这些文件。不过,此包没有提供方法来编辑该目录中的任何文件。

如何将 M4Blog 安装到您的 Laravel 应用中

请参阅我们的 M4Blog Laravel 博客包文档/安装指南 了解安装说明。(非常简单 - 通过 composer/artisan 命令完成,还需要在您的 \App\User 模型中添加一个方法 canManageM4BlogPosts(),如果此用户可以管理博客,则应返回 true)。

如何自定义博客视图/模板

这很简单,更多详情请参阅我们的 M4Blog Laravel 博客包文档

在正确执行 vendor:publish 后,所有默认模板文件都将在 /resources/views/vendor/m4blog/ 中找到,并且很容易进行编辑以符合您的需求。

路由

它将自动设置所有必需的路由(公共界面和后台管理)。有一些配置选项(例如,将 /blog/ URL 更改为其他名称),可以在 m4blog.php 文件中完成。

配置选项

有关详细信息,请参阅M4Blog 配置选项文档

所有配置选项都有注释来描述它们的作用。请仅参考您 /config/ 目录中的 m4blog.php 文件。

事件

您可以通过查看 /src/Events 目录来找到所有触发的事件。

将这些(以及事件监听器)添加到您的 EventServiceProvider.php 文件中,以便在事件触发时使用这些事件。

内置 CAPTCHA/反垃圾邮件

内置了一个 CAPTCHA(反垃圾邮件评论)系统,您可以用自己的实现轻松替换。

有关更多详情,请参阅我们的 CAPTCHA 文档

待办事项

这是一个我想最终完成的功能或事项列表

  • 更好的上传图像/查看上传图像的 UI
  • 将上传的图像链接到博客文章。目前它们没有关联。
  • 允许用户从博客文章中移除特色图像。
  • 使用 HTMLPurifier 清理输出的选项。
  • 为分配帖子作者提供更好的选项(目前只是分配当前登录用户)。然而,如果网站有10,000个以上的用户,我们真的需要为此提供一个UI界面吗?另一种方法是向users表添加一个类似is_admin的字段,并只显示管理员用户。
  • 可能添加标签(我们已经有分类了),但鉴于我们已经有分类,我不确定它们真的有多有用。
  • 对单个帖子视图的评论进行分页?目前我们将其限制在一个较高的数量(配置文件中的默认值为5000)。
  • RSS订阅源:显示从完整内容(去除标签)到博客帖子HTML的转换(尽管它有一个setTextLimit()方法)- 需要修剪这个,如果它使用自定义视图文件,则应该渲染该文件(不包含HTML)。
  • 当添加新评论时向管理员发送电子邮件通知
  • RSS使用generate_introduction()生成内容。

近期更改

  1. 添加了全文搜索和搜索视图。您必须在配置文件中启用它(参见最新的配置文件)
  2. 需要默认的3种图像尺寸以外的更多尺寸?在config/m4blog.php文件中添加更多,添加数据库列,它就会工作!

有问题,有什么地方不工作吗?

图像上传错误?

尝试将以下内容添加到config/app.php

'Image' => Intervention\Image\Facades\Image::class
  • 同时确保/tmp是可写的。如果您启用了open_basedir,请确保将其值添加为:/tmp。
  • 确保服务器可以写入/public/blog_images(或您在配置中设置的任何目录)
  • 您可能需要设置更高的内存限制,或上传更小的图像文件。这取决于您的服务器。我已经用它上传了巨大的(10mb+)jpg图像而没有问题,一旦服务器正确设置以处理较大的文件上传。

版本历史

  • 3.1 - 些小的修复
  • 3.0.3 - 修复了RSS订阅源缓存问题
  • 3.0.2 - 修复了默认中等图像尺寸(更改为600x400)
  • 3.0.1 - 将所有短标签(?)替换为完整的开启标签(?php)
  • 3.0 - 添加了单独的上传图像功能(并在数据库中保存一些元数据)
  • 2.1 - 在数据库和表单中添加了'short_description',M4BlogPost::generate_introduction()方法将尝试使用此生成简介文本。
  • 2.0 - 添加了全文搜索(通过配置文件启用 - 默认情况下已禁用)。
  • 1.2 - 添加了WYSIWYG,一些较小的更改
  • 1.1.1 - 添加了基本的验证码
  • 1.0.5 - composer.json更改。
  • 1.0 - 首次发布
  • 0.3 - 一些小的更改,packagist设置。
  • 0.1 - 首次发布

问题,支持,错误报告,安全问题

请联系我,请通过WebDev Etc上的联系表单或在twitter上,我将尽快回复您。