magicalella/yii2-sef

用于管理 Sef URL、页面 Meta description 和 Title 的组件

安装: 14

依赖者: 0

建议者: 0

安全: 0

星标: 1

关注者: 0

分支: 1

类型:yii2-extension

v1.0.0 2023-12-22 12:06 UTC

This package is auto-updated.

Last update: 2024-09-15 14:40:39 UTC


README

安装

安装此扩展的最佳方式是通过 composer

启动

php composer.phar require --prefer-dist magicalella/yii2-sef "*"

或添加

"magicalella/yii2-sef": "*"

到你的 "composer.json" 文件的 require 部分。

然后启动文件迁移

yii migrate/up --migrationPath=@vendor/magicalella/yii2-sef/migrations

可以手动创建。即,表 sef 只有三列

id(主键, 自增); link(varchar(255)); link_sef(varchar(255)); meta_title(varchar(255)); meta_description(varchar(255));

使用方法

在文件: config/web.phpfrontend/config/main.php(如果你使用 yii advanced,请写)

    'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
            // Ci sono delle regole qui.
            [ 
                'class' => 'magicalella\sef\SefRule',
                'connectionID' => 'db',
            ],
        ],
    ],

对于管理面板,你可以创建一个 "Sef" 模型,或者使用已准备好的 "magicalella\sef\src\Sef" 模型

'link' = 这是指原始链接的字段,例如文章/视图?id=49

'link_sef' = 这个字段是 URL 的同义词

'meta_title' = 页面标题

'meta_description' = 页面 Meta description

自动将 URL 保存到数据库并自动替换 Meta Title 和 Description

插入

到 _protected\ (Yii basic) 或 _protected\common\ (Yii advanced)

  • models Sef.php 和 SefSearch.php

到 _protected\backend\controllers

  • controller SefController.php

到 FrontendController

use app\models\Sef (Yii basic) use common\models\Sef (Yii advanced)

public function afterAction($action, $result) { $result = parent::afterAction($action, $result); $request = Yii::$app->request;

    if ($request->isGet){
        Sef::inserisciSef($action,$request);
    }    
    return $result;
}

public function render ( $view, $params = [] ){
        $request = Yii::$app->request;
        $controller  = Yii::$app->controller->id;
        // ! SEO
        $meta_titol = Sef::scriviMetaTitle($view,$controller,$request);
        $meta_description =  Sef::scriviMetaDescription($view,$controller,$request);
        
        Yii::$app->view->title = $meta_titol;
        Yii::$app->view->registerMetaTag([
            'name' => 'description',
            'content' =>  $meta_description,
        ]);
        return parent::render($view, $params);   
    }

在 params

//如果设置,则添加前缀 'add_prefix_meta_titol' => 1, //如果没有设置,则默认使用站点名称,如果 add_prefix 是 1 则使用 'prefix_meta_titol' => 'prefix', //如果没有设置,则默认使用 ' | ' 'separazione_meta_titol' => ' | ', 'meta_description' => 'Default meta description',