oxy-coach/yii2-seo-behavior

yii2 生成 slug 和 SEO 填充帮助行为

v1.1 2018-08-20 08:53 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:42:07 UTC


README

此行为帮助基于名称字段值生成 slug 和填充模型 SEO 属性

通过 Composer 安装

运行以下命令

$ composer require oxy-coach/yii2-seo-behavior "*"

或者将以下内容添加到你的 composer.json 文件的 require 部分:

$ "oxy-coach/yii2-seo-behavior": "*"

配置

将行为附加到你的模型类中

use oxycoach\seobehavior\SeoBehavior;

\\ ...

    public function behaviors()
    {
        return [
            'SeoBehavior' => [
                'class' => SeoBehavior::className(),
                'nameAttribute' => 'name',
                'slugAttribute' => 'slug',
                'seoAttributes' => ['seoTitle', 'seoKeywords', 'seoDescription']
            ],
        ];
    }
    
    public function rules()
    {
        return [
            [['name'], 'required'],
            [['name', 'slug', 'seoTitle', 'seoKeywords', 'seoDescription'], 'string'],
        ];
    }
    

这样配置后,在保存 AR 模型之前,如果 slug 属性为空,它将使用从 name 属性生成的 slug 填充,如果任何 seoAttributes 属性为空,它将使用 name 字段值填充。

注意,默认情况下,slug 是从包含西里尔符号的字符串中生成的,所以如果你使用其他编码或符号,你可以提供自己的函数/方法来生成 slug,使用 transliterationFunction 属性,如下面的示例所示

\\ ...

    public function behaviors()
    {
        return [
            'SeoBehavior' => [
                'class' => SeoBehavior::className(),
                'nameAttribute' => 'name',
                'slugAttribute' => 'slug',
                'transliterationFunction' => 'namespace\for\MyTransliterator::myMethod',
                'seoAttributes' => ['seoTitle', 'seoKeywords', 'seoDescription']
            ],
        ];
    }