webpress/tag-manager

Webpress tag manager



Documentation

Tag Manager Package for Laravel

Installation

Composer

To include the package in your project, Please run following command.

composer require webpress/tag-manager

Configuration

Model and Transformer

You can use your own model and transformer class by modifying the configuration file config\tag.php

'models'          => [
    'tag' => App\Entities\Tag::class,
],

'transformers'    => [
    'tag' => App\Transformers\TagTransformer::class,
],

Your Tag model class must implements VCComponent\Laravel\Tag\Contracts\TagSchema and VCComponent\Laravel\Tag\Contracts\TagManagement

Auth middleware

Configure auth middleware in configuration file config\tag.php

'auth_middleware' => [
        'admin'    => [
            'middleware' => 'jwt.auth',
            'except'     => ['index'],
        ],
        'frontend' => [
            'middleware' => 'jwt.auth',
            'except'     => ['index'],
        ],
],

Query functions provide

List of query functions

Scope a query to only include published tags.

public function scopeIsPublished($query)

Scope a query to sort tags by name column.

public function scopeSortByName($query, $order = 'asc')

Scope a query to sort tags by usage time. From hight to low.

public function scopeMostUsed($query, $tagable_type = null) 

Scope a query to sort tags by usage time. From low to hight.

public function scopeLeastUsed($query, $taggable_type = null)

Use

Use Trait.

namespace App\Model;

use VCComponent\Laravel\Tag\Traits\TagQueryTrait;

class Tag 
{
    use TagQueryTrait;
    \\
}

Extend VCComponent\Laravel\Tag\Entities\Tag Entity.

namespace App\Model;

use VCComponent\Laravel\Tag\Entities\Tag as BaseTag;

class Tag extends BaseTag
{
    \\
}

For example

$category = Tag::isPublished()->mostUsed()->get();

Routes

The api endpoint should have these format:

Verb URI
GET /api/admin/tags
GET /api/admin/tags/all
GET /api/admin/tags/{id}
POST /api/admin/tags
PUT /api/admin/tags/{id}
DELETE /api/admin/tags/{id}
PUT /api/admin/tags/status/bulk
PUT /api/admin/tags/status/{id}
---- ----
GET /api/tags/all
GET /api/tags/{id}
POST /api/tags
PUT /api/tags/{id}
DELETE /api/tags/{id}