楼层12 / yii2-metamaster
这个Yii2组件帮助通过几行代码来组织页面标题、元标签以及`og`和`twitter`开放图标签。
1.2.6
2023-12-17 18:51 UTC
Requires
- php: >=7.1.0
- yiisoft/yii2: ^2.0.
Requires (Dev)
- phpunit/phpunit: >=7.0
README
此文件也提供俄语版本:俄语.
这是一个用于在Yii2应用程序的模板头部生成一些元、开放图和Twitter卡片标签的组件。
支持的标签列表
- canonical
- head标题
- meta描述
- meta关键词
- og:sitename
- og:type
- og:url
- og:title
- og:description
- og:image
- og:image:width
- og:image:height
- twitter:card
- twitter:domain
- twitter:site
- twitter:description
- twitter:image:src
- itemprop:name
- itemprop:image
安装
只需运行
$ composer require floor12/yii2-metamaster
或将以下内容添加到composer.json的require部分。
"floor12/yii2-metamaster": "dev-master"
之后,将一些基本metamaster数据包含到应用程序配置的components部分。
'components' => [ 'metamaster' => [ 'class' => 'floor12\metamaster\MetaMaster', 'siteName' => 'My cool new Web Site', 'defaultImage' => '/design/export_logo.png', ], ...
属性
siteName
- 在开放图标签中显示的项目名称;defaultImage
- 开放图标签中默认图像的Web相对路径;web
- yii2别名,用于读取开放图标签的图像宽度和高度(默认为@app/web
)protocol
- 生成链接的默认协议(默认为https
)
使用方法
可以在应用程序的任何地方使用。只需使用setter,然后调用带有传入View对象的register(View $view)
方法。
允许的setter
Metamaster::setSiteName(string $value) Metamaster::setTitle(string $value) Metamaster::setUrl(string $value) Metamaster::setType(string $value) Metamaster::setDescription(string $value) Metamaster::setImage(string $relativePath, string $absolutePath = null)
例如,在控制器中使用
public function actionIndex() { Yii::$app->metamaster ->setTitle("This is test page") ->setDescription("This is page description") ->setImage('/images/article/image.png') ->register(Yii::$app->getView()); return $this->render('index'); }
它将在模板中生成您所需的所有内容
<title>This is test page</title> <link href="https://your-domain.com/site/index" rel="canonical"> <meta name="description" content="This is page description"> <meta property="og:site_name" content="My cool new Web Site"> <meta property="og:type" content="article"> <meta property="og:url" content="https://your-domain.com/site/index"> <meta name="twitter:card" content="summary"> <meta name="twitter:domain" content="https://your-domain.com"> <meta name="twitter:site" content="My cool new Web Site"> <meta property="og:title" content="This is test page"> <meta itemprop="name" content="This is test page"> <meta property="og:description" content="This is page description"> <meta name="twitter:description" content="This is page description"> <meta property="og:image" content="https://your-domain.com/images/article/image.png"> <meta property="twitter:image:src" content="https://your-domain.com/images/article/image.png"> <meta itemprop="image" content="https://your-domain.com/images/article/image.png">