sbs/yii2-seo

The module allows link SEO fields to model.

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 5

Open Issues: 0

Type:yii2-extension

1.0.0 2020-04-23 09:47 UTC

This package is auto-updated.

Last update: 2024-10-23 19:12:19 UTC


README

The module provides an ability to add SEO fields to Model. Fields: title, keywords, description.

Installation

The preferred way to install this extension is through composer.

Either run

composer require sbs/yii2-seo

or add to the require section of your application's composer.json file next line

"sbs/yii2-seo": "^1.0"

and run

composer update

Migrations

For add table, to DataBase, you can run next command

php yii migrate/up --migrationPath=vendor/sbs/yii2-seo/src/migrations

or you can configure your application's config\console.php

This method more preferable because you can run all standard migrations commands.

'controllerMap' => [
    'migrate' => [
        'class' => MigrateController::class,
        'migrationPath' => [
            '@console/migrations',
            '@vendor/sbs/yii2-seo/src/migrations',
        ],
        //...
    ],
    //...
]

Use with Model

You need to add behaviors to model:

use sbs\behaviors\SeoBehavior;

function behaviors()
{
    return [
    //...
        SeoBehavior::class,
    //...
    ];
}

Now all fields will be available by $model->seo.

For add/edit fields in model form view use next widget:

//...
use sbs\widgets\SeoForm;
//...
?>
<div>
    <?php $form = ActiveForm::begin(); ?>
    //...
    <?= SeoForm::widget(['model' => $model, 'form' => $form]); ?>
    //...
    <div class="form-group">
        <?= Html::submitButton($model->isNewRecord ? 'Create': 'Update'); ?>
    </div>
    <?php ActiveForm::end(); ?>
</div>

For display this field on page view use next widget:

use sbs\widgets\SeoTags;
//...
SeoTags::widget(['seo' => $model->seo]);
// ...

Use without Model

Also, you can use the SeoTags widget without model and DataBase. For example, if you need to add SEO to some static page and no need for editing this information in the admin panel:

use sbs\widgets\SeoTags;
//...
SeoTags::widget(['title' => 'title', 'keywords' => 'keyword 1, keyword 2', 'description' => 'your description']);
// ...