alexstack / laravel-cms
简单的Bootstrap Laravel CMS。可以集成到任何现有的Laravel项目中。只需添加少量带前缀的数据库表,不会影响您现有的数据库表。支持Laravel 8.x & 7.x & Laravel 6.x & Laravel 5.x - Amila Laravel CMS
1.4.7
2021-05-24 22:07 UTC
Requires
- php: >=7.0.0
- ext-gd: *
- ext-json: *
- alexstack/google-recaptcha-to-any-form: ^1.4
- intervention/image: ^2.4
- intervention/imagecache: ^2.3
- laravel/framework: >=5.5
- laravel/ui: >=1.0
- laravelcollective/html: >=5.5
- overtrue/pinyin: ^4.0
This package is auto-updated.
Last update: 2024-09-25 05:22:55 UTC
README
- 免费、开源的简单Bootstrap Laravel CMS,支持Laravel 8.x或7.x或旧Laravel 6.x & 5.x,支持MySql & MariaDB & PostgreSQL
- 可以与任何现有的Laravel项目集成,作为独立Laravel包安装
- 只需添加少量带前缀的数据库表,不会影响您现有的数据库表。
- 您可以轻松自定义数据库表名、页面URL路径(路由)和模板(主题)
- 安装后网站即可使用。易于使用,足够简单但灵活。
- 基本的Laravel 8.x/ Laravel 7.x /Laravel 6.x / Laravel 5.x语法和Blade模板,无需学习“新语言”
如何为现有Laravel项目安装
- 支持Laravel 8.x & Laravel 7.x & Laravel 6.x & Laravel 5.x
// Make sure you already have laravel installed and configured the database in the .env // Go to your laravel project folder and install it via composer // Initialize the CMS (You can set up database table prefix and locale here) composer require alexstack/laravel-cms && php artisan laravelcms // Now you can access the cms frontend site: http://yourdomain/cms-home // Access the backend with the FIRST USER of your site: http://yourdomain/cmsadmin // Note: The default admin is the first user in your laravel database(user id = 1 )
如何使用最新的Laravel设置全新的CMS网站
- 适用于本地测试,支持最新的Laravel版本
// Step 1: Install Laravel to folder cms composer create-project laravel/laravel cms && cd cms && composer require alexstack/laravel-cms // Step 2: install CMS in silent mode php artisan laravelcms --locale=en --table_prefix=cms_ --silent=yes // Note: it will ask for database settings if you did not change the default .env file // Note: it will automatically run a web server on port 9321 for your project // Step 3: Now, you can access your cms backend via http://127.0.0.1:9321/cmsadmin/ // Default admin username: admin@admin.com password: admin321
如何卸载
// Uninstall the CMS
php artisan laravelcms --action=uninstall
演示 & 文档
安装命令输出截图
卸载命令输出截图
管理面板截图
将区域语言设置为cn而不是en
访问后端 /cmsadmin/ 时出现“Route [login] not defined”错误
- 这意味着您尚未安装Laravel Auth(用户系统)
- 可以通过以下命令修复
// Laravel 6.x & Laravel >= 7 & Laravel >= 8 composer require laravel/ui && php artisan ui vue --auth // Laravel 5.x, run blow command instead php artisan make:auth && php artisan migrate
- 安装Auth包后,请注册第一个用户作为管理员
如何登录后端 /cmsadmin/?
- Amila CMS使用您现有的Laravel用户系统
- 您需要使用您网站的第一个用户(user_id = 1)登录
- 您可以通过更改config/laravel-cms.php中的admin_ary来添加更多管理员用户
- 如果您没有任何现有用户,则可以通过http://your-domain/register注册新用户
为什么上传的图片无法显示(404错误)
- 您可以通过创建存储公共链接来修复它
- php artisan storage:link
- 例如,public/storage应该链接到../storage/app/public,如果public/storage是一个真实的文件夹,您应该删除/重命名它,并运行"php artisan storage:link"来设置链接。
在config/laravel-cms.php中自定义cms路由
- homepage_route:这是前端主页。默认为/cms-home,您可以将它更改为/,然后删除routes/web.php中的现有/路由
# Change homepage_route to / in config/laravel-cms.php 'homepage_route' => env('LARAVEL_CMS_HOMEPAGE_ROUTE', '/'), # Remove the existing / route in the routes/web.php // Route::get('/', function () { // return view('welcome'); // });
- page_route_prefix:这是前端页面前缀。默认为/cms-,它将匹配路径如/cms-*。您可以将它更改为文件夹如/xxx/或任何类似xxx-的内容,例如页面-文章-
'page_route_prefix' => env('LARAVEL_CMS_PAGE_PREFIX', '/Article-'),
- admin_route:这是后端管理页面路由,默认为/cmsadmin
'admin_route' => env('LARAVEL_CMS_BACKEND_ROUTE', '/admin2019'),
- 更改路由后,您需要运行以下命令
php artisan laravelcms --action=clear
在前端Laravel .blade.php模板文件中以不同大小显示图片
- .blade.php代码示例
@if ( isset($file_data->main_image) ) <img src="{{$helper->imageUrl($file_data->main_image, '1000') }}" class="img-fluid" /> <img src="{{$helper->imageUrl($file_data->main_image, '500') }}" class="img-fluid" /> <img src="{{$helper->imageUrl($file_data->main_image, 'w', '150') }}" class="img-fluid" /> <img src="{{$helper->imageUrl($file_data->main_image, '100', '100') }}" class="img-fluid" /> <img src="{{$helper->imageUrl($file_data->main_image, 'original', 'original') }}" class="img-fluid" /> @endif
- 您可以获取任何宽度和高度的图片。或使用原始图片。
- 可用的图像变量:$file_data->main_image, $file_data->main_banner, $file_data->extra_image, $file_data->extra_image_2
- 内容管理系统(CMS)将首次调整图像大小,之后将直接使用。
如何更改前端(Frontend)的CSS和JS资产?
- 资产文件位于public/laravel-cms/
,例如:public/laravel-cms/frontend/css - 加载CSS或JS的示例代码
<link rel="stylesheet" href="{{ $helper->assetUrl('css/main.css') }}"> ... <script src="{{ $helper->assetUrl('js/bottom.js') }}"></script>
- 默认模板文件将通过last_modify_time参数加载CSS和JS资产,以避免浏览器缓存
如何设置与默认模板不同的模板主题?
- 将默认主题文件夹 /resources/views/laravel-cms/frontend 复制到 /resources/views/laravel-cms/new_theme
- 在设置页面中将 frontend_dir 更改为 new_theme
- config/laravel-cms.php中的默认值
'template' => [ 'frontend_dir' => 'frontend', 'backend_dir' => 'backend', 'backend_language' => 'en', 'frontend_language' => 'en', ]
- 运行 php artisan config:cache 来加载新的配置文件
- 在后台更改页面模板设置
- CSS/JS资产文件将位于public/laravel-cms/new_theme
在config/laravel-cms.php中设置页面SEO URL的默认slug格式和后缀
- 您可以在设置页面中更改它
- 'slug_format' 可以是 from_title, id, pinyin
- 'slug_suffix' 可以是您想要的任何内容,空表示无后缀
'slug_format' => 'from_title', 'slug_suffix' => '.html', 'slug_separate' => '-',
使用您自己的PHP类 / 如何将您的PHP代码集成到CMS中
- 一个简单的选项是实现您自己的PHP控制器/类中的方法,并将其添加到CMS页面中。 有关教程。
- 另一个选项是为您的项目创建一个CMS插件,并在所有页面上使用它。 教程在此。 如果该功能可由其他网站使用,您还可以发布此插件。
如何升级CMS?
- 在您的Laravel项目文件夹中运行以下命令
- 它将询问您是否想要将新的视图、资产和语言文件复制到您的项目中
composer require alexstack/laravel-cms && php artisan laravelcms --action=upgrade
- 升级截图
ReactJS后端所有页面列表
- Laravel CMS使用ReactJS作为后端所有页面列表,ReactJS源代码可在此处找到
- 编译后的js文件在此:/public/laravel-cms/backend/js/reactLaravelCmsBackend.js
- 可以通过将设置系统.all_pages中的"react_js": true更改为false来切换到正常的Laravel blade页面
您支持哪些PHP版本?
- Amila Laravel CMS在PHP 7.1, 7.2, 7.3, 7.4上通过了基本测试
支持的Laravel版本
- cms版本 >= 1.4.4,支持所有laravel版本 >= 6.0
- cms版本 <= 1.4.3:支持Laravel 5.x, 6.x, 7.x, 8.x
- 如果现有项目的Laravel版本为5.x,请安装版本1.4.3
如何使用PostgreSQL而不是MySql或MariaDB?
- 确保在运行安装命令行之前更改了.env文件。示例
DB_CONNECTION=pgsql DB_HOST=topsy.db.elephantsql.com DB_PORT=5432 DB_DATABASE=oktetra DB_USERNAME=oktetra DB_PASSWORD=the-postgresql-password
如何在AWS s3上存储和访问文件?
-
在AWS上:创建一个s3存储桶,并将其设置为静态网站托管,允许所有公开访问并设置s3:GetObject Bucket策略,为API使用创建一个IAM用户。
-
Laravel .env文件,设置以下变量
AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION= AWS_BUCKET= FILESYSTEM_DRIVER=s3 AWS_URL=
-
composer require league/flysystem-aws-s3-v3 ^1.0
-
完成
如何安装laravel/jetstream或其他UI而不是laravel/ui?
// Step 1: Install Laravel to folder cms composer create-project laravel/laravel cmsjet && cd cmsjet && composer require laravel/jetstream // Step 2: install jetstream php artisan jetstream:install inertia && npm install && npm run dev // Step 3: install CMS in silent mode composer require alexstack/laravel-cms && php artisan laravelcms --locale=en --table_prefix=jet_ --silent=yes // Step 4: Edit routes/web.php - Remove or comment Auth::routes(); - Change Route::get('/' to Route::get('/welcome' - Run command: php artisan laravelcms --action=clear // Step 5: Now, you can access your cms backend via http://127.0.0.1:9321/cmsadmin/ // Default admin username: admin@admin.com password: admin321
如何在HeroKu上安装它?
- 本地:首先在您的本地安装它,并确保一切正常工作
- 本地:为laravelcms文件夹创建一个GitHub仓库。例如:cd cms && git init && git remote add origin https://github.com/xxx.git
- 本地:要使用Nginx/apache与PHP一起使用,在cms文件夹中添加一个名为Procfile的文件,内容如下
- HeroKu:从此GitHub仓库创建一个新应用,并启用自动部署
- 本地:要使用Nginx/apache与PHP一起使用,在cms文件夹中添加一个名为Procfile的文件,内容如下
web: vendor/bin/heroku-php-apache2 public/
- HeroKu:添加Dyno配置:web vendor/bin/heroku-php-apache2 public/
- HeroKu:将.env变量添加到设置 -> 配置变量
- 完成
许可证
- Amila Laravel CMS 是开源软件,许可协议为 MIT 协议。