alexstack/laravel-cms

简单的Bootstrap Laravel CMS。可以集成到任何现有的Laravel项目中。只需添加少量带前缀的数据库表,不会影响您现有的数据库表。支持Laravel 8.x & 7.x & Laravel 6.x & Laravel 5.x - Amila Laravel CMS


README

image Laravel CMS image Latest Stable Version

  • 免费、开源的简单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

演示 & 文档

安装命令输出截图

image

卸载命令输出截图

image

管理面板截图

image image image

将区域语言设置为cn而不是en

cn_image

访问后端 /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
  • 升级截图

image

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 协议。