novius/laravel-nova-news

A Laravel Nova package for news and blog posts management

0.1.0 2024-02-19 10:12 UTC

This package is auto-updated.

Last update: 2024-04-19 10:53:16 UTC


README

Novius CI

Introduction

This Laravel Nova package allows you to manage Post news in your Laravel Nova admin panel.
You will be able to create posts, categories and tags.
You can attach multiple categories and tags to a post. Categories can be viewed as a listing page.

Requirements

  • Laravel Nova >= 4.0
  • Laravel >= 8.0

Installation

You can install the package via composer:

composer require novius/laravel-nova-news

Register the tool in the tools method of the NovaServiceProvider:

// app/Providers/NovaServiceProvider.php

public function tools()
{
    return [
        // ...
        new \Novius\LaravelNovaNews\LaravelNovaNews(),
    ];
}

Run migrations with:

php artisan migrate

Configuration

You can optionally publish the config file with:

php artisan vendor:publish --provider="Novius\LaravelNovaNews\LaravelNovaNewsServiceProvider" --tag="config"

This will allow you to override the resource class for example.

// config/laravel-nova-news.php

return [
    // ...
    'resources' => [
        'post' => \App\Nova\Post::class,
    ],
];
// app/Nova/Post.php

namespace App\Nova;

use Laravel\Nova\Fields\Text;

class Post extends \Novius\LaravelNovaNews\Nova\NewsPost
{
    public function mainFields(): array
    {
        return [
            ...parent::mainFields(),

            Text::make('Subtitle'),
        ];
    }
}

Assets

Next we need to publish the Laravel Nova Translatable package's assets. We do this by running the following command:

php artisan vendor:publish --provider="Novius\LaravelNovaTranslatable\LaravelNovaTranslatableServiceProvider" --tag="public"

Migrations and lang files

If you want to customize the migrations or lang files, you can publish them with:

php artisan vendor:publish --provider="Novius\LaravelNovaNews\LaravelNovaNewsServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="Novius\LaravelNovaNews\LaravelNovaNewsServiceProvider" --tag="lang"

Testing

Run the tests with:

composer test

Lint

Lint your code with Laravel Pint using:

composer lint

Licence

This package is under GNU Affero General Public License v3 or (at your option) any later version.