binshops / laravel-blog
为 Laravel (6.x 和 7.x) 提供的简单博客包(带有管理面板)。包括所有视图、控制器、路由,可以将博客添加到任何现有的 Laravel 应用程序中。完全可定制的博客(视图、URL 和许多其他选项)。包括图片上传和美观的管理界面来管理您的博客。默认为
Requires
- cviebrock/eloquent-sluggable: ^10.0|^9.0|~8.0|~7.0|~6.0|~4.8|~4.7|~4.6|~4.5
- intervention/image: 2.*
- laravel/helpers: ^1.3
Requires (Dev)
- dev-master
- v9.3.6
- v9.3.5
- v9.3.4
- v9.3.3
- v9.3.2
- v9.3.1
- v9.3.0
- v9.2.9
- v9.2.8
- v9.2.7
- v9.2.6
- v9.2.5
- v9.2.4
- v9.2.3
- v9.2.2
- v9.2.1
- v9.2.0
- v9.1.1
- v9.1.0
- v9.0.16
- v9.0.15
- v9.0.14
- v9.0.13
- v9.0.12
- v9.0.11
- v9.0.10
- v9.0.9
- v9.0.8
- v9.0.7
- v9.0.6
- v9.0.5
- v9.0.4
- v9.0.3
- v9.0.2
- v9.0.1
- v8.2.0
- v8.1.7
- v8.1.6
- v8.1.5
- v8.1.4
- v8.1.3
- v8.1.2
- v8.1.1
- v8.1.0
- v8.0.8
- v7.3.2
- dev-develop
- dev-single-lang-main
This package is auto-updated.
Last update: 2024-09-23 11:24:43 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- 框架
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 多语言支持Beta发布
- 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 - 初次发布。