floor12 / yii2-metamaster
This Yii2 component helps to organize page title, meta tags and `og` and `twitter` open graph tags in with a fiew lines of code.
Installs: 4 622
Dependents: 2
Suggesters: 0
Security: 0
Stars: 9
Watchers: 5
Forks: 7
Open Issues: 1
Type:yii2-component
Requires
- php: >=7.1.0
- yiisoft/yii2: ^2.0.
Requires (Dev)
- phpunit/phpunit: >=7.0
README
Этот файл так же доступен на русском языке.
This is a component for generate some Meta, Open Graph and Twitter-card tags in a template header of Yii2 app.
This is a list of supported tags:
- canonical
- head title
- meta description
- meta keywords
- 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
Installation
Just run:
$ composer require floor12/yii2-metamaster
or add this to the require section of your composer.json.
"floor12/yii2-metamaster": "dev-master"
After that, include some basic metamaster data into components
section of application config.
'components' => [ 'metamaster' => [ 'class' => 'floor12\metamaster\MetaMaster', 'siteName' => 'My cool new Web Site', 'defaultImage' => '/design/export_logo.png', ], ...
Attributes:
siteName
- name of project to show in Open Graph tags;defaultImage
- web relative path to default image for Open Graph tags;web
- yii2 alias to web path to read image width and height for Open Graph tags (default is@app/web
)protocol
- default protocol to generate links (default ishttps
)
Usage
Its possible to use in any place of your app. Just use setters and then call the register(View $view)
method with View object passed into it.
Allowed setters:
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)
For example, using in controller:
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'); }
It will generate all you need in template:
<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">