webdevetc/blogetc

Simple blog (with admin panel) for Laravel from https://webdevetc.com/


README

  • Quickly add a blog with admin panel to your existing Laravel project. It has everything included (routes, views, controllers, middleware, etc)
  • Works with latest version of Laravel.

Build Status StyleCI Latest Stable Version Total Downloads License Scrutinizer Code Quality Code Coverage

Recent changes (May/June 2020) including recent installation instructions:

  • This package no longer uses \App\User::canManageBlogEtcPosts() to check if a user can access the admin panel.
  • Instead it now uses a Laravel gate. This is currently backwards compatible without any edits.
  • For new installations please add the following to App\Providers\AuthServiceProvider:
   Gate::define(GateTypes::MANAGE_BLOG_ADMIN, static function (?Model $user) {
       // Implement your logic here, for example:
       return $user && $user->email === 'your-admin-user@your-site.com';
       // Or something like `$user->is_admin === true`
   });
  • The old way (using the canManageBlogEtcPosts() method on User.php) will still work but it is not recommended. At some point in the future it will be removed.

(Readme on webdevetc.com will be updated soon)

Blog Package for Laravel

This is WebDevEtc's BlogEtc Blog package for Laravel. It has everything you need to quickly and easily add a blog to your laravel app.

For installation instructions please read the Laravel blog install guide here

Install guidePackagist << They're simple, but must be followed.

Features

  • Includes all views, routes, models, controllers, events, etc
    • Public facing pages:
      • View all posts (paginated)
      • View all posts in category (paginated)
      • View single post
      • Add comment views / confirmation views
      • Search, search form, search results page.
    • Admin pages:
      • Posts (CRUD Blog Posts, Upload Featured Images (auto resizes)
        • View all posts,
        • Create new post,
        • Edit post,
        • Delete post
      • Categories (CRUD Post Categories)
        • View all categories,
        • Create new category,
        • Edit post,
        • Delete post
      • Comments (including comment approvals)
        • View all comments,
        • Approve/Moderate comment,
        • Delete comment
      • Upload images
        • as well as uploading featured images for each blog post (and auto resizing to multiple defined sizes), you can upload images separately.
        • view all uploaded images (in multiple sizes)
  • Includes admin panel
    • Create / edit posts
    • Create / edit post categories
    • Manage (approve/delete) submitted comments
  • Allows each blog post to have featured images uploaded (you can define the actual dimensions) - in large, medium, thumbnail sizes
  • fully configurable via its config/blogetc.php config file.
  • Includes all required view files, works straight away with no additional setup. All view files (Blade files) use Bootstrap 4, and very clean HTML (easy to get your head around). You can easily override any view file by putting files in your /resources/views/vendor/blogetc/ directory
  • Built in comments (using the database), can auto approve or require admin approval (comment moderation).
    • Other options include using Disqus comments or disabling comments.
  • Includes unit/feature tests, run automatically on Travis CI.
  • Fires events for any database changes, so you can easily add Event Listeners if you need to add additional logic.
  • < 5 minute install time and your blog is up and working, ready for you to go to the admin panel and write a blog post - see full details below, but this is a summary of the required steps:
    • install with composer,
    • do the database migration, copy the config file over (done with php artisan vendor:publish)
    • chmod/chown the public/blog_images/ directory so featured images can be uploaded for each blog post
    • and then add a gate to AuthServiceProvider (see note above)
    • but please see the install instructions to get everything up and working

How to customise the blog views/templates

This is easy to do, and further details can be found in our BlogEtc Laravel Blog Package Documentation.

After running the vendor:publish command, all of the default template files will be found in /resources/views/vendor/blogetc/ and are easy to edit to match your needs.

Missing /auth/register?

If you are installing on a fresh install of Laravel (which no longer includes auth built in) then the following must be ran:

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

Issues, support, bug reports, security issues

Please contact me on the contact from on WebDev Etc or on twitter and I'll get back to you ASAP.

Versions

  • 8.4 (Sept 2020): Added support for Laravel 8. Removed support for PHP 7.2
  • 8.3 (Sept 2020): Removed support for swisnl/laravel-fulltext as it seems abandoned.
    • Searching in blogetc is now much more simple - it is all inline in the controller and does a simple LIKE query.
    • If you need full text search then I recommend you implement your own search controller (see older commits to copy code that used full text search)
  • 8.2 (Sept 2020): Added fix for dynamic title
  • < 8.1 Support for PHP 7.2, 7.3, 7.4. Support for Lavavel 5.8.35 - 7.6