hessam/laravel-blogger

此包已被弃用且不再维护。作者建议使用binshops/laravel-blog包代替。

适用于Laravel(6.x和7.x)的简单博客包(包含管理面板)。包含所有视图、控制器、路由,并可以将博客添加到任何现有的Laravel应用中。完全可定制的博客(视图、URL以及许多其他选项)。包含图片上传和美观的管理界面以管理您的博客。默认为

v9.3.6 2023-06-07 17:55 UTC

README

Laravel博客包

轻量级且易于安装

轻量级的Laravel博客包具有令人难以置信的功能。

  • 快速安装(<3分钟)
  • 扩展非常简单
  • 开箱即用功能强大
  • 其简洁性允许轻松与最新版本的Laravel兼容
  • 除了Laravel知识外,没有其他概念

卓越功能

  • 全文搜索 - 搜索所有博客文章
  • 多级分类 - 使用Baum的嵌套集
  • 多语言支持

快速简单安装(多语言版本)

1- 通过composer安装

composer require binshops/laravel-blog

对于新的Laravel安装,运行以下命令

composer require laravel/ui
php artisan ui vue --auth

2- Scaffold

npm install && npm run build

3- 运行以下两个命令以复制配置文件、迁移文件和视图文件

php artisan vendor:publish --provider="BinshopsBlog\BinshopsBlogServiceProvider"

4- 执行迁移以创建表

php artisan migrate;

5- 您必须在您的 \App\User(在laravel 8 \App\Models\User)模型中添加一个方法。正如该方法的名称所示,它确定哪些用户可以管理帖子。在那里放置您的逻辑

 /**
     * Enter your own logic (e.g. if ($this->id === 1) to
     *   enable this user to be able to add/edit blog posts
     *
     * @return bool - true = they can edit / manage blog posts,
     *        false = they have no access to the blog admin panel
     */
    public function canManageBinshopsBlogPosts()
    {
        // Enter the logic needed for your app.
        // Maybe you can just hardcode in a user id that you
        //   know is always an admin ID?

        if (       $this->id === 1
             && $this->email === "your_admin_user@your_site.com"
           ){

           // return true so this user CAN edit/post/delete
           // blog posts (and post any HTML/JS)

           return true;
        }

        // otherwise return false, so they have no access
        // to the admin panel (but can still view posts)

        return false;
    }

6- 在 public/ 中创建一个名为 blog_images 的目录

7- 启动服务器

php artisan serve

8- 以管理员身份登录并设置您的包:/blog_admin/setup

恭喜!您的博客已准备好使用。(URL在配置文件中可自定义)

管理面板URI:/blog_admin 前端URI:/en/blog

要查看Packagist上的包,请点击此链接

单语言版本

要安装包的单语言版本,请使用版本v8.1x

1- composer require binshops/laravel-blog:v8.2.0

2- php artisan vendor:publish --provider="BinshopsBlog\BinshopsBlogServiceProvider"

3- php artisan vendor:publish --tag=laravel-fulltext

4- php artisan migrate;

您可以在“single-lang”分支中看到单语言版本。与多语言版本的主要区别在于数据库结构。

重要说明

  • 对于laravel 8.x的默认auth User模型,将binshopsblog.php中的用户模型更改为:\App\Models\User::class

功能

  • 与最新版本的laravel兼容(laravel 8.x)
  • 向下兼容之前版本的laravel
  • 全文搜索 - 在博客文章中搜索
  • 支持多级分类
  • 通过其config/binshopsblog.php配置文件进行完全配置
  • 准备好使用的管理面板
  • 完全自定义管理视图和前端视图
  • 分页视图
  • 上传图片的能力
  • 管理帖子、分类
  • 管理评论和评论批准
  • 其他选项包括使用Disqus评论或禁用评论

最近更改

  • 9.1.x 多语言支持
  • 8.0.x 与 Laravel 8.x 兼容性

本包适用于谁/什么

  • 适用于运行 Laravel 的网站
  • 任何想要拥有一个网站博客的人。这个 Laravel 博客提供了一个易于使用的界面来撰写博客文章/分配分类/管理现有文章
  • 只有管理员用户可以编辑/管理博客(这并不适合让网站上每个用户都能管理文章)
  • 适用于喜欢将类似 WordPress 的 Laravel 博客添加到 Laravel 网站的人

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

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

自定义管理视图

如果您需要自定义管理视图,只需将文件从 vendor/binshopsblog/src/Views/binshopsblog_admin 复制到 resources/views/vendor/binshopsblog_admin 然后您可以像修改任何其他视图文件一样修改它们。

路由

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

配置选项

所有配置选项都有注释,说明它们的功能。请参考您 /config/ 目录中的 binshopsblog.php 文件。

自定义用户模型

您可以通过配置文件更改默认用户模型。

事件

您可以在 /src/Events 目录中找到所有触发的事件。

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

内置 CAPTCHA/反垃圾邮件

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

内置了基本的反垃圾邮件 CAPTCHA 函数。

请参阅 config/binshops.php 中 captcha 部分。有一个内置系统(基本!)可以防止大多数自动化垃圾邮件尝试。编写您自己的 CAPTCHA 系统

我故意将 CAPTCHA 系统写得很简单,这样您就可以添加自己的 CAPTCHA 选项。添加任何其他 CAPTCHA 系统到这应该很容易。

如果您想自己编写实现,请创建自己的类,实现 \BinshopsBlog\Interfaces\CaptchaInterface,然后更新 config/binshopsblog.php 文件(更改 captcha_type 选项)。

您需要实现三个方法:public function captcha_field_name() : string

返回一个如 "captcha" 的字符串。它用于表单验证。public function view() : string

binshops::partials.add_comment_form 视图应包含什么视图文件?您可以将其设置为任何您需要的,然后创建自己的视图文件。默认包含的基本 CAPTCHA 类将返回 "binshops::captcha.basic"。public function rules() : array

返回一个规则数组(这些只是标准的 Laravel 验证规则。这是检查 CAPTCHA 是否成功的地方。可选:public function runCaptchaBeforeShowingPosts() : null

这不是接口的一部分,不是必需的。默认情况下,它什么也不做。但您可以在该方法中添加一些代码,它将在 BinshopsReaderController::viewSinglePost 方法中运行。

图片上传错误

尝试将其添加到 config/app.php

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

版本历史

  • 9.3.x 包的稳定版本
  • 9.0.x 多语言支持测试版
  • 8.0.x 与 Laravel 8 兼容性
  • 7.3.0 新的管理 UI
  • 3.0.1 - 将所有短标签 (<?) 替换为完整的开标签 (<?php)
  • 2.0 - 增加了全文搜索功能(通过配置文件启用,默认禁用)。
  • 1.1.1 - 增加了基本验证码。
  • 1.0.5 - composer.json 文件变更。
  • 1.0 - 首次发布。
  • 0.1 - 初次发布。