huantime/laravel-cms

This package is abandoned and no longer maintained. No replacement package was suggested.

Simple Bootstrap Laravel CMS for any EXISTING or new Laravel website. Only add few database tables with prefix, not effect your existing database tables. Support both Laravel 5 & Laravel 6. Amila Laravel CMS

1.3.0 2019-10-18 06:11 UTC

README

Amila Laravel CMS

image Laravel CMS image Latest Stable Version

  • Free, open source Simple Bootstrap Laravel CMS for any EXISTING Laravel 5.x or new Laravel 6 website.
  • Only add a few database tables with prefix, not effect your existing database tables.
  • You can easy custom the database table names, the page URL path(route) and the template(theme)
  • Website is ready after install. Easy to use, simple enough but flexible.
  • Basic Laravel 5.x /Laravel 6.x syntax and blade template, no need to learn a new "language"

How to install & uninstall (Support Laravel 5.x & Laravel 6.x)

// Make sure you already configured the database in the .env
// Go to the 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

// Uninstall the CMS
php artisan laravelcms --action=uninstall

Demo & Documents

Screenshot of the output of install command

image

Screenshot of the output of uninstall command

image

Screenshot of the admin panel

image image image

Set locale language to cn instead of en

cn_image

Error "Route [login] not defined" while access the backend /cmsadmin/

  • This means you did not install Laravel Auth
  • Can be fixed by the below commands:
// Laravel 5.x
php artisan make:auth && php artisan migrate
// Laravel 6.x
composer require laravel/ui && php artisan ui vue --auth

How to log into the backend /cmsadmin/ ?

  • Amila CMS use your existing Laravel user system
  • You need to login with the FIRST USER of your site (user_id = 1)
  • You can add more admin users by change the admin_ary in config/laravel-cms.php
  • If you don't have any existing user, then register a new one via http://your-domain/register

Why the uploaded image can not display (404 error)

  • You can fix it by create a storage public link
  • php artisan storage:link
  • eg. The public/storage should link to ../storage/app/public, if the public/storage is a real folder, you should remove/rename it and run "php artisan storage:link" to set up the link.

Custom the cms route in config/laravel-cms.php

  • homepage_route: This is the frontend homepage. By default it is /cms-home, you can change it to / then remove the existing / route in the 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: This is the frontend page prefix. By default it is /cms-, it will match path like /cms-*. You can change it to a folder like /xxx/ or anything like xxx-, eg. Page- Article-
'page_route_prefix' => env('LARAVEL_CMS_PAGE_PREFIX', '/Article-'),
  • admin_route: This is the backend admin page route, By default it is /cmsadmin
'admin_route'       => env('LARAVEL_CMS_BACKEND_ROUTE', '/admin2019'),
  • After change the route, you will need to run below commands:
php artisan laravelcms --action=clear

Display an image with different size in the frontend Laravel .blade.php template file

  • .blade.php Code examples:
@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
  • You can get an image with any width and height. or use the original image.
  • Available image variables: $file_data->main_image, $file_data->main_banner, $file_data->extra_image, $file_data->extra_image_2
  • The CMS will resize the image at the first time, then will directly use it afterwards.

How to change the CSS & JS assets of the frontend?

  • The asset files located at public/laravel-cms/<theme_name>, eg. public/laravel-cms/frontend/css
  • Example code to load css or js:
<link rel="stylesheet" href="{{ $helper->assetUrl('css/main.css') }}">
...
<script src="{{ $helper->assetUrl('js/bottom.js') }}"></script>
  • The default template file will load css and js asset with last_modify_time parameter to avoid cache from browser

How to set up a different template theme from the default?

  • Copy the default theme folder /resources/views/laravel-cms/frontend to /resources/views/laravel-cms/new_theme
  • Change the frontend_dir in the settings page to new_theme
  • Default value in config/laravel-cms.php
    'template' => [
        'frontend_dir'      => 'frontend',
        'backend_dir'       => 'backend',
        'backend_language'  => 'en',
        'frontend_language' => 'en',
    ]
  • run php artisan config:cache to load new config file
  • Change template settings for the pages in the backend
  • The css/js asset files will locate at public/laravel-cms/new_theme

Set default slug format and suffix for page SEO URL in config/laravel-cms.php

  • You can change it in the settings page
  • 'slug_format' can be from_title, id, pinyin
  • 'slug_suffix' can be anything you want, empty means no suffix
    'slug_format'   => 'from_title',
    'slug_suffix'   => '.html',
    'slug_separate' => '-',

How to set up a brand new Laravel 6.x website & install our CMS

  • It's good for a local test
// Install Laravel 6.x & the CMS package
composer create-project --prefer-dist laravel/laravel cms && cd cms && composer require alexstack/laravel-cms

// Then you need to change the database settings in the .env, after that initialize CMS
cd cms & vi .env
php artisan laravelcms

// Or initialize the CMS with silent mode
php artisan laravelcms --action=initialize --locale=en --table_prefix=cms_  --silent=yes

// Enable auth system for Laravel 6.x
composer require laravel/ui && php artisan ui vue --auth && php artisan migrate

// Config the document root to point to the cms/public then you can access the backend
// Tips: You will need register a new user, the first user will be the admin user

How to upgrade the CMS?

  • Run below command in your Laravel project folder
  • It will ask whether you want to copy the new view,asset and language files to your project
composer require alexstack/laravel-cms && php artisan laravelcms --action=upgrade
  • Upgrade screenshot

image

License

  • The Amila Laravel CMS is open-source software licensed under the MIT license.