Skip to content

SUKOHI/Maven

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 

Repository files navigation

Maven

A Laravel package to manage FAQ.
(This package is for Laravel 5.3+)

Demo

'Example'

Requirements

Installation

Execute the next command.

composer require sukohi/maven:4.*

Set the service providers in app.php

'providers' => [
    ...Others...,
    Collective\Html\HtmlServiceProvider::class,
    Sukohi\Cahen\CahenServiceProvider::class,
    Sukohi\Maven\MavenServiceProvider::class,
]

Also alias

'aliases' => [
    ...Others...,
    'Form' => Collective\Html\FormFacade::class,
    'Html' => Collective\Html\HtmlFacade::class,
    'Cahen'   => Sukohi\Cahen\Facades\Cahen::class,
    'Maven'   => Sukohi\Maven\Facades\Maven::class,
]

Then execute the next commands.

php artisan vendor:publish
php artisan migrate

Usage (Management page)

Set Maven::route() in your routes.php.

\Sukohi\Maven\Maven::route();

// or with default locale

\Sukohi\Maven\Maven::route('en');

Now you can access to http(s)://YOUR-DOMAIN/admin/maven.
Note: I believe that you need to authenticate in routes.php before calling Maven::route() using middleware or something.

[Config]
After publishing, you should have maven.php in your config folder.
you can set some values in the file like the followings.

locales

First of all, you have only en locale.
You can add more locales if you want like so.

'locales' => [
    'en' => 'English',
    'ja' => 'Japanese',
    'es' => 'Spanish'
],

// or

'locales' => [
    'ja' => '日本語',
    'en' => '英語',
    'es' => 'スペイン語'
],

// The keys and values refer locale symbols and language names.

URI

The default value is admin/maven.
So http(s)://YOUR-DOMAIN/admin/maven is the URL for managing FAQs.

Per Page

You can change maximum records per page.

Usage (Retrieve data)

[Basic Way]

$faqs = \Maven::get();

foreach ($faqs as $faq) {

    if($faq->hasLocale('en')) {

        // FAQ
        echo $faq->getQuestion('en');
        echo $faq->getRawQuestion('en');
        echo $faq->getAnswer('en');
        echo $faq->getRawAnswer('en');
        
        // Tag(s)
        $tags = $faq->getTags('en');    // Collection
        
        // Others
        echo $faq->sort_id;
        echo $faq->unique_key;
        echo $faq->created_at;
        echo $faq->updated_at;
        
    }

}

[Filtering]

Tag(s)

$faqs = \Maven::tag([
    'en' => 'YOUR-TAG'
])->get();

// or

$faqs = \Maven::tag([
    'en' => ['YOUR-TAG', 'YOUR-TAG'],
    'ja' => 'タグ'
])->get();

(Raminsadeghi indecated an error here for me. Thank you for kind of you!)

Unique Key

$faq = \Maven::uniqueKey('952557a09ef19aae1d9e2a276db18a66')->first();

// or 

$faqs = \Maven::uniqueKey([
    '952557a09ef19aae1d9e2a276db18a66', 
    'fashrtrhstgrfaeargthukfyhdredeff', 
])->get();

Pagination

{!! $faqs->links() !!}

All Tag(s)

$tags = \Maven::getAllTags();

// or with $draft_filter_flag

$tags = \Maven::getAllTags($draft_filter_flag = true);

In this case, if you'd like to get en tag(s), you should call like so.

$english_tags = $tags['en'];

Model Instance

In order to get model instance of this package, you can use getModel().

\Maven::getModel('unique_key');
\Maven::getModel('faq');
\Maven::getModel('tag');

Export/Import

You can two commands for export/import.

[Export]

php artisan maven:export
  • Exported file is located at storage/app/maven/maven_faqs.json, storage/app/maven/maven_tags.json and storage/app/maven/maven_unique_keys.json.

[Import]

php artisan maven:import

Contributor

PapaDragonov

License

This package is licensed under the MIT License.
Copyright 2016 Sukohi Kuhoh

About

A Laravel package to manage FAQ.

Resources

Stars

Watchers

Forks

Packages

No packages published